From 83ba5b7d3bde48b383df41792fc9c955a5a23bdb Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 12 Apr 2018 19:07:17 +0100 Subject: igt/prime_mmap: Test for userptr support first Before we start trying to use userptr to test interoperability with PRIME, we first need to check that the device in question has userptr support. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106013 Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin --- tests/prime_mmap.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'tests/prime_mmap.c') diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c index 0da0aa68..67a6a232 100644 --- a/tests/prime_mmap.c +++ b/tests/prime_mmap.c @@ -307,6 +307,19 @@ static int prime_handle_to_fd_no_assert(uint32_t handle, int flags, int *fd_out) return ret; } +static bool has_userptr(void) +{ + uint32_t handle = 0; + void *ptr; + + igt_assert(posix_memalign(&ptr, 4096, 4096) == 0); + if ( __gem_userptr(fd, ptr, 4096, 0, 0, &handle) == 0) + gem_close(fd, handle); + free(ptr); + + return handle; +} + /* test for mmap(dma_buf_export(userptr)) */ static void test_userptr(void) @@ -315,6 +328,8 @@ test_userptr(void) void *ptr; uint32_t handle; + igt_require(has_userptr()); + /* create userptr bo */ ret = posix_memalign(&ptr, 4096, BO_SIZE); igt_assert_eq(ret, 0); -- cgit v1.2.3