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 <[email protected]>
Reviewed-by: Matthew Auld <[email protected]>
---
 tests/gem_exec_parse.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/tests/gem_exec_parse.c b/tests/gem_exec_parse.c
index 5c67e12..2bc6340 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);
-- 
2.10.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to