[PATCH i-g-t 12/14] tests/kms_draw_crc: Test 64bpp

Juha-Pekka Heikkilä juhapekka.heikkila at gmail.com
Mon Nov 18 14:50:19 UTC 2024


Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>

On Fri, Oct 4, 2024 at 1:41 PM Ville Syrjala
<ville.syrjala at linux.intel.com> wrote:
>
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Test 64bpp formats to make sure igt_draw is working correctly.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  tests/intel/kms_draw_crc.c | 19 +++++++++++++++++--
>  1 file changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/tests/intel/kms_draw_crc.c b/tests/intel/kms_draw_crc.c
> index e3d1c0ba9bd8..078a6f46d31a 100644
> --- a/tests/intel/kms_draw_crc.c
> +++ b/tests/intel/kms_draw_crc.c
> @@ -34,6 +34,7 @@
>
>  #include "i915/gem.h"
>  #include "igt.h"
> +#include "igt_halffloat.h"
>
>  /**
>   * SUBTEST: fill-fb
> @@ -76,6 +77,7 @@ static const uint32_t formats[] = {
>         DRM_FORMAT_XRGB8888,
>         DRM_FORMAT_RGB565,
>         DRM_FORMAT_XRGB2101010,
> +       DRM_FORMAT_XBGR16161616F,
>  };
>
>  static const uint64_t modifiers[] = {
> @@ -109,9 +111,11 @@ static void find_modeset_params(void)
>         }
>  }
>
> -static uint32_t get_color(uint32_t drm_format, bool r, bool g, bool b)
> +static uint64_t get_color(uint32_t drm_format, bool r, bool g, bool b)
>  {
> -       uint32_t color = 0;
> +       uint64_t color = 0;
> +       uint16_t h[3];
> +       float f[3];
>
>         switch (drm_format) {
>         case DRM_FORMAT_RGB565:
> @@ -129,6 +133,15 @@ static uint32_t get_color(uint32_t drm_format, bool r, bool g, bool b)
>                 color |= g ? 0x3FF << 10 : 0;
>                 color |= b ? 0x3FF : 0;
>                 break;
> +       case DRM_FORMAT_XBGR16161616F:
> +               f[0] = r ? 1.0f : 0.0f;
> +               f[1] = g ? 1.0f : 0.0f;
> +               f[2] = b ? 1.0f : 0.0f;
> +               igt_float_to_half(f, h, 3);
> +               color |= (uint64_t)h[2] << 32 |
> +                       (uint64_t)h[1] << 16 |
> +                       (uint64_t)h[0] << 0;
> +               break;
>         default:
>                 igt_assert(false);
>         }
> @@ -290,6 +303,8 @@ static const char *format_str(int format_index)
>                 return "xrgb8888";
>         case DRM_FORMAT_XRGB2101010:
>                 return "xrgb2101010";
> +       case DRM_FORMAT_XBGR16161616F:
> +               return "xbgr16161616f";
>         default:
>                 igt_assert(false);
>         }
> --
> 2.45.2
>


More information about the igt-dev mailing list