diff options
author | Robert Bragg <robert@sixbynine.org> | 2016-11-08 22:52:22 +0000 |
---|---|---|
committer | Robert Bragg <robert@sixbynine.org> | 2016-11-17 13:06:06 +0000 |
commit | 9dd41d64fd49c1738059524625fc02e2de384798 (patch) | |
tree | be235fe3008165483ff7c6d5fce5ba7a5ccc3cb0 /tests/gem_exec_parse.c | |
parent | 3a43ceb0a14bb09b0813564ad686b9b1ee869726 (diff) |
igt/gem_exec_parse: update hsw_load_register_reg for v >= 8
This updates the checking of disallowed loads to set a distinguishable
value before the load and explicitly check the load was a NOOP by
reading back the final value.
Signed-off-by: Robert Bragg <robert@sixbynine.org>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Diffstat (limited to 'tests/gem_exec_parse.c')
-rw-r--r-- | tests/gem_exec_parse.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/gem_exec_parse.c b/tests/gem_exec_parse.c index 5c67e12c..2bc63407 100644 --- a/tests/gem_exec_parse.c +++ b/tests/gem_exec_parse.c @@ -341,6 +341,7 @@ static void hsw_load_register_reg(void) }; int fd; uint32_t handle; + int bad_lrr_errno = parser_version >= 8 ? 0 : -EINVAL; /* Open again to get a non-master file descriptor */ fd = drm_open_driver(DRIVER_INTEL); @@ -371,10 +372,21 @@ static void hsw_load_register_reg(void) } for (int i = 0 ; i < ARRAY_SIZE(disallowed_regs); i++) { + exec_batch(fd, handle, init_gpr0, sizeof(init_gpr0), + I915_EXEC_RENDER, + 0); + exec_batch_patched(fd, handle, + store_gpr0, sizeof(store_gpr0), + 2 * sizeof(uint32_t), /* reloc */ + 0xabcdabc0); do_lrr[1] = disallowed_regs[i]; exec_batch(fd, handle, do_lrr, sizeof(do_lrr), I915_EXEC_RENDER, - -EINVAL); + bad_lrr_errno); + exec_batch_patched(fd, handle, + store_gpr0, sizeof(store_gpr0), + 2 * sizeof(uint32_t), /* reloc */ + 0xabcdabc0); } close(fd); |