summaryrefslogtreecommitdiff
path: root/tests/kms_flip_tiling.c
diff options
context:
space:
mode:
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>2015-03-03 14:11:06 +0000
committerDamien Lespiau <damien.lespiau@intel.com>2015-03-12 14:24:27 +0000
commitb1177831abedbf7dac323c6e67c2ec7c56c88009 (patch)
tree616fb7eb37839bde1e7075d4f4e62d97af4c2981 /tests/kms_flip_tiling.c
parent7b8ba120b956e706f2cdea831233973f0ee079fa (diff)
tests/kms_flip_tiling: Exercise Y tiling modes on Gen9+
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Diffstat (limited to 'tests/kms_flip_tiling.c')
-rw-r--r--tests/kms_flip_tiling.c28
1 files changed, 25 insertions, 3 deletions
diff --git a/tests/kms_flip_tiling.c b/tests/kms_flip_tiling.c
index 7d6998b0..3181260e 100644
--- a/tests/kms_flip_tiling.c
+++ b/tests/kms_flip_tiling.c
@@ -33,6 +33,7 @@
#include "igt_debugfs.h"
#include "igt_kms.h"
#include "ioctl_wrappers.h"
+#include "intel_chipset.h"
IGT_TEST_DESCRIPTION("Test that a page flip from a tiled buffer to a linear"
" one works correctly.");
@@ -40,6 +41,7 @@ IGT_TEST_DESCRIPTION("Test that a page flip from a tiled buffer to a linear"
typedef struct {
int drm_fd;
igt_display_t display;
+ int gen;
} data_t;
/*
@@ -61,7 +63,7 @@ fill_linear_fb(struct igt_fb *fb, data_t *data, drmModeModeInfo *mode)
}
static void
-test_flip_changes_tiling(data_t *data, igt_output_t *output)
+test_flip_changes_tiling(data_t *data, igt_output_t *output, uint64_t tiling)
{
struct igt_fb linear, tiled;
drmModeModeInfo *mode;
@@ -97,7 +99,7 @@ test_flip_changes_tiling(data_t *data, igt_output_t *output)
/* allocate a tiled buffer and set the crtc with it */
igt_create_color_fb(data->drm_fd, width, mode->vdisplay,
- DRM_FORMAT_XRGB8888, LOCAL_I915_FORMAT_MOD_X_TILED,
+ DRM_FORMAT_XRGB8888, tiling,
0.0, 0.0, 0.0, &tiled);
igt_plane_set_fb(primary, &tiled);
igt_display_commit(&data->display);
@@ -132,6 +134,7 @@ igt_main
igt_fixture {
data.drm_fd = drm_open_any_master();
+ data.gen = intel_gen(intel_get_drm_devid(data.drm_fd));
kmstest_set_vt_graphics_mode();
@@ -141,7 +144,26 @@ igt_main
igt_subtest_f("flip-changes-tiling") {
for_each_connected_output(&data.display, output)
- test_flip_changes_tiling(&data, output);
+ test_flip_changes_tiling(&data, output,
+ LOCAL_I915_FORMAT_MOD_X_TILED);
+ }
+
+ igt_subtest_f("flip-changes-tiling-Y") {
+ igt_require_fb_modifiers(data.drm_fd);
+ igt_require(data.gen >= 9);
+
+ for_each_connected_output(&data.display, output)
+ test_flip_changes_tiling(&data, output,
+ LOCAL_I915_FORMAT_MOD_Y_TILED);
+ }
+
+ igt_subtest_f("flip-changes-tiling-Yf") {
+ igt_require_fb_modifiers(data.drm_fd);
+ igt_require(data.gen >= 9);
+
+ for_each_connected_output(&data.display, output)
+ test_flip_changes_tiling(&data, output,
+ LOCAL_I915_FORMAT_MOD_Yf_TILED);
}
igt_fixture {