All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A
@ 2017-09-27 18:34 Gabriel Krisman Bertazi
  2017-09-27 18:34 ` [PATCH i-g-t v4 2/6] lib/igt_kms: Fix off-by-one bug on skip of missing pipe Gabriel Krisman Bertazi
                   ` (8 more replies)
  0 siblings, 9 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-09-27 18:34 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, tomeu.vizoso

Commit d41c4ccbd2f9 ("tests/kms_ccs: Fix subtest enumeration")
accidently removed the update of data.pipe, causing kms_ccs to silently
only test PIPE_A.

This fixes the behavior reported by Daniel Vetter where tests would
succeed even on nonexistent pipes.

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
---
 tests/kms_ccs.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
index ab9325d14991..775c6999699f 100644
--- a/tests/kms_ccs.c
+++ b/tests/kms_ccs.c
@@ -483,6 +483,8 @@ igt_main
 		const char *pipe_name = kmstest_pipe_name(pipe);
 		int sprite_idx = 0;
 
+		data.pipe = pipe;
+
 		data.flags = TEST_BAD_PIXEL_FORMAT;
 		igt_subtest_f("pipe-%s-bad-pixel-format", pipe_name)
 			test_output(&data);
-- 
2.11.0

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

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

* [PATCH i-g-t v4 2/6] lib/igt_kms: Fix off-by-one bug on skip of missing pipe
  2017-09-27 18:34 [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A Gabriel Krisman Bertazi
@ 2017-09-27 18:34 ` Gabriel Krisman Bertazi
  2017-09-28  8:33   ` Petri Latvala
  2017-09-27 18:34 ` [PATCH i-g-t v4 3/6] tests/kms_ccs: Prevent segfault if pipe is not supported Gabriel Krisman Bertazi
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-09-27 18:34 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, tomeu.vizoso

display->n_pipes is zero-indexed, so N returned in
igt_display_get_n_pipes is already not a valid pipe.  This patch
prevents kms_ccs from going nuts when testing the first unxesting pipe.

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 lib/igt_kms.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 7bcafc072f70..c7b169afba54 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -1865,7 +1865,7 @@ void igt_display_require_output_on_pipe(igt_display_t *display, enum pipe pipe)
 {
 	igt_output_t *output;
 
-	igt_skip_on_f(igt_display_get_n_pipes(display) < pipe,
+	igt_skip_on_f(pipe >= igt_display_get_n_pipes(display),
 		      "Pipe %s does not exist.\n", kmstest_pipe_name(pipe));
 
 	for_each_valid_output_on_pipe(display, pipe, output)
-- 
2.11.0

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

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

* [PATCH i-g-t v4 3/6] tests/kms_ccs: Prevent segfault if pipe is not supported
  2017-09-27 18:34 [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A Gabriel Krisman Bertazi
  2017-09-27 18:34 ` [PATCH i-g-t v4 2/6] lib/igt_kms: Fix off-by-one bug on skip of missing pipe Gabriel Krisman Bertazi
@ 2017-09-27 18:34 ` Gabriel Krisman Bertazi
  2017-10-03 10:49   ` Arkadiusz Hiler
  2017-10-03 16:07   ` Ben Widawsky
  2017-09-27 18:34 ` [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided Gabriel Krisman Bertazi
                   ` (6 subsequent siblings)
  8 siblings, 2 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-09-27 18:34 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, tomeu.vizoso

for_each_plane_on_pipe() indexes bad memory when iterating over an invalid
pipe.  Make sure the pipe exists before trying to use it.  This prevents
the crash below:

root@ideacentre:~# igt-gpu-tools/tests/kms_ccs --r pipe-D-crc-sprite-planes-basic
IGT-Version: 1.19-g59f0e3d182a8 (x86_64) (Linux: 4.13.0-rc6.intel-boxes+x86_64)
Received signal SIGSEGV.
Stack trace:
 #0 [fatal_sig_handler+0x185]
 #1 [killpg+0x40]
 #2 [__real_main485+0x2de]
 #3 [main+0x3f]
 #4 [__libc_start_main+0xf1]
 #5 [_start+0x2a]
 #6 [<unknown>+0x2a]
Subtest pipe-D-crc-sprite-planes-basic: CRASH (0.004s)

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
---
 tests/kms_ccs.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
index 775c6999699f..73025a1e019f 100644
--- a/tests/kms_ccs.c
+++ b/tests/kms_ccs.c
@@ -503,6 +503,9 @@ igt_main
 
 		data.flags = TEST_CRC;
 		igt_subtest_f("pipe-%s-crc-sprite-planes-basic", pipe_name) {
+
+			igt_display_require_output_on_pipe(&data.display, data.pipe);
+
 			for_each_plane_on_pipe(&data.display, data.pipe, data.plane) {
 				if (data.plane->type == DRM_PLANE_TYPE_PRIMARY)
 					continue;
-- 
2.11.0

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

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

* [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided
  2017-09-27 18:34 [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A Gabriel Krisman Bertazi
  2017-09-27 18:34 ` [PATCH i-g-t v4 2/6] lib/igt_kms: Fix off-by-one bug on skip of missing pipe Gabriel Krisman Bertazi
  2017-09-27 18:34 ` [PATCH i-g-t v4 3/6] tests/kms_ccs: Prevent segfault if pipe is not supported Gabriel Krisman Bertazi
@ 2017-09-27 18:34 ` Gabriel Krisman Bertazi
  2017-10-03 11:32   ` Arkadiusz Hiler
  2017-10-03 16:35   ` Ben Widawsky
  2017-09-27 18:34 ` [PATCH i-g-t v4 5/6] tests/kms_ccs: Test case where CCS is on a different BO Gabriel Krisman Bertazi
                   ` (5 subsequent siblings)
  8 siblings, 2 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-09-27 18:34 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, tomeu.vizoso

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
---
 tests/kms_ccs.c | 37 +++++++++++++++++++++++++++----------
 1 file changed, 27 insertions(+), 10 deletions(-)

diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
index 73025a1e019f..35dfcca6be14 100644
--- a/tests/kms_ccs.c
+++ b/tests/kms_ccs.c
@@ -33,8 +33,12 @@ enum test_flags {
 	TEST_ROTATE_180			= 1 << 2,
 	TEST_BAD_PIXEL_FORMAT		= 1 << 3,
 	TEST_BAD_ROTATION_90		= 1 << 4,
+	TEST_NO_AUX_BUFFER		= 1 << 5,
 };
 
+#define TEST_FAIL_ON_ADDFB2 \
+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER)
+
 enum test_fb_flags {
 	FB_COMPRESSED			= 1 << 0,
 	FB_HAS_PLANE			= 1 << 1,
@@ -315,22 +319,29 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
 		 */
 		int ccs_width = ALIGN(width * 4, 32) / 32;
 		int ccs_height = ALIGN(height, 16) / 16;
-		f.pitches[1] = ALIGN(ccs_width * 1, 128);
-		f.modifier[1] = modifier;
-		f.offsets[1] = size[0];
-		size[1] = f.pitches[1] * ALIGN(ccs_height, 32);
+		int ccs_pitches = ALIGN(ccs_width * 1, 128);
+		int ccs_offsets = size[0];
+
+		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
 
 		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
-		f.handles[1] = f.handles[0];
-		render_ccs(data, f.handles[1], f.offsets[1], size[1],
-			   height, f.pitches[1]);
+
+		if (!(data->flags & TEST_NO_AUX_BUFFER)) {
+			f.modifier[1] = modifier;
+			f.handles[1] = f.handles[0];
+			f.pitches[1] = ccs_pitches;
+			f.offsets[1] = ccs_offsets;
+
+			render_ccs(data, f.handles[1], f.offsets[1], size[1],
+				   height, f.pitches[1]);
+		}
 	} else
 		f.handles[0] = gem_create(data->drm_fd, size[0]);
 
 	render_fb(data, f.handles[0], size[0], fb_flags, height, f.pitches[0]);
 
 	ret = drmIoctl(data->drm_fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f);
-	if (data->flags & TEST_BAD_PIXEL_FORMAT) {
+	if (data->flags & TEST_FAIL_ON_ADDFB2) {
 		igt_assert_eq(ret, -1);
 		igt_assert_eq(errno, EINVAL);
 		return;
@@ -379,7 +390,7 @@ static void try_config(data_t *data, enum test_fb_flags fb_flags)
 			    drm_mode->vdisplay, fb_flags);
 	}
 
-	if (data->flags & TEST_BAD_PIXEL_FORMAT)
+	if (data->flags & TEST_FAIL_ON_ADDFB2)
 		return;
 
 	igt_plane_set_position(primary, 0, 0);
@@ -446,7 +457,8 @@ static void test_output(data_t *data)
 	}
 
 	if (data->flags & TEST_BAD_PIXEL_FORMAT ||
-	    data->flags & TEST_BAD_ROTATION_90) {
+	    data->flags & TEST_BAD_ROTATION_90 ||
+	    data->flags & TEST_NO_AUX_BUFFER) {
 		try_config(data, fb_flags | FB_COMPRESSED);
 	}
 
@@ -515,6 +527,11 @@ igt_main
 		}
 
 		data.plane = NULL;
+
+		data.flags = TEST_NO_AUX_BUFFER;
+		igt_subtest_f("pipe-%s-missing-ccs-buffer", pipe_name)
+			test_output(&data);
+
 	}
 
 	igt_fixture
-- 
2.11.0

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

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

* [PATCH i-g-t v4 5/6] tests/kms_ccs: Test case where CCS is on a different BO
  2017-09-27 18:34 [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A Gabriel Krisman Bertazi
                   ` (2 preceding siblings ...)
  2017-09-27 18:34 ` [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided Gabriel Krisman Bertazi
@ 2017-09-27 18:34 ` Gabriel Krisman Bertazi
  2017-10-03 11:00   ` Arkadiusz Hiler
  2017-10-03 16:38   ` Ben Widawsky
  2017-09-27 18:34 ` [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size Gabriel Krisman Bertazi
                   ` (4 subsequent siblings)
  8 siblings, 2 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-09-27 18:34 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, tomeu.vizoso

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
---
 tests/kms_ccs.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
index 35dfcca6be14..2d7105eb1323 100644
--- a/tests/kms_ccs.c
+++ b/tests/kms_ccs.c
@@ -34,10 +34,11 @@ enum test_flags {
 	TEST_BAD_PIXEL_FORMAT		= 1 << 3,
 	TEST_BAD_ROTATION_90		= 1 << 4,
 	TEST_NO_AUX_BUFFER		= 1 << 5,
+	TEST_BAD_CCS_HANDLE		= 1 << 6,
 };
 
 #define TEST_FAIL_ON_ADDFB2 \
-	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER)
+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER | TEST_BAD_CCS_HANDLE)
 
 enum test_fb_flags {
 	FB_COMPRESSED			= 1 << 0,
@@ -275,6 +276,7 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
 	unsigned int size[2];
 	uint64_t modifier;
 	int ret;
+	uint32_t ccs_handle;
 
 	/* Use either compressed or Y-tiled to test. However, given the lack of
 	 * available bandwidth, we use linear for the primary plane when
@@ -325,10 +327,15 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
 		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
 
 		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
+		if (data->flags & TEST_BAD_CCS_HANDLE) {
+			/* Put the CCS buffer on a different BO. */
+			ccs_handle = gem_create(data->drm_fd, size[0] + size[1]);
+		} else
+			ccs_handle = f.handles[0];
 
 		if (!(data->flags & TEST_NO_AUX_BUFFER)) {
 			f.modifier[1] = modifier;
-			f.handles[1] = f.handles[0];
+			f.handles[1] = ccs_handle;
 			f.pitches[1] = ccs_pitches;
 			f.offsets[1] = ccs_offsets;
 
@@ -458,7 +465,8 @@ static void test_output(data_t *data)
 
 	if (data->flags & TEST_BAD_PIXEL_FORMAT ||
 	    data->flags & TEST_BAD_ROTATION_90 ||
-	    data->flags & TEST_NO_AUX_BUFFER) {
+	    data->flags & TEST_NO_AUX_BUFFER ||
+	    data->flags & TEST_BAD_CCS_HANDLE) {
 		try_config(data, fb_flags | FB_COMPRESSED);
 	}
 
@@ -532,6 +540,9 @@ igt_main
 		igt_subtest_f("pipe-%s-missing-ccs-buffer", pipe_name)
 			test_output(&data);
 
+		data.flags = TEST_BAD_CCS_HANDLE;
+		igt_subtest_f("pipe-%s-ccs-on-another-bo", pipe_name)
+			test_output(&data);
 	}
 
 	igt_fixture
-- 
2.11.0

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

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

* [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size
  2017-09-27 18:34 [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A Gabriel Krisman Bertazi
                   ` (3 preceding siblings ...)
  2017-09-27 18:34 ` [PATCH i-g-t v4 5/6] tests/kms_ccs: Test case where CCS is on a different BO Gabriel Krisman Bertazi
@ 2017-09-27 18:34 ` Gabriel Krisman Bertazi
  2017-10-03 10:57   ` Arkadiusz Hiler
  2017-10-03 16:40   ` Ben Widawsky
  2017-09-27 18:58 ` ✓ Fi.CI.BAT: success for series starting with [v4,1/6] tests/kms_ccs: Test pipes other than pipe A Patchwork
                   ` (3 subsequent siblings)
  8 siblings, 2 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-09-27 18:34 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, tomeu.vizoso

Two scenarios tested:
  - unaligned stride
  - Stride too small

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
---
 tests/kms_ccs.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
index 2d7105eb1323..cb6e69c69ae5 100644
--- a/tests/kms_ccs.c
+++ b/tests/kms_ccs.c
@@ -35,14 +35,18 @@ enum test_flags {
 	TEST_BAD_ROTATION_90		= 1 << 4,
 	TEST_NO_AUX_BUFFER		= 1 << 5,
 	TEST_BAD_CCS_HANDLE		= 1 << 6,
+	TEST_BAD_AUX_STRIDE		= 1 << 7,
 };
 
 #define TEST_FAIL_ON_ADDFB2 \
-	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER | TEST_BAD_CCS_HANDLE)
+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER | TEST_BAD_CCS_HANDLE | \
+	 TEST_BAD_AUX_STRIDE)
 
 enum test_fb_flags {
 	FB_COMPRESSED			= 1 << 0,
 	FB_HAS_PLANE			= 1 << 1,
+	FB_MISALIGN_AUX_STRIDE		= 1 << 2,
+	FB_SMALL_AUX_STRIDE		= 1 << 3,
 };
 
 typedef struct {
@@ -324,6 +328,14 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
 		int ccs_pitches = ALIGN(ccs_width * 1, 128);
 		int ccs_offsets = size[0];
 
+		if (fb_flags & FB_MISALIGN_AUX_STRIDE)
+			ccs_pitches -= 64;
+		else if (fb_flags & FB_SMALL_AUX_STRIDE) {
+			igt_skip_on_f(width <= 1024,
+				      "FB already has the smallest possible stride\n");
+			ccs_pitches = ALIGN(ccs_width/2, 128);
+		}
+
 		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
 
 		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
@@ -470,6 +482,11 @@ static void test_output(data_t *data)
 		try_config(data, fb_flags | FB_COMPRESSED);
 	}
 
+	if (data->flags & TEST_BAD_AUX_STRIDE) {
+		try_config(data, fb_flags | FB_COMPRESSED | FB_MISALIGN_AUX_STRIDE);
+		try_config(data, fb_flags | FB_COMPRESSED | FB_SMALL_AUX_STRIDE);
+	}
+
 	primary = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
 	igt_plane_set_fb(primary, NULL);
 	igt_plane_set_rotation(primary, IGT_ROTATION_0);
@@ -543,6 +560,10 @@ igt_main
 		data.flags = TEST_BAD_CCS_HANDLE;
 		igt_subtest_f("pipe-%s-ccs-on-another-bo", pipe_name)
 			test_output(&data);
+
+		data.flags = TEST_BAD_AUX_STRIDE;
+		igt_subtest_f("pipe-%s-bad-aux-stride", pipe_name)
+			test_output(&data);
 	}
 
 	igt_fixture
-- 
2.11.0

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

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

* ✓ Fi.CI.BAT: success for series starting with [v4,1/6] tests/kms_ccs: Test pipes other than pipe A
  2017-09-27 18:34 [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A Gabriel Krisman Bertazi
                   ` (4 preceding siblings ...)
  2017-09-27 18:34 ` [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size Gabriel Krisman Bertazi
@ 2017-09-27 18:58 ` Patchwork
  2017-09-27 23:42 ` ✗ Fi.CI.IGT: failure " Patchwork
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2017-09-27 18:58 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: intel-gfx

== Series Details ==

Series: series starting with [v4,1/6] tests/kms_ccs: Test pipes other than pipe A
URL   : https://patchwork.freedesktop.org/series/30991/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
2885b10f99b4beeb046e75af8b8488c229f629d3 igt/gem_exec_schedule: Ignore set-priority failures on old kernels

with latest DRM-Tip kernel build CI_DRM_3146
aa884e1abdf2 drm-tip: 2017y-09m-27d-15h-39m-07s UTC integration manifest

fi-bdw-5557u     total:289  pass:268  dwarn:0   dfail:0   fail:0   skip:21  time:440s
fi-bdw-gvtdvm    total:289  pass:265  dwarn:0   dfail:0   fail:0   skip:24  time:471s
fi-blb-e6850     total:289  pass:224  dwarn:1   dfail:0   fail:0   skip:64  time:421s
fi-bsw-n3050     total:289  pass:243  dwarn:0   dfail:0   fail:0   skip:46  time:527s
fi-bwr-2160      total:289  pass:184  dwarn:0   dfail:0   fail:0   skip:105 time:280s
fi-bxt-j4205     total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  time:504s
fi-byt-j1900     total:289  pass:254  dwarn:1   dfail:0   fail:0   skip:34  time:500s
fi-cfl-s         total:289  pass:223  dwarn:34  dfail:0   fail:0   skip:32  time:541s
fi-cnl-y         total:289  pass:259  dwarn:0   dfail:0   fail:3   skip:27  time:668s
fi-elk-e7500     total:289  pass:230  dwarn:0   dfail:0   fail:0   skip:59  time:422s
fi-glk-1         total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  time:572s
fi-hsw-4770      total:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  time:425s
fi-hsw-4770r     total:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  time:408s
fi-ilk-650       total:289  pass:229  dwarn:0   dfail:0   fail:0   skip:60  time:441s
fi-ivb-3520m     total:289  pass:261  dwarn:0   dfail:0   fail:0   skip:28  time:485s
fi-ivb-3770      total:289  pass:261  dwarn:0   dfail:0   fail:0   skip:28  time:465s
fi-kbl-7500u     total:289  pass:263  dwarn:1   dfail:0   fail:1   skip:24  time:472s
fi-kbl-7560u     total:289  pass:270  dwarn:0   dfail:0   fail:0   skip:19  time:581s
fi-kbl-r         total:245  pass:220  dwarn:0   dfail:0   fail:0   skip:24 
fi-pnv-d510      total:289  pass:223  dwarn:1   dfail:0   fail:0   skip:65  time:549s
fi-skl-6260u     total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  time:457s
fi-skl-6700k     total:289  pass:265  dwarn:0   dfail:0   fail:0   skip:24  time:753s
fi-skl-6770hq    total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  time:488s
fi-skl-gvtdvm    total:289  pass:266  dwarn:0   dfail:0   fail:0   skip:23  time:476s
fi-snb-2520m     total:289  pass:251  dwarn:0   dfail:0   fail:0   skip:38  time:583s
fi-snb-2600      total:289  pass:250  dwarn:0   dfail:0   fail:0   skip:39  time:424s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_260/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.IGT: failure for series starting with [v4,1/6] tests/kms_ccs: Test pipes other than pipe A
  2017-09-27 18:34 [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A Gabriel Krisman Bertazi
                   ` (5 preceding siblings ...)
  2017-09-27 18:58 ` ✓ Fi.CI.BAT: success for series starting with [v4,1/6] tests/kms_ccs: Test pipes other than pipe A Patchwork
@ 2017-09-27 23:42 ` Patchwork
  2017-09-28 16:06 ` Patchwork
  2017-10-03 10:44 ` [PATCH i-g-t v4 1/6] " Arkadiusz Hiler
  8 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2017-09-27 23:42 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: intel-gfx

== Series Details ==

Series: series starting with [v4,1/6] tests/kms_ccs: Test pipes other than pipe A
URL   : https://patchwork.freedesktop.org/series/30991/
State : failure

== Summary ==

Test kms_flip:
        Subgroup blt-flip-vs-panning:
                skip       -> PASS       (shard-hsw)
        Subgroup bo-too-big:
                skip       -> PASS       (shard-hsw)
        Subgroup rcs-wf_vblank-vs-modeset-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-flip-vs-absolute-wf_vblank:
                pass       -> SKIP       (shard-hsw)
        Subgroup blt-wf_vblank-vs-dpms-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup flip-vs-dpms-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-flip-vs-bad-tiling-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup vblank-vs-suspend:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-blt-flip-vs-panning:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-wf_vblank-ts-check-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup flip-vs-expired-vblank:
                skip       -> PASS       (shard-hsw) fdo#102367
        Subgroup flip-vs-expired-vblank-interruptible:
                skip       -> PASS       (shard-hsw) fdo#102887
        Subgroup 2x-flip-vs-expired-vblank:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-render-flip-vs-panning:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-flip-vs-bad-tiling:
                pass       -> SKIP       (shard-hsw)
        Subgroup blocking-absolute-wf_vblank:
                skip       -> PASS       (shard-hsw)
        Subgroup vblank-vs-modeset-rpm-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-absolute-wf_vblank-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup dpms-off-confusion-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup vblank-vs-hang-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup vblank-vs-suspend-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup flip-vs-fences-interruptible:
                skip       -> PASS       (shard-hsw) fdo#102946
        Subgroup 2x-blocking-wf_vblank:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-render-flip-vs-panning-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-flip-vs-modeset-vs-hang-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-blt-wf_vblank-vs-modeset:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-vblank-vs-suspend-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup flip-vs-blocking-wf-vblank:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-plain-flip-fb-recreate:
                pass       -> SKIP       (shard-hsw)
        Subgroup flip-vs-absolute-wf_vblank:
                skip       -> PASS       (shard-hsw) fdo#100368 +1
        Subgroup 2x-plain-flip-ts-check:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-absolute-wf_vblank:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-wf_vblank-ts-check:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-wf_vblank-vs-dpms-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-blt-flip-vs-panning-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-wf_vblank:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-flip-vs-panning:
                pass       -> SKIP       (shard-hsw)
        Subgroup flip-vs-rmfb:
                skip       -> PASS       (shard-hsw)
        Subgroup vblank-vs-dpms-suspend:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-plain-flip:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-blt-wf_vblank-vs-modeset-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup dpms-off-confusion:
                skip       -> PASS       (shard-hsw) fdo#102614 +1
        Subgroup 2x-blocking-absolute-wf_vblank:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-flip-vs-fences:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-rcs-wf_vblank-vs-dpms:
                pass       -> SKIP       (shard-hsw)
        Subgroup nonexisting-fb:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-flip-vs-rmfb-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup plain-flip-ts-check-interruptible:
                skip       -> PASS       (shard-hsw) fdo#103005
        Subgroup 2x-wf_vblank-vs-modeset:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-flip-vs-wf_vblank-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-nonexisting-fb-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-dpms-vs-vblank-race:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-single-buffer-flip-vs-dpms-off-vs-modeset:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-flip-vs-modeset-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup dpms-vs-vblank-race-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup flip-vs-absolute-wf_vblank-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-vblank-vs-dpms-suspend:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-nonexisting-fb:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-blocking-absolute-wf_vblank-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup single-buffer-flip-vs-dpms-off-vs-modeset:
                skip       -> PASS       (shard-hsw)
        Subgroup basic-flip-vs-modeset:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-modeset-vs-vblank-race:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-flip-vs-dpms-off-vs-modeset:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-plain-flip-ts-check-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-plain-flip-fb-recreate-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup busy-flip-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-wf_vblank-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup rcs-wf_vblank-vs-modeset:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-flip-vs-rmfb:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-flip-vs-dpms:
                pass       -> SKIP       (shard-hsw)
        Subgroup blt-wf_vblank-vs-modeset-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-flip-vs-absolute-wf_vblank-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup plain-flip-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-blt-wf_vblank-vs-dpms:
                pass       -> SKIP       (shard-hsw)
        Subgroup wf_vblank-vs-modeset-interruptible:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-wf_vblank-vs-modeset-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-flip-vs-blocking-wf-vblank:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-flip-vs-dpms-off-vs-modeset-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-vblank-vs-suspend:
                pass       -> SKIP       (shard-hsw)
        Subgroup flip-vs-modeset-vs-hang:
                skip       -> PASS       (shard-hsw)
        Subgroup 2x-flip-vs-wf_vblank:
                pass       -> SKIP       (shard-hsw)
        Subgroup bo-too-big-interruptible:
                fail       -> PASS       (shard-hsw)
        Subgroup 2x-busy-flip:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-dpms-vs-vblank-race-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-blt-wf_vblank-vs-dpms-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup flip-vs-bad-tiling-interruptible:
                pass       -> SKIP       (shard-hsw)
        Subgroup 2x-vblank-vs-modeset-suspend-interruptible:
                pass       -> SKIP       (shard-hsw)
Test kms_panel_fitting:
        Subgroup legacy:
                pass       -> SKIP       (shard-hsw)
        Subgroup atomic-fastset:
                pass       -> SKIP       (shard-hsw)
Test prime_busy:
        Subgroup wait-after-vebox:
                skip       -> PASS       (shard-hsw)
        Subgroup hang-blt:
                skip       -> PASS       (shard-hsw)
        Subgroup after-render:
                skip       -> PASS       (shard-hsw)
        Subgroup wait-after-bsd1:
                pass       -> SKIP       (shard-hsw)
        Subgroup before-blt:
                skip       -> PASS       (shard-hsw)
        Subgroup wait-before-bsd:
                skip       -> PASS       (shard-hsw)
        Subgroup wait-hang-vebox:
                skip       -> PASS       (shard-hsw)
        Subgroup wait-before-vebox:
                skip       -> PASS       (shard-hsw)
        Subgroup after-vebox:
                fail       -> PASS       (shard-hsw)
        Subgroup wait-before-blt:
                skip       -> PASS       (shard-hsw)
        Subgroup hang-vebox:
                skip       -> PASS       (shard-hsw)
        Subgroup after-bsd:
                skip       -> PASS       (shard-hsw)
        Subgroup after-blt:
                skip       -> PASS       (shard-hsw)
        Subgroup basic-after-default:
                skip       -> PASS       (shard-hsw)
        Subgroup before-bsd1:
                pass       -> SKIP       (shard-hsw)
        Subgroup after-bsd1:
                pass       -> SKIP       (shard-hsw)
        Subgroup basic-before-default:
                skip       -> PASS       (shard-hsw)
        Subgroup hang-render:
                skip       -> PASS       (shard-hsw)
        Subgroup before-bsd:
                skip       -> PASS       (shard-hsw)
Test kms_frontbuffer_tracking:
        Subgroup fbc-2p-scndscrn-pri-indfb-draw-mmap-wc:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-1p-offscren-pri-indfb-draw-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-1p-primscrn-spr-indfb-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-2p-scndscrn-pri-indfb-draw-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-primscrn-pri-shrfb-draw-mmap-wc:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-rgb101010-draw-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-rgb565-draw-mmap-cpu:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-1p-primscrn-pri-shrfb-draw-blt:
                skip       -> PASS       (shard-hsw)
        Subgroup fbc-2p-scndscrn-spr-indfb-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-1p-primscrn-indfb-plflip-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-primscrn-pri-shrfb-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-1p-offscren-pri-shrfb-draw-render:
                skip       -> PASS       (shard-hsw)
        Subgroup fbcpsr-1p-offscren-pri-shrfb-draw-mmap-wc:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-1p-primscrn-shrfb-pgflip-blt:
                skip       -> PASS       (shard-hsw)
        Subgroup psr-2p-scndscrn-indfb-plflip-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-rgb101010-draw-render:
                skip       -> PASS       (shard-hsw)
        Subgroup psr-2p-primscrn-pri-indfb-draw-pwrite:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-scndscrn-spr-indfb-move:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-primscrn-pri-indfb-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-scndscrn-pri-shrfb-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-rgb565-draw-blt:
                skip       -> PASS       (shard-hsw)
        Subgroup fbc-2p-primscrn-shrfb-plflip-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-primscrn-pri-shrfb-draw-pwrite:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-pri-indfb-multidraw:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-2p-scndscrn-shrfb-plflip-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-primscrn-shrfb-msflip-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-rgb101010-draw-mmap-cpu:
                skip       -> PASS       (shard-hsw)
        Subgroup fbc-1p-offscren-pri-indfb-draw-mmap-cpu:
                skip       -> PASS       (shard-hsw)
        Subgroup fbc-2p-primscrn-cur-indfb-draw-pwrite:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-primscrn-cur-indfb-onoff:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-offscren-pri-shrfb-draw-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-scndscrn-pri-indfb-draw-mmap-cpu:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-scndscrn-cur-indfb-onoff:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-primscrn-pri-shrfb-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-pri-indfb-multidraw:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-rgb565-draw-pwrite:
                skip       -> PASS       (shard-hsw)
        Subgroup psr-rgb565-draw-pwrite:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-rgb101010-draw-mmap-wc:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-1p-primscrn-cur-indfb-draw-pwrite:
                skip       -> PASS       (shard-hsw)
        Subgroup fbcpsr-2p-scndscrn-indfb-pgflip-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-rgb565-draw-pwrite:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-1p-primscrn-pri-shrfb-draw-pwrite:
                skip       -> PASS       (shard-hsw)
        Subgroup psr-1p-offscren-pri-shrfb-draw-mmap-wc:
                dmesg-warn -> SKIP       (shard-hsw)
        Subgroup fbc-rgb565-draw-mmap-gtt:
                skip       -> PASS       (shard-hsw)
        Subgroup fbcpsr-1p-primscrn-pri-indfb-draw-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-badstride:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-primscrn-cur-indfb-move:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-2p-pri-indfb-multidraw:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-2p-scndscrn-shrfb-msflip-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-scndscrn-shrfb-pgflip-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-primscrn-cur-indfb-draw-mmap-cpu:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-primscrn-pri-shrfb-draw-pwrite:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-primscrn-cur-indfb-onoff:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-1p-primscrn-pri-indfb-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-offscren-pri-indfb-draw-mmap-gtt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-scndscrn-spr-indfb-draw-mmap-gtt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-rgb101010-draw-blt:
                skip       -> PASS       (shard-hsw)
        Subgroup psr-rgb565-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-1p-primscrn-cur-indfb-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-primscrn-pri-shrfb-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-primscrn-pri-indfb-draw-mmap-gtt:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-2p-primscrn-pri-indfb-draw-render:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
                skip       -> PASS       (shard-hsw)
        Subgroup fbc-1p-primscrn-spr-indfb-fullscreen:
                skip       -> PASS       (shard-hsw)
        Subgroup psr-1p-primscrn-cur-indfb-draw-mmap-gtt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-primscrn-spr-indfb-move:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-1p-offscren-pri-shrfb-draw-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-suspend:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-primscrn-spr-indfb-draw-mmap-wc:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-scndscrn-cur-indfb-draw-pwrite:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-2p-primscrn-pri-shrfb-draw-mmap-cpu:
                pass       -> SKIP       (shard-hsw)
        Subgroup fbc-2p-indfb-fliptrack:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-2p-primscrn-cur-indfb-draw-mmap-wc:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-2p-scndscrn-spr-indfb-draw-blt:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-1p-offscren-pri-indfb-draw-mmap-cpu:
                pass       -> SKIP       (shard-hsw)
        Subgroup psr-2p-primscrn-indfb-msflip-blt:
                pass       -> SKIP       (shard-hsw)
        Su

== Logs ==

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

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

* Re: [PATCH i-g-t v4 2/6] lib/igt_kms: Fix off-by-one bug on skip of missing pipe
  2017-09-27 18:34 ` [PATCH i-g-t v4 2/6] lib/igt_kms: Fix off-by-one bug on skip of missing pipe Gabriel Krisman Bertazi
@ 2017-09-28  8:33   ` Petri Latvala
  0 siblings, 0 replies; 26+ messages in thread
From: Petri Latvala @ 2017-09-28  8:33 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On Wed, Sep 27, 2017 at 03:34:15PM -0300, Gabriel Krisman Bertazi wrote:
> display->n_pipes is zero-indexed, so N returned in
> igt_display_get_n_pipes is already not a valid pipe.  This patch
> prevents kms_ccs from going nuts when testing the first unxesting pipe.
                                                          ^unexisting




-- 
Petri Latvala



> 
> Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
>  lib/igt_kms.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 7bcafc072f70..c7b169afba54 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -1865,7 +1865,7 @@ void igt_display_require_output_on_pipe(igt_display_t *display, enum pipe pipe)
>  {
>  	igt_output_t *output;
>  
> -	igt_skip_on_f(igt_display_get_n_pipes(display) < pipe,
> +	igt_skip_on_f(pipe >= igt_display_get_n_pipes(display),
>  		      "Pipe %s does not exist.\n", kmstest_pipe_name(pipe));
>  
>  	for_each_valid_output_on_pipe(display, pipe, output)
> -- 
> 2.11.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.IGT: failure for series starting with [v4,1/6] tests/kms_ccs: Test pipes other than pipe A
  2017-09-27 18:34 [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A Gabriel Krisman Bertazi
                   ` (6 preceding siblings ...)
  2017-09-27 23:42 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2017-09-28 16:06 ` Patchwork
  2017-10-03 10:44 ` [PATCH i-g-t v4 1/6] " Arkadiusz Hiler
  8 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2017-09-28 16:06 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: intel-gfx

== Series Details ==

Series: series starting with [v4,1/6] tests/kms_ccs: Test pipes other than pipe A
URL   : https://patchwork.freedesktop.org/series/30991/
State : failure

== Summary ==

Test kms_cursor_legacy:
        Subgroup cursorA-vs-flipA-atomic-transitions:
                pass       -> FAIL       (shard-hsw) fdo#102723
Test prime_mmap:
        Subgroup test_userptr:
                pass       -> DMESG-WARN (shard-hsw) fdo#102939
Test kms_frontbuffer_tracking:
        Subgroup fbc-shrfb-scaledprimary:
                skip       -> INCOMPLETE (shard-hsw)
Test kms_flip:
        Subgroup flip-vs-wf_vblank-interruptible:
                fail       -> PASS       (shard-hsw) fdo#100368
Test gem_eio:
        Subgroup in-flight:
                pass       -> DMESG-WARN (shard-hsw) fdo#102886 +2
Test perf:
        Subgroup polling:
                fail       -> PASS       (shard-hsw) fdo#102252

fdo#102723 https://bugs.freedesktop.org/show_bug.cgi?id=102723
fdo#102939 https://bugs.freedesktop.org/show_bug.cgi?id=102939
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102886 https://bugs.freedesktop.org/show_bug.cgi?id=102886
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252

shard-hsw        total:2447 pass:1309 dwarn:4   dfail:0   fail:11  skip:1074 time:9797s

== Logs ==

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

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

* Re: [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A
  2017-09-27 18:34 [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A Gabriel Krisman Bertazi
                   ` (7 preceding siblings ...)
  2017-09-28 16:06 ` Patchwork
@ 2017-10-03 10:44 ` Arkadiusz Hiler
  8 siblings, 0 replies; 26+ messages in thread
From: Arkadiusz Hiler @ 2017-10-03 10:44 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On Wed, Sep 27, 2017 at 03:34:14PM -0300, Gabriel Krisman Bertazi wrote:
> Commit d41c4ccbd2f9 ("tests/kms_ccs: Fix subtest enumeration")
> accidently removed the update of data.pipe, causing kms_ccs to silently
> only test PIPE_A.
> 
> This fixes the behavior reported by Daniel Vetter where tests would
> succeed even on nonexistent pipes.
> 
> Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t v4 3/6] tests/kms_ccs: Prevent segfault if pipe is not supported
  2017-09-27 18:34 ` [PATCH i-g-t v4 3/6] tests/kms_ccs: Prevent segfault if pipe is not supported Gabriel Krisman Bertazi
@ 2017-10-03 10:49   ` Arkadiusz Hiler
  2017-10-03 16:07   ` Ben Widawsky
  1 sibling, 0 replies; 26+ messages in thread
From: Arkadiusz Hiler @ 2017-10-03 10:49 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On Wed, Sep 27, 2017 at 03:34:16PM -0300, Gabriel Krisman Bertazi wrote:
> for_each_plane_on_pipe() indexes bad memory when iterating over an invalid
> pipe.  Make sure the pipe exists before trying to use it.  This prevents
> the crash below:
> 
> root@ideacentre:~# igt-gpu-tools/tests/kms_ccs --r pipe-D-crc-sprite-planes-basic
> IGT-Version: 1.19-g59f0e3d182a8 (x86_64) (Linux: 4.13.0-rc6.intel-boxes+x86_64)
> Received signal SIGSEGV.
> Stack trace:
>  #0 [fatal_sig_handler+0x185]
>  #1 [killpg+0x40]
>  #2 [__real_main485+0x2de]
>  #3 [main+0x3f]
>  #4 [__libc_start_main+0xf1]
>  #5 [_start+0x2a]
>  #6 [<unknown>+0x2a]
> Subtest pipe-D-crc-sprite-planes-basic: CRASH (0.004s)
> 
> Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size
  2017-09-27 18:34 ` [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size Gabriel Krisman Bertazi
@ 2017-10-03 10:57   ` Arkadiusz Hiler
  2017-10-30 15:59     ` Ville Syrjälä
  2017-10-03 16:40   ` Ben Widawsky
  1 sibling, 1 reply; 26+ messages in thread
From: Arkadiusz Hiler @ 2017-10-03 10:57 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On Wed, Sep 27, 2017 at 03:34:19PM -0300, Gabriel Krisman Bertazi wrote:
> Two scenarios tested:
>   - unaligned stride
>   - Stride too small
> 
> Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>

Fails on APL
https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_260/shard-apl2/igt@kms_ccs@pipe-A-bad-aux-stride.html
https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_260/shard-apl8/igt@kms_ccs@pipe-B-bad-aux-stride.html

Works just fine on KBL though
https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_260/shard-kbl1/igt@kms_ccs@pipe-A-bad-aux-stride.html
https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_260/shard-kbl1/igt@kms_ccs@pipe-B-bad-aux-stride.html

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

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

* Re: [PATCH i-g-t v4 5/6] tests/kms_ccs: Test case where CCS is on a different BO
  2017-09-27 18:34 ` [PATCH i-g-t v4 5/6] tests/kms_ccs: Test case where CCS is on a different BO Gabriel Krisman Bertazi
@ 2017-10-03 11:00   ` Arkadiusz Hiler
  2017-10-03 16:38   ` Ben Widawsky
  1 sibling, 0 replies; 26+ messages in thread
From: Arkadiusz Hiler @ 2017-10-03 11:00 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On Wed, Sep 27, 2017 at 03:34:18PM -0300, Gabriel Krisman Bertazi wrote:
> Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided
  2017-09-27 18:34 ` [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided Gabriel Krisman Bertazi
@ 2017-10-03 11:32   ` Arkadiusz Hiler
  2017-10-03 16:35   ` Ben Widawsky
  1 sibling, 0 replies; 26+ messages in thread
From: Arkadiusz Hiler @ 2017-10-03 11:32 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On Wed, Sep 27, 2017 at 03:34:17PM -0300, Gabriel Krisman Bertazi wrote:
> Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
> ---
>  tests/kms_ccs.c | 37 +++++++++++++++++++++++++++----------
>  1 file changed, 27 insertions(+), 10 deletions(-)
> 
> diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
> index 73025a1e019f..35dfcca6be14 100644
> --- a/tests/kms_ccs.c
> +++ b/tests/kms_ccs.c
> @@ -33,8 +33,12 @@ enum test_flags {
>  	TEST_ROTATE_180			= 1 << 2,
>  	TEST_BAD_PIXEL_FORMAT		= 1 << 3,
>  	TEST_BAD_ROTATION_90		= 1 << 4,
> +	TEST_NO_AUX_BUFFER		= 1 << 5,
>  };
>  
> +#define TEST_FAIL_ON_ADDFB2 \
> +	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER)
> +
>  enum test_fb_flags {
>  	FB_COMPRESSED			= 1 << 0,
>  	FB_HAS_PLANE			= 1 << 1,
> @@ -315,22 +319,29 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
>  		 */
>  		int ccs_width = ALIGN(width * 4, 32) / 32;
>  		int ccs_height = ALIGN(height, 16) / 16;
> -		f.pitches[1] = ALIGN(ccs_width * 1, 128);
> -		f.modifier[1] = modifier;
> -		f.offsets[1] = size[0];
> -		size[1] = f.pitches[1] * ALIGN(ccs_height, 32);
> +		int ccs_pitches = ALIGN(ccs_width * 1, 128);
> +		int ccs_offsets = size[0];
> +
> +		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
>  
>  		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
> -		f.handles[1] = f.handles[0];
> -		render_ccs(data, f.handles[1], f.offsets[1], size[1],
> -			   height, f.pitches[1]);
> +
> +		if (!(data->flags & TEST_NO_AUX_BUFFER)) {
> +			f.modifier[1] = modifier;
> +			f.handles[1] = f.handles[0];
> +			f.pitches[1] = ccs_pitches;
> +			f.offsets[1] = ccs_offsets;
> +
> +			render_ccs(data, f.handles[1], f.offsets[1], size[1],
> +				   height, f.pitches[1]);
> +		}
>  	} else
>  		f.handles[0] = gem_create(data->drm_fd, size[0]);

Put the else block in { },
and a couple of similar divergences across the file from
https://01.org/linuxgraphics/gfx-docs/drm/process/coding-style.html#placing-braces-and-spaces

But since that's the context and it's really just a bikesheed:
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

>  	render_fb(data, f.handles[0], size[0], fb_flags, height, f.pitches[0]);
>  
>  	ret = drmIoctl(data->drm_fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f);
> -	if (data->flags & TEST_BAD_PIXEL_FORMAT) {
> +	if (data->flags & TEST_FAIL_ON_ADDFB2) {
>  		igt_assert_eq(ret, -1);
>  		igt_assert_eq(errno, EINVAL);
>  		return;
> @@ -379,7 +390,7 @@ static void try_config(data_t *data, enum test_fb_flags fb_flags)
>  			    drm_mode->vdisplay, fb_flags);
>  	}
>  
> -	if (data->flags & TEST_BAD_PIXEL_FORMAT)
> +	if (data->flags & TEST_FAIL_ON_ADDFB2)
>  		return;
>  
>  	igt_plane_set_position(primary, 0, 0);
> @@ -446,7 +457,8 @@ static void test_output(data_t *data)
>  	}
>  
>  	if (data->flags & TEST_BAD_PIXEL_FORMAT ||
> -	    data->flags & TEST_BAD_ROTATION_90) {
> +	    data->flags & TEST_BAD_ROTATION_90 ||
> +	    data->flags & TEST_NO_AUX_BUFFER) {
>  		try_config(data, fb_flags | FB_COMPRESSED);
>  	}
>  
> @@ -515,6 +527,11 @@ igt_main
>  		}
>  
>  		data.plane = NULL;
> +
> +		data.flags = TEST_NO_AUX_BUFFER;
> +		igt_subtest_f("pipe-%s-missing-ccs-buffer", pipe_name)
> +			test_output(&data);
> +
>  	}
>  
>  	igt_fixture
> -- 
> 2.11.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t v4 3/6] tests/kms_ccs: Prevent segfault if pipe is not supported
  2017-09-27 18:34 ` [PATCH i-g-t v4 3/6] tests/kms_ccs: Prevent segfault if pipe is not supported Gabriel Krisman Bertazi
  2017-10-03 10:49   ` Arkadiusz Hiler
@ 2017-10-03 16:07   ` Ben Widawsky
  1 sibling, 0 replies; 26+ messages in thread
From: Ben Widawsky @ 2017-10-03 16:07 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On 17-09-27 15:34:16, Gabriel Krisman Bertazi wrote:
>for_each_plane_on_pipe() indexes bad memory when iterating over an invalid
>pipe.  Make sure the pipe exists before trying to use it.  This prevents
>the crash below:
>
>root@ideacentre:~# igt-gpu-tools/tests/kms_ccs --r pipe-D-crc-sprite-planes-basic
>IGT-Version: 1.19-g59f0e3d182a8 (x86_64) (Linux: 4.13.0-rc6.intel-boxes+x86_64)
>Received signal SIGSEGV.
>Stack trace:
> #0 [fatal_sig_handler+0x185]
> #1 [killpg+0x40]
> #2 [__real_main485+0x2de]
> #3 [main+0x3f]
> #4 [__libc_start_main+0xf1]
> #5 [_start+0x2a]
> #6 [<unknown>+0x2a]
>Subtest pipe-D-crc-sprite-planes-basic: CRASH (0.004s)
>
>Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>

1-3 so far are
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>

>---
> tests/kms_ccs.c | 3 +++
> 1 file changed, 3 insertions(+)
>
>diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
>index 775c6999699f..73025a1e019f 100644
>--- a/tests/kms_ccs.c
>+++ b/tests/kms_ccs.c
>@@ -503,6 +503,9 @@ igt_main
>
> 		data.flags = TEST_CRC;
> 		igt_subtest_f("pipe-%s-crc-sprite-planes-basic", pipe_name) {
>+
>+			igt_display_require_output_on_pipe(&data.display, data.pipe);
>+
> 			for_each_plane_on_pipe(&data.display, data.pipe, data.plane) {
> 				if (data.plane->type == DRM_PLANE_TYPE_PRIMARY)
> 					continue;
>-- 
>2.11.0
>
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided
  2017-09-27 18:34 ` [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided Gabriel Krisman Bertazi
  2017-10-03 11:32   ` Arkadiusz Hiler
@ 2017-10-03 16:35   ` Ben Widawsky
  2017-10-09  6:14     ` Gabriel Krisman Bertazi
  2017-10-30 16:02     ` Ville Syrjälä
  1 sibling, 2 replies; 26+ messages in thread
From: Ben Widawsky @ 2017-10-03 16:35 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On 17-09-27 15:34:17, Gabriel Krisman Bertazi wrote:
>Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
>---
> tests/kms_ccs.c | 37 +++++++++++++++++++++++++++----------
> 1 file changed, 27 insertions(+), 10 deletions(-)
>
>diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
>index 73025a1e019f..35dfcca6be14 100644
>--- a/tests/kms_ccs.c
>+++ b/tests/kms_ccs.c
>@@ -33,8 +33,12 @@ enum test_flags {
> 	TEST_ROTATE_180			= 1 << 2,
> 	TEST_BAD_PIXEL_FORMAT		= 1 << 3,
> 	TEST_BAD_ROTATION_90		= 1 << 4,
>+	TEST_NO_AUX_BUFFER		= 1 << 5,
> };
>
>+#define TEST_FAIL_ON_ADDFB2 \
>+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER)
>+

Adding the define confuses things more than it helps IMO.

> enum test_fb_flags {
> 	FB_COMPRESSED			= 1 << 0,
> 	FB_HAS_PLANE			= 1 << 1,
>@@ -315,22 +319,29 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
> 		 */
> 		int ccs_width = ALIGN(width * 4, 32) / 32;
> 		int ccs_height = ALIGN(height, 16) / 16;
>-		f.pitches[1] = ALIGN(ccs_width * 1, 128);
>-		f.modifier[1] = modifier;

I think the case you're trying to test should have the modifier set for plane1,
just no handle, size or whatever. If you don't do this, I'm not sure what you're
actually testing.

>-		f.offsets[1] = size[0];
>-		size[1] = f.pitches[1] * ALIGN(ccs_height, 32);
>+		int ccs_pitches = ALIGN(ccs_width * 1, 128);
>+		int ccs_offsets = size[0];
>+
>+		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
>
> 		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
>-		f.handles[1] = f.handles[0];
>-		render_ccs(data, f.handles[1], f.offsets[1], size[1],
>-			   height, f.pitches[1]);
>+
>+		if (!(data->flags & TEST_NO_AUX_BUFFER)) {
>+			f.modifier[1] = modifier;
>+			f.handles[1] = f.handles[0];
>+			f.pitches[1] = ccs_pitches;
>+			f.offsets[1] = ccs_offsets;
>+
>+			render_ccs(data, f.handles[1], f.offsets[1], size[1],
>+				   height, f.pitches[1]);
>+		}
> 	} else
> 		f.handles[0] = gem_create(data->drm_fd, size[0]);
>
> 	render_fb(data, f.handles[0], size[0], fb_flags, height, f.pitches[0]);
>
> 	ret = drmIoctl(data->drm_fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f);
>-	if (data->flags & TEST_BAD_PIXEL_FORMAT) {
>+	if (data->flags & TEST_FAIL_ON_ADDFB2) {
> 		igt_assert_eq(ret, -1);
> 		igt_assert_eq(errno, EINVAL);
> 		return;
>@@ -379,7 +390,7 @@ static void try_config(data_t *data, enum test_fb_flags fb_flags)
> 			    drm_mode->vdisplay, fb_flags);
> 	}
>
>-	if (data->flags & TEST_BAD_PIXEL_FORMAT)
>+	if (data->flags & TEST_FAIL_ON_ADDFB2)
> 		return;
>
> 	igt_plane_set_position(primary, 0, 0);
>@@ -446,7 +457,8 @@ static void test_output(data_t *data)
> 	}
>
> 	if (data->flags & TEST_BAD_PIXEL_FORMAT ||
>-	    data->flags & TEST_BAD_ROTATION_90) {
>+	    data->flags & TEST_BAD_ROTATION_90 ||
>+	    data->flags & TEST_NO_AUX_BUFFER) {
> 		try_config(data, fb_flags | FB_COMPRESSED);
> 	}
>
>@@ -515,6 +527,11 @@ igt_main
> 		}
>
> 		data.plane = NULL;
>+
>+		data.flags = TEST_NO_AUX_BUFFER;
>+		igt_subtest_f("pipe-%s-missing-ccs-buffer", pipe_name)
>+			test_output(&data);
>+
> 	}
>
> 	igt_fixture
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t v4 5/6] tests/kms_ccs: Test case where CCS is on a different BO
  2017-09-27 18:34 ` [PATCH i-g-t v4 5/6] tests/kms_ccs: Test case where CCS is on a different BO Gabriel Krisman Bertazi
  2017-10-03 11:00   ` Arkadiusz Hiler
@ 2017-10-03 16:38   ` Ben Widawsky
  2017-10-09  6:18     ` Gabriel Krisman Bertazi
  1 sibling, 1 reply; 26+ messages in thread
From: Ben Widawsky @ 2017-10-03 16:38 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On 17-09-27 15:34:18, Gabriel Krisman Bertazi wrote:
>Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>

Did someone recommend this test? While we have some hardware limitations on
current generations that make it difficult to use multiple BOs, it's certainly
not impossible, and future HW might make this limitation go away entirely.

I'd be fine if you wanted to use an invalid handle instead of a valid, but
different handle.

>---
> tests/kms_ccs.c | 17 ++++++++++++++---
> 1 file changed, 14 insertions(+), 3 deletions(-)
>
>diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
>index 35dfcca6be14..2d7105eb1323 100644
>--- a/tests/kms_ccs.c
>+++ b/tests/kms_ccs.c
>@@ -34,10 +34,11 @@ enum test_flags {
> 	TEST_BAD_PIXEL_FORMAT		= 1 << 3,
> 	TEST_BAD_ROTATION_90		= 1 << 4,
> 	TEST_NO_AUX_BUFFER		= 1 << 5,
>+	TEST_BAD_CCS_HANDLE		= 1 << 6,
> };
>
> #define TEST_FAIL_ON_ADDFB2 \
>-	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER)
>+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER | TEST_BAD_CCS_HANDLE)
>
> enum test_fb_flags {
> 	FB_COMPRESSED			= 1 << 0,
>@@ -275,6 +276,7 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
> 	unsigned int size[2];
> 	uint64_t modifier;
> 	int ret;
>+	uint32_t ccs_handle;
>
> 	/* Use either compressed or Y-tiled to test. However, given the lack of
> 	 * available bandwidth, we use linear for the primary plane when
>@@ -325,10 +327,15 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
> 		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
>
> 		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
>+		if (data->flags & TEST_BAD_CCS_HANDLE) {
>+			/* Put the CCS buffer on a different BO. */
>+			ccs_handle = gem_create(data->drm_fd, size[0] + size[1]);
>+		} else
>+			ccs_handle = f.handles[0];
>
> 		if (!(data->flags & TEST_NO_AUX_BUFFER)) {
> 			f.modifier[1] = modifier;
>-			f.handles[1] = f.handles[0];
>+			f.handles[1] = ccs_handle;
> 			f.pitches[1] = ccs_pitches;
> 			f.offsets[1] = ccs_offsets;
>
>@@ -458,7 +465,8 @@ static void test_output(data_t *data)
>
> 	if (data->flags & TEST_BAD_PIXEL_FORMAT ||
> 	    data->flags & TEST_BAD_ROTATION_90 ||
>-	    data->flags & TEST_NO_AUX_BUFFER) {
>+	    data->flags & TEST_NO_AUX_BUFFER ||
>+	    data->flags & TEST_BAD_CCS_HANDLE) {
> 		try_config(data, fb_flags | FB_COMPRESSED);
> 	}
>
>@@ -532,6 +540,9 @@ igt_main
> 		igt_subtest_f("pipe-%s-missing-ccs-buffer", pipe_name)
> 			test_output(&data);
>
>+		data.flags = TEST_BAD_CCS_HANDLE;
>+		igt_subtest_f("pipe-%s-ccs-on-another-bo", pipe_name)
>+			test_output(&data);
> 	}
>
> 	igt_fixture
>-- 
>2.11.0
>
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size
  2017-09-27 18:34 ` [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size Gabriel Krisman Bertazi
  2017-10-03 10:57   ` Arkadiusz Hiler
@ 2017-10-03 16:40   ` Ben Widawsky
  2017-10-09  6:03     ` Gabriel Krisman Bertazi
  2017-10-30 16:04     ` Ville Syrjälä
  1 sibling, 2 replies; 26+ messages in thread
From: Ben Widawsky @ 2017-10-03 16:40 UTC (permalink / raw)
  To: Gabriel Krisman Bertazi, Jason Ekstrand
  Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On 17-09-27 15:34:19, Gabriel Krisman Bertazi wrote:
>Two scenarios tested:
>  - unaligned stride
>  - Stride too small
>
>Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>

Jason, could you provide your opinion on this? I've always felt the kernel
interface shouldn't be validating stride at all.

>---
> tests/kms_ccs.c | 23 ++++++++++++++++++++++-
> 1 file changed, 22 insertions(+), 1 deletion(-)
>
>diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
>index 2d7105eb1323..cb6e69c69ae5 100644
>--- a/tests/kms_ccs.c
>+++ b/tests/kms_ccs.c
>@@ -35,14 +35,18 @@ enum test_flags {
> 	TEST_BAD_ROTATION_90		= 1 << 4,
> 	TEST_NO_AUX_BUFFER		= 1 << 5,
> 	TEST_BAD_CCS_HANDLE		= 1 << 6,
>+	TEST_BAD_AUX_STRIDE		= 1 << 7,
> };
>
> #define TEST_FAIL_ON_ADDFB2 \
>-	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER | TEST_BAD_CCS_HANDLE)
>+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER | TEST_BAD_CCS_HANDLE | \
>+	 TEST_BAD_AUX_STRIDE)
>
> enum test_fb_flags {
> 	FB_COMPRESSED			= 1 << 0,
> 	FB_HAS_PLANE			= 1 << 1,
>+	FB_MISALIGN_AUX_STRIDE		= 1 << 2,
>+	FB_SMALL_AUX_STRIDE		= 1 << 3,
> };
>
> typedef struct {
>@@ -324,6 +328,14 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
> 		int ccs_pitches = ALIGN(ccs_width * 1, 128);
> 		int ccs_offsets = size[0];
>
>+		if (fb_flags & FB_MISALIGN_AUX_STRIDE)
>+			ccs_pitches -= 64;
>+		else if (fb_flags & FB_SMALL_AUX_STRIDE) {
>+			igt_skip_on_f(width <= 1024,
>+				      "FB already has the smallest possible stride\n");
>+			ccs_pitches = ALIGN(ccs_width/2, 128);
>+		}
>+
> 		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
>
> 		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
>@@ -470,6 +482,11 @@ static void test_output(data_t *data)
> 		try_config(data, fb_flags | FB_COMPRESSED);
> 	}
>
>+	if (data->flags & TEST_BAD_AUX_STRIDE) {
>+		try_config(data, fb_flags | FB_COMPRESSED | FB_MISALIGN_AUX_STRIDE);
>+		try_config(data, fb_flags | FB_COMPRESSED | FB_SMALL_AUX_STRIDE);
>+	}
>+
> 	primary = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
> 	igt_plane_set_fb(primary, NULL);
> 	igt_plane_set_rotation(primary, IGT_ROTATION_0);
>@@ -543,6 +560,10 @@ igt_main
> 		data.flags = TEST_BAD_CCS_HANDLE;
> 		igt_subtest_f("pipe-%s-ccs-on-another-bo", pipe_name)
> 			test_output(&data);
>+
>+		data.flags = TEST_BAD_AUX_STRIDE;
>+		igt_subtest_f("pipe-%s-bad-aux-stride", pipe_name)
>+			test_output(&data);
> 	}
>
> 	igt_fixture
>-- 
>2.11.0
>
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size
  2017-10-03 16:40   ` Ben Widawsky
@ 2017-10-09  6:03     ` Gabriel Krisman Bertazi
  2017-10-30 16:04     ` Ville Syrjälä
  1 sibling, 0 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-10-09  6:03 UTC (permalink / raw)
  To: Ben Widawsky; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso, daniels

Ben Widawsky <ben@bwidawsk.net> writes:

> On 17-09-27 15:34:19, Gabriel Krisman Bertazi wrote:
>>Two scenarios tested:
>>  - unaligned stride
>>  - Stride too small
>>
>>Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
>
> Jason, could you provide your opinion on this? I've always felt the kernel
> interface shouldn't be validating stride at all.

+daniels.  Can you weight in on this and the other comments?

>
>>---
>> tests/kms_ccs.c | 23 ++++++++++++++++++++++-
>> 1 file changed, 22 insertions(+), 1 deletion(-)
>>
>>diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
>>index 2d7105eb1323..cb6e69c69ae5 100644
>>--- a/tests/kms_ccs.c
>>+++ b/tests/kms_ccs.c
>>@@ -35,14 +35,18 @@ enum test_flags {
>> 	TEST_BAD_ROTATION_90		= 1 << 4,
>> 	TEST_NO_AUX_BUFFER		= 1 << 5,
>> 	TEST_BAD_CCS_HANDLE		= 1 << 6,
>>+	TEST_BAD_AUX_STRIDE		= 1 << 7,
>> };
>>
>> #define TEST_FAIL_ON_ADDFB2 \
>>-	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER | TEST_BAD_CCS_HANDLE)
>>+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER | TEST_BAD_CCS_HANDLE | \
>>+	 TEST_BAD_AUX_STRIDE)
>>
>> enum test_fb_flags {
>> 	FB_COMPRESSED			= 1 << 0,
>> 	FB_HAS_PLANE			= 1 << 1,
>>+	FB_MISALIGN_AUX_STRIDE		= 1 << 2,
>>+	FB_SMALL_AUX_STRIDE		= 1 << 3,
>> };
>>
>> typedef struct {
>>@@ -324,6 +328,14 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
>> 		int ccs_pitches = ALIGN(ccs_width * 1, 128);
>> 		int ccs_offsets = size[0];
>>
>>+		if (fb_flags & FB_MISALIGN_AUX_STRIDE)
>>+			ccs_pitches -= 64;
>>+		else if (fb_flags & FB_SMALL_AUX_STRIDE) {
>>+			igt_skip_on_f(width <= 1024,
>>+				      "FB already has the smallest possible stride\n");
>>+			ccs_pitches = ALIGN(ccs_width/2, 128);
>>+		}
>>+
>> 		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
>>
>> 		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
>>@@ -470,6 +482,11 @@ static void test_output(data_t *data)
>> 		try_config(data, fb_flags | FB_COMPRESSED);
>> 	}
>>
>>+	if (data->flags & TEST_BAD_AUX_STRIDE) {
>>+		try_config(data, fb_flags | FB_COMPRESSED | FB_MISALIGN_AUX_STRIDE);
>>+		try_config(data, fb_flags | FB_COMPRESSED | FB_SMALL_AUX_STRIDE);
>>+	}
>>+
>> 	primary = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
>> 	igt_plane_set_fb(primary, NULL);
>> 	igt_plane_set_rotation(primary, IGT_ROTATION_0);
>>@@ -543,6 +560,10 @@ igt_main
>> 		data.flags = TEST_BAD_CCS_HANDLE;
>> 		igt_subtest_f("pipe-%s-ccs-on-another-bo", pipe_name)
>> 			test_output(&data);
>>+
>>+		data.flags = TEST_BAD_AUX_STRIDE;
>>+		igt_subtest_f("pipe-%s-bad-aux-stride", pipe_name)
>>+			test_output(&data);
>> 	}
>>
>> 	igt_fixture
>> -- 
>>2.11.0
>>
>>_______________________________________________
>>Intel-gfx mailing list
>>Intel-gfx@lists.freedesktop.org
>>https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided
  2017-10-03 16:35   ` Ben Widawsky
@ 2017-10-09  6:14     ` Gabriel Krisman Bertazi
  2017-10-30 16:02     ` Ville Syrjälä
  1 sibling, 0 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-10-09  6:14 UTC (permalink / raw)
  To: Ben Widawsky; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

Ben Widawsky <ben@bwidawsk.net> writes:

> On 17-09-27 15:34:17, Gabriel Krisman Bertazi wrote:
>>Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
>>---
>> tests/kms_ccs.c | 37 +++++++++++++++++++++++++++----------
>> 1 file changed, 27 insertions(+), 10 deletions(-)
>>
>>diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
>>index 73025a1e019f..35dfcca6be14 100644
>>--- a/tests/kms_ccs.c
>>+++ b/tests/kms_ccs.c
>>@@ -33,8 +33,12 @@ enum test_flags {
>> 	TEST_ROTATE_180			= 1 << 2,
>> 	TEST_BAD_PIXEL_FORMAT		= 1 << 3,
>> 	TEST_BAD_ROTATION_90		= 1 << 4,
>>+	TEST_NO_AUX_BUFFER		= 1 << 5,
>> };
>>
>>+#define TEST_FAIL_ON_ADDFB2 \
>>+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER)
>>+
>
> Adding the define confuses things more than it helps IMO.
>
>> enum test_fb_flags {
>> 	FB_COMPRESSED			= 1 << 0,
>> 	FB_HAS_PLANE			= 1 << 1,
>>@@ -315,22 +319,29 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
>> 		 */
>> 		int ccs_width = ALIGN(width * 4, 32) / 32;
>> 		int ccs_height = ALIGN(height, 16) / 16;
>>-		f.pitches[1] = ALIGN(ccs_width * 1, 128);
>>-		f.modifier[1] = modifier;
>
> I think the case you're trying to test should have the modifier set for plane1,
> just no handle, size or whatever. If you don't do this, I'm not sure what you're
> actually testing.

So, if I understood correctly, leaving the modifier unset was requested
by Daniels on a previous review:

https://www.mail-archive.com/intel-gfx@lists.freedesktop.org/msg129817.html

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

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

* Re: [PATCH i-g-t v4 5/6] tests/kms_ccs: Test case where CCS is on a different BO
  2017-10-03 16:38   ` Ben Widawsky
@ 2017-10-09  6:18     ` Gabriel Krisman Bertazi
  0 siblings, 0 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-10-09  6:18 UTC (permalink / raw)
  To: Ben Widawsky; +Cc: daniel.vetter, intel-gfx, daniels, tomeu.vizoso

Ben Widawsky <ben@bwidawsk.net> writes:

> On 17-09-27 15:34:18, Gabriel Krisman Bertazi wrote:
>>Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
>
> Did someone recommend this test? While we have some hardware limitations on
> current generations that make it difficult to use multiple BOs, it's certainly
> not impossible, and future HW might make this limitation go away entirely.
>
> I'd be fine if you wanted to use an invalid handle instead of a valid, but

This came as a suggestion from Daniel Stone.  Daniels, can you also
provide your input on it?

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

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

* Re: [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size
  2017-10-03 10:57   ` Arkadiusz Hiler
@ 2017-10-30 15:59     ` Ville Syrjälä
  0 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjälä @ 2017-10-30 15:59 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On Tue, Oct 03, 2017 at 01:57:13PM +0300, Arkadiusz Hiler wrote:
> On Wed, Sep 27, 2017 at 03:34:19PM -0300, Gabriel Krisman Bertazi wrote:
> > Two scenarios tested:
> >   - unaligned stride
> >   - Stride too small
> > 
> > Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
> 
> Fails on APL
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_260/shard-apl2/igt@kms_ccs@pipe-A-bad-aux-stride.html
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_260/shard-apl8/igt@kms_ccs@pipe-B-bad-aux-stride.html
> 
> Works just fine on KBL though
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_260/shard-kbl1/igt@kms_ccs@pipe-A-bad-aux-stride.html
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_260/shard-kbl1/igt@kms_ccs@pipe-B-bad-aux-stride.html

Looks like the test has the addfb2 vs. render_fb() order wrong. The bad
stride could make render_fb/ccs() do somehting unexpected.

-- 
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] 26+ messages in thread

* Re: [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided
  2017-10-03 16:35   ` Ben Widawsky
  2017-10-09  6:14     ` Gabriel Krisman Bertazi
@ 2017-10-30 16:02     ` Ville Syrjälä
  2017-10-31  1:33       ` Gabriel Krisman Bertazi
  1 sibling, 1 reply; 26+ messages in thread
From: Ville Syrjälä @ 2017-10-30 16:02 UTC (permalink / raw)
  To: Ben Widawsky; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On Tue, Oct 03, 2017 at 09:35:33AM -0700, Ben Widawsky wrote:
> On 17-09-27 15:34:17, Gabriel Krisman Bertazi wrote:
> >Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
> >---
> > tests/kms_ccs.c | 37 +++++++++++++++++++++++++++----------
> > 1 file changed, 27 insertions(+), 10 deletions(-)
> >
> >diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
> >index 73025a1e019f..35dfcca6be14 100644
> >--- a/tests/kms_ccs.c
> >+++ b/tests/kms_ccs.c
> >@@ -33,8 +33,12 @@ enum test_flags {
> > 	TEST_ROTATE_180			= 1 << 2,
> > 	TEST_BAD_PIXEL_FORMAT		= 1 << 3,
> > 	TEST_BAD_ROTATION_90		= 1 << 4,
> >+	TEST_NO_AUX_BUFFER		= 1 << 5,
> > };
> >
> >+#define TEST_FAIL_ON_ADDFB2 \
> >+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER)
> >+
> 
> Adding the define confuses things more than it helps IMO.
> 
> > enum test_fb_flags {
> > 	FB_COMPRESSED			= 1 << 0,
> > 	FB_HAS_PLANE			= 1 << 1,
> >@@ -315,22 +319,29 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
> > 		 */
> > 		int ccs_width = ALIGN(width * 4, 32) / 32;
> > 		int ccs_height = ALIGN(height, 16) / 16;
> >-		f.pitches[1] = ALIGN(ccs_width * 1, 128);
> >-		f.modifier[1] = modifier;
> 
> I think the case you're trying to test should have the modifier set for plane1,
> just no handle, size or whatever. If you don't do this, I'm not sure what you're
> actually testing.

Hmm. I suppose we migth end up testing bad stride here. I can't
recall exactly in which order the kernel checks these. So just
setting 'handle[1] = 0' might be what we want to test here.
And then we may want a 'pitches[1] = 0' test as well in the bad stride
tests.

> 
> >-		f.offsets[1] = size[0];
> >-		size[1] = f.pitches[1] * ALIGN(ccs_height, 32);
> >+		int ccs_pitches = ALIGN(ccs_width * 1, 128);
> >+		int ccs_offsets = size[0];
> >+
> >+		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
> >
> > 		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
> >-		f.handles[1] = f.handles[0];
> >-		render_ccs(data, f.handles[1], f.offsets[1], size[1],
> >-			   height, f.pitches[1]);
> >+
> >+		if (!(data->flags & TEST_NO_AUX_BUFFER)) {
> >+			f.modifier[1] = modifier;
> >+			f.handles[1] = f.handles[0];
> >+			f.pitches[1] = ccs_pitches;
> >+			f.offsets[1] = ccs_offsets;
> >+
> >+			render_ccs(data, f.handles[1], f.offsets[1], size[1],
> >+				   height, f.pitches[1]);
> >+		}
> > 	} else
> > 		f.handles[0] = gem_create(data->drm_fd, size[0]);
> >
> > 	render_fb(data, f.handles[0], size[0], fb_flags, height, f.pitches[0]);
> >
> > 	ret = drmIoctl(data->drm_fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f);
> >-	if (data->flags & TEST_BAD_PIXEL_FORMAT) {
> >+	if (data->flags & TEST_FAIL_ON_ADDFB2) {
> > 		igt_assert_eq(ret, -1);
> > 		igt_assert_eq(errno, EINVAL);
> > 		return;
> >@@ -379,7 +390,7 @@ static void try_config(data_t *data, enum test_fb_flags fb_flags)
> > 			    drm_mode->vdisplay, fb_flags);
> > 	}
> >
> >-	if (data->flags & TEST_BAD_PIXEL_FORMAT)
> >+	if (data->flags & TEST_FAIL_ON_ADDFB2)
> > 		return;
> >
> > 	igt_plane_set_position(primary, 0, 0);
> >@@ -446,7 +457,8 @@ static void test_output(data_t *data)
> > 	}
> >
> > 	if (data->flags & TEST_BAD_PIXEL_FORMAT ||
> >-	    data->flags & TEST_BAD_ROTATION_90) {
> >+	    data->flags & TEST_BAD_ROTATION_90 ||
> >+	    data->flags & TEST_NO_AUX_BUFFER) {
> > 		try_config(data, fb_flags | FB_COMPRESSED);
> > 	}
> >
> >@@ -515,6 +527,11 @@ igt_main
> > 		}
> >
> > 		data.plane = NULL;
> >+
> >+		data.flags = TEST_NO_AUX_BUFFER;
> >+		igt_subtest_f("pipe-%s-missing-ccs-buffer", pipe_name)
> >+			test_output(&data);
> >+
> > 	}
> >
> > 	igt_fixture
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
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] 26+ messages in thread

* Re: [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size
  2017-10-03 16:40   ` Ben Widawsky
  2017-10-09  6:03     ` Gabriel Krisman Bertazi
@ 2017-10-30 16:04     ` Ville Syrjälä
  1 sibling, 0 replies; 26+ messages in thread
From: Ville Syrjälä @ 2017-10-30 16:04 UTC (permalink / raw)
  To: Ben Widawsky; +Cc: daniel.vetter, intel-gfx, tomeu.vizoso

On Tue, Oct 03, 2017 at 09:40:59AM -0700, Ben Widawsky wrote:
> On 17-09-27 15:34:19, Gabriel Krisman Bertazi wrote:
> >Two scenarios tested:
> >  - unaligned stride
> >  - Stride too small
> >
> >Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
> 
> Jason, could you provide your opinion on this? I've always felt the kernel
> interface shouldn't be validating stride at all.

I don't recall how the hardware reacts to a bogus CCS stride. In general
the SKL display engine is very sensitive and the slightest mistake might
end up hard hanging the box, so checking seems like the safer option.

> 
> >---
> > tests/kms_ccs.c | 23 ++++++++++++++++++++++-
> > 1 file changed, 22 insertions(+), 1 deletion(-)
> >
> >diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
> >index 2d7105eb1323..cb6e69c69ae5 100644
> >--- a/tests/kms_ccs.c
> >+++ b/tests/kms_ccs.c
> >@@ -35,14 +35,18 @@ enum test_flags {
> > 	TEST_BAD_ROTATION_90		= 1 << 4,
> > 	TEST_NO_AUX_BUFFER		= 1 << 5,
> > 	TEST_BAD_CCS_HANDLE		= 1 << 6,
> >+	TEST_BAD_AUX_STRIDE		= 1 << 7,
> > };
> >
> > #define TEST_FAIL_ON_ADDFB2 \
> >-	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER | TEST_BAD_CCS_HANDLE)
> >+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER | TEST_BAD_CCS_HANDLE | \
> >+	 TEST_BAD_AUX_STRIDE)
> >
> > enum test_fb_flags {
> > 	FB_COMPRESSED			= 1 << 0,
> > 	FB_HAS_PLANE			= 1 << 1,
> >+	FB_MISALIGN_AUX_STRIDE		= 1 << 2,
> >+	FB_SMALL_AUX_STRIDE		= 1 << 3,
> > };
> >
> > typedef struct {
> >@@ -324,6 +328,14 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
> > 		int ccs_pitches = ALIGN(ccs_width * 1, 128);
> > 		int ccs_offsets = size[0];
> >
> >+		if (fb_flags & FB_MISALIGN_AUX_STRIDE)
> >+			ccs_pitches -= 64;
> >+		else if (fb_flags & FB_SMALL_AUX_STRIDE) {
> >+			igt_skip_on_f(width <= 1024,
> >+				      "FB already has the smallest possible stride\n");
> >+			ccs_pitches = ALIGN(ccs_width/2, 128);
> >+		}
> >+
> > 		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
> >
> > 		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
> >@@ -470,6 +482,11 @@ static void test_output(data_t *data)
> > 		try_config(data, fb_flags | FB_COMPRESSED);
> > 	}
> >
> >+	if (data->flags & TEST_BAD_AUX_STRIDE) {
> >+		try_config(data, fb_flags | FB_COMPRESSED | FB_MISALIGN_AUX_STRIDE);
> >+		try_config(data, fb_flags | FB_COMPRESSED | FB_SMALL_AUX_STRIDE);
> >+	}
> >+
> > 	primary = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
> > 	igt_plane_set_fb(primary, NULL);
> > 	igt_plane_set_rotation(primary, IGT_ROTATION_0);
> >@@ -543,6 +560,10 @@ igt_main
> > 		data.flags = TEST_BAD_CCS_HANDLE;
> > 		igt_subtest_f("pipe-%s-ccs-on-another-bo", pipe_name)
> > 			test_output(&data);
> >+
> >+		data.flags = TEST_BAD_AUX_STRIDE;
> >+		igt_subtest_f("pipe-%s-bad-aux-stride", pipe_name)
> >+			test_output(&data);
> > 	}
> >
> > 	igt_fixture
> >-- 
> >2.11.0
> >
> >_______________________________________________
> >Intel-gfx mailing list
> >Intel-gfx@lists.freedesktop.org
> >https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
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] 26+ messages in thread

* Re: [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided
  2017-10-30 16:02     ` Ville Syrjälä
@ 2017-10-31  1:33       ` Gabriel Krisman Bertazi
  0 siblings, 0 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-10-31  1:33 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: daniel.vetter, Ben Widawsky, intel-gfx, tomeu.vizoso

Ville Syrjälä <ville.syrjala@linux.intel.com> writes:

> On Tue, Oct 03, 2017 at 09:35:33AM -0700, Ben Widawsky wrote:
>> On 17-09-27 15:34:17, Gabriel Krisman Bertazi wrote:
>> >Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
>> >---
>> > tests/kms_ccs.c | 37 +++++++++++++++++++++++++++----------
>> > 1 file changed, 27 insertions(+), 10 deletions(-)
>> >
>> >diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
>> >index 73025a1e019f..35dfcca6be14 100644
>> >--- a/tests/kms_ccs.c
>> >+++ b/tests/kms_ccs.c
>> >@@ -33,8 +33,12 @@ enum test_flags {
>> > 	TEST_ROTATE_180			= 1 << 2,
>> > 	TEST_BAD_PIXEL_FORMAT		= 1 << 3,
>> > 	TEST_BAD_ROTATION_90		= 1 << 4,
>> >+	TEST_NO_AUX_BUFFER		= 1 << 5,
>> > };
>> >
>> >+#define TEST_FAIL_ON_ADDFB2 \
>> >+	(TEST_BAD_PIXEL_FORMAT | TEST_NO_AUX_BUFFER)
>> >+
>> 
>> Adding the define confuses things more than it helps IMO.
>> 
>> > enum test_fb_flags {
>> > 	FB_COMPRESSED			= 1 << 0,
>> > 	FB_HAS_PLANE			= 1 << 1,
>> >@@ -315,22 +319,29 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
>> > 		 */
>> > 		int ccs_width = ALIGN(width * 4, 32) / 32;
>> > 		int ccs_height = ALIGN(height, 16) / 16;
>> >-		f.pitches[1] = ALIGN(ccs_width * 1, 128);
>> >-		f.modifier[1] = modifier;
>> 
>> I think the case you're trying to test should have the modifier set for plane1,
>> just no handle, size or whatever. If you don't do this, I'm not sure what you're
>> actually testing.
>
> Hmm. I suppose we migth end up testing bad stride here. I can't
> recall exactly in which order the kernel checks these. So just
> setting 'handle[1] = 0' might be what we want to test here.

My test makes the kernel error out with:

[23303.475286] [drm:drm_internal_framebuffer_create] no buffer object
handle for plane 1

Which I think is the right one.


> And then we may want a 'pitches[1] = 0' test as well in the bad stride
> tests.

Sure, I can add that.

>
>> 
>> >-		f.offsets[1] = size[0];
>> >-		size[1] = f.pitches[1] * ALIGN(ccs_height, 32);
>> >+		int ccs_pitches = ALIGN(ccs_width * 1, 128);
>> >+		int ccs_offsets = size[0];
>> >+
>> >+		size[1] = ccs_pitches * ALIGN(ccs_height, 32);
>> >
>> > 		f.handles[0] = gem_create(data->drm_fd, size[0] + size[1]);
>> >-		f.handles[1] = f.handles[0];
>> >-		render_ccs(data, f.handles[1], f.offsets[1], size[1],
>> >-			   height, f.pitches[1]);
>> >+
>> >+		if (!(data->flags & TEST_NO_AUX_BUFFER)) {
>> >+			f.modifier[1] = modifier;
>> >+			f.handles[1] = f.handles[0];
>> >+			f.pitches[1] = ccs_pitches;
>> >+			f.offsets[1] = ccs_offsets;
>> >+
>> >+			render_ccs(data, f.handles[1], f.offsets[1], size[1],
>> >+				   height, f.pitches[1]);
>> >+		}
>> > 	} else
>> > 		f.handles[0] = gem_create(data->drm_fd, size[0]);
>> >
>> > 	render_fb(data, f.handles[0], size[0], fb_flags, height, f.pitches[0]);
>> >
>> > 	ret = drmIoctl(data->drm_fd, LOCAL_DRM_IOCTL_MODE_ADDFB2, &f);
>> >-	if (data->flags & TEST_BAD_PIXEL_FORMAT) {
>> >+	if (data->flags & TEST_FAIL_ON_ADDFB2) {
>> > 		igt_assert_eq(ret, -1);
>> > 		igt_assert_eq(errno, EINVAL);
>> > 		return;
>> >@@ -379,7 +390,7 @@ static void try_config(data_t *data, enum test_fb_flags fb_flags)
>> > 			    drm_mode->vdisplay, fb_flags);
>> > 	}
>> >
>> >-	if (data->flags & TEST_BAD_PIXEL_FORMAT)
>> >+	if (data->flags & TEST_FAIL_ON_ADDFB2)
>> > 		return;
>> >
>> > 	igt_plane_set_position(primary, 0, 0);
>> >@@ -446,7 +457,8 @@ static void test_output(data_t *data)
>> > 	}
>> >
>> > 	if (data->flags & TEST_BAD_PIXEL_FORMAT ||
>> >-	    data->flags & TEST_BAD_ROTATION_90) {
>> >+	    data->flags & TEST_BAD_ROTATION_90 ||
>> >+	    data->flags & TEST_NO_AUX_BUFFER) {
>> > 		try_config(data, fb_flags | FB_COMPRESSED);
>> > 	}
>> >
>> >@@ -515,6 +527,11 @@ igt_main
>> > 		}
>> >
>> > 		data.plane = NULL;
>> >+
>> >+		data.flags = TEST_NO_AUX_BUFFER;
>> >+		igt_subtest_f("pipe-%s-missing-ccs-buffer", pipe_name)
>> >+			test_output(&data);
>> >+
>> > 	}
>> >
>> > 	igt_fixture
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

end of thread, other threads:[~2017-10-31  1:33 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-27 18:34 [PATCH i-g-t v4 1/6] tests/kms_ccs: Test pipes other than pipe A Gabriel Krisman Bertazi
2017-09-27 18:34 ` [PATCH i-g-t v4 2/6] lib/igt_kms: Fix off-by-one bug on skip of missing pipe Gabriel Krisman Bertazi
2017-09-28  8:33   ` Petri Latvala
2017-09-27 18:34 ` [PATCH i-g-t v4 3/6] tests/kms_ccs: Prevent segfault if pipe is not supported Gabriel Krisman Bertazi
2017-10-03 10:49   ` Arkadiusz Hiler
2017-10-03 16:07   ` Ben Widawsky
2017-09-27 18:34 ` [PATCH i-g-t v4 4/6] tests/kms_ccs: Test case where the CCS buffer was not provided Gabriel Krisman Bertazi
2017-10-03 11:32   ` Arkadiusz Hiler
2017-10-03 16:35   ` Ben Widawsky
2017-10-09  6:14     ` Gabriel Krisman Bertazi
2017-10-30 16:02     ` Ville Syrjälä
2017-10-31  1:33       ` Gabriel Krisman Bertazi
2017-09-27 18:34 ` [PATCH i-g-t v4 5/6] tests/kms_ccs: Test case where CCS is on a different BO Gabriel Krisman Bertazi
2017-10-03 11:00   ` Arkadiusz Hiler
2017-10-03 16:38   ` Ben Widawsky
2017-10-09  6:18     ` Gabriel Krisman Bertazi
2017-09-27 18:34 ` [PATCH i-g-t v4 6/6] tests/kms_ccs: Test case for wrong aux buffer stride size Gabriel Krisman Bertazi
2017-10-03 10:57   ` Arkadiusz Hiler
2017-10-30 15:59     ` Ville Syrjälä
2017-10-03 16:40   ` Ben Widawsky
2017-10-09  6:03     ` Gabriel Krisman Bertazi
2017-10-30 16:04     ` Ville Syrjälä
2017-09-27 18:58 ` ✓ Fi.CI.BAT: success for series starting with [v4,1/6] tests/kms_ccs: Test pipes other than pipe A Patchwork
2017-09-27 23:42 ` ✗ Fi.CI.IGT: failure " Patchwork
2017-09-28 16:06 ` Patchwork
2017-10-03 10:44 ` [PATCH i-g-t v4 1/6] " Arkadiusz Hiler

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.