Compute controller for launching OpenCL Compute subdivision kernels. More...
#include <clComputeController.h>
Public Types | |
typedef CLComputeContext | ComputeContext |
Public Member Functions | |
CLComputeController (cl_context clContext, cl_command_queue queue) | |
~CLComputeController () | |
Destructor. More... | |
template<class VERTEX_BUFFER , class VARYING_BUFFER > | |
void | Compute (CLComputeContext const *context, Far::KernelBatchVector const &batches, VERTEX_BUFFER *vertexBuffer, VARYING_BUFFER *varyingBuffer, VertexBufferDescriptor const *vertexDesc=NULL, VertexBufferDescriptor const *varyingDesc=NULL) |
template<class VERTEX_BUFFER > | |
void | Compute (CLComputeContext const *context, Far::KernelBatchVector const &batches, VERTEX_BUFFER *vertexBuffer) |
void | Synchronize () |
Waits until all running subdivision kernels finish. More... | |
cl_context | GetContext () const |
Returns CL context. More... | |
cl_command_queue | GetCommandQueue () const |
Returns CL command queue. More... | |
Protected Member Functions | |
void | ApplyStencilTableKernel (Far::KernelBatch const &batch, ComputeContext const *context) |
template<class VERTEX_BUFFER , class VARYING_BUFFER > | |
void | bind (VERTEX_BUFFER *vertexBuffer, VARYING_BUFFER *varyingBuffer, VertexBufferDescriptor const *vertexDesc, VertexBufferDescriptor const *varyingDesc) |
void | unbind () |
Friends | |
class | Far::KernelBatchDispatcher |
Compute controller for launching OpenCL Compute subdivision kernels.
CLComputeController is a compute controller class to launch OpenCL subdivision kernels. It requires CLVertexBufferInterface as arguments of Refine function.
Controller entities execute requests from Context instances that they share common interfaces with. Controllers are attached to discrete compute devices and share the devices resources with Context entities.
Definition at line 54 of file clComputeController.h.
typedef CLComputeContext ComputeContext |
Definition at line 56 of file clComputeController.h.
CLComputeController | ( | cl_context | clContext, |
cl_command_queue | queue | ||
) |
Constructor.
clContext | a valid instanciated OpenCL context |
queue | a valid non-zero OpenCL command queue |
~CLComputeController | ( | ) |
Destructor.
|
protected |
|
inlineprotected |
Definition at line 139 of file clComputeController.h.
|
inline |
Execute subdivision kernels and apply to given vertex buffers.
context | The CLContext to apply refinement operations to |
batches | Vector of batches of vertices organized by operative kernel |
vertexBuffer | Vertex-interpolated data buffer |
vertexDesc | The descriptor of vertex elements to be refined. if it's null, all primvars in the vertex buffer will be refined. |
varyingBuffer | Vertex-interpolated data buffer |
varyingDesc | The descriptor of varying elements to be refined. if it's null, all primvars in the vertex buffer will be refined. |
Definition at line 89 of file clComputeController.h.
|
inline |
Execute subdivision kernels and apply to given vertex buffers.
context | The CLContext to apply refinement operations to |
batches | Vector of batches of vertices organized by operative kernel |
vertexBuffer | Vertex-interpolated data buffer |
Definition at line 115 of file clComputeController.h.
|
inline |
Returns CL command queue.
Definition at line 129 of file clComputeController.h.
|
inline |
Returns CL context.
Definition at line 126 of file clComputeController.h.
void Synchronize | ( | ) |
Waits until all running subdivision kernels finish.
|
inlineprotected |
Definition at line 168 of file clComputeController.h.
|
friend |
Definition at line 133 of file clComputeController.h.