diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2020-12-29 20:04:26 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2020-12-29 20:45:51 +0000 |
commit | bd0214f1b460a097ab9a0f60f9d648862d40886f (patch) | |
tree | cfee371d32d248919e2e9805f8eff38402bdc95b /tests/i915/gem_ctx_engines.c | |
parent | 728d6dc6bd8b187210655a7fea152cc24a41cbcb (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.c | 18 |
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); } |