summaryrefslogtreecommitdiff
path: root/tests/gem_exec_await.c
diff options
context:
space:
mode:
authorAntonio Argenziano <antonio.argenziano@intel.com>2018-02-06 16:27:14 -0800
committerChris Wilson <chris@chris-wilson.co.uk>2018-02-07 08:26:14 +0000
commit2baf7ece5b6d2faccedc56527ec91623f41a85e4 (patch)
treec2362e443cd7b61e51e6b92f939e16a107734be5 /tests/gem_exec_await.c
parent3fd9b578b3138b04178b4ce8ee4a60e74a16ec91 (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.c18
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();