OpenCV-OpenCL interop (PR #4072):
Commits:
added new function, cv::ocl::attachContext(String& platformName, void* platformID, void* context, void* deviceID) which allow to attach externally created OpenCL context to OpenCV.
add definitions of clRetainDevice, clRetainContext funcs
removed definitions for clRetainContext, clRetainDevice
fixed build issue under Linux
fixed uninitialized vars, replace dbgassert in error handling
remove function which is not ready yet
add new function, cv::ocl::convertFromBuffer(int rows, int cols, int type, void* cl_mem_obj, UMat& dst, UMatUsageFlags usageFlags = cv::USAGE_DEFAULT) which attaches user allocated OpenCL clBuffer to UMat
uncommented clGetMemObjectInfo definition (otherwise prevent opencv build)
fixed build issue on linux and android
add step parameter to cv::ocl::convertFromBuffer func
suppress compile-time warning
added sample opencl-opencv interoperability (showcase for cv::ocl::convertFromBuffer func)
CMakeLists.txt modified to not create sample build script if OpenCL SDK not found in system
fixed build issue (apple opencl include dir and spaces in CMake file)
added call to clRetainContext for attachContext func and call to clRetainMemObject for convertFromBuffer func
uncommented clRetainMemObject definition
added comments and cleanup
add local path to cmake modules search dirs (instead of replacing)
remove REQUIRED for find_package call (sample build together with opencv). need to try standalone sample build
opencl-interop sample moved to standalone build
set minimum version requirement for sample's cmake to 3.1
put cmake_minimum_required under condition, so do not check if samples not builded
remove code dups for setSize, updateContinuityFlag, and finalizeHdr
commented out cmake_minimum_required(VERSION 3.1)
add safety check for cmake version
add convertFromImage func and update opencl-interop sample
uncommented clGetImageInfo defs
uncommented clEnqueueCopyImageToBuffer defs
fixed clEnqueueCopyImageToBuffer defs
add doxygen comments
remove doxygen @fn tag
try to restart buildbot
add doxygen comments to directx interop funcs
remove internal header, use fwd declarations in affected compile units instead
2015-05-27 22:22:33 +02:00
|
|
|
# cmake 3.1 needed for find_package(OpenCL)
|
|
|
|
|
|
|
|
if(CMAKE_VERSION VERSION_LESS "3.1")
|
|
|
|
message(STATUS "OpenCL samples require CMakes 3.1+")
|
|
|
|
return()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(
|
|
|
|
OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS
|
|
|
|
opencv_core
|
|
|
|
opencv_imgproc
|
|
|
|
opencv_video
|
|
|
|
opencv_imgcodecs
|
|
|
|
opencv_videoio
|
|
|
|
opencv_highgui)
|
|
|
|
|
|
|
|
ocv_check_dependencies(${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS})
|
|
|
|
|
|
|
|
if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)
|
|
|
|
|
2015-08-24 12:40:10 +02:00
|
|
|
find_package(OpenCL 1.2 QUIET)
|
|
|
|
if(NOT OpenCL_FOUND)
|
|
|
|
message(STATUS "OpenCL samples are skipped: OpenCL SDK is required")
|
|
|
|
return()
|
|
|
|
endif()
|
OpenCV-OpenCL interop (PR #4072):
Commits:
added new function, cv::ocl::attachContext(String& platformName, void* platformID, void* context, void* deviceID) which allow to attach externally created OpenCL context to OpenCV.
add definitions of clRetainDevice, clRetainContext funcs
removed definitions for clRetainContext, clRetainDevice
fixed build issue under Linux
fixed uninitialized vars, replace dbgassert in error handling
remove function which is not ready yet
add new function, cv::ocl::convertFromBuffer(int rows, int cols, int type, void* cl_mem_obj, UMat& dst, UMatUsageFlags usageFlags = cv::USAGE_DEFAULT) which attaches user allocated OpenCL clBuffer to UMat
uncommented clGetMemObjectInfo definition (otherwise prevent opencv build)
fixed build issue on linux and android
add step parameter to cv::ocl::convertFromBuffer func
suppress compile-time warning
added sample opencl-opencv interoperability (showcase for cv::ocl::convertFromBuffer func)
CMakeLists.txt modified to not create sample build script if OpenCL SDK not found in system
fixed build issue (apple opencl include dir and spaces in CMake file)
added call to clRetainContext for attachContext func and call to clRetainMemObject for convertFromBuffer func
uncommented clRetainMemObject definition
added comments and cleanup
add local path to cmake modules search dirs (instead of replacing)
remove REQUIRED for find_package call (sample build together with opencv). need to try standalone sample build
opencl-interop sample moved to standalone build
set minimum version requirement for sample's cmake to 3.1
put cmake_minimum_required under condition, so do not check if samples not builded
remove code dups for setSize, updateContinuityFlag, and finalizeHdr
commented out cmake_minimum_required(VERSION 3.1)
add safety check for cmake version
add convertFromImage func and update opencl-interop sample
uncommented clGetImageInfo defs
uncommented clEnqueueCopyImageToBuffer defs
fixed clEnqueueCopyImageToBuffer defs
add doxygen comments
remove doxygen @fn tag
try to restart buildbot
add doxygen comments to directx interop funcs
remove internal header, use fwd declarations in affected compile units instead
2015-05-27 22:22:33 +02:00
|
|
|
|
|
|
|
set(project "opencl")
|
|
|
|
string(TOUPPER "${project}" project_upper)
|
|
|
|
|
|
|
|
project("${project}_samples")
|
|
|
|
|
|
|
|
ocv_include_modules_recurse(${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS})
|
|
|
|
|
|
|
|
include_directories(${OpenCL_INCLUDE_DIR})
|
|
|
|
|
|
|
|
# ---------------------------------------------
|
|
|
|
# Define executable targets
|
|
|
|
# ---------------------------------------------
|
|
|
|
MACRO(OPENCV_DEFINE_OPENCL_EXAMPLE name srcs)
|
|
|
|
set(the_target "example_${project}_${name}")
|
|
|
|
add_executable(${the_target} ${srcs})
|
|
|
|
|
|
|
|
ocv_target_link_libraries(
|
|
|
|
${the_target}
|
|
|
|
${OPENCV_LINKER_LIBS}
|
|
|
|
${OPENCV_OPENCL_SAMPLES_REQUIRED_DEPS}
|
|
|
|
${OpenCL_LIBRARY})
|
|
|
|
|
|
|
|
set_target_properties(${the_target} PROPERTIES
|
|
|
|
OUTPUT_NAME "${project}-example-${name}"
|
|
|
|
PROJECT_LABEL "(EXAMPLE_${project_upper}) ${name}")
|
|
|
|
|
|
|
|
if(ENABLE_SOLUTION_FOLDERS)
|
|
|
|
set_target_properties(${the_target} PROPERTIES FOLDER "samples//${project}")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(WIN32)
|
|
|
|
if(MSVC AND NOT BUILD_SHARED_LIBS)
|
|
|
|
set_target_properties(${the_target} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /DEBUG")
|
|
|
|
endif()
|
|
|
|
install(TARGETS ${the_target} RUNTIME DESTINATION "${OPENCV_SAMPLES_BIN_INSTALL_PATH}/${project}" COMPONENT main)
|
|
|
|
endif()
|
|
|
|
ENDMACRO()
|
|
|
|
|
|
|
|
file(GLOB all_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
|
|
|
|
|
|
|
|
foreach(sample_filename ${all_samples})
|
|
|
|
get_filename_component(sample ${sample_filename} NAME_WE)
|
|
|
|
file(GLOB sample_srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${sample}.*)
|
|
|
|
OPENCV_DEFINE_OPENCL_EXAMPLE(${sample} ${sample_srcs})
|
|
|
|
endforeach()
|
|
|
|
endif()
|