diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2020-05-26 17:13:41 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2020-05-26 21:15:33 +0100 |
commit | cc5f9f1a4f630c7b7f8bbdc835d21181551012fb (patch) | |
tree | 6a3735b832f48f169c2138d54acf85eeae2c6a89 /tests/i915/gem_exec_schedule.c | |
parent | f1e62e330a6e2de7b3cbf7cf02d71ae00cc6adcc (diff) |
i915/gem_exec_schedule: Fix measurement of ring size to use right engine
gem_ring_measure_inflight() uses the legacy ring idx, whereas
gem_exec_schedule is using the new dynamic ctx->engine[] indices.
Mismatch and hanging tests ensue.
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_schedule.c')
-rw-r--r-- | tests/i915/gem_exec_schedule.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c index c551e23e..c5390493 100644 --- a/tests/i915/gem_exec_schedule.c +++ b/tests/i915/gem_exec_schedule.c @@ -1651,7 +1651,7 @@ static void deep(int fd, unsigned ring) ctx[n] = gem_context_clone_with_engines(fd, 0); } - nreq = gem_measure_ring_inflight(fd, ring, 0) / (4 * XS) * MAX_CONTEXTS; + nreq = gem_submission_measure(fd, ring) / (4 * XS) * MAX_CONTEXTS; if (nreq > max_req) nreq = max_req; igt_info("Using %d requests (prio range %d)\n", nreq, max_req); @@ -1796,9 +1796,8 @@ static int __execbuf(int fd, struct drm_i915_gem_execbuffer2 *execbuf) static void wide(int fd, unsigned ring) { + const unsigned int ring_size = gem_submission_measure(fd, ring); struct timespec tv = {}; - unsigned int ring_size = gem_measure_ring_inflight(fd, ring, MEASURE_RING_NEW_CTX); - IGT_CORK_FENCE(cork); uint32_t result; uint32_t result_read[MAX_CONTEXTS]; @@ -1842,12 +1841,12 @@ static void wide(int fd, unsigned ring) static void reorder_wide(int fd, unsigned ring) { + const unsigned int ring_size = gem_submission_measure(fd, ring); const int gen = intel_gen(intel_get_drm_devid(fd)); struct drm_i915_gem_relocation_entry reloc; struct drm_i915_gem_exec_object2 obj[2]; struct drm_i915_gem_execbuffer2 execbuf; struct timespec tv = {}; - unsigned int ring_size = gem_measure_ring_inflight(fd, ring, MEASURE_RING_NEW_CTX); IGT_CORK_FENCE(cork); uint32_t result, target; uint32_t result_read[1024]; |