* [PATCH i-g-t 1/2] tests/kms_rotation_crc: exercise invalid rotations
@ 2016-03-16 17:04 Matthew Auld
2016-03-16 17:04 ` [PATCH i-g-t 2/2] tests/kms_rotation_crc: add 90/270 X-tiled tests Matthew Auld
2016-03-22 14:18 ` [PATCH i-g-t 1/2] tests/kms_rotation_crc: exercise invalid rotations Matthew Auld
0 siblings, 2 replies; 3+ messages in thread
From: Matthew Auld @ 2016-03-16 17:04 UTC (permalink / raw)
To: intel-gfx
Add expect-to-fail tests for invalid rotations on each of the plane types.
v2:
(Ville Syrjälä)
- use igt_create_fb
- y-tiled will be rejected by gen < 9
- don't hardcode all the plane rotation failure combinations
v3:
- use valid pixel format for cursor plane
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
---
tests/kms_rotation_crc.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 80 insertions(+)
diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index f94f8f1..bd9ab7b 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -479,6 +479,74 @@ err_commit:
igt_assert(ret == 0);
}
+static void exhaust_invalid_plane_rotations(data_t *data, enum igt_plane plane_type)
+{
+ igt_display_t *display = &data->display;
+ int fd = data->gfx_fd, fb_id;
+ uint64_t tiling;
+ uint32_t pixel_format = DRM_FORMAT_XRGB8888;
+ enum igt_commit_style commit = COMMIT_LEGACY;
+ igt_output_t *output = &display->outputs[0];
+ igt_plane_t *plane;
+ drmModeModeInfo *mode;
+ drmModePropertyPtr prop;
+ uint64_t supported_plane_rotations = 0, rotation = IGT_ROTATION_0;
+ int ret, i;
+
+ if (intel_gen(intel_get_drm_devid(fd)) >= 9)
+ tiling = LOCAL_I915_FORMAT_MOD_Y_TILED;
+ else
+ tiling = LOCAL_I915_FORMAT_MOD_X_TILED;
+
+ if (plane_type == IGT_PLANE_PRIMARY || plane_type == IGT_PLANE_CURSOR) {
+ igt_require(data->display.has_universal_planes);
+ commit = COMMIT_UNIVERSAL;
+ }
+
+ if (plane_type == IGT_PLANE_CURSOR)
+ pixel_format = DRM_FORMAT_ARGB8888;
+
+ igt_require(output != NULL && output->valid == true);
+
+ plane = igt_output_get_plane(output, plane_type);
+ igt_require(igt_plane_supports_rotation(plane));
+
+ mode = igt_output_get_mode(output);
+
+ fb_id = igt_create_fb(fd, mode->hdisplay, mode->vdisplay, pixel_format,
+ tiling, &data->fb);
+ igt_assert(fb_id);
+
+ igt_plane_set_fb(plane, NULL);
+ igt_display_commit(display);
+
+ igt_plane_set_fb(plane, &data->fb);
+
+ kmstest_get_property(fd, plane->drm_plane->plane_id, DRM_MODE_OBJECT_PLANE,
+ "rotation", NULL, NULL, &prop);
+
+ for (i = 0; i < prop->count_enums; ++i)
+ supported_plane_rotations |= (1ULL << prop->enums[i].value);
+
+ for (i = 1; i <= 4; i++) {
+ if (!(rotation & supported_plane_rotations)) {
+ igt_plane_set_rotation(plane, rotation);
+
+ ret = igt_display_try_commit2(display, commit);
+ if (ret != -EINVAL)
+ goto err_commit;
+
+ }
+ rotation <<= 1;
+ }
+
+err_commit:
+ igt_remove_fb(fd, &data->fb);
+ kmstest_restore_vt_mode();
+
+ igt_assert_eq(ret, -EINVAL);
+}
+
igt_main
{
data_t data = {};
@@ -579,6 +647,18 @@ igt_main
test_plane_rotation_exhaust_fences(&data, IGT_PLANE_PRIMARY);
}
+ igt_subtest_f("primary-rotations-invalid") {
+ exhaust_invalid_plane_rotations(&data, IGT_PLANE_PRIMARY);
+ }
+
+ igt_subtest_f("sprite-rotations-invalid") {
+ exhaust_invalid_plane_rotations(&data, IGT_PLANE_2);
+ }
+
+ igt_subtest_f("cursor-rotations-invalid") {
+ exhaust_invalid_plane_rotations(&data, IGT_PLANE_CURSOR);
+ }
+
igt_fixture {
igt_display_fini(&data.display);
}
--
2.4.3
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH i-g-t 2/2] tests/kms_rotation_crc: add 90/270 X-tiled tests
2016-03-16 17:04 [PATCH i-g-t 1/2] tests/kms_rotation_crc: exercise invalid rotations Matthew Auld
@ 2016-03-16 17:04 ` Matthew Auld
2016-03-22 14:18 ` [PATCH i-g-t 1/2] tests/kms_rotation_crc: exercise invalid rotations Matthew Auld
1 sibling, 0 replies; 3+ messages in thread
From: Matthew Auld @ 2016-03-16 17:04 UTC (permalink / raw)
To: intel-gfx
As suggested by Ville Syrjälä, add expect-to-fail tests for X-tiled
90/270 rotations on gen >= 9
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
---
tests/kms_rotation_crc.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index bd9ab7b..eb08543 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -547,6 +547,48 @@ err_commit:
igt_assert_eq(ret, -EINVAL);
}
+static void test_plane_rotation_xtiled_invalid(data_t *data, enum igt_plane plane_type)
+{
+ igt_display_t *display = &data->display;
+ int fd = data->gfx_fd, fb_id;
+ uint64_t tiling = LOCAL_I915_FORMAT_MOD_X_TILED;
+ uint32_t pixel_format = DRM_FORMAT_XRGB8888;
+ enum igt_commit_style commit = COMMIT_LEGACY;
+ igt_output_t *output = &display->outputs[0];
+ igt_plane_t *plane;
+ drmModeModeInfo *mode;
+ int ret;
+
+ if (plane_type == IGT_PLANE_PRIMARY || plane_type == IGT_PLANE_CURSOR) {
+ igt_require(data->display.has_universal_planes);
+ commit = COMMIT_UNIVERSAL;
+ }
+
+ igt_require(output != NULL && output->valid == true);
+
+ plane = igt_output_get_plane(output, plane_type);
+ igt_require(igt_plane_supports_rotation(plane));
+
+ mode = igt_output_get_mode(output);
+
+ fb_id = igt_create_fb(fd, mode->hdisplay, mode->vdisplay, pixel_format,
+ tiling, &data->fb);
+ igt_assert(fb_id);
+
+ igt_plane_set_fb(plane, NULL);
+ igt_display_commit(display);
+
+ igt_plane_set_fb(plane, &data->fb);
+
+ igt_plane_set_rotation(plane, data->rotation);
+ ret = igt_display_try_commit2(display, commit);
+
+ igt_remove_fb(fd, &data->fb);
+ kmstest_restore_vt_mode();
+
+ igt_assert_eq(ret, -EINVAL);
+}
+
igt_main
{
data_t data = {};
@@ -642,6 +684,18 @@ igt_main
test_plane_rotation_ytiled_obj(&data, IGT_PLANE_PRIMARY);
}
+ igt_subtest_f("primary-rotation-90-X-tiled-invalid") {
+ igt_require(gen >= 9);
+ data.rotation = IGT_ROTATION_90;
+ test_plane_rotation_xtiled_invalid(&data, IGT_PLANE_PRIMARY);
+ }
+
+ igt_subtest_f("primary-rotation-270-X-tiled-invalid") {
+ igt_require(gen >= 9);
+ data.rotation = IGT_ROTATION_270;
+ test_plane_rotation_xtiled_invalid(&data, IGT_PLANE_PRIMARY);
+ }
+
igt_subtest_f("exhaust-fences") {
igt_require(gen >= 9);
test_plane_rotation_exhaust_fences(&data, IGT_PLANE_PRIMARY);
--
2.4.3
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH i-g-t 1/2] tests/kms_rotation_crc: exercise invalid rotations
2016-03-16 17:04 [PATCH i-g-t 1/2] tests/kms_rotation_crc: exercise invalid rotations Matthew Auld
2016-03-16 17:04 ` [PATCH i-g-t 2/2] tests/kms_rotation_crc: add 90/270 X-tiled tests Matthew Auld
@ 2016-03-22 14:18 ` Matthew Auld
1 sibling, 0 replies; 3+ messages in thread
From: Matthew Auld @ 2016-03-22 14:18 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
Hi Ville,
Is this what you had in mind for patches 1-2?
Regards,
Matt
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-03-22 14:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-16 17:04 [PATCH i-g-t 1/2] tests/kms_rotation_crc: exercise invalid rotations Matthew Auld
2016-03-16 17:04 ` [PATCH i-g-t 2/2] tests/kms_rotation_crc: add 90/270 X-tiled tests Matthew Auld
2016-03-22 14:18 ` [PATCH i-g-t 1/2] tests/kms_rotation_crc: exercise invalid rotations Matthew Auld
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.