From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id F1D8110F981 for ; Mon, 7 Feb 2022 18:22:58 +0000 (UTC) From: Jeevan B Date: Mon, 7 Feb 2022 23:51:49 +0530 Message-Id: <20220207182152.31211-15-jeevan.b@intel.com> In-Reply-To: <20220207182152.31211-1-jeevan.b@intel.com> References: <20220207182152.31211-1-jeevan.b@intel.com> Subject: [igt-dev] [PATCH i-g-t 14/17] tests/kms_frontbuffer_tracking: Add support for 4 tiling List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: From: Mika Kahola GEN12 uses 4 tiling instead of Y tiling. Let's add support for tiling 4. Signed-off-by: Mika Kahola Signed-off-by: Jeevan B --- 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 532bfbb9..3f4c7e1b 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); } @@ -2232,6 +2235,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; @@ -3208,6 +3213,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 { @@ -3351,6 +3358,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); } @@ -3402,9 +3411,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) @@ -3602,8 +3614,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.17.1