[PATCH i-g-t 12/14] tests/kms_draw_crc: Test 64bpp
Ville Syrjala
ville.syrjala at linux.intel.com
Fri Oct 4 10:41:19 UTC 2024
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