Runtime: re-enable cl_khr_gl_sharing with existing egl extension

Graphics / Beignet - Chuanbo Weng [intel.com] - 12 September 2016 03:48 UTC

In order to query low level layout of GL buffer object/texture/render buffer, previous implementation introduced an egl extension and implemented in Beignet side. This way is broken once mesa change its related internal code. In this patch, we use an new egl extension (EGL_MESA_image_dma_buf_export) to query related layout infomations of gl texture. Since this egl extension is already accepted by Khronos, so it's a stable method. This patch just implement GL texture 2d buffer sharing, and we will implement other target type if necessary.

v2: Add CMake build option to enable cl_khr_gl_sharing(default off). Clean up related CMake code.

a892148 Runtime: re-enable cl_khr_gl_sharing with existing egl extension.
CMake/FindMesaSrc.cmake | 26 ---
CMakeLists.txt | 39 ++--
src/CMakeLists.txt | 22 +-
src/cl_driver.h | 32 +--
src/cl_driver_defs.c | 7 -
src/cl_extensions.c | 4 +-
src/cl_gl_api.c | 19 +-
src/cl_mem.c | 2 +-
src/cl_mem.h | 10 +-
src/cl_mem_gl.c | 7 +-
src/intel/intel_cl_gl_share_image_info.h | 18 ++
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 | 140 +++++++++----
src/x11/mesa_egl_extension.c | 306 ----------------------------
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 | 22 +-
utests/compiler_fill_gl_image.cpp | 69 ++++---
utests/utest_helper.cpp | 10 +-
utests/utest_helper.hpp | 9 +-
23 files changed, 220 insertions(+), 1111 deletions(-)

Upstream: cgit.freedesktop.org


  • Share