From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> 10bpc formats aren't supported on all platforms, so skip the test when we can't create the framebuffer. Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> --- tests/kms_draw_crc.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/tests/kms_draw_crc.c b/tests/kms_draw_crc.c index 260950c76e00..723e7a182c95 100644 --- a/tests/kms_draw_crc.c +++ b/tests/kms_draw_crc.c @@ -153,16 +153,33 @@ static void get_method_crc(enum igt_draw_method method, uint32_t drm_format, igt_remove_fb(drm_fd, &fb); } +static bool format_is_supported(uint32_t format, uint64_t modifier) +{ + uint32_t gem_handle, fb_id; + unsigned int stride; + int ret; + + gem_handle = igt_create_bo_with_dimensions(drm_fd, 64, 64, + format, modifier, + 0, NULL, &stride, NULL); + ret = __kms_addfb(drm_fd, gem_handle, 64, 64, + stride, format, modifier, + LOCAL_DRM_MODE_FB_MODIFIERS, &fb_id); + drmModeRmFB(drm_fd, fb_id); + gem_close(drm_fd, gem_handle); + + return ret == 0; +} + static void draw_method_subtest(enum igt_draw_method method, uint32_t format_index, uint64_t tiling) { igt_crc_t crc; - if (tiling == LOCAL_I915_FORMAT_MOD_Y_TILED) - igt_require(intel_gen(intel_get_drm_devid(drm_fd)) >= 9); - igt_skip_on(method == IGT_DRAW_MMAP_WC && !gem_mmap__has_wc(drm_fd)); + igt_require(format_is_supported(formats[format_index], tiling)); + /* Use IGT_DRAW_MMAP_GTT on an untiled buffer as the parameter for * comparison. Cache the value so we don't recompute it for every single * subtest. */ -- 2.13.5 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx