diff --git a/tests/gem_cs_prefetch.c b/tests/gem_cs_prefetch.c index 72c9c13d..2cd565aa 100644 --- a/tests/gem_cs_prefetch.c +++ b/tests/gem_cs_prefetch.c @@ -45,10 +45,10 @@ struct shadow { uint32_t handle; struct drm_i915_gem_relocation_entry reloc; }; +int gen; static void setup(int fd, struct shadow *shadow) { - int gen = intel_gen(intel_get_drm_devid(fd)); uint32_t *cpu; int i = 0; @@ -66,6 +66,7 @@ static void setup(int fd, struct shadow *shadow) cpu[i++] = BATCH_SIZE - sizeof(uint32_t); } else { cpu[i-1]--; + cpu[i-1] |= 1 << 22; cpu[i++] = BATCH_SIZE - sizeof(uint32_t); } cpu[i++] = MI_BATCH_BUFFER_END; @@ -98,6 +99,8 @@ static uint32_t new_batch(int fd, struct shadow *shadow) memset(&execbuf, 0, sizeof(execbuf)); execbuf.buffers_ptr = (uintptr_t)gem_exec; execbuf.buffer_count = 2; + if (gen < 4) + execbuf.flags |= I915_EXEC_SECURE; gem_execbuf(fd, &execbuf); @@ -129,7 +132,8 @@ igt_simple_main igt_skip_on_simulation(); - fd = drm_open_driver(DRIVER_INTEL); + fd = drm_open_driver_master(DRIVER_INTEL); + gen = intel_gen(intel_get_drm_devid(fd)); setup(fd, &shadow); count = gem_aperture_size(fd) / BATCH_SIZE; diff --git a/tests/gem_ringfill.c b/tests/gem_ringfill.c index bceea9fd..345e9920 100644 --- a/tests/gem_ringfill.c +++ b/tests/gem_ringfill.c @@ -100,6 +100,8 @@ static void run_test(int fd, unsigned ring, unsigned flags) execbuf.buffers_ptr = (uintptr_t)obj; execbuf.buffer_count = 2; execbuf.flags = ring | (1 << 11); + if (gen < 4) + execbuf.flags |= I915_EXEC_SECURE; memset(obj, 0, sizeof(obj)); obj[0].handle = gem_create(fd, 4096); @@ -121,8 +123,8 @@ static void run_test(int fd, unsigned ring, unsigned flags) uint64_t offset; reloc[i].target_handle = obj[0].handle; - reloc[i].offset = (b - batch + 1) * sizeof(*batch); reloc[i].presumed_offset = obj[0].offset; + reloc[i].offset = (b - batch + 1) * sizeof(*batch); reloc[i].delta = i * sizeof(uint32_t); reloc[i].read_domains = I915_GEM_DOMAIN_INSTRUCTION; reloc[i].write_domain = I915_GEM_DOMAIN_INSTRUCTION; @@ -137,6 +139,8 @@ static void run_test(int fd, unsigned ring, unsigned flags) *b++ = offset; reloc[i].offset += sizeof(*batch); } else { + b[-1] -= 1; + b[-1] |= 1 << 22; *b++ = offset; } *b++ = i; @@ -144,6 +148,7 @@ static void run_test(int fd, unsigned ring, unsigned flags) *b++ = MI_BATCH_BUFFER_END; munmap(batch, 16*1024+4096); gem_execbuf(fd, &execbuf); + check_bo(fd, obj[0].handle); memset(&hang, 0, sizeof(hang)); if (flags & HANG) @@ -215,7 +220,7 @@ igt_main igt_skip_on_simulation(); igt_fixture - fd = drm_open_driver(DRIVER_INTEL); + fd = drm_open_driver_master(DRIVER_INTEL); for (mode = modes; mode->prefix; mode++) { for (ring = rings; ring->name; ring++) {