[igt-dev] [PATCH i-g-t v2 3/4] tests/kms_frontbuffer_tracking: Add support for 4 tiling
Jeevan B
jeevan.b at intel.com
Thu Mar 17 20:54:13 UTC 2022
From: Mika Kahola <mika.kahola at intel.com>
GEN12 uses 4 tiling instead of Y tiling. Let's add support for
tiling 4.
Signed-off-by: Mika Kahola <mika.kahola at intel.com>
Signed-off-by: Jeevan B <jeevan.b at intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
---
tests/i915/kms_frontbuffer_tracking.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c
index 1c3acd79..814ddb46 100644
--- a/tests/i915/kms_frontbuffer_tracking.c
+++ b/tests/i915/kms_frontbuffer_tracking.c
@@ -136,6 +136,7 @@ struct test_mode {
TILING_LINEAR = 0,
TILING_X,
TILING_Y,
+ TILING_4,
TILING_COUNT,
TILING_DEFAULT = TILING_X,
} tiling;
@@ -462,6 +463,8 @@ static uint64_t tiling_to_modifier(enum tiling_type tiling)
return I915_FORMAT_MOD_X_TILED;
case TILING_Y:
return I915_FORMAT_MOD_Y_TILED;
+ case TILING_4:
+ return I915_FORMAT_MOD_4_TILED;
default:
igt_assert(false);
}
@@ -2234,6 +2237,8 @@ static bool tiling_is_valid(int feature_flags, enum tiling_type tiling)
case TILING_X:
case TILING_Y:
return true;
+ case TILING_4:
+ return AT_LEAST_GEN(devid, 12);
default:
igt_assert(false);
return false;
@@ -3210,6 +3215,8 @@ static int opt_handler(int option, int option_index, void *data)
opt.tiling = TILING_X;
else if (!strcmp(optarg, "y"))
opt.tiling = TILING_Y;
+ else if (!strcmp(optarg, "4"))
+ opt.tiling = TILING_4;
else if (!strcmp(optarg, "l")) {
opt.tiling = TILING_LINEAR;
} else {
@@ -3353,6 +3360,8 @@ static const char *tiling_str(enum tiling_type tiling)
return "x";
case TILING_Y:
return "y";
+ case TILING_4:
+ return "4";
default:
igt_assert(false);
}
@@ -3404,9 +3413,12 @@ struct option long_options[] = {
igt_main_args("", long_options, help_str, opt_handler, NULL)
{
struct test_mode t;
+ int devid;
- igt_fixture
+ igt_fixture {
setup_environment();
+ devid = intel_get_drm_devid(drm.fd);
+ }
for (t.feature = 0; t.feature < FEATURE_COUNT; t.feature++) {
if (!opt.show_hidden && t.feature == FEATURE_NONE)
@@ -3604,8 +3616,14 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
/* Tiling Y is only supported on GEN9+ */
if (t.tiling == TILING_Y) {
- int devid = intel_get_drm_devid(drm.fd);
igt_require(AT_LEAST_GEN(devid, 9));
+ igt_require(!intel_get_device_info(devid)->has_4tile);
+ }
+
+ /* Tiling 4 is only supported on GEN12+ */
+ if (t.tiling == TILING_4) {
+ igt_require(AT_LEAST_GEN(devid, 12));
+ igt_require(intel_get_device_info(devid)->has_4tile);
}
if (tiling_is_valid(t.feature, t.tiling))
--
2.35.1
More information about the igt-dev
mailing list