Check all user accessible engines that can blit work with our blitter
client.

Signed-off-by: Chris Wilson <[email protected]>
---
 .../i915/gem/selftests/i915_gem_client_blt.c  | 30 ++++++++++++++++---
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c 
b/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
index d8804a847945..da8edee4fe0a 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
@@ -5,6 +5,7 @@
 
 #include "i915_selftest.h"
 
+#include "gt/intel_engine_user.h"
 #include "gt/intel_gt.h"
 
 #include "selftests/igt_flush_test.h"
@@ -12,10 +13,9 @@
 #include "huge_gem_object.h"
 #include "mock_context.h"
 
-static int igt_client_fill(void *arg)
+static int __igt_client_fill(struct intel_engine_cs *engine)
 {
-       struct drm_i915_private *i915 = arg;
-       struct intel_context *ce = i915->engine[BCS0]->kernel_context;
+       struct intel_context *ce = engine->kernel_context;
        struct drm_i915_gem_object *obj;
        struct rnd_state prng;
        IGT_TIMEOUT(end);
@@ -37,7 +37,7 @@ static int igt_client_fill(void *arg)
                pr_debug("%s with phys_sz= %x, sz=%x, val=%x\n", __func__,
                         phys_sz, sz, val);
 
-               obj = huge_gem_object(i915, phys_sz, sz);
+               obj = huge_gem_object(engine->i915, phys_sz, sz);
                if (IS_ERR(obj)) {
                        err = PTR_ERR(obj);
                        goto err_flush;
@@ -103,6 +103,28 @@ static int igt_client_fill(void *arg)
        return err;
 }
 
+static int igt_client_fill(void *arg)
+{
+       int inst = 0;
+
+       do {
+               struct intel_engine_cs *engine;
+               int err;
+
+               engine = intel_engine_lookup_user(arg,
+                                                 I915_ENGINE_CLASS_COPY,
+                                                 inst++);
+               if (!engine)
+                       return 0;
+
+               err = __igt_client_fill(engine);
+               if (err == -ENOMEM)
+                       err = 0;
+               if (err)
+                       return err;
+       } while (1);
+}
+
 int i915_gem_client_blt_live_selftests(struct drm_i915_private *i915)
 {
        static const struct i915_subtest tests[] = {
-- 
2.24.0.rc1

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

Reply via email to