[Beignet] [PATCH 0/2] Refine cl_khr_gl_sharing.

Zhigang Gong zhigang.gong at linux.intel.com
Wed Aug 28 23:37:58 PDT 2013


Ping for comments. Thanks.

On Mon, Aug 26, 2013 at 10:45:46PM +0800, Zhigang Gong wrote:
> The previous implementation is using the existing egl extension
> to convert a texture to a egl image and then hack the gbm to get
> the image's attributes including the layout and the drm buffer
> object name then create a corresponding cl image.
> 
> The restrications of that solution is:
> 1. It doens't support buffer object/render buffer.
> 2. It doesn't support non-zero mipmap level.
> 
> To overcome the above restrications, we need to introduce a new
> EGL extension to export low level attribute of texture/buffer object/
> render buffer to cl driver layer from the mesa dri driver layer.
> 
> Unfortunately, the mesa community doesn't accept the new extension.
> I have to implement it in beignet. Thus we still have to do some level
> of hack here. Major including to access some _EGLXXX internal data structure
> and some mesa internal data structure. So we need the mesa's source code
> when you want to build beignet with cl_khr_gl_sharing support.
> 
> You could put the mesa source code package to ~/mesa
> or at the same directory of the beignet source dir,
> or you can use MESA_SOURCE_DIR to specify the directory
> of the mesa source code.
> 
> If beignet can't find the mesa source code directory, cl_khr_gl_sharing
> will be disabled.
> 
> This patchset implement the texture sharing and the framework for
> the buffer object/render buffer sharing.
> 
> Zhigang Gong (2):
>   CL: Refactor cl_mem's implementation.
>   CL: Enalbe gl sharing with new egl extension.
> 
>  CMake/FindEGL.cmake                        |   14 ++
>  src/CMakeLists.txt                         |   19 +-
>  src/cl_api.c                               |   44 ++--
>  src/cl_command_queue.c                     |   16 +-
>  src/cl_context.h                           |    3 +
>  src/cl_driver.h                            |   66 +++---
>  src/cl_driver_defs.c                       |   10 +-
>  src/cl_driver_type.h                       |   24 +++
>  src/cl_enqueue.c                           |   19 +-
>  src/cl_extensions.c                        |   22 +-
>  src/cl_extensions.h                        |   25 ---
>  src/cl_kernel.c                            |    4 +-
>  src/cl_khr_icd.h                           |    4 +
>  src/cl_mem.c                               |  165 +++++++++------
>  src/cl_mem.h                               |  111 ++++++++--
>  src/cl_mem_gl.c                            |  194 +++---------------
>  src/cl_utils.h                             |   10 +-
>  src/intel/intel_dri_resource_sharing.c     |  208 +++++++++++++++++++
>  src/intel/intel_dri_resource_sharing.h     |   39 ++++
>  src/intel/intel_dri_resource_sharing_int.h |  143 +++++++++++++
>  src/intel/intel_driver.c                   |  224 +++++++++++++++-----
>  src/intel/intel_driver.h                   |    6 -
>  src/x11/dricommon.h                        |    5 -
>  src/x11/gbm_deps/backend.h                 |   36 ----
>  src/x11/gbm_deps/common.h                  |   42 ----
>  src/x11/gbm_deps/common_drm.h              |   48 -----
>  src/x11/gbm_deps/gbm.h                     |  292 --------------------------
>  src/x11/gbm_deps/gbm_driint.h              |  108 ----------
>  src/x11/gbm_deps/gbmint.h                  |  116 -----------
>  src/x11/gbm_dri2_x11_platform.c            |  126 ------------
>  src/x11/mesa_egl_extension.c               |  307 ++++++++++++++++++++++++++++
>  src/x11/mesa_egl_extension.h               |   20 ++
>  src/x11/mesa_egl_res_share.c               |  135 ++++++++++++
>  src/x11/mesa_egl_res_share.h               |   44 ++++
>  utests/CMakeLists.txt                      |    4 +-
>  utests/utest_helper.cpp                    |   25 ++-
>  36 files changed, 1459 insertions(+), 1219 deletions(-)
>  create mode 100644 src/cl_driver_type.h
>  create mode 100644 src/intel/intel_dri_resource_sharing.c
>  create mode 100644 src/intel/intel_dri_resource_sharing.h
>  create mode 100644 src/intel/intel_dri_resource_sharing_int.h
>  delete mode 100644 src/x11/gbm_deps/backend.h
>  delete mode 100644 src/x11/gbm_deps/common.h
>  delete mode 100644 src/x11/gbm_deps/common_drm.h
>  delete mode 100644 src/x11/gbm_deps/gbm.h
>  delete mode 100644 src/x11/gbm_deps/gbm_driint.h
>  delete mode 100644 src/x11/gbm_deps/gbmint.h
>  delete mode 100644 src/x11/gbm_dri2_x11_platform.c
>  create mode 100644 src/x11/mesa_egl_extension.c
>  create mode 100644 src/x11/mesa_egl_extension.h
>  create mode 100644 src/x11/mesa_egl_res_share.c
>  create mode 100644 src/x11/mesa_egl_res_share.h
> 
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list