Ben Widawsky <ben@xxxxxxxxxxxx> 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@xxxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxxxxxxxxx >>https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Gabriel Krisman Bertazi _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx