Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
To: Radhakrishna Sripada <radhakrishna.sripada@intel.com>,
	igt-dev@lists.freedesktop.org
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>,
	intel-gfx@lists.freedesktop.org,
	Manasi Navare <manasi.d.navare@intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [igt-dev] [PATCH i-g-t v2] tests/kms_rotation_crc: Remove hardcoding of platforms in igt_require()
Date: Mon, 12 Mar 2018 12:03:17 +0100	[thread overview]
Message-ID: <bcd3dbda-52db-eee0-8d33-0294f92c4741@linux.intel.com> (raw)
In-Reply-To: <20180309214515.15660-1-radhakrishna.sripada@intel.com>

Op 09-03-18 om 22:45 schreef Radhakrishna Sripada:
> From: Anusha Srivatsa <anusha.srivatsa@intel.com>
>
> Rework the rotate and reflect subtests by checking the
> crtc supported properties against the ones that the
> test is testing. Remove the hardcoded platform names in
> igt_require()
>
> v2: Make use of the property enums to get the supported rotations
>
> Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Mika Kahola <mika.kahola@intel.com>
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> ---
>  lib/igt_kms.h            |  1 +
>  tests/kms_rotation_crc.c | 46 +++++++++++++++++++++++++++++++++++++---------
>  2 files changed, 38 insertions(+), 9 deletions(-)

Just let it rest, it's not worth the effort to remove this, you only end up with more complicated code..
Closest I've come is below. Which will still fail because it will try to generate the wrong tilings pre-gen9..

Lets keep it as it is now?
---
diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 0cd5c6e52b57..9b9da53054c1 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -42,7 +42,6 @@ typedef struct {
 	int pos_y;
 	uint32_t override_fmt;
 	uint64_t override_tiling;
-	int devid;
 } data_t;
 
 typedef struct {
@@ -358,11 +357,22 @@ static void test_single_case(data_t *data, enum pipe pipe,
 	}
 }
 
+static bool supports_rotation(igt_display_t *display, igt_plane_t *plane, uint64_t rotation)
+{
+	igt_require(igt_plane_has_prop(plane, IGT_PLANE_ROTATION));
+
+	igt_assert(!igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY | DRM_MODE_ATOMIC_ALLOW_MODESET, NULL));
+	igt_plane_set_prop_value(plane, IGT_PLANE_ROTATION, rotation);
+
+	return !igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY | DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+}
+
 static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_format)
 {
 	igt_display_t *display = &data->display;
 	igt_output_t *output;
 	enum pipe pipe;
+	bool tested = false;
 
 	if (plane_type == DRM_PLANE_TYPE_CURSOR)
 		igt_require(display->has_cursor_plane);
@@ -373,13 +383,15 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 		igt_plane_t *plane;
 		int i, j;
 
-		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
-			continue;
+		igt_display_reset(display);
 
 		igt_output_set_pipe(output, pipe);
-
 		plane = igt_output_get_plane_type(output, plane_type);
-		igt_require(igt_plane_has_prop(plane, IGT_PLANE_ROTATION));
+
+		if (!supports_rotation(display, plane, data->rotation))
+			continue;
+
+		tested = true;
 
 		prepare_crtc(data, output, pipe, plane);
 
@@ -410,6 +422,8 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 			}
 		}
 	}
+
+	igt_assert_f(tested, "Rotation for this plane type not supported on any valid pipe.\n");
 }
 
 static void test_plane_rotation_exhaust_fences(data_t *data,
@@ -538,14 +552,11 @@ igt_main
 	};
 
 	data_t data = {};
-	int gen = 0;
 
 	igt_skip_on_simulation();
 
 	igt_fixture {
 		data.gfx_fd = drm_open_driver_master(DRIVER_INTEL);
-		data.devid = intel_get_drm_devid(data.gfx_fd);
-		gen = intel_gen(data.devid);
 
 		kmstest_set_vt_graphics_mode();
 
@@ -558,16 +569,12 @@ igt_main
 		igt_subtest_f("%s-rotation-%s",
 			      plane_test_str(subtest->plane),
 			      rot_test_str(subtest->rot)) {
-			igt_require(!(subtest->rot &
-				    (IGT_ROTATION_90 | IGT_ROTATION_270)) ||
-				    gen >= 9);
 			data.rotation = subtest->rot;
 			test_plane_rotation(&data, subtest->plane, false);
 		}
 	}
 
 	igt_subtest_f("sprite-rotation-90-pos-100-0") {
-		igt_require(gen >= 9);
 		data.rotation = IGT_ROTATION_90;
 		data.pos_x = 100,
 		data.pos_y = 0;
@@ -577,7 +584,6 @@ igt_main
 	data.pos_y = 0;
 
 	igt_subtest_f("bad-pixel-format") {
-		igt_require(gen >= 9);
 		data.rotation = IGT_ROTATION_90;
 		data.override_fmt = DRM_FORMAT_RGB565;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY, true);
@@ -585,7 +591,6 @@ igt_main
 	data.override_fmt = 0;
 
 	igt_subtest_f("bad-tiling") {
-		igt_require(gen >= 9);
 		data.rotation = IGT_ROTATION_90;
 		data.override_tiling = LOCAL_I915_FORMAT_MOD_X_TILED;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY, true);
@@ -596,9 +601,6 @@ igt_main
 		igt_subtest_f("primary-%s-reflect-x-%s",
 			      tiling_test_str(reflect_x->tiling),
 			      rot_test_str(reflect_x->rot)) {
-			igt_require(gen >= 10 ||
-				    (IS_CHERRYVIEW(data.devid) && reflect_x->rot == IGT_ROTATION_0
-				     && reflect_x->tiling == LOCAL_I915_FORMAT_MOD_X_TILED));
 			data.rotation = (IGT_REFLECT_X | reflect_x->rot);
 			data.override_tiling = reflect_x->tiling;
 			test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY, false);
@@ -613,7 +615,6 @@ igt_main
 		enum pipe pipe;
 		igt_output_t *output;
 
-		igt_require(gen >= 9);
 		igt_display_require_output(&data.display);
 
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  parent reply	other threads:[~2018-03-12 11:03 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-09 21:45 [igt-dev] [PATCH i-g-t v2] tests/kms_rotation_crc: Remove hardcoding of platforms in igt_require() Radhakrishna Sripada
2018-03-09 23:29 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_rotation_crc: Remove hardcoding of platforms in igt_require() (rev2) Patchwork
2018-03-10  7:02 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2018-03-12 11:03 ` Maarten Lankhorst [this message]
2018-03-12 14:23   ` [igt-dev] [PATCH i-g-t v2] tests/kms_rotation_crc: Remove hardcoding of platforms in igt_require() Ville Syrjälä
2018-03-12 15:09     ` Maarten Lankhorst
2018-03-12 15:22       ` [Intel-gfx] " Ville Syrjälä

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=bcd3dbda-52db-eee0-8d33-0294f92c4741@linux.intel.com \
    --to=maarten.lankhorst@linux.intel.com \
    --cc=anusha.srivatsa@intel.com \
    --cc=daniel.vetter@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=manasi.d.navare@intel.com \
    --cc=radhakrishna.sripada@intel.com \
    --cc=rodrigo.vivi@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox