[igt-dev] [PATCH i-g-t 1/2] tests/kms_addfb_basic: simplify addfb25_ytile tests
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Mon Mar 22 15:26:58 UTC 2021
use igt_display_has_format_mod(..) to test if tile supported
or no.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
---
tests/kms_addfb_basic.c | 31 ++++++++++++-------------------
1 file changed, 12 insertions(+), 19 deletions(-)
diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c
index 1302b1c7b..1fb18d668 100644
--- a/tests/kms_addfb_basic.c
+++ b/tests/kms_addfb_basic.c
@@ -581,26 +581,20 @@ static void addfb25_tests(int fd)
gem_close(fd, gem_bo);
}
-static int addfb_expected_ret(int fd, uint64_t modifier)
+static int addfb_expected_ret(igt_display_t *display, struct local_drm_mode_fb_cmd2 *f)
{
- int gen;
-
- if (!is_i915_device(fd))
- return 0;
-
- gen = intel_gen(intel_get_drm_devid(fd));
-
- if (modifier == LOCAL_I915_FORMAT_MOD_Yf_TILED)
- return gen >= 9 && gen < 12 ? 0 : -1;
- return gen >= 9 ? 0 : -1;
+ return igt_display_has_format_mod(display, f->pixel_format,
+ f->modifier[0]) ? 0 : -1;
}
static void addfb25_ytile(int fd)
{
struct local_drm_mode_fb_cmd2 f = {};
- int gen;
+ igt_display_t display;
igt_fixture {
+ igt_display_require(&display, fd);
+
gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
DRM_FORMAT_XRGB8888, 0, 0, NULL, NULL, NULL);
igt_assert(gem_bo);
@@ -627,8 +621,8 @@ static void addfb25_ytile(int fd)
f.modifier[0] = LOCAL_I915_FORMAT_MOD_Y_TILED;
igt_assert(drmIoctl(fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f) ==
- addfb_expected_ret(fd, f.modifier[0]));
- if (!addfb_expected_ret(fd, f.modifier[0]))
+ addfb_expected_ret(&display, &f));
+ if (!addfb_expected_ret(&display, &f))
igt_assert(drmIoctl(fd, DRM_IOCTL_MODE_RMFB, &f.fb_id) == 0);
f.fb_id = 0;
}
@@ -640,8 +634,8 @@ static void addfb25_ytile(int fd)
f.modifier[0] = LOCAL_I915_FORMAT_MOD_Yf_TILED;
igt_assert(drmIoctl(fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f) ==
- addfb_expected_ret(fd, f.modifier[0]));
- if (!addfb_expected_ret(fd, f.modifier[0]))
+ addfb_expected_ret(&display, &f));
+ if (!addfb_expected_ret(&display, &f))
igt_assert(drmIoctl(fd, DRM_IOCTL_MODE_RMFB, &f.fb_id) == 0);
f.fb_id = 0;
}
@@ -651,12 +645,10 @@ static void addfb25_ytile(int fd)
igt_require_fb_modifiers(fd);
igt_require_intel(fd);
- gen = intel_gen(intel_get_drm_devid(fd));
- igt_require(gen >= 9);
-
f.modifier[0] = LOCAL_I915_FORMAT_MOD_Y_TILED;
f.height = 1023;
f.handles[0] = gem_bo_small;
+ igt_require(addfb_expected_ret(&display, &f) == 0);
igt_assert(drmIoctl(fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f) < 0 && errno == EINVAL);
f.fb_id = 0;
}
@@ -664,6 +656,7 @@ static void addfb25_ytile(int fd)
igt_fixture {
gem_close(fd, gem_bo);
gem_close(fd, gem_bo_small);
+ igt_display_fini(&display);
}
}
--
2.28.0
More information about the igt-dev
mailing list