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