All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
@ 2018-03-22 22:10 ` Radhakrishna Sripada
  0 siblings, 0 replies; 18+ messages in thread
From: Radhakrishna Sripada @ 2018-03-22 22:10 UTC (permalink / raw)
  To: igt-dev; +Cc: intel-gfx, Rodrigo Vivi, Daniel Vetter

From: Anusha Srivatsa <anusha.srivatsa@intel.com>

Cleanup the testcases by moving the platform checks to a single function.

The earlier version of the path is posted here [1]

v2: Make use of the property enums to get the supported rotations
v3: Move hardcodings to a single function(Ville)

[1]: https://patchwork.freedesktop.org/patch/209647/

Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.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>
---
 tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 0cd5c6e52b57..60fb9012e14e 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -43,6 +43,7 @@ typedef struct {
 	uint32_t override_fmt;
 	uint64_t override_tiling;
 	int devid;
+	int gen;
 } data_t;
 
 typedef struct {
@@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
 	igt_assert(drmHandleEvent(fd, &evctx) == 0);
 }
 
+static void igt_check_rotation(data_t *data)
+{
+	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
+		igt_require(data->gen >= 9);
+	else if (data->rotation & IGT_REFLECT_X)
+		igt_require(data->gen >= 10 ||
+			    (IS_CHERRYVIEW(data->devid) && (data->rotation & IGT_ROTATION_0)));
+	else if (data->rotation & IGT_ROTATION_180)
+		igt_require(data->gen >= 4);
+}
+
 static void test_single_case(data_t *data, enum pipe pipe,
 			     igt_output_t *output, igt_plane_t *plane,
 			     enum rectangle_type rect,
@@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 
 	igt_display_require_output(display);
 
+	igt_check_rotation(data);
+
 	for_each_pipe_with_valid_output(display, pipe, output) {
 		igt_plane_t *plane;
 		int i, j;
 
-		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
-			continue;
-
 		igt_output_set_pipe(output, pipe);
 
 		plane = igt_output_get_plane_type(output, plane_type);
@@ -538,14 +549,13 @@ 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);
+		data.gen = intel_gen(data.devid);
 
 		kmstest_set_vt_graphics_mode();
 
@@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
 		enum pipe pipe;
 		igt_output_t *output;
 
-		igt_require(gen >= 9);
+		igt_require(data.gen >= 9);
 		igt_display_require_output(&data.display);
 
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-- 
2.9.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Intel-gfx] [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
@ 2018-03-22 22:10 ` Radhakrishna Sripada
  0 siblings, 0 replies; 18+ messages in thread
From: Radhakrishna Sripada @ 2018-03-22 22:10 UTC (permalink / raw)
  To: igt-dev; +Cc: intel-gfx, Rodrigo Vivi, Daniel Vetter

From: Anusha Srivatsa <anusha.srivatsa@intel.com>

Cleanup the testcases by moving the platform checks to a single function.

The earlier version of the path is posted here [1]

v2: Make use of the property enums to get the supported rotations
v3: Move hardcodings to a single function(Ville)

[1]: https://patchwork.freedesktop.org/patch/209647/

Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.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>
---
 tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 0cd5c6e52b57..60fb9012e14e 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -43,6 +43,7 @@ typedef struct {
 	uint32_t override_fmt;
 	uint64_t override_tiling;
 	int devid;
+	int gen;
 } data_t;
 
 typedef struct {
@@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
 	igt_assert(drmHandleEvent(fd, &evctx) == 0);
 }
 
+static void igt_check_rotation(data_t *data)
+{
+	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
+		igt_require(data->gen >= 9);
+	else if (data->rotation & IGT_REFLECT_X)
+		igt_require(data->gen >= 10 ||
+			    (IS_CHERRYVIEW(data->devid) && (data->rotation & IGT_ROTATION_0)));
+	else if (data->rotation & IGT_ROTATION_180)
+		igt_require(data->gen >= 4);
+}
+
 static void test_single_case(data_t *data, enum pipe pipe,
 			     igt_output_t *output, igt_plane_t *plane,
 			     enum rectangle_type rect,
@@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 
 	igt_display_require_output(display);
 
+	igt_check_rotation(data);
+
 	for_each_pipe_with_valid_output(display, pipe, output) {
 		igt_plane_t *plane;
 		int i, j;
 
-		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
-			continue;
-
 		igt_output_set_pipe(output, pipe);
 
 		plane = igt_output_get_plane_type(output, plane_type);
@@ -538,14 +549,13 @@ 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);
+		data.gen = intel_gen(data.devid);
 
 		kmstest_set_vt_graphics_mode();
 
@@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
 		enum pipe pipe;
 		igt_output_t *output;
 
-		igt_require(gen >= 9);
+		igt_require(data.gen >= 9);
 		igt_display_require_output(&data.display);
 
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-- 
2.9.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
  2018-03-22 22:10 ` [Intel-gfx] " Radhakrishna Sripada
  (?)
@ 2018-03-23 19:47 ` Patchwork
  -1 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2018-03-23 19:47 UTC (permalink / raw)
  To: Radhakrishna Sripada; +Cc: igt-dev

== Series Details ==

Series: tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
URL   : https://patchwork.freedesktop.org/series/40553/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
c2ee90774496a9772f17a7a359d7a670bf7d6b85 meson: Chamelium depends on GSL

with latest DRM-Tip kernel build CI_DRM_3976
101f8aec6229 drm-tip: 2018y-03m-23d-17h-52m-01s UTC integration manifest

No testlist changes.

---- Known issues:

Test debugfs_test:
        Subgroup read_all_entries:
                incomplete -> PASS       (fi-snb-2520m) fdo#103713 +1
Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-c:
                pass       -> DMESG-FAIL (fi-cnl-y3) fdo#104951
Test prime_vgem:
        Subgroup basic-fence-flip:
                fail       -> PASS       (fi-ilk-650) fdo#104008

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fdo#104951 https://bugs.freedesktop.org/show_bug.cgi?id=104951
fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008

fi-bdw-5557u     total:285  pass:264  dwarn:0   dfail:0   fail:0   skip:21  time:433s
fi-bdw-gvtdvm    total:285  pass:261  dwarn:0   dfail:0   fail:0   skip:24  time:443s
fi-blb-e6850     total:285  pass:220  dwarn:1   dfail:0   fail:0   skip:64  time:381s
fi-bsw-n3050     total:285  pass:239  dwarn:0   dfail:0   fail:0   skip:46  time:540s
fi-bwr-2160      total:285  pass:180  dwarn:0   dfail:0   fail:0   skip:105 time:299s
fi-bxt-dsi       total:285  pass:255  dwarn:0   dfail:0   fail:0   skip:30  time:520s
fi-bxt-j4205     total:285  pass:256  dwarn:0   dfail:0   fail:0   skip:29  time:519s
fi-byt-j1900     total:285  pass:250  dwarn:0   dfail:0   fail:0   skip:35  time:522s
fi-byt-n2820     total:285  pass:246  dwarn:0   dfail:0   fail:0   skip:39  time:509s
fi-cfl-8700k     total:285  pass:257  dwarn:0   dfail:0   fail:0   skip:28  time:416s
fi-cfl-u         total:285  pass:259  dwarn:0   dfail:0   fail:0   skip:26  time:512s
fi-cnl-y3        total:285  pass:258  dwarn:0   dfail:1   fail:0   skip:26  time:583s
fi-elk-e7500     total:285  pass:225  dwarn:1   dfail:0   fail:0   skip:59  time:423s
fi-gdg-551       total:285  pass:177  dwarn:0   dfail:0   fail:0   skip:108 time:318s
fi-glk-1         total:285  pass:257  dwarn:0   dfail:0   fail:0   skip:28  time:540s
fi-hsw-4770      total:285  pass:258  dwarn:0   dfail:0   fail:0   skip:27  time:405s
fi-ilk-650       total:285  pass:225  dwarn:0   dfail:0   fail:0   skip:60  time:420s
fi-ivb-3520m     total:285  pass:256  dwarn:0   dfail:0   fail:0   skip:29  time:473s
fi-ivb-3770      total:285  pass:252  dwarn:0   dfail:0   fail:0   skip:33  time:429s
fi-kbl-7500u     total:285  pass:260  dwarn:1   dfail:0   fail:0   skip:24  time:475s
fi-kbl-7567u     total:285  pass:265  dwarn:0   dfail:0   fail:0   skip:20  time:473s
fi-kbl-r         total:285  pass:258  dwarn:0   dfail:0   fail:0   skip:27  time:515s
fi-pnv-d510      total:285  pass:219  dwarn:1   dfail:0   fail:0   skip:65  time:656s
fi-skl-6260u     total:285  pass:265  dwarn:0   dfail:0   fail:0   skip:20  time:445s
fi-skl-6600u     total:285  pass:258  dwarn:0   dfail:0   fail:0   skip:27  time:537s
fi-skl-6700k2    total:285  pass:261  dwarn:0   dfail:0   fail:0   skip:24  time:505s
fi-skl-6770hq    total:285  pass:265  dwarn:0   dfail:0   fail:0   skip:20  time:497s
fi-skl-guc       total:285  pass:257  dwarn:0   dfail:0   fail:0   skip:28  time:437s
fi-skl-gvtdvm    total:285  pass:262  dwarn:0   dfail:0   fail:0   skip:23  time:448s
fi-snb-2520m     total:242  pass:208  dwarn:0   dfail:0   fail:0   skip:33 
fi-snb-2600      total:285  pass:245  dwarn:0   dfail:0   fail:0   skip:40  time:407s
Blacklisted hosts:
fi-cfl-s3        total:285  pass:259  dwarn:0   dfail:0   fail:0   skip:26  time:568s
fi-cnl-psr       total:224  pass:198  dwarn:0   dfail:0   fail:1   skip:24 
fi-glk-j4005     total:285  pass:256  dwarn:0   dfail:0   fail:0   skip:29  time:488s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1184/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
  2018-03-22 22:10 ` [Intel-gfx] " Radhakrishna Sripada
  (?)
  (?)
@ 2018-03-24  0:29 ` Patchwork
  -1 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2018-03-24  0:29 UTC (permalink / raw)
  To: Radhakrishna Sripada; +Cc: igt-dev

== Series Details ==

Series: tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
URL   : https://patchwork.freedesktop.org/series/40553/
State : success

== Summary ==

---- Known issues:

Test kms_flip:
        Subgroup 2x-plain-flip-fb-recreate-interruptible:
                fail       -> PASS       (shard-hsw) fdo#100368 +1
Test kms_frontbuffer_tracking:
        Subgroup fbc-suspend:
                pass       -> INCOMPLETE (shard-hsw) fdo#103540 +1
Test kms_rotation_crc:
        Subgroup primary-rotation-180:
                pass       -> FAIL       (shard-snb) fdo#103925
Test perf:
        Subgroup blocking:
                pass       -> FAIL       (shard-hsw) fdo#102252

fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252

shard-apl        total:3484 pass:1820 dwarn:1   dfail:0   fail:11  skip:1651 time:12928s
shard-hsw        total:3411 pass:1735 dwarn:1   dfail:0   fail:2   skip:1670 time:10943s
shard-snb        total:3484 pass:1362 dwarn:1   dfail:0   fail:4   skip:2117 time:6968s
Blacklisted hosts:
shard-kbl        total:3484 pass:1944 dwarn:1   dfail:0   fail:14  skip:1525 time:9852s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1184/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
  2018-03-22 22:10 ` [Intel-gfx] " Radhakrishna Sripada
@ 2018-03-28  8:26   ` Mika Kahola
  -1 siblings, 0 replies; 18+ messages in thread
From: Mika Kahola @ 2018-03-28  8:26 UTC (permalink / raw)
  To: Radhakrishna Sripada, igt-dev; +Cc: intel-gfx, Rodrigo Vivi, Daniel Vetter

On Thu, 2018-03-22 at 15:10 -0700, Radhakrishna Sripada wrote:
> From: Anusha Srivatsa <anusha.srivatsa@intel.com>
> 
> Cleanup the testcases by moving the platform checks to a single
> function.
> 
> The earlier version of the path is posted here [1]
> 
> v2: Make use of the property enums to get the supported rotations
> v3: Move hardcodings to a single function(Ville)
> 
> [1]: https://patchwork.freedesktop.org/patch/209647/
> 
> Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.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>

Tested-by: Mika Kahola <mika.kahola@intel.com>

> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> ---
>  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
>  1 file changed, 16 insertions(+), 15 deletions(-)
> 
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 0cd5c6e52b57..60fb9012e14e 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -43,6 +43,7 @@ typedef struct {
>  	uint32_t override_fmt;
>  	uint64_t override_tiling;
>  	int devid;
> +	int gen;
>  } data_t;
>  
>  typedef struct {
> @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
>  	igt_assert(drmHandleEvent(fd, &evctx) == 0);
>  }
>  
> +static void igt_check_rotation(data_t *data)
> +{
> +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> +		igt_require(data->gen >= 9);
> +	else if (data->rotation & IGT_REFLECT_X)
> +		igt_require(data->gen >= 10 ||
> +			    (IS_CHERRYVIEW(data->devid) && (data-
> >rotation & IGT_ROTATION_0)));
> +	else if (data->rotation & IGT_ROTATION_180)
> +		igt_require(data->gen >= 4);
> +}
> +
>  static void test_single_case(data_t *data, enum pipe pipe,
>  			     igt_output_t *output, igt_plane_t
> *plane,
>  			     enum rectangle_type rect,
> @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data,
> int plane_type, bool test_bad_form
>  
>  	igt_display_require_output(display);
>  
> +	igt_check_rotation(data);
> +
>  	for_each_pipe_with_valid_output(display, pipe, output) {
>  		igt_plane_t *plane;
>  		int i, j;
>  
> -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> -			continue;
> -
>  		igt_output_set_pipe(output, pipe);
>  
>  		plane = igt_output_get_plane_type(output,
> plane_type);
> @@ -538,14 +549,13 @@ 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);
> +		data.gen = intel_gen(data.devid);
>  
>  		kmstest_set_vt_graphics_mode();
>  
> @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
>  		enum pipe pipe;
>  		igt_output_t *output;
>  
> -		igt_require(gen >= 9);
> +		igt_require(data.gen >= 9);
>  		igt_display_require_output(&data.display);
>  
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output) {
-- 
Mika Kahola - Intel OTC

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
@ 2018-03-28  8:26   ` Mika Kahola
  0 siblings, 0 replies; 18+ messages in thread
From: Mika Kahola @ 2018-03-28  8:26 UTC (permalink / raw)
  To: Radhakrishna Sripada, igt-dev
  Cc: Anusha Srivatsa, intel-gfx, Manasi Navare, Rodrigo Vivi, Daniel Vetter

On Thu, 2018-03-22 at 15:10 -0700, Radhakrishna Sripada wrote:
> From: Anusha Srivatsa <anusha.srivatsa@intel.com>
> 
> Cleanup the testcases by moving the platform checks to a single
> function.
> 
> The earlier version of the path is posted here [1]
> 
> v2: Make use of the property enums to get the supported rotations
> v3: Move hardcodings to a single function(Ville)
> 
> [1]: https://patchwork.freedesktop.org/patch/209647/
> 
> Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.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>

Tested-by: Mika Kahola <mika.kahola@intel.com>

> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> ---
>  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
>  1 file changed, 16 insertions(+), 15 deletions(-)
> 
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 0cd5c6e52b57..60fb9012e14e 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -43,6 +43,7 @@ typedef struct {
>  	uint32_t override_fmt;
>  	uint64_t override_tiling;
>  	int devid;
> +	int gen;
>  } data_t;
>  
>  typedef struct {
> @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
>  	igt_assert(drmHandleEvent(fd, &evctx) == 0);
>  }
>  
> +static void igt_check_rotation(data_t *data)
> +{
> +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> +		igt_require(data->gen >= 9);
> +	else if (data->rotation & IGT_REFLECT_X)
> +		igt_require(data->gen >= 10 ||
> +			    (IS_CHERRYVIEW(data->devid) && (data-
> >rotation & IGT_ROTATION_0)));
> +	else if (data->rotation & IGT_ROTATION_180)
> +		igt_require(data->gen >= 4);
> +}
> +
>  static void test_single_case(data_t *data, enum pipe pipe,
>  			     igt_output_t *output, igt_plane_t
> *plane,
>  			     enum rectangle_type rect,
> @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data,
> int plane_type, bool test_bad_form
>  
>  	igt_display_require_output(display);
>  
> +	igt_check_rotation(data);
> +
>  	for_each_pipe_with_valid_output(display, pipe, output) {
>  		igt_plane_t *plane;
>  		int i, j;
>  
> -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> -			continue;
> -
>  		igt_output_set_pipe(output, pipe);
>  
>  		plane = igt_output_get_plane_type(output,
> plane_type);
> @@ -538,14 +549,13 @@ 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);
> +		data.gen = intel_gen(data.devid);
>  
>  		kmstest_set_vt_graphics_mode();
>  
> @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
>  		enum pipe pipe;
>  		igt_output_t *output;
>  
> -		igt_require(gen >= 9);
> +		igt_require(data.gen >= 9);
>  		igt_display_require_output(&data.display);
>  
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output) {
-- 
Mika Kahola - Intel OTC

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
  2018-03-22 22:10 ` [Intel-gfx] " Radhakrishna Sripada
@ 2018-03-28  8:29   ` Maarten Lankhorst
  -1 siblings, 0 replies; 18+ messages in thread
From: Maarten Lankhorst @ 2018-03-28  8:29 UTC (permalink / raw)
  To: Radhakrishna Sripada, igt-dev; +Cc: intel-gfx, Rodrigo Vivi, Daniel Vetter

Op 22-03-18 om 23:10 schreef Radhakrishna Sripada:
> From: Anusha Srivatsa <anusha.srivatsa@intel.com>
>
> Cleanup the testcases by moving the platform checks to a single function.
>
> The earlier version of the path is posted here [1]
>
> v2: Make use of the property enums to get the supported rotations
> v3: Move hardcodings to a single function(Ville)
>
> [1]: https://patchwork.freedesktop.org/patch/209647/
>
> Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.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>
> ---
>  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
>  1 file changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 0cd5c6e52b57..60fb9012e14e 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -43,6 +43,7 @@ typedef struct {
>  	uint32_t override_fmt;
>  	uint64_t override_tiling;
>  	int devid;
> +	int gen;
>  } data_t;
>  
>  typedef struct {
> @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
>  	igt_assert(drmHandleEvent(fd, &evctx) == 0);
>  }
>  
> +static void igt_check_rotation(data_t *data)
> +{
> +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> +		igt_require(data->gen >= 9);
> +	else if (data->rotation & IGT_REFLECT_X)
> +		igt_require(data->gen >= 10 ||
> +			    (IS_CHERRYVIEW(data->devid) && (data->rotation & IGT_ROTATION_0)));
> +	else if (data->rotation & IGT_ROTATION_180)
> +		igt_require(data->gen >= 4);
> +}
This still won't work as intended on CHV as it only has reflection on PIPE_B, for X tiled fb's.


>  static void test_single_case(data_t *data, enum pipe pipe,
>  			     igt_output_t *output, igt_plane_t *plane,
>  			     enum rectangle_type rect,
> @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
>  
>  	igt_display_require_output(display);
>  
> +	igt_check_rotation(data);
> +
>  	for_each_pipe_with_valid_output(display, pipe, output) {
>  		igt_plane_t *plane;
>  		int i, j;
>  
> -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> -			continue;
> -
>  		igt_output_set_pipe(output, pipe);
>  
>  		plane = igt_output_get_plane_type(output, plane_type);
> @@ -538,14 +549,13 @@ 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);
> +		data.gen = intel_gen(data.devid);
>  
>  		kmstest_set_vt_graphics_mode();
>  
> @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
>  		enum pipe pipe;
>  		igt_output_t *output;
>  
> -		igt_require(gen >= 9);
> +		igt_require(data.gen >= 9);
>  		igt_display_require_output(&data.display);
>  
>  		for_each_pipe_with_valid_output(&data.display, pipe, output) {


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
@ 2018-03-28  8:29   ` Maarten Lankhorst
  0 siblings, 0 replies; 18+ messages in thread
From: Maarten Lankhorst @ 2018-03-28  8:29 UTC (permalink / raw)
  To: Radhakrishna Sripada, igt-dev
  Cc: Anusha Srivatsa, intel-gfx, Manasi Navare, Rodrigo Vivi, Daniel Vetter

Op 22-03-18 om 23:10 schreef Radhakrishna Sripada:
> From: Anusha Srivatsa <anusha.srivatsa@intel.com>
>
> Cleanup the testcases by moving the platform checks to a single function.
>
> The earlier version of the path is posted here [1]
>
> v2: Make use of the property enums to get the supported rotations
> v3: Move hardcodings to a single function(Ville)
>
> [1]: https://patchwork.freedesktop.org/patch/209647/
>
> Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.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>
> ---
>  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
>  1 file changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 0cd5c6e52b57..60fb9012e14e 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -43,6 +43,7 @@ typedef struct {
>  	uint32_t override_fmt;
>  	uint64_t override_tiling;
>  	int devid;
> +	int gen;
>  } data_t;
>  
>  typedef struct {
> @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
>  	igt_assert(drmHandleEvent(fd, &evctx) == 0);
>  }
>  
> +static void igt_check_rotation(data_t *data)
> +{
> +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> +		igt_require(data->gen >= 9);
> +	else if (data->rotation & IGT_REFLECT_X)
> +		igt_require(data->gen >= 10 ||
> +			    (IS_CHERRYVIEW(data->devid) && (data->rotation & IGT_ROTATION_0)));
> +	else if (data->rotation & IGT_ROTATION_180)
> +		igt_require(data->gen >= 4);
> +}
This still won't work as intended on CHV as it only has reflection on PIPE_B, for X tiled fb's.


>  static void test_single_case(data_t *data, enum pipe pipe,
>  			     igt_output_t *output, igt_plane_t *plane,
>  			     enum rectangle_type rect,
> @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
>  
>  	igt_display_require_output(display);
>  
> +	igt_check_rotation(data);
> +
>  	for_each_pipe_with_valid_output(display, pipe, output) {
>  		igt_plane_t *plane;
>  		int i, j;
>  
> -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> -			continue;
> -
>  		igt_output_set_pipe(output, pipe);
>  
>  		plane = igt_output_get_plane_type(output, plane_type);
> @@ -538,14 +549,13 @@ 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);
> +		data.gen = intel_gen(data.devid);
>  
>  		kmstest_set_vt_graphics_mode();
>  
> @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
>  		enum pipe pipe;
>  		igt_output_t *output;
>  
> -		igt_require(gen >= 9);
> +		igt_require(data.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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
  2018-03-28  8:29   ` [igt-dev] " Maarten Lankhorst
@ 2018-03-28 10:35     ` Ville Syrjälä
  -1 siblings, 0 replies; 18+ messages in thread
From: Ville Syrjälä @ 2018-03-28 10:35 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx, igt-dev, Rodrigo Vivi, Daniel Vetter

On Wed, Mar 28, 2018 at 10:29:15AM +0200, Maarten Lankhorst wrote:
> Op 22-03-18 om 23:10 schreef Radhakrishna Sripada:
> > From: Anusha Srivatsa <anusha.srivatsa@intel.com>
> >
> > Cleanup the testcases by moving the platform checks to a single function.
> >
> > The earlier version of the path is posted here [1]
> >
> > v2: Make use of the property enums to get the supported rotations
> > v3: Move hardcodings to a single function(Ville)
> >
> > [1]: https://patchwork.freedesktop.org/patch/209647/
> >
> > Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > Cc: Ville Syrjälä <ville.syrjala@linux.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>
> > ---
> >  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
> >  1 file changed, 16 insertions(+), 15 deletions(-)
> >
> > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> > index 0cd5c6e52b57..60fb9012e14e 100644
> > --- a/tests/kms_rotation_crc.c
> > +++ b/tests/kms_rotation_crc.c
> > @@ -43,6 +43,7 @@ typedef struct {
> >  	uint32_t override_fmt;
> >  	uint64_t override_tiling;
> >  	int devid;
> > +	int gen;
> >  } data_t;
> >  
> >  typedef struct {
> > @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
> >  	igt_assert(drmHandleEvent(fd, &evctx) == 0);
> >  }
> >  
> > +static void igt_check_rotation(data_t *data)
> > +{
> > +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> > +		igt_require(data->gen >= 9);
> > +	else if (data->rotation & IGT_REFLECT_X)
> > +		igt_require(data->gen >= 10 ||
> > +			    (IS_CHERRYVIEW(data->devid) && (data->rotation & IGT_ROTATION_0)));
> > +	else if (data->rotation & IGT_ROTATION_180)
> > +		igt_require(data->gen >= 4);
> > +}
> This still won't work as intended on CHV as it only has reflection on PIPE_B, for X tiled fb's.

s/X tiled//

> 
> 
> >  static void test_single_case(data_t *data, enum pipe pipe,
> >  			     igt_output_t *output, igt_plane_t *plane,
> >  			     enum rectangle_type rect,
> > @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
> >  
> >  	igt_display_require_output(display);
> >  
> > +	igt_check_rotation(data);
> > +
> >  	for_each_pipe_with_valid_output(display, pipe, output) {
> >  		igt_plane_t *plane;
> >  		int i, j;
> >  
> > -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> > -			continue;
> > -
> >  		igt_output_set_pipe(output, pipe);
> >  
> >  		plane = igt_output_get_plane_type(output, plane_type);
> > @@ -538,14 +549,13 @@ 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);
> > +		data.gen = intel_gen(data.devid);
> >  
> >  		kmstest_set_vt_graphics_mode();
> >  
> > @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
> >  		enum pipe pipe;
> >  		igt_output_t *output;
> >  
> > -		igt_require(gen >= 9);
> > +		igt_require(data.gen >= 9);
> >  		igt_display_require_output(&data.display);
> >  
> >  		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> 

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
@ 2018-03-28 10:35     ` Ville Syrjälä
  0 siblings, 0 replies; 18+ messages in thread
From: Ville Syrjälä @ 2018-03-28 10:35 UTC (permalink / raw)
  To: Maarten Lankhorst
  Cc: Manasi Navare, Anusha Srivatsa, intel-gfx, igt-dev, Rodrigo Vivi,
	Daniel Vetter

On Wed, Mar 28, 2018 at 10:29:15AM +0200, Maarten Lankhorst wrote:
> Op 22-03-18 om 23:10 schreef Radhakrishna Sripada:
> > From: Anusha Srivatsa <anusha.srivatsa@intel.com>
> >
> > Cleanup the testcases by moving the platform checks to a single function.
> >
> > The earlier version of the path is posted here [1]
> >
> > v2: Make use of the property enums to get the supported rotations
> > v3: Move hardcodings to a single function(Ville)
> >
> > [1]: https://patchwork.freedesktop.org/patch/209647/
> >
> > Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > Cc: Ville Syrjälä <ville.syrjala@linux.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>
> > ---
> >  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
> >  1 file changed, 16 insertions(+), 15 deletions(-)
> >
> > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> > index 0cd5c6e52b57..60fb9012e14e 100644
> > --- a/tests/kms_rotation_crc.c
> > +++ b/tests/kms_rotation_crc.c
> > @@ -43,6 +43,7 @@ typedef struct {
> >  	uint32_t override_fmt;
> >  	uint64_t override_tiling;
> >  	int devid;
> > +	int gen;
> >  } data_t;
> >  
> >  typedef struct {
> > @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
> >  	igt_assert(drmHandleEvent(fd, &evctx) == 0);
> >  }
> >  
> > +static void igt_check_rotation(data_t *data)
> > +{
> > +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> > +		igt_require(data->gen >= 9);
> > +	else if (data->rotation & IGT_REFLECT_X)
> > +		igt_require(data->gen >= 10 ||
> > +			    (IS_CHERRYVIEW(data->devid) && (data->rotation & IGT_ROTATION_0)));
> > +	else if (data->rotation & IGT_ROTATION_180)
> > +		igt_require(data->gen >= 4);
> > +}
> This still won't work as intended on CHV as it only has reflection on PIPE_B, for X tiled fb's.

s/X tiled//

> 
> 
> >  static void test_single_case(data_t *data, enum pipe pipe,
> >  			     igt_output_t *output, igt_plane_t *plane,
> >  			     enum rectangle_type rect,
> > @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
> >  
> >  	igt_display_require_output(display);
> >  
> > +	igt_check_rotation(data);
> > +
> >  	for_each_pipe_with_valid_output(display, pipe, output) {
> >  		igt_plane_t *plane;
> >  		int i, j;
> >  
> > -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> > -			continue;
> > -
> >  		igt_output_set_pipe(output, pipe);
> >  
> >  		plane = igt_output_get_plane_type(output, plane_type);
> > @@ -538,14 +549,13 @@ 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);
> > +		data.gen = intel_gen(data.devid);
> >  
> >  		kmstest_set_vt_graphics_mode();
> >  
> > @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
> >  		enum pipe pipe;
> >  		igt_output_t *output;
> >  
> > -		igt_require(gen >= 9);
> > +		igt_require(data.gen >= 9);
> >  		igt_display_require_output(&data.display);
> >  
> >  		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> 

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
  2018-03-28  8:26   ` [igt-dev] " Mika Kahola
@ 2018-03-28 17:18     ` Srivatsa, Anusha
  -1 siblings, 0 replies; 18+ messages in thread
From: Srivatsa, Anusha @ 2018-03-28 17:18 UTC (permalink / raw)
  To: Kahola, Mika, Sripada, Radhakrishna, igt-dev
  Cc: intel-gfx, Vivi, Rodrigo, Vetter, Daniel

The rework looks good to me.

Thanks Mika for testing this.

>-----Original Message-----
>From: Kahola, Mika
>Sent: Wednesday, March 28, 2018 1:26 AM
>To: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; igt-
>dev@lists.freedesktop.org
>Cc: intel-gfx@lists.freedesktop.org; Srivatsa, Anusha
><anusha.srivatsa@intel.com>; Ville Syrjälä <ville.syrjala@linux.intel.com>; Vetter,
>Daniel <daniel.vetter@intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>;
>Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Navare, Manasi D
><manasi.d.navare@intel.com>
>Subject: Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to
>one place for non exhaust fence cases
>
>On Thu, 2018-03-22 at 15:10 -0700, Radhakrishna Sripada wrote:
>> From: Anusha Srivatsa <anusha.srivatsa@intel.com>
>>
>> Cleanup the testcases by moving the platform checks to a single
>> function.
>>
>> The earlier version of the path is posted here [1]
>>
>> v2: Make use of the property enums to get the supported rotations
>> v3: Move hardcodings to a single function(Ville)
>>
>> [1]: https://patchwork.freedesktop.org/patch/209647/
>>
>> Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
>> Cc: Ville Syrjälä <ville.syrjala@linux.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>
>
>Tested-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Anusha Srivatsa <Anusha.srivatsa@intel.com>
>> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
>> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
>> ---
>>  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
>>  1 file changed, 16 insertions(+), 15 deletions(-)
>>
>> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c index
>> 0cd5c6e52b57..60fb9012e14e 100644
>> --- a/tests/kms_rotation_crc.c
>> +++ b/tests/kms_rotation_crc.c
>> @@ -43,6 +43,7 @@ typedef struct {
>>  	uint32_t override_fmt;
>>  	uint64_t override_tiling;
>>  	int devid;
>> +	int gen;
>>  } data_t;
>>
>>  typedef struct {
>> @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
>>  	igt_assert(drmHandleEvent(fd, &evctx) == 0);
>>  }
>>
>> +static void igt_check_rotation(data_t *data) {
>> +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
>> +		igt_require(data->gen >= 9);
>> +	else if (data->rotation & IGT_REFLECT_X)
>> +		igt_require(data->gen >= 10 ||
>> +			    (IS_CHERRYVIEW(data->devid) && (data-
>> >rotation & IGT_ROTATION_0)));
>> +	else if (data->rotation & IGT_ROTATION_180)
>> +		igt_require(data->gen >= 4);
>> +}
>> +
>>  static void test_single_case(data_t *data, enum pipe pipe,
>>  			     igt_output_t *output, igt_plane_t *plane,
>>  			     enum rectangle_type rect,
>> @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data,
>> int plane_type, bool test_bad_form
>>
>>  	igt_display_require_output(display);
>>
>> +	igt_check_rotation(data);
>> +
>>  	for_each_pipe_with_valid_output(display, pipe, output) {
>>  		igt_plane_t *plane;
>>  		int i, j;
>>
>> -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
>> -			continue;
>> -
>>  		igt_output_set_pipe(output, pipe);
>>
>>  		plane = igt_output_get_plane_type(output, plane_type); @@ -
>538,14
>> +549,13 @@ 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);
>> +		data.gen = intel_gen(data.devid);
>>
>>  		kmstest_set_vt_graphics_mode();
>>
>> @@ -558,16 +568,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 +583,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
>> +590,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
>> +600,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 +614,7 @@ igt_main
>>  		enum pipe pipe;
>>  		igt_output_t *output;
>>
>> -		igt_require(gen >= 9);
>> +		igt_require(data.gen >= 9);
>>  		igt_display_require_output(&data.display);
>>
>>  		for_each_pipe_with_valid_output(&data.display, pipe,
>> output) {
>--
>Mika Kahola - Intel OTC

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Intel-gfx] [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
@ 2018-03-28 17:18     ` Srivatsa, Anusha
  0 siblings, 0 replies; 18+ messages in thread
From: Srivatsa, Anusha @ 2018-03-28 17:18 UTC (permalink / raw)
  To: Kahola, Mika, Sripada, Radhakrishna, igt-dev
  Cc: intel-gfx, Vivi, Rodrigo, Vetter, Daniel

The rework looks good to me.

Thanks Mika for testing this.

>-----Original Message-----
>From: Kahola, Mika
>Sent: Wednesday, March 28, 2018 1:26 AM
>To: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; igt-
>dev@lists.freedesktop.org
>Cc: intel-gfx@lists.freedesktop.org; Srivatsa, Anusha
><anusha.srivatsa@intel.com>; Ville Syrjälä <ville.syrjala@linux.intel.com>; Vetter,
>Daniel <daniel.vetter@intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>;
>Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Navare, Manasi D
><manasi.d.navare@intel.com>
>Subject: Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to
>one place for non exhaust fence cases
>
>On Thu, 2018-03-22 at 15:10 -0700, Radhakrishna Sripada wrote:
>> From: Anusha Srivatsa <anusha.srivatsa@intel.com>
>>
>> Cleanup the testcases by moving the platform checks to a single
>> function.
>>
>> The earlier version of the path is posted here [1]
>>
>> v2: Make use of the property enums to get the supported rotations
>> v3: Move hardcodings to a single function(Ville)
>>
>> [1]: https://patchwork.freedesktop.org/patch/209647/
>>
>> Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
>> Cc: Ville Syrjälä <ville.syrjala@linux.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>
>
>Tested-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Anusha Srivatsa <Anusha.srivatsa@intel.com>
>> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
>> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
>> ---
>>  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
>>  1 file changed, 16 insertions(+), 15 deletions(-)
>>
>> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c index
>> 0cd5c6e52b57..60fb9012e14e 100644
>> --- a/tests/kms_rotation_crc.c
>> +++ b/tests/kms_rotation_crc.c
>> @@ -43,6 +43,7 @@ typedef struct {
>>  	uint32_t override_fmt;
>>  	uint64_t override_tiling;
>>  	int devid;
>> +	int gen;
>>  } data_t;
>>
>>  typedef struct {
>> @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
>>  	igt_assert(drmHandleEvent(fd, &evctx) == 0);
>>  }
>>
>> +static void igt_check_rotation(data_t *data) {
>> +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
>> +		igt_require(data->gen >= 9);
>> +	else if (data->rotation & IGT_REFLECT_X)
>> +		igt_require(data->gen >= 10 ||
>> +			    (IS_CHERRYVIEW(data->devid) && (data-
>> >rotation & IGT_ROTATION_0)));
>> +	else if (data->rotation & IGT_ROTATION_180)
>> +		igt_require(data->gen >= 4);
>> +}
>> +
>>  static void test_single_case(data_t *data, enum pipe pipe,
>>  			     igt_output_t *output, igt_plane_t *plane,
>>  			     enum rectangle_type rect,
>> @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data,
>> int plane_type, bool test_bad_form
>>
>>  	igt_display_require_output(display);
>>
>> +	igt_check_rotation(data);
>> +
>>  	for_each_pipe_with_valid_output(display, pipe, output) {
>>  		igt_plane_t *plane;
>>  		int i, j;
>>
>> -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
>> -			continue;
>> -
>>  		igt_output_set_pipe(output, pipe);
>>
>>  		plane = igt_output_get_plane_type(output, plane_type); @@ -
>538,14
>> +549,13 @@ 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);
>> +		data.gen = intel_gen(data.devid);
>>
>>  		kmstest_set_vt_graphics_mode();
>>
>> @@ -558,16 +568,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 +583,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
>> +590,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
>> +600,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 +614,7 @@ igt_main
>>  		enum pipe pipe;
>>  		igt_output_t *output;
>>
>> -		igt_require(gen >= 9);
>> +		igt_require(data.gen >= 9);
>>  		igt_display_require_output(&data.display);
>>
>>  		for_each_pipe_with_valid_output(&data.display, pipe,
>> output) {
>--
>Mika Kahola - Intel OTC

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
  2018-03-28 10:35     ` [igt-dev] " Ville Syrjälä
@ 2018-03-29  6:19       ` Sripada, Radhakrishna
  -1 siblings, 0 replies; 18+ messages in thread
From: Sripada, Radhakrishna @ 2018-03-29  6:19 UTC (permalink / raw)
  To: Ville Syrjälä, Maarten Lankhorst
  Cc: intel-gfx, igt-dev, Vivi, Rodrigo, Vetter, Daniel



> -----Original Message-----
> From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> Sent: Wednesday, March 28, 2018 3:36 AM
> To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; igt-
> dev@lists.freedesktop.org; intel-gfx@lists.freedesktop.org; Srivatsa, Anusha
> <anusha.srivatsa@intel.com>; Vetter, Daniel <daniel.vetter@intel.com>; Vivi,
> Rodrigo <rodrigo.vivi@intel.com>; Kahola, Mika <mika.kahola@intel.com>;
> Navare, Manasi D <manasi.d.navare@intel.com>
> Subject: Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks
> to one place for non exhaust fence cases
> 
> On Wed, Mar 28, 2018 at 10:29:15AM +0200, Maarten Lankhorst wrote:
> > Op 22-03-18 om 23:10 schreef Radhakrishna Sripada:
> > > From: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > >
> > > Cleanup the testcases by moving the platform checks to a single function.
> > >
> > > The earlier version of the path is posted here [1]
> > >
> > > v2: Make use of the property enums to get the supported rotations
> > > v3: Move hardcodings to a single function(Ville)
> > >
> > > [1]: https://patchwork.freedesktop.org/patch/209647/
> > >
> > > Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > > Cc: Ville Syrjälä <ville.syrjala@linux.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>
> > > ---
> > >  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
> > >  1 file changed, 16 insertions(+), 15 deletions(-)
> > >
> > > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> > > index 0cd5c6e52b57..60fb9012e14e 100644
> > > --- a/tests/kms_rotation_crc.c
> > > +++ b/tests/kms_rotation_crc.c
> > > @@ -43,6 +43,7 @@ typedef struct {
> > >  	uint32_t override_fmt;
> > >  	uint64_t override_tiling;
> > >  	int devid;
> > > +	int gen;
> > >  } data_t;
> > >
> > >  typedef struct {
> > > @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
> > >  	igt_assert(drmHandleEvent(fd, &evctx) == 0);  }
> > >
> > > +static void igt_check_rotation(data_t *data) {
> > > +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> > > +		igt_require(data->gen >= 9);
> > > +	else if (data->rotation & IGT_REFLECT_X)
> > > +		igt_require(data->gen >= 10 ||
> > > +			    (IS_CHERRYVIEW(data->devid) && (data->rotation
> & IGT_ROTATION_0)));
> > > +	else if (data->rotation & IGT_ROTATION_180)
> > > +		igt_require(data->gen >= 4);
> > > +}
> > This still won't work as intended on CHV as it only has reflection on PIPE_B,
> for X tiled fb's.
> 
> s/X tiled//
So should we hack the reflect subtest to partially run for a single pipe and skip for the other pipes on Chv? If so is there a non-murky way to do it?

Thanks,
Radhakrishna

> 
> >
> >
> > >  static void test_single_case(data_t *data, enum pipe pipe,
> > >  			     igt_output_t *output, igt_plane_t *plane,
> > >  			     enum rectangle_type rect,
> > > @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data,
> > > int plane_type, bool test_bad_form
> > >
> > >  	igt_display_require_output(display);
> > >
> > > +	igt_check_rotation(data);
> > > +
> > >  	for_each_pipe_with_valid_output(display, pipe, output) {
> > >  		igt_plane_t *plane;
> > >  		int i, j;
> > >
> > > -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> > > -			continue;
> > > -
> > >  		igt_output_set_pipe(output, pipe);
> > >
> > >  		plane = igt_output_get_plane_type(output, plane_type); @@
> -538,14
> > > +549,13 @@ 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);
> > > +		data.gen = intel_gen(data.devid);
> > >
> > >  		kmstest_set_vt_graphics_mode();
> > >
> > > @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
> > >  		enum pipe pipe;
> > >  		igt_output_t *output;
> > >
> > > -		igt_require(gen >= 9);
> > > +		igt_require(data.gen >= 9);
> > >  		igt_display_require_output(&data.display);
> > >
> > >  		for_each_pipe_with_valid_output(&data.display, pipe,
> output) {
> >
> 
> --
> Ville Syrjälä
> Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
@ 2018-03-29  6:19       ` Sripada, Radhakrishna
  0 siblings, 0 replies; 18+ messages in thread
From: Sripada, Radhakrishna @ 2018-03-29  6:19 UTC (permalink / raw)
  To: Ville Syrjälä, Maarten Lankhorst
  Cc: Navare, Manasi D, Srivatsa, Anusha, intel-gfx, igt-dev, Vivi,
	Rodrigo, Vetter, Daniel



> -----Original Message-----
> From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> Sent: Wednesday, March 28, 2018 3:36 AM
> To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; igt-
> dev@lists.freedesktop.org; intel-gfx@lists.freedesktop.org; Srivatsa, Anusha
> <anusha.srivatsa@intel.com>; Vetter, Daniel <daniel.vetter@intel.com>; Vivi,
> Rodrigo <rodrigo.vivi@intel.com>; Kahola, Mika <mika.kahola@intel.com>;
> Navare, Manasi D <manasi.d.navare@intel.com>
> Subject: Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks
> to one place for non exhaust fence cases
> 
> On Wed, Mar 28, 2018 at 10:29:15AM +0200, Maarten Lankhorst wrote:
> > Op 22-03-18 om 23:10 schreef Radhakrishna Sripada:
> > > From: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > >
> > > Cleanup the testcases by moving the platform checks to a single function.
> > >
> > > The earlier version of the path is posted here [1]
> > >
> > > v2: Make use of the property enums to get the supported rotations
> > > v3: Move hardcodings to a single function(Ville)
> > >
> > > [1]: https://patchwork.freedesktop.org/patch/209647/
> > >
> > > Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > > Cc: Ville Syrjälä <ville.syrjala@linux.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>
> > > ---
> > >  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
> > >  1 file changed, 16 insertions(+), 15 deletions(-)
> > >
> > > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> > > index 0cd5c6e52b57..60fb9012e14e 100644
> > > --- a/tests/kms_rotation_crc.c
> > > +++ b/tests/kms_rotation_crc.c
> > > @@ -43,6 +43,7 @@ typedef struct {
> > >  	uint32_t override_fmt;
> > >  	uint64_t override_tiling;
> > >  	int devid;
> > > +	int gen;
> > >  } data_t;
> > >
> > >  typedef struct {
> > > @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
> > >  	igt_assert(drmHandleEvent(fd, &evctx) == 0);  }
> > >
> > > +static void igt_check_rotation(data_t *data) {
> > > +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> > > +		igt_require(data->gen >= 9);
> > > +	else if (data->rotation & IGT_REFLECT_X)
> > > +		igt_require(data->gen >= 10 ||
> > > +			    (IS_CHERRYVIEW(data->devid) && (data->rotation
> & IGT_ROTATION_0)));
> > > +	else if (data->rotation & IGT_ROTATION_180)
> > > +		igt_require(data->gen >= 4);
> > > +}
> > This still won't work as intended on CHV as it only has reflection on PIPE_B,
> for X tiled fb's.
> 
> s/X tiled//
So should we hack the reflect subtest to partially run for a single pipe and skip for the other pipes on Chv? If so is there a non-murky way to do it?

Thanks,
Radhakrishna

> 
> >
> >
> > >  static void test_single_case(data_t *data, enum pipe pipe,
> > >  			     igt_output_t *output, igt_plane_t *plane,
> > >  			     enum rectangle_type rect,
> > > @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data,
> > > int plane_type, bool test_bad_form
> > >
> > >  	igt_display_require_output(display);
> > >
> > > +	igt_check_rotation(data);
> > > +
> > >  	for_each_pipe_with_valid_output(display, pipe, output) {
> > >  		igt_plane_t *plane;
> > >  		int i, j;
> > >
> > > -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> > > -			continue;
> > > -
> > >  		igt_output_set_pipe(output, pipe);
> > >
> > >  		plane = igt_output_get_plane_type(output, plane_type); @@
> -538,14
> > > +549,13 @@ 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);
> > > +		data.gen = intel_gen(data.devid);
> > >
> > >  		kmstest_set_vt_graphics_mode();
> > >
> > > @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
> > >  		enum pipe pipe;
> > >  		igt_output_t *output;
> > >
> > > -		igt_require(gen >= 9);
> > > +		igt_require(data.gen >= 9);
> > >  		igt_display_require_output(&data.display);
> > >
> > >  		for_each_pipe_with_valid_output(&data.display, pipe,
> output) {
> >
> 
> --
> Ville Syrjälä
> Intel OTC
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
  2018-03-29  6:19       ` [igt-dev] " Sripada, Radhakrishna
@ 2018-04-06 15:56         ` Ville Syrjälä
  -1 siblings, 0 replies; 18+ messages in thread
From: Ville Syrjälä @ 2018-04-06 15:56 UTC (permalink / raw)
  To: Sripada, Radhakrishna; +Cc: intel-gfx, igt-dev, Vivi, Rodrigo, Vetter, Daniel

On Thu, Mar 29, 2018 at 06:19:40AM +0000, Sripada, Radhakrishna wrote:
> 
> 
> > -----Original Message-----
> > From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> > Sent: Wednesday, March 28, 2018 3:36 AM
> > To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; igt-
> > dev@lists.freedesktop.org; intel-gfx@lists.freedesktop.org; Srivatsa, Anusha
> > <anusha.srivatsa@intel.com>; Vetter, Daniel <daniel.vetter@intel.com>; Vivi,
> > Rodrigo <rodrigo.vivi@intel.com>; Kahola, Mika <mika.kahola@intel.com>;
> > Navare, Manasi D <manasi.d.navare@intel.com>
> > Subject: Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks
> > to one place for non exhaust fence cases
> > 
> > On Wed, Mar 28, 2018 at 10:29:15AM +0200, Maarten Lankhorst wrote:
> > > Op 22-03-18 om 23:10 schreef Radhakrishna Sripada:
> > > > From: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > > >
> > > > Cleanup the testcases by moving the platform checks to a single function.
> > > >
> > > > The earlier version of the path is posted here [1]
> > > >
> > > > v2: Make use of the property enums to get the supported rotations
> > > > v3: Move hardcodings to a single function(Ville)
> > > >
> > > > [1]: https://patchwork.freedesktop.org/patch/209647/
> > > >
> > > > Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > > > Cc: Ville Syrjälä <ville.syrjala@linux.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>
> > > > ---
> > > >  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
> > > >  1 file changed, 16 insertions(+), 15 deletions(-)
> > > >
> > > > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> > > > index 0cd5c6e52b57..60fb9012e14e 100644
> > > > --- a/tests/kms_rotation_crc.c
> > > > +++ b/tests/kms_rotation_crc.c
> > > > @@ -43,6 +43,7 @@ typedef struct {
> > > >  	uint32_t override_fmt;
> > > >  	uint64_t override_tiling;
> > > >  	int devid;
> > > > +	int gen;
> > > >  } data_t;
> > > >
> > > >  typedef struct {
> > > > @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
> > > >  	igt_assert(drmHandleEvent(fd, &evctx) == 0);  }
> > > >
> > > > +static void igt_check_rotation(data_t *data) {
> > > > +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> > > > +		igt_require(data->gen >= 9);
> > > > +	else if (data->rotation & IGT_REFLECT_X)
> > > > +		igt_require(data->gen >= 10 ||
> > > > +			    (IS_CHERRYVIEW(data->devid) && (data->rotation
> > & IGT_ROTATION_0)));
> > > > +	else if (data->rotation & IGT_ROTATION_180)
> > > > +		igt_require(data->gen >= 4);
> > > > +}
> > > This still won't work as intended on CHV as it only has reflection on PIPE_B,
> > for X tiled fb's.
> > 
> > s/X tiled//
> So should we hack the reflect subtest to partially run for a single pipe and skip for the other pipes on Chv? If so is there a non-murky way to do it?

At least skipping for pipe A/C should happen automagically if we ask the
plane what it supports. The pipe B case still needs to be special cased
though.

> 
> Thanks,
> Radhakrishna
> 
> > 
> > >
> > >
> > > >  static void test_single_case(data_t *data, enum pipe pipe,
> > > >  			     igt_output_t *output, igt_plane_t *plane,
> > > >  			     enum rectangle_type rect,
> > > > @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data,
> > > > int plane_type, bool test_bad_form
> > > >
> > > >  	igt_display_require_output(display);
> > > >
> > > > +	igt_check_rotation(data);
> > > > +
> > > >  	for_each_pipe_with_valid_output(display, pipe, output) {
> > > >  		igt_plane_t *plane;
> > > >  		int i, j;
> > > >
> > > > -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> > > > -			continue;
> > > > -
> > > >  		igt_output_set_pipe(output, pipe);
> > > >
> > > >  		plane = igt_output_get_plane_type(output, plane_type); @@
> > -538,14
> > > > +549,13 @@ 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);
> > > > +		data.gen = intel_gen(data.devid);
> > > >
> > > >  		kmstest_set_vt_graphics_mode();
> > > >
> > > > @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
> > > >  		enum pipe pipe;
> > > >  		igt_output_t *output;
> > > >
> > > > -		igt_require(gen >= 9);
> > > > +		igt_require(data.gen >= 9);
> > > >  		igt_display_require_output(&data.display);
> > > >
> > > >  		for_each_pipe_with_valid_output(&data.display, pipe,
> > output) {
> > >
> > 
> > --
> > Ville Syrjälä
> > Intel OTC

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
@ 2018-04-06 15:56         ` Ville Syrjälä
  0 siblings, 0 replies; 18+ messages in thread
From: Ville Syrjälä @ 2018-04-06 15:56 UTC (permalink / raw)
  To: Sripada, Radhakrishna
  Cc: Navare, Manasi D, Srivatsa, Anusha, intel-gfx, igt-dev, Vivi,
	Rodrigo, Vetter, Daniel

On Thu, Mar 29, 2018 at 06:19:40AM +0000, Sripada, Radhakrishna wrote:
> 
> 
> > -----Original Message-----
> > From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> > Sent: Wednesday, March 28, 2018 3:36 AM
> > To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; igt-
> > dev@lists.freedesktop.org; intel-gfx@lists.freedesktop.org; Srivatsa, Anusha
> > <anusha.srivatsa@intel.com>; Vetter, Daniel <daniel.vetter@intel.com>; Vivi,
> > Rodrigo <rodrigo.vivi@intel.com>; Kahola, Mika <mika.kahola@intel.com>;
> > Navare, Manasi D <manasi.d.navare@intel.com>
> > Subject: Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks
> > to one place for non exhaust fence cases
> > 
> > On Wed, Mar 28, 2018 at 10:29:15AM +0200, Maarten Lankhorst wrote:
> > > Op 22-03-18 om 23:10 schreef Radhakrishna Sripada:
> > > > From: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > > >
> > > > Cleanup the testcases by moving the platform checks to a single function.
> > > >
> > > > The earlier version of the path is posted here [1]
> > > >
> > > > v2: Make use of the property enums to get the supported rotations
> > > > v3: Move hardcodings to a single function(Ville)
> > > >
> > > > [1]: https://patchwork.freedesktop.org/patch/209647/
> > > >
> > > > Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > > > Cc: Ville Syrjälä <ville.syrjala@linux.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>
> > > > ---
> > > >  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
> > > >  1 file changed, 16 insertions(+), 15 deletions(-)
> > > >
> > > > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> > > > index 0cd5c6e52b57..60fb9012e14e 100644
> > > > --- a/tests/kms_rotation_crc.c
> > > > +++ b/tests/kms_rotation_crc.c
> > > > @@ -43,6 +43,7 @@ typedef struct {
> > > >  	uint32_t override_fmt;
> > > >  	uint64_t override_tiling;
> > > >  	int devid;
> > > > +	int gen;
> > > >  } data_t;
> > > >
> > > >  typedef struct {
> > > > @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
> > > >  	igt_assert(drmHandleEvent(fd, &evctx) == 0);  }
> > > >
> > > > +static void igt_check_rotation(data_t *data) {
> > > > +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> > > > +		igt_require(data->gen >= 9);
> > > > +	else if (data->rotation & IGT_REFLECT_X)
> > > > +		igt_require(data->gen >= 10 ||
> > > > +			    (IS_CHERRYVIEW(data->devid) && (data->rotation
> > & IGT_ROTATION_0)));
> > > > +	else if (data->rotation & IGT_ROTATION_180)
> > > > +		igt_require(data->gen >= 4);
> > > > +}
> > > This still won't work as intended on CHV as it only has reflection on PIPE_B,
> > for X tiled fb's.
> > 
> > s/X tiled//
> So should we hack the reflect subtest to partially run for a single pipe and skip for the other pipes on Chv? If so is there a non-murky way to do it?

At least skipping for pipe A/C should happen automagically if we ask the
plane what it supports. The pipe B case still needs to be special cased
though.

> 
> Thanks,
> Radhakrishna
> 
> > 
> > >
> > >
> > > >  static void test_single_case(data_t *data, enum pipe pipe,
> > > >  			     igt_output_t *output, igt_plane_t *plane,
> > > >  			     enum rectangle_type rect,
> > > > @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data,
> > > > int plane_type, bool test_bad_form
> > > >
> > > >  	igt_display_require_output(display);
> > > >
> > > > +	igt_check_rotation(data);
> > > > +
> > > >  	for_each_pipe_with_valid_output(display, pipe, output) {
> > > >  		igt_plane_t *plane;
> > > >  		int i, j;
> > > >
> > > > -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> > > > -			continue;
> > > > -
> > > >  		igt_output_set_pipe(output, pipe);
> > > >
> > > >  		plane = igt_output_get_plane_type(output, plane_type); @@
> > -538,14
> > > > +549,13 @@ 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);
> > > > +		data.gen = intel_gen(data.devid);
> > > >
> > > >  		kmstest_set_vt_graphics_mode();
> > > >
> > > > @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
> > > >  		enum pipe pipe;
> > > >  		igt_output_t *output;
> > > >
> > > > -		igt_require(gen >= 9);
> > > > +		igt_require(data.gen >= 9);
> > > >  		igt_display_require_output(&data.display);
> > > >
> > > >  		for_each_pipe_with_valid_output(&data.display, pipe,
> > output) {
> > >
> > 
> > --
> > Ville Syrjälä
> > Intel OTC

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
  2018-04-06 15:56         ` [igt-dev] " Ville Syrjälä
@ 2018-04-12 23:06           ` Radhakrishna Sripada
  -1 siblings, 0 replies; 18+ messages in thread
From: Radhakrishna Sripada @ 2018-04-12 23:06 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx, igt-dev, Vivi, Rodrigo, Vetter, Daniel

On Fri, Apr 06, 2018 at 06:56:22PM +0300, Ville Syrjälä wrote:
> On Thu, Mar 29, 2018 at 06:19:40AM +0000, Sripada, Radhakrishna wrote:
> > 
> > 
> > > -----Original Message-----
> > > From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> > > Sent: Wednesday, March 28, 2018 3:36 AM
> > > To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > > Cc: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; igt-
> > > dev@lists.freedesktop.org; intel-gfx@lists.freedesktop.org; Srivatsa, Anusha
> > > <anusha.srivatsa@intel.com>; Vetter, Daniel <daniel.vetter@intel.com>; Vivi,
> > > Rodrigo <rodrigo.vivi@intel.com>; Kahola, Mika <mika.kahola@intel.com>;
> > > Navare, Manasi D <manasi.d.navare@intel.com>
> > > Subject: Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks
> > > to one place for non exhaust fence cases
> > > 
> > > On Wed, Mar 28, 2018 at 10:29:15AM +0200, Maarten Lankhorst wrote:
> > > > Op 22-03-18 om 23:10 schreef Radhakrishna Sripada:
> > > > > From: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > > > >
> > > > > Cleanup the testcases by moving the platform checks to a single function.
> > > > >
> > > > > The earlier version of the path is posted here [1]
> > > > >
> > > > > v2: Make use of the property enums to get the supported rotations
> > > > > v3: Move hardcodings to a single function(Ville)
> > > > >
> > > > > [1]: https://patchwork.freedesktop.org/patch/209647/
> > > > >
> > > > > Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > > > > Cc: Ville Syrjälä <ville.syrjala@linux.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>
> > > > > ---
> > > > >  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
> > > > >  1 file changed, 16 insertions(+), 15 deletions(-)
> > > > >
> > > > > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> > > > > index 0cd5c6e52b57..60fb9012e14e 100644
> > > > > --- a/tests/kms_rotation_crc.c
> > > > > +++ b/tests/kms_rotation_crc.c
> > > > > @@ -43,6 +43,7 @@ typedef struct {
> > > > >  	uint32_t override_fmt;
> > > > >  	uint64_t override_tiling;
> > > > >  	int devid;
> > > > > +	int gen;
> > > > >  } data_t;
> > > > >
> > > > >  typedef struct {
> > > > > @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
> > > > >  	igt_assert(drmHandleEvent(fd, &evctx) == 0);  }
> > > > >
> > > > > +static void igt_check_rotation(data_t *data) {
> > > > > +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> > > > > +		igt_require(data->gen >= 9);
> > > > > +	else if (data->rotation & IGT_REFLECT_X)
> > > > > +		igt_require(data->gen >= 10 ||
> > > > > +			    (IS_CHERRYVIEW(data->devid) && (data->rotation
> > > & IGT_ROTATION_0)));
> > > > > +	else if (data->rotation & IGT_ROTATION_180)
> > > > > +		igt_require(data->gen >= 4);
> > > > > +}
> > > > This still won't work as intended on CHV as it only has reflection on PIPE_B,
> > > for X tiled fb's.
> > > 
> > > s/X tiled//
> > So should we hack the reflect subtest to partially run for a single pipe and skip for the other pipes on Chv? If so is there a non-murky way to do it?
> 
> At least skipping for pipe A/C should happen automagically if we ask the
> plane what it supports. The pipe B case still needs to be special cased
> though.
> 

I sent an updated patch [1] making the changes. Is it ok?

[1] https://patchwork.freedesktop.org/patch/214698/

> > 
> > Thanks,
> > Radhakrishna
> > 
> > > 
> > > >
> > > >
> > > > >  static void test_single_case(data_t *data, enum pipe pipe,
> > > > >  			     igt_output_t *output, igt_plane_t *plane,
> > > > >  			     enum rectangle_type rect,
> > > > > @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data,
> > > > > int plane_type, bool test_bad_form
> > > > >
> > > > >  	igt_display_require_output(display);
> > > > >
> > > > > +	igt_check_rotation(data);
> > > > > +
> > > > >  	for_each_pipe_with_valid_output(display, pipe, output) {
> > > > >  		igt_plane_t *plane;
> > > > >  		int i, j;
> > > > >
> > > > > -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> > > > > -			continue;
> > > > > -
> > > > >  		igt_output_set_pipe(output, pipe);
> > > > >
> > > > >  		plane = igt_output_get_plane_type(output, plane_type); @@
> > > -538,14
> > > > > +549,13 @@ 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);
> > > > > +		data.gen = intel_gen(data.devid);
> > > > >
> > > > >  		kmstest_set_vt_graphics_mode();
> > > > >
> > > > > @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
> > > > >  		enum pipe pipe;
> > > > >  		igt_output_t *output;
> > > > >
> > > > > -		igt_require(gen >= 9);
> > > > > +		igt_require(data.gen >= 9);
> > > > >  		igt_display_require_output(&data.display);
> > > > >
> > > > >  		for_each_pipe_with_valid_output(&data.display, pipe,
> > > output) {
> > > >
> > > 
> > > --
> > > Ville Syrjälä
> > > Intel OTC
> 
> -- 
> Ville Syrjälä
> Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases
@ 2018-04-12 23:06           ` Radhakrishna Sripada
  0 siblings, 0 replies; 18+ messages in thread
From: Radhakrishna Sripada @ 2018-04-12 23:06 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: Navare, Manasi D, Srivatsa, Anusha, intel-gfx, igt-dev, Vivi,
	Rodrigo, Vetter, Daniel

On Fri, Apr 06, 2018 at 06:56:22PM +0300, Ville Syrjälä wrote:
> On Thu, Mar 29, 2018 at 06:19:40AM +0000, Sripada, Radhakrishna wrote:
> > 
> > 
> > > -----Original Message-----
> > > From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> > > Sent: Wednesday, March 28, 2018 3:36 AM
> > > To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > > Cc: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; igt-
> > > dev@lists.freedesktop.org; intel-gfx@lists.freedesktop.org; Srivatsa, Anusha
> > > <anusha.srivatsa@intel.com>; Vetter, Daniel <daniel.vetter@intel.com>; Vivi,
> > > Rodrigo <rodrigo.vivi@intel.com>; Kahola, Mika <mika.kahola@intel.com>;
> > > Navare, Manasi D <manasi.d.navare@intel.com>
> > > Subject: Re: [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks
> > > to one place for non exhaust fence cases
> > > 
> > > On Wed, Mar 28, 2018 at 10:29:15AM +0200, Maarten Lankhorst wrote:
> > > > Op 22-03-18 om 23:10 schreef Radhakrishna Sripada:
> > > > > From: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > > > >
> > > > > Cleanup the testcases by moving the platform checks to a single function.
> > > > >
> > > > > The earlier version of the path is posted here [1]
> > > > >
> > > > > v2: Make use of the property enums to get the supported rotations
> > > > > v3: Move hardcodings to a single function(Ville)
> > > > >
> > > > > [1]: https://patchwork.freedesktop.org/patch/209647/
> > > > >
> > > > > Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > > > > Cc: Ville Syrjälä <ville.syrjala@linux.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>
> > > > > ---
> > > > >  tests/kms_rotation_crc.c | 31 ++++++++++++++++---------------
> > > > >  1 file changed, 16 insertions(+), 15 deletions(-)
> > > > >
> > > > > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> > > > > index 0cd5c6e52b57..60fb9012e14e 100644
> > > > > --- a/tests/kms_rotation_crc.c
> > > > > +++ b/tests/kms_rotation_crc.c
> > > > > @@ -43,6 +43,7 @@ typedef struct {
> > > > >  	uint32_t override_fmt;
> > > > >  	uint64_t override_tiling;
> > > > >  	int devid;
> > > > > +	int gen;
> > > > >  } data_t;
> > > > >
> > > > >  typedef struct {
> > > > > @@ -301,6 +302,17 @@ static void wait_for_pageflip(int fd)
> > > > >  	igt_assert(drmHandleEvent(fd, &evctx) == 0);  }
> > > > >
> > > > > +static void igt_check_rotation(data_t *data) {
> > > > > +	if (data->rotation & (IGT_ROTATION_90 | IGT_ROTATION_270))
> > > > > +		igt_require(data->gen >= 9);
> > > > > +	else if (data->rotation & IGT_REFLECT_X)
> > > > > +		igt_require(data->gen >= 10 ||
> > > > > +			    (IS_CHERRYVIEW(data->devid) && (data->rotation
> > > & IGT_ROTATION_0)));
> > > > > +	else if (data->rotation & IGT_ROTATION_180)
> > > > > +		igt_require(data->gen >= 4);
> > > > > +}
> > > > This still won't work as intended on CHV as it only has reflection on PIPE_B,
> > > for X tiled fb's.
> > > 
> > > s/X tiled//
> > So should we hack the reflect subtest to partially run for a single pipe and skip for the other pipes on Chv? If so is there a non-murky way to do it?
> 
> At least skipping for pipe A/C should happen automagically if we ask the
> plane what it supports. The pipe B case still needs to be special cased
> though.
> 

I sent an updated patch [1] making the changes. Is it ok?

[1] https://patchwork.freedesktop.org/patch/214698/

> > 
> > Thanks,
> > Radhakrishna
> > 
> > > 
> > > >
> > > >
> > > > >  static void test_single_case(data_t *data, enum pipe pipe,
> > > > >  			     igt_output_t *output, igt_plane_t *plane,
> > > > >  			     enum rectangle_type rect,
> > > > > @@ -369,13 +381,12 @@ static void test_plane_rotation(data_t *data,
> > > > > int plane_type, bool test_bad_form
> > > > >
> > > > >  	igt_display_require_output(display);
> > > > >
> > > > > +	igt_check_rotation(data);
> > > > > +
> > > > >  	for_each_pipe_with_valid_output(display, pipe, output) {
> > > > >  		igt_plane_t *plane;
> > > > >  		int i, j;
> > > > >
> > > > > -		if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> > > > > -			continue;
> > > > > -
> > > > >  		igt_output_set_pipe(output, pipe);
> > > > >
> > > > >  		plane = igt_output_get_plane_type(output, plane_type); @@
> > > -538,14
> > > > > +549,13 @@ 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);
> > > > > +		data.gen = intel_gen(data.devid);
> > > > >
> > > > >  		kmstest_set_vt_graphics_mode();
> > > > >
> > > > > @@ -558,16 +568,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 +583,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 +590,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 +600,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 +614,7 @@ igt_main
> > > > >  		enum pipe pipe;
> > > > >  		igt_output_t *output;
> > > > >
> > > > > -		igt_require(gen >= 9);
> > > > > +		igt_require(data.gen >= 9);
> > > > >  		igt_display_require_output(&data.display);
> > > > >
> > > > >  		for_each_pipe_with_valid_output(&data.display, pipe,
> > > output) {
> > > >
> > > 
> > > --
> > > Ville Syrjälä
> > > Intel OTC
> 
> -- 
> Ville Syrjälä
> Intel OTC
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2018-04-12 23:06 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-22 22:10 [PATCH i-g-t v3] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases Radhakrishna Sripada
2018-03-22 22:10 ` [Intel-gfx] " Radhakrishna Sripada
2018-03-23 19:47 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2018-03-24  0:29 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2018-03-28  8:26 ` [PATCH i-g-t v3] " Mika Kahola
2018-03-28  8:26   ` [igt-dev] " Mika Kahola
2018-03-28 17:18   ` Srivatsa, Anusha
2018-03-28 17:18     ` [Intel-gfx] " Srivatsa, Anusha
2018-03-28  8:29 ` Maarten Lankhorst
2018-03-28  8:29   ` [igt-dev] " Maarten Lankhorst
2018-03-28 10:35   ` Ville Syrjälä
2018-03-28 10:35     ` [igt-dev] " Ville Syrjälä
2018-03-29  6:19     ` Sripada, Radhakrishna
2018-03-29  6:19       ` [igt-dev] " Sripada, Radhakrishna
2018-04-06 15:56       ` Ville Syrjälä
2018-04-06 15:56         ` [igt-dev] " Ville Syrjälä
2018-04-12 23:06         ` Radhakrishna Sripada
2018-04-12 23:06           ` [igt-dev] " Radhakrishna Sripada

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.