[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