summaryrefslogtreecommitdiff
path: root/tests/i915/gem_exec_await.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2020-07-02 08:48:28 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2020-07-02 08:52:42 +0100
commitf35053d4b6d7bbcf6505ef67a8bd56acc7fb2eb2 (patch)
treea3e7d76ea8d6ebed5db615a8a1ea2680fbb5c3ac /tests/i915/gem_exec_await.c
parent54731f017df8660f29cc8f5db0b570239729e808 (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.c20
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);