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.
This commit is contained in:
Chris Wilson
2012-04-10 18:21:33 +01:00
parent 7601fafbcf
commit da026d8bfe
3 changed files with 129 additions and 0 deletions
+1
View File
@@ -8,6 +8,7 @@ gem_bad_blit
gem_bad_length
gem_basic
gem_cs_prefetch
gem_cpu_concurrent_blit
gem_double_irq_loop
gem_dummy_reloc_loop
gem_exec_bad_domains