[igt-dev] [PATCH] tests/kms_prime: Filter out devices that can't import buffers.

Mark Yacoub markyacoub at chromium.org
Mon Jun 14 16:41:34 UTC 2021


Some devices such as amdgpu do not support imported buffers.
Filter out those devices.
Tested on Zork with chromeos-kernel-5_4.

Signed-off-by: Mark Yacoub <markyacoub at chromium.org>
---
 tests/kms_prime.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/tests/kms_prime.c b/tests/kms_prime.c
index 8cb2ca2a..480c7eb4 100644
--- a/tests/kms_prime.c
+++ b/tests/kms_prime.c
@@ -249,6 +249,16 @@ static void test_crc(int exporter_fd, int importer_fd)
 	igt_display_fini(&display);
 }
 
+/* The test attempts to import the buffer object from one device to another.
+ * Filter out devices that aren't capable of doing this.
+ */
+bool does_device_support_dmabuf_import(int fd) {
+	/* AMDGPU uses VRAM. Any use of the fb will migrate it to VRAM, which is not sensible for
+	 * an imported dma-buf.
+	 */
+	return !is_amdgpu_device(fd);
+}
+
 igt_main
 {
 	igt_fixture
@@ -262,10 +272,10 @@ igt_main
 
 		/* ANY = anything that is not VGEM */
 		first_fd = __drm_open_driver_another(0, DRIVER_ANY | DRIVER_VGEM);
-		igt_require(first_fd >= 0);
+		igt_require(first_fd >= 0 && does_device_support_dmabuf_import(first_fd));
 
 		second_fd = __drm_open_driver_another(1, DRIVER_ANY | DRIVER_VGEM);
-		igt_require(second_fd >= 0);
+		igt_require(second_fd >= 0 && does_device_support_dmabuf_import(second_fd));
 
 		if (has_prime_export(first_fd) &&
 		    has_prime_import(second_fd))
-- 
2.32.0.272.g935e593368-goog



More information about the igt-dev mailing list