feature: add experimental support for cl-gl sharing on Linux

based on 'clgl-fork' branch from https://github.com/kallaballa/compute-runtime

EGL headers taken from https://github.com/KhronosGroup/EGL-Registry
revision: 57b4876de0f33677ece92dd9de0ef105ce69139d

Related-To: NEO-3599

Fixes https://github.com/intel/compute-runtime/issues/166

Co-authored-by: Jacek Danecki <jacek.danecki@intel.com>
Co-authored-by: Amir Hassan <amir@viel-zu.org>

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2023-01-20 13:38:21 +01:00
committed by Compute-Runtime-Automation
parent 095f5a773a
commit 4919c7c9fb
52 changed files with 5387 additions and 113 deletions

View File

@@ -4,20 +4,18 @@
# SPDX-License-Identifier: MIT
#
if(WIN32)
set(IGDRCL_SRCS_tests_api_gl
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/cl_create_from_gl_buffer_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_create_from_gl_renderbuffer_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_create_from_gl_texture2d_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_create_from_gl_texture3d_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_create_from_gl_texture_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_enqueue_acquire_gl_objects_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_enqueue_release_gl_objects_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_gl_device_info_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_gl_object_info_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_gl_texture_info_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_gl_intel_tracing_tests.cpp
)
target_sources(igdrcl_tests PRIVATE ${IGDRCL_SRCS_tests_api_gl})
endif()
set(IGDRCL_SRCS_tests_api_gl
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/cl_create_from_gl_buffer_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_create_from_gl_renderbuffer_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_create_from_gl_texture2d_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_create_from_gl_texture3d_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_create_from_gl_texture_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_enqueue_acquire_gl_objects_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_enqueue_release_gl_objects_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_gl_device_info_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_gl_object_info_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_gl_texture_info_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cl_gl_intel_tracing_tests.cpp
)
target_sources(igdrcl_tests PRIVATE ${IGDRCL_SRCS_tests_api_gl})

View File

@@ -44,17 +44,17 @@ struct IntelGlTracingTest : public api_tests {
}
protected:
static void callback(cl_function_id fid, cl_callback_data *callback_data, void *user_data) {
ASSERT_NE(nullptr, user_data);
IntelGlTracingTest *base = (IntelGlTracingTest *)user_data;
base->vcallback(fid, callback_data, nullptr);
static void callback(cl_function_id fid, cl_callback_data *callbackData, void *userData) {
ASSERT_NE(nullptr, userData);
IntelGlTracingTest *base = reinterpret_cast<IntelGlTracingTest *>(userData);
base->vcallback(fid, callbackData, nullptr);
}
virtual void vcallback(cl_function_id fid, cl_callback_data *callback_data, void *user_data) {
virtual void vcallback(cl_function_id fid, cl_callback_data *callbackData, void *userData) {
if (fid == functionId) {
if (callback_data->site == CL_CALLBACK_SITE_ENTER) {
if (callbackData->site == CL_CALLBACK_SITE_ENTER) {
++enterCount;
} else if (callback_data->site == CL_CALLBACK_SITE_EXIT) {
} else if (callbackData->site == CL_CALLBACK_SITE_EXIT) {
++exitCount;
}
}