|
Blender
V3.3
|
device representing an GPU OpenCL device. an instance of this class represents a single cl_device More...
#include <COM_OpenCLDevice.h>
Public Member Functions | |
| OpenCLDevice (cl_context context, cl_device_id device, cl_program program, cl_int vendor_id) | |
| constructor with opencl device More... | |
| OpenCLDevice (OpenCLDevice &&other) noexcept | |
| ~OpenCLDevice () | |
| void | execute (WorkPackage *work) override |
| execute a WorkPackage More... | |
| cl_context | get_context () |
| cl_command_queue | get_queue () |
| cl_mem | COM_cl_attach_memory_buffer_to_kernel_parameter (cl_kernel kernel, int parameter_index, int offset_index, std::list< cl_mem > *cleanup, MemoryBuffer **input_memory_buffers, SocketReader *reader) |
| cl_mem | COM_cl_attach_memory_buffer_to_kernel_parameter (cl_kernel kernel, int parameter_index, int offset_index, std::list< cl_mem > *cleanup, MemoryBuffer **input_memory_buffers, ReadBufferOperation *reader) |
| void | COM_cl_attach_memory_buffer_offset_to_kernel_parameter (cl_kernel kernel, int offset_index, MemoryBuffer *memory_buffers) |
| void | COM_cl_attach_output_memory_buffer_to_kernel_parameter (cl_kernel kernel, int parameter_index, cl_mem cl_output_memory_buffer) |
| void | COM_cl_attach_size_to_kernel_parameter (cl_kernel kernel, int offset_index, NodeOperation *operation) |
| void | COM_cl_enqueue_range (cl_kernel kernel, MemoryBuffer *output_memory_buffer) |
| void | COM_cl_enqueue_range (cl_kernel kernel, MemoryBuffer *output_memory_buffer, int offset_index, NodeOperation *operation) |
| cl_kernel | COM_cl_create_kernel (const char *kernelname, std::list< cl_kernel > *cl_kernels_to_clean_up) |
Public Member Functions inherited from blender::compositor::Device | |
| Device ()=default | |
| Device (const Device &other)=delete | |
| Device (Device &&other) noexcept=default | |
| Device & | operator= (const Device &other)=delete |
| Device & | operator= (Device &&other)=delete |
| virtual | ~Device () |
| Declaration of the virtual destructor. More... | |
Static Public Member Functions | |
| static const cl_image_format * | determine_image_format (MemoryBuffer *memory_buffer) |
| determine an image format More... | |
device representing an GPU OpenCL device. an instance of this class represents a single cl_device
Definition at line 26 of file COM_OpenCLDevice.h.
| blender::compositor::OpenCLDevice::OpenCLDevice | ( | cl_context | context, |
| cl_device_id | device, | ||
| cl_program | program, | ||
| cl_int | vendor_id | ||
| ) |
constructor with opencl device
| context | |
| device | |
| program | |
| vendorID |
Definition at line 25 of file COM_OpenCLDevice.cc.
References blender::compositor::context, error(), and blender::compositor::program.
|
noexcept |
Definition at line 40 of file COM_OpenCLDevice.cc.
| blender::compositor::OpenCLDevice::~OpenCLDevice | ( | ) |
Definition at line 50 of file COM_OpenCLDevice.cc.
| void blender::compositor::OpenCLDevice::COM_cl_attach_memory_buffer_offset_to_kernel_parameter | ( | cl_kernel | kernel, |
| int | offset_index, | ||
| MemoryBuffer * | memory_buffers | ||
| ) |
Definition at line 146 of file COM_OpenCLDevice.cc.
References error(), blender::compositor::MemoryBuffer::get_rect(), kernel, offset, rcti::xmin, and rcti::ymin.
Referenced by COM_cl_attach_memory_buffer_to_kernel_parameter(), blender::compositor::BokehBlurOperation::execute_opencl(), blender::compositor::DilateDistanceOperation::execute_opencl(), blender::compositor::ErodeDistanceOperation::execute_opencl(), blender::compositor::DirectionalBlurOperation::execute_opencl(), blender::compositor::GaussianXBlurOperation::execute_opencl(), blender::compositor::GaussianYBlurOperation::execute_opencl(), and blender::compositor::VariableSizeBokehBlurOperation::execute_opencl().
| cl_mem blender::compositor::OpenCLDevice::COM_cl_attach_memory_buffer_to_kernel_parameter | ( | cl_kernel | kernel, |
| int | parameter_index, | ||
| int | offset_index, | ||
| std::list< cl_mem > * | cleanup, | ||
| MemoryBuffer ** | input_memory_buffers, | ||
| ReadBufferOperation * | reader | ||
| ) |
Definition at line 107 of file COM_OpenCLDevice.cc.
References COM_cl_attach_memory_buffer_offset_to_kernel_parameter(), determine_image_format(), error(), blender::compositor::ReadBufferOperation::get_input_memory_buffer(), kernel, and result.
| cl_mem blender::compositor::OpenCLDevice::COM_cl_attach_memory_buffer_to_kernel_parameter | ( | cl_kernel | kernel, |
| int | parameter_index, | ||
| int | offset_index, | ||
| std::list< cl_mem > * | cleanup, | ||
| MemoryBuffer ** | input_memory_buffers, | ||
| SocketReader * | reader | ||
| ) |
Definition at line 72 of file COM_OpenCLDevice.cc.
References kernel.
Referenced by blender::compositor::BokehBlurOperation::execute_opencl(), blender::compositor::DilateDistanceOperation::execute_opencl(), blender::compositor::ErodeDistanceOperation::execute_opencl(), blender::compositor::DirectionalBlurOperation::execute_opencl(), blender::compositor::GaussianXBlurOperation::execute_opencl(), blender::compositor::GaussianYBlurOperation::execute_opencl(), and blender::compositor::VariableSizeBokehBlurOperation::execute_opencl().
| void blender::compositor::OpenCLDevice::COM_cl_attach_output_memory_buffer_to_kernel_parameter | ( | cl_kernel | kernel, |
| int | parameter_index, | ||
| cl_mem | cl_output_memory_buffer | ||
| ) |
Definition at line 176 of file COM_OpenCLDevice.cc.
References error(), and kernel.
Referenced by blender::compositor::BokehBlurOperation::execute_opencl(), blender::compositor::DilateDistanceOperation::execute_opencl(), blender::compositor::ErodeDistanceOperation::execute_opencl(), blender::compositor::DirectionalBlurOperation::execute_opencl(), blender::compositor::GaussianXBlurOperation::execute_opencl(), blender::compositor::GaussianYBlurOperation::execute_opencl(), and blender::compositor::VariableSizeBokehBlurOperation::execute_opencl().
| void blender::compositor::OpenCLDevice::COM_cl_attach_size_to_kernel_parameter | ( | cl_kernel | kernel, |
| int | offset_index, | ||
| NodeOperation * | operation | ||
| ) |
Definition at line 161 of file COM_OpenCLDevice.cc.
References error(), blender::compositor::NodeOperation::get_height(), blender::compositor::NodeOperation::get_width(), kernel, and offset.
Referenced by blender::compositor::BokehBlurOperation::execute_opencl(), blender::compositor::DilateDistanceOperation::execute_opencl(), blender::compositor::ErodeDistanceOperation::execute_opencl(), blender::compositor::GaussianXBlurOperation::execute_opencl(), blender::compositor::GaussianYBlurOperation::execute_opencl(), and blender::compositor::VariableSizeBokehBlurOperation::execute_opencl().
| cl_kernel blender::compositor::OpenCLDevice::COM_cl_create_kernel | ( | const char * | kernelname, |
| std::list< cl_kernel > * | cl_kernels_to_clean_up | ||
| ) |
Definition at line 254 of file COM_OpenCLDevice.cc.
References error(), and kernel.
Referenced by blender::compositor::BokehBlurOperation::execute_opencl(), blender::compositor::DilateDistanceOperation::execute_opencl(), blender::compositor::ErodeDistanceOperation::execute_opencl(), blender::compositor::DirectionalBlurOperation::execute_opencl(), blender::compositor::GaussianXBlurOperation::execute_opencl(), blender::compositor::GaussianYBlurOperation::execute_opencl(), and blender::compositor::VariableSizeBokehBlurOperation::execute_opencl().
| void blender::compositor::OpenCLDevice::COM_cl_enqueue_range | ( | cl_kernel | kernel, |
| MemoryBuffer * | output_memory_buffer | ||
| ) |
Definition at line 186 of file COM_OpenCLDevice.cc.
References error(), blender::compositor::MemoryBuffer::get_height(), blender::compositor::MemoryBuffer::get_width(), kernel, and size().
Referenced by blender::compositor::BokehBlurOperation::execute_opencl(), blender::compositor::DilateDistanceOperation::execute_opencl(), blender::compositor::ErodeDistanceOperation::execute_opencl(), blender::compositor::DirectionalBlurOperation::execute_opencl(), blender::compositor::GaussianXBlurOperation::execute_opencl(), blender::compositor::GaussianYBlurOperation::execute_opencl(), and blender::compositor::VariableSizeBokehBlurOperation::execute_opencl().
| void blender::compositor::OpenCLDevice::COM_cl_enqueue_range | ( | cl_kernel | kernel, |
| MemoryBuffer * | output_memory_buffer, | ||
| int | offset_index, | ||
| NodeOperation * | operation | ||
| ) |
Definition at line 200 of file COM_OpenCLDevice.cc.
References error(), blender::compositor::MemoryBuffer::get_height(), blender::compositor::MemoryBuffer::get_width(), height, blender::compositor::NodeOperation::is_braked(), kernel, blender::compositor::NVIDIA, offset, size(), and width.
|
static |
determine an image format
| memorybuffer |
Definition at line 88 of file COM_OpenCLDevice.cc.
References BLI_assert_msg, blender::compositor::MemoryBuffer::get_num_channels(), blender::compositor::IMAGE_FORMAT_COLOR, blender::compositor::IMAGE_FORMAT_VALUE, and blender::compositor::IMAGE_FORMAT_VECTOR.
Referenced by COM_cl_attach_memory_buffer_to_kernel_parameter(), and blender::compositor::WriteBufferOperation::execute_opencl_region().
|
overridevirtual |
execute a WorkPackage
| work | the WorkPackage to execute |
Implements blender::compositor::Device.
Definition at line 57 of file COM_OpenCLDevice.cc.
References blender::compositor::ExecutionGroup::allocate_output_buffer(), blender::compositor::WorkPackage::chunk_number, blender::compositor::NodeOperation::execute_opencl_region(), blender::compositor::WorkPackage::execution_group, blender::compositor::ExecutionGroup::finalize_chunk_execution(), blender::compositor::ExecutionGroup::get_input_buffers_opencl(), blender::compositor::ExecutionGroup::get_output_operation(), and blender::compositor::WorkPackage::rect.
|
inline |
Definition at line 79 of file COM_OpenCLDevice.h.
Referenced by blender::compositor::GaussianXBlurOperation::execute_opencl(), blender::compositor::GaussianYBlurOperation::execute_opencl(), and blender::compositor::WriteBufferOperation::execute_opencl_region().
|
inline |
Definition at line 84 of file COM_OpenCLDevice.h.
Referenced by blender::compositor::WriteBufferOperation::execute_opencl_region().