summaryrefslogtreecommitdiff
path: root/tests/i915/gem_exec_store.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2020-04-01 10:09:21 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2020-04-01 11:04:52 +0100
commitd7beb89944467f9a32c00ba761aca625721a5f6d (patch)
tree324eb53b65da7e43de0e5e0854d6b4c0fc0369a6 /tests/i915/gem_exec_store.c
parentdc2a58fac5d0002cfbe3c25a70f785a19fe231d4 (diff)
i915/gem_exec_store: Dynamise per-engine discovery
Make the declaration of per-engine tests dynamic 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_store.c')
-rw-r--r--tests/i915/gem_exec_store.c28
1 files changed, 13 insertions, 15 deletions
diff --git a/tests/i915/gem_exec_store.c b/tests/i915/gem_exec_store.c
index eb511696..a6409c40 100644
--- a/tests/i915/gem_exec_store.c
+++ b/tests/i915/gem_exec_store.c
@@ -46,8 +46,6 @@ static void store_dword(int fd, const struct intel_execution_engine2 *e)
uint32_t batch[16];
int i;
- igt_require(gem_class_can_store_dword(fd, e->class));
-
intel_detect_and_clear_missed_interrupts(fd);
memset(&execbuf, 0, sizeof(execbuf));
execbuf.buffers_ptr = to_user_pointer(obj);
@@ -110,8 +108,6 @@ static void store_cachelines(int fd, const struct intel_execution_engine2 *e,
reloc = calloc(NCACHELINES, sizeof(*reloc));
igt_assert(reloc);
- igt_require(gem_class_can_store_dword(fd, e->class));
-
intel_detect_and_clear_missed_interrupts(fd);
memset(&execbuf, 0, sizeof(execbuf));
execbuf.buffer_count = flags & PAGES ? NCACHELINES + 1 : 2;
@@ -326,6 +322,11 @@ static int print_welcome(int fd)
return ffs(info->gen);
}
+#define test_each_engine(T, i915, e) \
+ igt_subtest_with_dynamic(T) __for_each_physical_engine(i915, e) \
+ for_each_if(gem_class_can_store_dword(i915, (e)->class)) \
+ igt_dynamic_f("%s", (e)->name)
+
igt_main
{
const struct intel_execution_engine2 *e;
@@ -341,24 +342,21 @@ igt_main
igt_device_set_master(fd);
igt_require_gem(fd);
- igt_require(gem_can_store_dword(fd, 0));
igt_fork_hang_detector(fd);
}
- __for_each_physical_engine(fd, e) {
- igt_subtest_f("basic-%s", e->name)
- store_dword(fd, e);
+ igt_subtest("basic")
+ store_all(fd);
- igt_subtest_f("cachelines-%s", e->name)
- store_cachelines(fd, e, 0);
+ test_each_engine("dword", fd, e)
+ store_dword(fd, e);
- igt_subtest_f("pages-%s", e->name)
- store_cachelines(fd, e, PAGES);
- }
+ test_each_engine("cachelines", fd, e)
+ store_cachelines(fd, e, 0);
- igt_subtest("basic-all")
- store_all(fd);
+ test_each_engine("pages", fd, e)
+ store_cachelines(fd, e, PAGES);
igt_fixture {
igt_stop_hang_detector();