diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2020-07-02 08:48:28 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2020-07-02 08:52:42 +0100 |
commit | f35053d4b6d7bbcf6505ef67a8bd56acc7fb2eb2 (patch) | |
tree | a3e7d76ea8d6ebed5db615a8a1ea2680fbb5c3ac /tests/i915/gem_exec_await.c | |
parent | 54731f017df8660f29cc8f5db0b570239729e808 (diff) |
i915/gem_exec_await: Update to use __for_each_engine_physical
Use the more recent engine iterator so we access all physical engines.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Diffstat (limited to 'tests/i915/gem_exec_await.c')
-rw-r--r-- | tests/i915/gem_exec_await.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/tests/i915/gem_exec_await.c b/tests/i915/gem_exec_await.c index fc0e57d3..6bc624e4 100644 --- a/tests/i915/gem_exec_await.c +++ b/tests/i915/gem_exec_await.c @@ -57,6 +57,7 @@ static void xchg_obj(void *array, unsigned i, unsigned j) #define CONTEXTS 0x1 static void wide(int fd, int ring_size, int timeout, unsigned int flags) { + const struct intel_execution_engine2 *engine; const uint32_t bbe = MI_BATCH_BUFFER_END; const int gen = intel_gen(intel_get_drm_devid(fd)); struct { @@ -68,18 +69,19 @@ static void wide(int fd, int ring_size, int timeout, unsigned int flags) } *exec; struct drm_i915_gem_exec_object2 *obj; struct drm_i915_gem_execbuffer2 execbuf; - unsigned engines[16], nengine; + unsigned engines[I915_EXEC_RING_MASK + 1], nengine; unsigned long count; double time; nengine = 0; - for_each_physical_engine(e, fd) { - if (!gem_engine_has_mutable_submission(fd, eb_ring(e))) + __for_each_physical_engine(fd, engine) { + if (!gem_class_has_mutable_submission(fd, engine->class)) continue; - engines[nengine++] = eb_ring(e); + engines[nengine++] = engine->flags; + if (nengine == ARRAY_SIZE(engines)) + break; } - igt_require(nengine); exec = calloc(nengine, sizeof(*exec)); @@ -152,7 +154,8 @@ static void wide(int fd, int ring_size, int timeout, unsigned int flags) if (flags & CONTEXTS) { gem_context_destroy(fd, exec[e].execbuf.rsvd1); - exec[e].execbuf.rsvd1 = gem_context_create(fd); + exec[e].execbuf.rsvd1 = + gem_context_clone_with_engines(fd, 0); } exec[e].reloc.presumed_offset = exec[e].exec[1].offset; @@ -236,9 +239,8 @@ igt_main igt_require_gem(device); gem_submission_print_method(device); - ring_size = gem_measure_ring_inflight(device, ALL_ENGINES, 0) - 10; - if (!gem_has_execlists(device)) - ring_size /= 2; + ring_size = gem_submission_measure(device, ALL_ENGINES); + igt_info("Ring size: %d batches\n", ring_size); igt_require(ring_size > 0); |