xcb-dri2 is an optional build dependency for the dma_buf tests.  If
xcb-dri2 is present, then the tests use it to gain DRM authentication.
Otherwise, the tests must be ran as root.

No one likes running tests as root, so require xcb-dri2 for these tests.

Signed-off-by: Chad Versace <chad.vers...@linux.intel.com>
---
 CMakeLists.txt                                      |  7 +++++--
 tests/util/CMakeLists.txt                           | 17 +++--------------
 tests/util/piglit-framework-gl/piglit_drm_dma_buf.c |  6 ------
 3 files changed, 8 insertions(+), 22 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2aba844..955516b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -99,10 +99,12 @@ ENDIF()
 
 # Choose to build tests that use dma_buf.
 #
+# Piglit's dma_buf utilities require xcb-dri2 to gain DRM authentication.
+#
 # The presence of libdrm is not sufficient. At least one libdrm_${hardware}
 # library is also needed.
 #
-if(LIBDRM_FOUND AND LIBDRM_INTEL_FOUND)
+if(LIBDRM_FOUND AND LIBDRM_INTEL_FOUND AND XCB_DRI2_FOUND)
        set(PIGLIT_BUILD_DMA_BUF_TESTS_IS_VALID true)
 else()
        set(PIGLIT_BUILD_DMA_BUF_TESTS_IS_VALID false)
@@ -118,7 +120,8 @@ endif()
 # we need to validate it.
 if(PIGLIT_BUILD_DMA_BUF_TESTS AND NOT PIGLIT_BUILD_DMA_BUF_TESTS_IS_VALID)
        message(FATAL_ERROR
-               "PIGLIT_BUILD_DMA_BUF_TESTS require libdrm and libdrm_intel")
+               "PIGLIT_BUILD_DMA_BUF_TESTS require libdrm and libdrm_intel, "
+               "and xcb-dri2")
 endif()
 
 IF(PIGLIT_BUILD_GLX_TESTS)
diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt
index 6bfe451..fb6dd3e 100644
--- a/tests/util/CMakeLists.txt
+++ b/tests/util/CMakeLists.txt
@@ -62,10 +62,13 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
 
                list(APPEND UTIL_GL_LIBS
                        ${LIBDRM_LDFLAGS}
+                       ${XCB_DRI2_LDFLAGS}
+
                )
 
                list(APPEND UTIL_GL_INCLUDES
                        ${LIBDRM_INCLUDE_DIRS}
+                       ${XCB_DRI2_INCLUDE_DIRS}
                )
 
                if(LIBDRM_INTEL_FOUND)
@@ -75,20 +78,6 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
                                ${LIBDRM_INTEL_LDFLAGS}
                        )
                endif()
-
-               # xcb-dri2 is used to gain DRM authentication.
-               if(XCB_DRI2_FOUND)
-                       add_definitions(-DHAVE_XCB_DRI2)
-
-                       list(APPEND UTIL_GL_LIBS
-                               ${XCB_DRI2_LDFLAGS}
-                       )
-
-                       list(APPEND UTIL_GL_INCLUDES
-                               ${XCB_DRI2_INCLUDE_DIRS}
-                       )
-               endif()
-
        endif()
 
        set(UTIL_GL_LIBS
diff --git a/tests/util/piglit-framework-gl/piglit_drm_dma_buf.c 
b/tests/util/piglit-framework-gl/piglit_drm_dma_buf.c
index 9a7ff3b..cc6c366 100644
--- a/tests/util/piglit-framework-gl/piglit_drm_dma_buf.c
+++ b/tests/util/piglit-framework-gl/piglit_drm_dma_buf.c
@@ -32,10 +32,8 @@
 #include <string.h>
 #include <xf86drm.h>
 #include <stdbool.h>
-#ifdef HAVE_XCB_DRI2
 #include <xcb/dri2.h>
 #include <drm.h>
-#endif
 
 static const char *drm_device_filename = "/dev/dri/card0";
 
@@ -77,7 +75,6 @@ piglit_drm_device_get(void)
        return fd;
 }
 
-#ifdef HAVE_XCB_DRI2
 static bool
 piglit_drm_x11_authenticate(void)
 {
@@ -116,7 +113,6 @@ piglit_drm_x11_authenticate(void)
 
        return true;
 }
-#endif /* HAVE_XCB_DRI2 */
 
 #ifdef HAVE_LIBDRM_INTEL
 static drm_intel_bufmgr *
@@ -131,10 +127,8 @@ piglit_intel_bufmgr_get(void)
        if (!piglit_drm_device_get())
                return NULL;
 
-#ifdef HAVE_XCB_DRI2
        if (!piglit_drm_x11_authenticate())
                return NULL;
-#endif /* HAVE_XCB_DRI2 */
 
        mgr = intel_bufmgr_gem_init(piglit_drm_device_get(), batch_sz);
 
-- 
1.8.3.1

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to