test: Exercise concurrent GPU read/write with CPU domain access
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 10 Apr 2012 17:21:33 +0000 (18:21 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 10 Apr 2012 18:35:29 +0000 (19:35 +0100)
commitda026d8bfef1a76a60ae4a46a738ce153e9fe0b7
tree51798c80b6c9b9a74b04c53c8d62a0255be424ea
parent7601fafbcffe1c6da5351682bd6febe5fa248f16
test: Exercise concurrent GPU read/write with CPU domain access

Designed to exercise this patch to i915.ko:

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index fbf1118..57ae1f2 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3181,9 +3181,11 @@ i915_gem_object_set_to_cpu_domain(struct drm_i915_gem_obj
        if (ret)
                return ret;

-       ret = i915_gem_object_wait_rendering(obj);
-       if (ret)
-               return ret;
+       if (write || obj->pending_gpu_write) {
+               ret = i915_gem_object_wait_rendering(obj);
+               if (ret)
+                       return ret;
+       }

        i915_gem_object_flush_gtt_write_domain(obj);

By exercising the conditions whereby should either of the checks be missed
an error is detected.
tests/.gitignore
tests/Makefile.am
tests/gem_cpu_concurrent_blit.c [new file with mode: 0644]