diff options
author | Antonio Argenziano <antonio.argenziano@intel.com> | 2018-02-06 16:27:14 -0800 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2018-02-07 08:26:14 +0000 |
commit | 2baf7ece5b6d2faccedc56527ec91623f41a85e4 (patch) | |
tree | c2362e443cd7b61e51e6b92f939e16a107734be5 /tests/gem_exec_await.c | |
parent | 3fd9b578b3138b04178b4ce8ee4a60e74a16ec91 (diff) |
lib: Move __gem_context_create to common ioctl wrapper library.
This patch adds a context creation ioctl wrapper that returns the error
for the caller to consume. Multiple tests that implemented this already,
have been changed to use the new library function.
v2:
- Add gem_require_contexts() to check for contexts support (Chris)
v3:
- Add gem_has_contexts to check for contexts support and change
gem_require_contexts to skip if contests support is not available.
(Chris)
v4:
- Cosmetic changes and use lib function in gem_ctx_create where
possible. (Michal)
v5:
- Use gem_contexts_require() in tests and fixtures. (Chris)
Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tests/gem_exec_await.c')
-rw-r--r-- | tests/gem_exec_await.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/tests/gem_exec_await.c b/tests/gem_exec_await.c index 28b280ff..e19363c4 100644 --- a/tests/gem_exec_await.c +++ b/tests/gem_exec_await.c @@ -55,15 +55,6 @@ static bool ignore_engine(int fd, unsigned engine) return false; } -static uint32_t __gem_context_create(int fd) -{ - struct drm_i915_gem_context_create arg; - - memset(&arg, 0, sizeof(arg)); - drmIoctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &arg); - return arg.ctx_id; -} - static void xchg_obj(void *array, unsigned i, unsigned j) { struct drm_i915_gem_exec_object2 *obj = array; @@ -130,8 +121,7 @@ static void wide(int fd, int ring_size, int timeout, unsigned int flags) LOCAL_I915_EXEC_HANDLE_LUT); if (flags & CONTEXTS) { - exec[e].execbuf.rsvd1 = __gem_context_create(fd); - igt_require(exec[e].execbuf.rsvd1); + exec[e].execbuf.rsvd1 = gem_context_create(fd); } exec[e].exec[0].handle = gem_create(fd, 4096); @@ -174,7 +164,7 @@ 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_create(fd); } exec[e].reloc.presumed_offset = exec[e].exec[1].offset; @@ -358,8 +348,10 @@ igt_main igt_subtest("wide-all") wide(device, ring_size, 20, 0); - igt_subtest("wide-contexts") + igt_subtest("wide-contexts") { + gem_require_contexts(device); wide(device, ring_size, 20, CONTEXTS); + } igt_fixture { igt_stop_hang_detector(); |