[Beignet] [PATCH] Only compiler X11 files and do X11 operations when found X11.
Zhigang Gong
zhigang.gong at linux.intel.com
Wed Aug 27 23:44:39 PDT 2014
LGTM, pushed, thanks.
On Thu, Aug 28, 2014 at 02:37:44PM +0800, Yang Rong wrote:
> 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
>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list