All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeevan B <jeevan.b@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: juha-pekka.heikkila@intel.com
Subject: [igt-dev] [PATCH i-g-t v2 3/4] tests/kms_ccs: Add dg2 tiled-4 ccs modifiers
Date: Wed, 20 Apr 2022 16:09:08 +0530	[thread overview]
Message-ID: <20220420103909.17175-4-jeevan.b@intel.com> (raw)
In-Reply-To: <20220420103909.17175-1-jeevan.b@intel.com>

From: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>

LOCAL_I915_FORMAT_MOD_4_TILED_DG2_RC_CCS
LOCAL_I915_FORMAT_MOD_4_TILED_DG2_MC_CCS
LOCAL_I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC

modifier added for testing and prevent impossible ccs test from
flat ccs

Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_ccs.c | 62 +++++++++++++++++++++++++++-----------------
 1 file changed, 38 insertions(+), 24 deletions(-)

diff --git a/tests/i915/kms_ccs.c b/tests/i915/kms_ccs.c
index 716be5b6..39bf6d58 100644
--- a/tests/i915/kms_ccs.c
+++ b/tests/i915/kms_ccs.c
@@ -98,10 +98,29 @@ static const struct {
 	{I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, "y_tiled_gen12_rc_ccs"},
 	{I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC, "y_tiled_gen12_rc_ccs_cc"},
 	{I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS, "y_tiled_gen12_mc_ccs"},
+	{I915_FORMAT_MOD_4_TILED_DG2_RC_CCS, "4_tiled_dg2_rc_ccs"},
+	{I915_FORMAT_MOD_4_TILED_DG2_MC_CCS, "4_tiled_dg2_mc_ccs"},
+	{I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC, "4_tiled_dg2_rc_ccs_cc"},
 };
 
 static bool check_ccs_planes;
 
+static const struct {
+	const enum test_flags	flags;
+	const char		*testname;
+	const char		*description;
+} tests[] = {
+	{TEST_BAD_PIXEL_FORMAT, "bad-pixel-format", "Test bad pixel format with given CCS modifier"},
+	{TEST_BAD_ROTATION_90, "bad-rotation-90", "Test 90 degree rotation with given CCS modifier"},
+	{TEST_CRC, "crc-primary-basic", "Test primary plane CRC compatibility with given CCS modifier"},
+	{TEST_CRC | TEST_ROTATE_180, "crc-primary-rotation-180", "Test 180 degree rotation with given CCS modifier"},
+	{TEST_RANDOM, "random-ccs-data", "Test random CCS data"},
+	{TEST_NO_AUX_BUFFER, "missing-ccs-buffer", "Test missing CCS buffer with given CCS modifier"},
+	{TEST_BAD_CCS_HANDLE, "ccs-on-another-bo", "Test CCS with different BO with given modifier"},
+	{TEST_BAD_AUX_STRIDE, "bad-aux-stride", "Test with bad AUX stride with given CCS modifier"},
+	{TEST_CRC | TEST_ALL_PLANES, "crc-sprite-planes-basic", "Test sprite plane CRC compatibility with given CCS modifier"},
+};
+
 /*
  * Limit maximum used sprite plane width so this test will not mistakenly
  * fail on hardware limitations which are not interesting to this test.
@@ -141,7 +160,8 @@ create_fb_prepare_add(int drm_fd, int width, int height,
 
 static bool is_ccs_cc_modifier(uint64_t modifier)
 {
-	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC;
+	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC ||
+		modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS;
 }
 
 /*
@@ -256,12 +276,14 @@ static void test_bad_ccs_plane(data_t *data, int width, int height, int ccs_plan
 	 * an incorrect stride with the same delta as on earlier platforms.
 	 */
 	if (fb_flags & FB_MISALIGN_AUX_STRIDE) {
+		igt_skip_on_f(HAS_FLATCCS(intel_get_drm_devid(data->drm_fd)), "No aux plane on flat ccs.\n");
 		igt_skip_on_f(width <= 1024,
 			      "FB already has the smallest possible stride\n");
 		f.pitches[ccs_plane] -= 64;
 	}
 
 	if (fb_flags & FB_SMALL_AUX_STRIDE) {
+		igt_skip_on_f(HAS_FLATCCS(intel_get_drm_devid(data->drm_fd)), "No aux plane on flat ccs.\n");
 		igt_skip_on_f(width <= 1024,
 			      "FB already has the smallest possible stride\n");
 		f.pitches[ccs_plane] = ALIGN(f.pitches[ccs_plane] / 2, 128);
@@ -277,6 +299,7 @@ static void test_bad_ccs_plane(data_t *data, int width, int height, int ccs_plan
 	}
 
 	if (data->flags & TEST_NO_AUX_BUFFER) {
+		igt_skip_on_f(HAS_FLATCCS(intel_get_drm_devid(data->drm_fd)), "No aux plane on flat ccs.\n");
 		f.handles[ccs_plane] = 0;
 		f.modifier[ccs_plane] = 0;
 		f.pitches[ccs_plane] = 0;
@@ -363,7 +386,7 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
 				   colors[!!data->plane].b,
 				   1.0};
 
-	/* Use either compressed or Y-tiled to test. However, given the lack of
+	/* Use either compressed or linear to test. However, given the lack of
 	 * available bandwidth, we use linear for the primary plane when
 	 * testing sprites, since we cannot fit two CCS planes into the
 	 * available FIFO configurations.
@@ -371,7 +394,7 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
 	if (fb_flags & FB_COMPRESSED)
 		modifier = data->ccs_modifier;
 	else if (!(fb_flags & FB_HAS_PLANE))
-		modifier = I915_FORMAT_MOD_Y_TILED;
+		modifier = DRM_FORMAT_MOD_LINEAR;
 	else
 		modifier = 0;
 
@@ -563,9 +586,11 @@ static int test_ccs(data_t *data)
 	return valid_tests;
 }
 
-static void test_output(data_t *data, const char* testformatstring)
+static void test_output(data_t *data, const int testnum)
 {
 	igt_fixture {
+		data->flags = tests[testnum].flags;
+
 		data->output = igt_get_single_output_for_pipe(&data->display,
 							      data->pipe);
 		igt_require(data->output);
@@ -573,10 +598,17 @@ static void test_output(data_t *data, const char* testformatstring)
 	}
 
 	for (int i = 0; i < ARRAY_SIZE(ccs_modifiers); i++) {
+		if ((ccs_modifiers[i].modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS ||
+		    ccs_modifiers[i].modifier == I915_FORMAT_MOD_4_TILED_DG2_MC_CCS ||
+		    ccs_modifiers[i].modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC) &&
+		    tests[testnum].flags & TEST_BAD_CCS_PLANE)
+		    continue;
+
 		data->ccs_modifier = ccs_modifiers[i].modifier;
 
+		igt_describe(tests[testnum].description);
 		igt_subtest_f("pipe-%s-%s-%s", kmstest_pipe_name(data->pipe),
-			      testformatstring, ccs_modifiers[i].str ) {
+			      tests[testnum].testname, ccs_modifiers[i].str) {
 			int valid_tests = 0;
 			igt_require(data->output);
 
@@ -643,22 +675,6 @@ igt_main_args("cs:", NULL, help_str, opt_handler, &data)
 {
 	enum pipe pipe;
 
-	const struct {
-		const enum test_flags	flags;
-		const char		*testname;
-		const char		*description;
-	} tests[] = {
-		{TEST_BAD_PIXEL_FORMAT, "bad-pixel-format", "Test bad pixel format with given CCS modifier"},
-		{TEST_BAD_ROTATION_90, "bad-rotation-90", "Test 90 degree rotation with given CCS modifier"},
-		{TEST_CRC, "crc-primary-basic", "Test primary plane CRC compatibility with given CCS modifier"},
-		{TEST_CRC | TEST_ROTATE_180, "crc-primary-rotation-180", "Test 180 degree rotation with given CCS modifier"},
-		{TEST_RANDOM, "random-ccs-data", "Test random CCS data"},
-		{TEST_NO_AUX_BUFFER, "missing-ccs-buffer", "Test missing CCS buffer with given CCS modifier"},
-		{TEST_BAD_CCS_HANDLE, "ccs-on-another-bo", "Test CCS with different BO with given modifier"},
-		{TEST_BAD_AUX_STRIDE, "bad-aux-stride", "Test with bad AUX stride with given CCS modifier"},
-		{TEST_CRC | TEST_ALL_PLANES, "crc-sprite-planes-basic", "Test sprite plane CRC compatibility with given CCS modifier"},
-	};
-
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
 
@@ -678,9 +694,7 @@ igt_main_args("cs:", NULL, help_str, opt_handler, &data)
 
 		igt_subtest_group {
 			for (int c = 0; c < ARRAY_SIZE(tests); c++) {
-				data.flags = tests[c].flags;
-				igt_describe(tests[c].description);
-				test_output(&data, tests[c].testname);
+				test_output(&data, c);
 			}
 		}
 	}
-- 
2.35.1

  parent reply	other threads:[~2022-04-20 10:39 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-20 10:39 [igt-dev] [PATCH i-g-t v2 0/4] enable 4-tiled ccs modifiers on dg2 Jeevan B
2022-04-20 10:39 ` [igt-dev] [PATCH i-g-t v2 1/4] drm/fourcc: Import drm_fourcc header from 9035039e1ed69 Jeevan B
2022-04-20 10:39 ` [igt-dev] [PATCH i-g-t v2 2/4] lib/DG2: create flat ccs framebuffers with 4-tile Jeevan B
2022-05-13  8:47   ` Kahola, Mika
2022-04-20 10:39 ` Jeevan B [this message]
2022-04-20 11:44   ` [igt-dev] [PATCH i-g-t v2 3/4] tests/kms_ccs: Add dg2 tiled-4 ccs modifiers Petri Latvala
2022-04-20 10:39 ` [igt-dev] [PATCH i-g-t v2 4/4] tests/kms_getfb: Add flat ccs modifier support Jeevan B
2022-04-20 11:50 ` [igt-dev] ✗ Fi.CI.BAT: failure for enable 4-tiled ccs modifiers on dg2 (rev2) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220420103909.17175-4-jeevan.b@intel.com \
    --to=jeevan.b@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=juha-pekka.heikkila@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.