summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBrad Volkin <bradley.d.volkin@intel.com>2014-03-27 11:44:45 -0700
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-04-09 14:25:17 +0200
commitf74c443925578b377c47d655a2d864b8ed521330 (patch)
treebc3bcc7cf646d9d962531cbd19e8e70700144a58 /tests
parent9eec5b0f11d864c986511db07d447e379bcef696 (diff)
tests/gem_exec_parse: Test for OACONTROL tracking
Signed-off-by: Brad Volkin <bradley.d.volkin@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tests')
-rw-r--r--tests/gem_exec_parse.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/gem_exec_parse.c b/tests/gem_exec_parse.c
index eb489634..35d579d6 100644
--- a/tests/gem_exec_parse.c
+++ b/tests/gem_exec_parse.c
@@ -205,6 +205,8 @@ int fd;
#define PIPE_CONTROL_QW_WRITE (1<<14)
#define PIPE_CONTROL_LRI_POST_OP (1<<23)
+#define OACONTROL 0x2360
+
igt_main
{
igt_fixture {
@@ -341,6 +343,52 @@ igt_main
0));
}
+ igt_subtest("oacontrol-tracking") {
+ uint32_t lri_ok[] = {
+ MI_LOAD_REGISTER_IMM,
+ OACONTROL,
+ 0x31337000,
+ MI_LOAD_REGISTER_IMM,
+ OACONTROL,
+ 0x0,
+ MI_BATCH_BUFFER_END,
+ 0
+ };
+ uint32_t lri_bad[] = {
+ MI_LOAD_REGISTER_IMM,
+ OACONTROL,
+ 0x31337000,
+ MI_BATCH_BUFFER_END,
+ };
+ uint32_t lri_extra_bad[] = {
+ MI_LOAD_REGISTER_IMM,
+ OACONTROL,
+ 0x31337000,
+ MI_LOAD_REGISTER_IMM,
+ OACONTROL,
+ 0x0,
+ MI_LOAD_REGISTER_IMM,
+ OACONTROL,
+ 0x31337000,
+ MI_BATCH_BUFFER_END,
+ };
+ igt_assert(
+ exec_batch(fd, handle,
+ lri_ok, sizeof(lri_ok),
+ I915_EXEC_RENDER,
+ 0));
+ igt_assert(
+ exec_batch(fd, handle,
+ lri_bad, sizeof(lri_bad),
+ I915_EXEC_RENDER,
+ -EINVAL));
+ igt_assert(
+ exec_batch(fd, handle,
+ lri_extra_bad, sizeof(lri_extra_bad),
+ I915_EXEC_RENDER,
+ -EINVAL));
+ }
+
igt_fixture {
gem_close(fd, handle);