[Beignet] [PATCH] Only compiler X11 files and do X11 operations when found X11.
Yang Rong
rong.r.yang at intel.com
Wed Aug 27 23:37:44 PDT 2014
Add a build flag HAS_X11 for it.
Signed-off-by: Yang Rong <rong.r.yang at intel.com>
---
src/CMakeLists.txt | 11 +++++++++--
src/intel/intel_driver.c | 15 +++++++++++++--
2 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 186e42a..218420a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -83,10 +83,17 @@ set(OPENCL_SRC
intel/intel_gpgpu.c
intel/intel_batchbuffer.c
intel/intel_driver.c
- x11/dricommon.c
- x11/va_dri2.c
performance.c)
+if (X11_FOUND)
+ set(CMAKE_CXX_FLAGS "-DHAS_X11 ${CMAKE_CXX_FLAGS}")
+ set(CMAKE_C_FLAGS "-DHAS_X11 ${CMAKE_C_FLAGS}")
+ set(OPENCL_SRC
+ ${OPENCL_SRC}
+ x11/dricommon.c
+ x11/va_dri2.c)
+endif (X11_FOUND)
+
if (EGL_FOUND AND MESA_SOURCE_FOUND)
set (OPENCL_SRC ${OPENCL_SRC} cl_mem_gl.c cl_gl_api.c x11/mesa_egl_extension.c x11/mesa_egl_res_share.c intel/intel_dri_resource_sharing.c)
SET(CMAKE_CXX_FLAGS "-DHAS_EGL ${CMAKE_CXX_FLAGS}")
diff --git a/src/intel/intel_driver.c b/src/intel/intel_driver.c
index 2b6d393..66f2bcf 100644
--- a/src/intel/intel_driver.c
+++ b/src/intel/intel_driver.c
@@ -52,12 +52,15 @@
#include "x11/mesa_egl_extension.h"
#endif
+#ifdef HAS_X11
+#include <X11/Xlibint.h>
+#include "x11/dricommon.h"
+#endif
+
#include "intel_driver.h"
#include "intel_gpgpu.h"
#include "intel_batchbuffer.h"
#include "intel_bufmgr.h"
-#include <X11/Xlibint.h>
-#include "x11/dricommon.h"
#include "cl_mem.h"
#include <assert.h>
@@ -197,7 +200,9 @@ static cl_int
intel_driver_open(intel_driver_t *intel, cl_context_prop props)
{
int cardi;
+#ifdef HAS_X11
char *driver_name;
+#endif
if (props != NULL
&& props->gl_type != CL_GL_NOSHARE
&& props->gl_type != CL_GL_GLX_DISPLAY
@@ -206,6 +211,7 @@ intel_driver_open(intel_driver_t *intel, cl_context_prop props)
return CL_INVALID_OPERATION;
}
+#ifdef HAS_X11
intel->x11_display = XOpenDisplay(NULL);
if(intel->x11_display) {
@@ -218,6 +224,7 @@ intel_driver_open(intel_driver_t *intel, cl_context_prop props)
else
fprintf(stderr, "X server found. dri2 connection failed! \n");
}
+#endif
if(!intel_driver_is_active(intel)) {
char card_name[20];
@@ -253,8 +260,10 @@ intel_driver_open(intel_driver_t *intel, cl_context_prop props)
static void
intel_driver_close(intel_driver_t *intel)
{
+#ifdef HAS_X11
if(intel->dri_ctx) dri_state_release(intel->dri_ctx);
if(intel->x11_display) XCloseDisplay(intel->x11_display);
+#endif
if(intel->need_close) {
close(intel->fd);
intel->need_close = 0;
@@ -283,6 +292,7 @@ intel_driver_is_active(intel_driver_t *driver) {
return driver->fd >= 0;
}
+#ifdef HAS_X11
LOCAL int
intel_driver_init_shared(intel_driver_t *driver, dri_state_t *state)
{
@@ -293,6 +303,7 @@ intel_driver_init_shared(intel_driver_t *driver, dri_state_t *state)
driver->need_close = 0;
return 1;
}
+#endif
LOCAL int
intel_driver_init_master(intel_driver_t *driver, const char* dev_name)
--
1.8.3.2
More information about the Beignet
mailing list