[igt-dev] [PATCH i-g-t] i915/gem_vm_create: Call set-domain manually

Chris Wilson chris at chris-wilson.co.uk
Wed Feb 19 12:13:12 UTC 2020


Since we are secretly using execbuf to write into an object's location,
then read back from the object we must manually handle the domain
changes.

Closes: https://gitlab.freedesktop.org/drm/intel/issues/314
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
 tests/i915/gem_vm_create.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tests/i915/gem_vm_create.c b/tests/i915/gem_vm_create.c
index cbd273d9d..e14b07b5f 100644
--- a/tests/i915/gem_vm_create.c
+++ b/tests/i915/gem_vm_create.c
@@ -324,11 +324,15 @@ static void isolation(int i915)
 	gem_execbuf(i915, &eb); /* bind object into vm[0] */
 
 	/* Verify the trick with the assumed target address works */
+	gem_set_domain(i915, obj[0].handle,
+		       I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT);
 	write_to_address(i915, ctx[0], obj[0].offset, 1);
 	gem_read(i915, obj[0].handle, 0, &result, sizeof(result));
 	igt_assert_eq(result, 1);
 
 	/* Now check that we can't write to vm[0] from second fd/vm */
+	gem_set_domain(i915, obj[0].handle,
+		       I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT);
 	write_to_address(other, ctx[1], obj[0].offset, 2);
 	gem_read(i915, obj[0].handle, 0, &result, sizeof(result));
 	igt_assert_eq(result, 1);
-- 
2.25.0



More information about the igt-dev mailing list