summaryrefslogtreecommitdiff
path: root/tests/i915/gem_ctx_engines.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2020-12-29 20:04:26 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2020-12-29 20:45:51 +0000
commitbd0214f1b460a097ab9a0f60f9d648862d40886f (patch)
treecfee371d32d248919e2e9805f8eff38402bdc95b /tests/i915/gem_ctx_engines.c
parent728d6dc6bd8b187210655a7fea152cc24a41cbcb (diff)
i915/gem_ctx_engine: Check idempotency by passing all known engines
Don't rely on just rcs0 being well defined, check that we return a list of each engine when asked. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: "Melkaveri, Arjun" <arjun.melkaveri@intel.com> Reviewed-by: Arjun Melkaveri <arjun.melkaveri@intel.com>
Diffstat (limited to 'tests/i915/gem_ctx_engines.c')
-rw-r--r--tests/i915/gem_ctx_engines.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/tests/i915/gem_ctx_engines.c b/tests/i915/gem_ctx_engines.c
index be7d5733..12c6b84c 100644
--- a/tests/i915/gem_ctx_engines.c
+++ b/tests/i915/gem_ctx_engines.c
@@ -230,15 +230,21 @@ static void idempotent(int i915)
igt_assert_eq(p.size, base + idx);
igt_assert(!memcmp(&expected, &engines, idx));
- memset(&engines, 0, sizeof(engines));
p.size = sizeof(engines);
- gem_context_set_param(i915, &p);
+ __for_each_physical_engine(i915, e) {
+ memset(&engines, 0, sizeof(engines));
+ for (int n = 0; n < I915_EXEC_RING_MASK + 1; n++) {
+ engine_class(&engines, n) = e->class;
+ engine_instance(&engines, n) = e->instance;
+ }
+ gem_context_set_param(i915, &p);
- memcpy(&expected, &engines, sizeof(expected));
+ memcpy(&expected, &engines, sizeof(expected));
- gem_context_get_param(i915, &p);
- igt_assert_eq(p.size, sizeof(engines));
- igt_assert(!memcmp(&expected, &engines, idx));
+ gem_context_get_param(i915, &p);
+ igt_assert_eq(p.size, sizeof(engines));
+ igt_assert(!memcmp(&expected, &engines, p.size));
+ }
gem_context_destroy(i915, p.ctx_id);
}