[PATCH i-g-t v8 2/2] tests/kms_prime: Enable basic-modeset for xe
Santhosh Reddy Guddati
santhosh.reddy.guddati at intel.com
Wed Jul 23 03:38:24 UTC 2025
Remove unused setup_hybrid_display , add support for basic-modeset
subtest for xe driver.
Signed-off-by: Santhosh Reddy Guddati <santhosh.reddy.guddati at intel.com>
---
tests/kms_prime.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/tests/kms_prime.c b/tests/kms_prime.c
index 073fd4190..fa5848ec6 100644
--- a/tests/kms_prime.c
+++ b/tests/kms_prime.c
@@ -457,6 +457,9 @@ static void test_basic_modeset(int drm_fd)
enum pipe pipe;
drmModeModeInfo *mode;
struct igt_fb fb;
+ uint32_t bo;
+ int ret;
+ uint32_t offsets[4] = { 0 };
igt_device_set_master(drm_fd);
igt_display_require(&display, drm_fd);
@@ -465,6 +468,38 @@ static void test_basic_modeset(int drm_fd)
mode = igt_output_get_mode(output);
igt_assert(mode);
+ if (is_xe_device(drm_fd) && xe_has_vram(drm_fd)) {
+ uint32_t strides[4] = { ALIGN(mode->hdisplay * 4, 64) };
+
+ igt_info("Doing modeset on discrete\n");
+
+ igt_init_fb(&fb, drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_NONE,
+ IGT_COLOR_YCBCR_BT709, IGT_COLOR_YCBCR_LIMITED_RANGE);
+ igt_calc_fb_size(&fb);
+
+ bo = xe_bo_create(drm_fd, 0, fb.size, vram_if_possible(drm_fd, 0), 0);
+ igt_require(bo);
+
+ ret = __kms_addfb(drm_fd, bo,
+ mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR,
+ strides, offsets, 1,
+ DRM_MODE_FB_MODIFIERS, &fb.fb_id);
+ igt_assert_eq(ret, 0);
+
+ set_fb(&fb, &display, output);
+ gem_close(drm_fd, bo);
+
+ cairo_surface_destroy(fb.cairo_surface);
+ do_or_die(drmModeRmFB(drm_fd, fb.fb_id));
+
+ igt_display_fini(&display);
+ igt_info("Modeset on discrete done\n");
+ return;
+ }
+
igt_create_pattern_fb(drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888,
DRM_FORMAT_MOD_LINEAR, &fb);
--
2.34.1
More information about the igt-dev
mailing list