[igt-dev] [PATCH i-g-t 3/5] tests/kms_frontbuffer_tracking: Add support for 4 tiling
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Tue Mar 15 16:00:09 UTC 2022
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
On 9.3.2022 18.44, Jeevan B wrote:
> 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>
> ---
> 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))
More information about the igt-dev
mailing list