[Intel-gfx] [PATCH igt 7/9] igt: Add a helper function for creating VC4 BOs.

Eric Anholt eric at anholt.net
Wed Feb 3 21:41:41 UTC 2016


Signed-off-by: Eric Anholt <eric at anholt.net>
---
 lib/igt_vc4.c       | 21 +++++++++++++++------
 lib/igt_vc4.h       |  1 +
 tests/vc4_wait_bo.c | 10 ++--------
 3 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/lib/igt_vc4.c b/lib/igt_vc4.c
index 15804e9..0233f2b 100644
--- a/lib/igt_vc4.c
+++ b/lib/igt_vc4.c
@@ -68,9 +68,7 @@ uint32_t igt_vc4_get_cleared_bo(int fd, size_t size, uint32_t clearval)
 	/* A single row will be a page. */
 	uint32_t width = 1024;
 	uint32_t height = size / (width * 4);
-	struct drm_vc4_create_bo create = {
-		.size = size,
-	};
+	uint32_t handle = igt_vc4_create_bo(fd, size);
 	struct drm_vc4_submit_cl submit = {
 		.color_write = {
 			.hindex = 0,
@@ -84,7 +82,7 @@ uint32_t igt_vc4_get_cleared_bo(int fd, size_t size, uint32_t clearval)
 		.msaa_color_write = { .hindex = ~0 },
 		.msaa_zs_write = { .hindex = ~0 },
 
-		.bo_handles = (uint64_t)(uintptr_t)&create.handle,
+		.bo_handles = (uint64_t)(uintptr_t)&handle,
 		.bo_handle_count = 1,
 		.width = width,
 		.height = height,
@@ -97,10 +95,21 @@ uint32_t igt_vc4_get_cleared_bo(int fd, size_t size, uint32_t clearval)
 
 	igt_assert(width * height * 4 == size);
 
-	ret = ioctl(fd, DRM_IOCTL_VC4_CREATE_BO, &create);
+	ret = ioctl(fd, DRM_IOCTL_VC4_SUBMIT_CL, &submit);
 	igt_assert(ret == 0);
 
-	ret = ioctl(fd, DRM_IOCTL_VC4_SUBMIT_CL, &submit);
+	return handle;
+}
+
+int
+igt_vc4_create_bo(int fd, size_t size)
+{
+	struct drm_vc4_create_bo create = {
+		.size = size,
+	};
+	int ret;
+
+	ret = ioctl(fd, DRM_IOCTL_VC4_CREATE_BO, &create);
 	igt_assert(ret == 0);
 
 	return create.handle;
diff --git a/lib/igt_vc4.h b/lib/igt_vc4.h
index d428f39..e925246 100644
--- a/lib/igt_vc4.h
+++ b/lib/igt_vc4.h
@@ -25,6 +25,7 @@
 #define IGT_VC4_H
 
 uint32_t igt_vc4_get_cleared_bo(int fd, size_t size, uint32_t clearval);
+int igt_vc4_create_bo(int fd, size_t size);
 void *igt_vc4_mmap_bo(int fd, uint32_t handle, uint32_t size, unsigned prot);
 
 #endif /* IGT_VC4_H */
diff --git a/tests/vc4_wait_bo.c b/tests/vc4_wait_bo.c
index 081ee09..642b941 100644
--- a/tests/vc4_wait_bo.c
+++ b/tests/vc4_wait_bo.c
@@ -22,6 +22,7 @@
  */
 
 #include "igt.h"
+#include "igt_vc4.h"
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -40,15 +41,8 @@ igt_main
 	int bo_handle;
 
 	igt_fixture {
-		struct drm_vc4_create_bo create = {
-			.size = 4096,
-		};
-
 		fd = drm_open_driver(DRIVER_VC4);
-
-		ret = ioctl(fd, DRM_IOCTL_VC4_CREATE_BO, &create);
-		igt_assert(ret == 0);
-		bo_handle = create.handle;
+		bo_handle = igt_vc4_create_bo(fd, 4096);
 	}
 
 	igt_subtest("bad-bo") {
-- 
2.7.0



More information about the Intel-gfx mailing list