![]() |
#include <clEvaluator.h>
Public Types | |
| typedef bool | Instantiatable |
Public Member Functions | |
| CLEvaluator (cl_context context, cl_command_queue queue) | |
| Constructor. More... | |
| ~CLEvaluator () | |
| Destructor. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE > | |
| bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, STENCIL_TABLE const *stencilTable, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic stencil function. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE > | |
| bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, STENCIL_TABLE const *stencilTable, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic stencil function. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE > | |
| bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, STENCIL_TABLE const *stencilTable, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic stencil function. More... | |
| bool | EvalStencils (cl_mem src, BufferDescriptor const &srcDesc, cl_mem dst, BufferDescriptor const &dstDesc, cl_mem sizes, cl_mem offsets, cl_mem indices, cl_mem weights, int start, int end, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| bool | EvalStencils (cl_mem src, BufferDescriptor const &srcDesc, cl_mem dst, BufferDescriptor const &dstDesc, cl_mem du, BufferDescriptor const &duDesc, cl_mem dv, BufferDescriptor const &dvDesc, cl_mem sizes, cl_mem offsets, cl_mem indices, cl_mem weights, cl_mem duWeights, cl_mem dvWeights, int start, int end, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Dispatch the CL compute kernel asynchronously. returns false if the kernel hasn't been compiled yet. More... | |
| bool | EvalStencils (cl_mem src, BufferDescriptor const &srcDesc, cl_mem dst, BufferDescriptor const &dstDesc, cl_mem du, BufferDescriptor const &duDesc, cl_mem dv, BufferDescriptor const &dvDesc, cl_mem duu, BufferDescriptor const &duuDesc, cl_mem duv, BufferDescriptor const &duvDesc, cl_mem dvv, BufferDescriptor const &dvvDesc, cl_mem sizes, cl_mem offsets, cl_mem indices, cl_mem weights, cl_mem duWeights, cl_mem dvWeights, cl_mem duuWeights, cl_mem duvWeights, cl_mem dvvWeights, int start, int end, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Dispatch the CL compute kernel asynchronously. returns false if the kernel hasn't been compiled yet. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
| bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
| bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
| bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| bool | EvalPatches (cl_mem src, BufferDescriptor const &srcDesc, cl_mem dst, BufferDescriptor const &dstDesc, cl_mem du, BufferDescriptor const &duDesc, cl_mem dv, BufferDescriptor const &dvDesc, int numPatchCoords, cl_mem patchCoordsBuffer, cl_mem patchArrayBuffer, cl_mem patchIndexBuffer, cl_mem patchParamsBuffer, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| bool | EvalPatches (cl_mem src, BufferDescriptor const &srcDesc, cl_mem dst, BufferDescriptor const &dstDesc, cl_mem du, BufferDescriptor const &duDesc, cl_mem dv, BufferDescriptor const &dvDesc, cl_mem duu, BufferDescriptor const &duuDesc, cl_mem duv, BufferDescriptor const &duvDesc, cl_mem dvv, BufferDescriptor const &dvvDesc, int numPatchCoords, cl_mem patchCoordsBuffer, cl_mem patchArrayBuffer, cl_mem patchIndexBuffer, cl_mem patchParamsBuffer, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
| bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
| bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
| bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
| bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel=0, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
| bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel=0, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
| bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel=0, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) const |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| bool | Compile (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc=BufferDescriptor(), BufferDescriptor const &dvDesc=BufferDescriptor(), BufferDescriptor const &duuDesc=BufferDescriptor(), BufferDescriptor const &duvDesc=BufferDescriptor(), BufferDescriptor const &dvvDesc=BufferDescriptor()) |
Static Public Member Functions | |
| template<typename DEVICE_CONTEXT > | |
| static CLEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, DEVICE_CONTEXT deviceContext) |
| Generic creator template. More... | |
| static CLEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, cl_context clContext, cl_command_queue clCommandQueue) |
| template<typename DEVICE_CONTEXT > | |
| static CLEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, BufferDescriptor const &duuDesc, BufferDescriptor const &duvDesc, BufferDescriptor const &dvvDesc, DEVICE_CONTEXT deviceContext) |
| Generic creator template. More... | |
| static CLEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, BufferDescriptor const &duuDesc, BufferDescriptor const &duvDesc, BufferDescriptor const &dvvDesc, cl_context clContext, cl_command_queue clCommandQueue) |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, STENCIL_TABLE const *stencilTable, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, STENCIL_TABLE const *stencilTable, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, STENCIL_TABLE const *stencilTable, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE , typename DEVICE_CONTEXT > | |
| static bool | EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, CLEvaluator const *instance, DEVICE_CONTEXT deviceContext, unsigned int numStartEvents=0, const cl_event *startEvents=NULL, cl_event *endEvent=NULL) |
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way. More... | |
| template<typename DEVICE_CONTEXT > | |
| static void | Synchronize (DEVICE_CONTEXT deviceContext) |
| Wait the OpenCL kernels finish. More... | |
| static void | Synchronize (cl_command_queue queue) |
Definition at line 100 of file clEvaluator.h.
| typedef bool Instantiatable |
Definition at line 102 of file clEvaluator.h.
| CLEvaluator | ( | cl_context | context, |
| cl_command_queue | queue | ||
| ) |
Constructor.
| ~CLEvaluator | ( | ) |
Destructor.
| bool Compile | ( | BufferDescriptor const & | srcDesc, |
| BufferDescriptor const & | dstDesc, | ||
| BufferDescriptor const & | duDesc = BufferDescriptor(), |
||
| BufferDescriptor const & | dvDesc = BufferDescriptor(), |
||
| BufferDescriptor const & | duuDesc = BufferDescriptor(), |
||
| BufferDescriptor const & | duvDesc = BufferDescriptor(), |
||
| BufferDescriptor const & | dvvDesc = BufferDescriptor() |
||
| ) |
Other methods
Configure OpenCL kernel. Returns false if it fails to compile the kernel.
|
inlinestatic |
Generic creator template.
Definition at line 106 of file clEvaluator.h.
|
inlinestatic |
Definition at line 116 of file clEvaluator.h.
|
inlinestatic |
Generic creator template.
Definition at line 131 of file clEvaluator.h.
|
inlinestatic |
Definition at line 145 of file clEvaluator.h.
|
inlinestatic |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
Limit evaluations with PatchTable
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 902 of file clEvaluator.h.
|
inlinestatic |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct |
| patchTable | CLPatchTable or equivalent |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1003 of file clEvaluator.h.
|
inlinestatic |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| duuBuffer | Output buffer 2nd derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duuDesc | vertex buffer descriptor for the duuBuffer |
| duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCLBuffer() method returning a CL buffer object of destination data |
| duvDesc | vertex buffer descriptor for the duvBuffer |
| dvvBuffer | Output buffer 2nd derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvvDesc | vertex buffer descriptor for the dvvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct |
| patchTable | CLPatchTable or equivalent |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1125 of file clEvaluator.h.
|
inline |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1217 of file clEvaluator.h.
|
inline |
Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. |
| patchTable | CLPatchTable or equivalent |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1288 of file clEvaluator.h.
|
inline |
Generic limit eval function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| duuBuffer | Output buffer 2nd derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duuDesc | vertex buffer descriptor for the duuBuffer |
| duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCLBuffer() method returning a CL buffer object of destination data |
| duvDesc | vertex buffer descriptor for the duvBuffer |
| dvvBuffer | Output buffer 2nd derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvvDesc | vertex buffer descriptor for the dvvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. |
| patchTable | CLPatchTable or equivalent |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1379 of file clEvaluator.h.
| bool EvalPatches | ( | cl_mem | src, |
| BufferDescriptor const & | srcDesc, | ||
| cl_mem | dst, | ||
| BufferDescriptor const & | dstDesc, | ||
| cl_mem | du, | ||
| BufferDescriptor const & | duDesc, | ||
| cl_mem | dv, | ||
| BufferDescriptor const & | dvDesc, | ||
| int | numPatchCoords, | ||
| cl_mem | patchCoordsBuffer, | ||
| cl_mem | patchArrayBuffer, | ||
| cl_mem | patchIndexBuffer, | ||
| cl_mem | patchParamsBuffer, | ||
| unsigned int | numStartEvents = 0, |
||
| const cl_event * | startEvents = NULL, |
||
| cl_event * | endEvent = NULL |
||
| ) | const |
| bool EvalPatches | ( | cl_mem | src, |
| BufferDescriptor const & | srcDesc, | ||
| cl_mem | dst, | ||
| BufferDescriptor const & | dstDesc, | ||
| cl_mem | du, | ||
| BufferDescriptor const & | duDesc, | ||
| cl_mem | dv, | ||
| BufferDescriptor const & | dvDesc, | ||
| cl_mem | duu, | ||
| BufferDescriptor const & | duuDesc, | ||
| cl_mem | duv, | ||
| BufferDescriptor const & | duvDesc, | ||
| cl_mem | dvv, | ||
| BufferDescriptor const & | dvvDesc, | ||
| int | numPatchCoords, | ||
| cl_mem | patchCoordsBuffer, | ||
| cl_mem | patchArrayBuffer, | ||
| cl_mem | patchIndexBuffer, | ||
| cl_mem | patchParamsBuffer, | ||
| unsigned int | numStartEvents = 0, |
||
| const cl_event * | startEvents = NULL, |
||
| cl_event * | endEvent = NULL |
||
| ) | const |
|
inlinestatic |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| fvarChannel | face-varying channel |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 2061 of file clEvaluator.h.
|
inline |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| fvarChannel | face-varying channel |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 2143 of file clEvaluator.h.
|
inlinestatic |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| fvarChannel | face-varying channel |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 2231 of file clEvaluator.h.
|
inline |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| fvarChannel | face-varying channel |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 2329 of file clEvaluator.h.
|
inlinestatic |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| duuBuffer | Output buffer 2nd derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duuDesc | vertex buffer descriptor for the duuBuffer |
| duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCLBuffer() method returning a CL buffer object of destination data |
| duvDesc | vertex buffer descriptor for the duvBuffer |
| dvvBuffer | Output buffer 2nd derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvvDesc | vertex buffer descriptor for the dvvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| fvarChannel | face-varying channel |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 2437 of file clEvaluator.h.
|
inline |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| duuBuffer | Output buffer 2nd derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duuDesc | vertex buffer descriptor for the duuBuffer |
| duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCLBuffer() method returning a CL buffer object of destination data |
| duvDesc | vertex buffer descriptor for the duvBuffer |
| dvvBuffer | Output buffer 2nd derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvvDesc | vertex buffer descriptor for the dvvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| fvarChannel | face-varying channel |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 2564 of file clEvaluator.h.
|
inlinestatic |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1489 of file clEvaluator.h.
|
inline |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1568 of file clEvaluator.h.
|
inlinestatic |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1653 of file clEvaluator.h.
|
inline |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1749 of file clEvaluator.h.
|
inlinestatic |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| duuBuffer | Output buffer 2nd derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duuDesc | vertex buffer descriptor for the duuBuffer |
| duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCLBuffer() method returning a CL buffer object of destination data |
| duvDesc | vertex buffer descriptor for the duvBuffer |
| dvvBuffer | Output buffer 2nd derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvvDesc | vertex buffer descriptor for the dvvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1854 of file clEvaluator.h.
|
inline |
Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning a CL buffer object of source data |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning a CL buffer object of destination data |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| duuBuffer | Output buffer 2nd derivative wrt u must have BindCLBuffer() method returning a CL buffer object of destination data |
| duuDesc | vertex buffer descriptor for the duuBuffer |
| duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCLBuffer() method returning a CL buffer object of destination data |
| duvDesc | vertex buffer descriptor for the duvBuffer |
| dvvBuffer | Output buffer 2nd derivative wrt v must have BindCLBuffer() method returning a CL buffer object of destination data |
| dvvDesc | vertex buffer descriptor for the dvvBuffer |
| numPatchCoords | number of patchCoords. |
| patchCoords | array of locations to be evaluated. must have BindCLBuffer() method returning an array of PatchCoord struct. |
| patchTable | CLPatchTable or equivalent |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 1978 of file clEvaluator.h.
|
inlinestatic |
Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface.
Stencil evaluations with StencilTable
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning the cl_mem object for read |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning the cl_mem object for results to be written |
| dstDesc | vertex buffer descriptor for the output buffer |
| stencilTable | stencil table to be applied. The table must have SSBO interfaces. |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 219 of file clEvaluator.h.
|
inlinestatic |
Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning the cl_mem object for read |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning the cl_mem object for results to be written |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning the cl_mem object for du results to be written |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning the cl_mem object for dv results to be written |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| stencilTable | stencil table to be applied. The table must have SSBO interfaces. |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 309 of file clEvaluator.h.
|
inlinestatic |
Generic static stencil function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning the cl_mem object for read |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning the cl_mem object for results to be written |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning the cl_mem object for du results to be written |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning the cl_mem object for dv results to be written |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| duuBuffer | Output buffer 2nd derivative wrt u must have BindCLBuffer() method returning the cl_mem object for du results to be written |
| duuDesc | vertex buffer descriptor for the duuBuffer |
| duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCLBuffer() method returning the cl_mem object for du results to be written |
| duvDesc | vertex buffer descriptor for the duvBuffer |
| dvvBuffer | Output buffer 2nd derivative wrt v must have BindCLBuffer() method returning the cl_mem object for dv results to be written |
| dvvDesc | vertex buffer descriptor for the dvvBuffer |
| stencilTable | stencil table to be applied. The table must have SSBO interfaces. |
| instance | cached compiled instance. Clients are supposed to pre-compile an instance of this class and provide to this function. If it's null the kernel still compute by instantiating on-demand kernel although it may cause a performance problem. |
| deviceContext | client providing context class which supports cL_context GetContext() cl_command_queue GetCommandQueue() methods. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 421 of file clEvaluator.h.
|
inline |
Generic stencil function.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning the cl_mem object for read |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning the cl_mem object for results to be written |
| dstDesc | vertex buffer descriptor for the output buffer |
| stencilTable | stencil table to be applied. The table must have SSBO interfaces. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 500 of file clEvaluator.h.
|
inline |
Generic stencil function.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning the cl_mem object for read |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning the cl_mem object for results to be written |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning the cl_mem object for du results to be written |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning the cl_mem object for dv results to be written |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| stencilTable | stencil table to be applied. The table must have SSBO interfaces. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 561 of file clEvaluator.h.
|
inline |
Generic stencil function.
| srcBuffer | Input primvar buffer. must have BindCLBuffer() method returning the cl_mem object for read |
| srcDesc | vertex buffer descriptor for the input buffer |
| dstBuffer | Output primvar buffer must have BindCLBuffer() method returning the cl_mem object for results to be written |
| dstDesc | vertex buffer descriptor for the output buffer |
| duBuffer | Output buffer derivative wrt u must have BindCLBuffer() method returning the cl_mem object for du results to be written |
| duDesc | vertex buffer descriptor for the duBuffer |
| dvBuffer | Output buffer derivative wrt v must have BindCLBuffer() method returning the cl_mem object for dv results to be written |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| duuBuffer | Output buffer 2nd derivative wrt u must have BindCLBuffer() method returning the cl_mem object for du results to be written |
| duuDesc | vertex buffer descriptor for the duuBuffer |
| duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCLBuffer() method returning the cl_mem object for du results to be written |
| duvDesc | vertex buffer descriptor for the duvBuffer |
| dvvBuffer | Output buffer 2nd derivative wrt v must have BindCLBuffer() method returning the cl_mem object for dv results to be written |
| dvvDesc | vertex buffer descriptor for the dvvBuffer |
| stencilTable | stencil table to be applied. The table must have SSBO interfaces. |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
Definition at line 646 of file clEvaluator.h.
| bool EvalStencils | ( | cl_mem | src, |
| BufferDescriptor const & | srcDesc, | ||
| cl_mem | dst, | ||
| BufferDescriptor const & | dstDesc, | ||
| cl_mem | sizes, | ||
| cl_mem | offsets, | ||
| cl_mem | indices, | ||
| cl_mem | weights, | ||
| int | start, | ||
| int | end, | ||
| unsigned int | numStartEvents = 0, |
||
| const cl_event * | startEvents = NULL, |
||
| cl_event * | endEvent = NULL |
||
| ) | const |
Dispatch the CL compute kernel asynchronously. returns false if the kernel hasn't been compiled yet.
| bool EvalStencils | ( | cl_mem | src, |
| BufferDescriptor const & | srcDesc, | ||
| cl_mem | dst, | ||
| BufferDescriptor const & | dstDesc, | ||
| cl_mem | du, | ||
| BufferDescriptor const & | duDesc, | ||
| cl_mem | dv, | ||
| BufferDescriptor const & | dvDesc, | ||
| cl_mem | sizes, | ||
| cl_mem | offsets, | ||
| cl_mem | indices, | ||
| cl_mem | weights, | ||
| cl_mem | duWeights, | ||
| cl_mem | dvWeights, | ||
| int | start, | ||
| int | end, | ||
| unsigned int | numStartEvents = 0, |
||
| const cl_event * | startEvents = NULL, |
||
| cl_event * | endEvent = NULL |
||
| ) | const |
Dispatch the CL compute kernel asynchronously. returns false if the kernel hasn't been compiled yet.
| src | CL buffer of input primvar source data |
| srcDesc | vertex buffer descriptor for the srcBuffer |
| dst | CL buffer of output primvar destination data |
| dstDesc | vertex buffer descriptor for the dstBuffer |
| du | CL buffer of output derivative wrt u |
| duDesc | vertex buffer descriptor for the duBuffer |
| dv | CL buffer of output derivative wrt v |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| sizes | CL buffer of the sizes in the stencil table |
| offsets | CL buffer of the offsets in the stencil table |
| indices | CL buffer of the indices in the stencil table |
| weights | CL buffer of the weights in the stencil table |
| duWeights | CL buffer of the du weights in the stencil table |
| dvWeights | CL buffer of the dv weights in the stencil table |
| start | start index of stencil table |
| end | end index of stencil table |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
| bool EvalStencils | ( | cl_mem | src, |
| BufferDescriptor const & | srcDesc, | ||
| cl_mem | dst, | ||
| BufferDescriptor const & | dstDesc, | ||
| cl_mem | du, | ||
| BufferDescriptor const & | duDesc, | ||
| cl_mem | dv, | ||
| BufferDescriptor const & | dvDesc, | ||
| cl_mem | duu, | ||
| BufferDescriptor const & | duuDesc, | ||
| cl_mem | duv, | ||
| BufferDescriptor const & | duvDesc, | ||
| cl_mem | dvv, | ||
| BufferDescriptor const & | dvvDesc, | ||
| cl_mem | sizes, | ||
| cl_mem | offsets, | ||
| cl_mem | indices, | ||
| cl_mem | weights, | ||
| cl_mem | duWeights, | ||
| cl_mem | dvWeights, | ||
| cl_mem | duuWeights, | ||
| cl_mem | duvWeights, | ||
| cl_mem | dvvWeights, | ||
| int | start, | ||
| int | end, | ||
| unsigned int | numStartEvents = 0, |
||
| const cl_event * | startEvents = NULL, |
||
| cl_event * | endEvent = NULL |
||
| ) | const |
Dispatch the CL compute kernel asynchronously. returns false if the kernel hasn't been compiled yet.
| src | CL buffer of input primvar source data |
| srcDesc | vertex buffer descriptor for the srcBuffer |
| dst | CL buffer of output primvar destination data |
| dstDesc | vertex buffer descriptor for the dstBuffer |
| du | CL buffer of output derivative wrt u |
| duDesc | vertex buffer descriptor for the duBuffer |
| dv | CL buffer of output derivative wrt v |
| dvDesc | vertex buffer descriptor for the dvBuffer |
| duu | CL buffer of output 2nd derivative wrt u |
| duuDesc | vertex buffer descriptor for the duuBuffer |
| duv | CL buffer of output 2nd derivative wrt u and v |
| duvDesc | vertex buffer descriptor for the duvBuffer |
| dvv | CL buffer of output 2nd derivative wrt v |
| dvvDesc | vertex buffer descriptor for the dvvBuffer |
| sizes | CL buffer of the sizes in the stencil table |
| offsets | CL buffer of the offsets in the stencil table |
| indices | CL buffer of the indices in the stencil table |
| weights | CL buffer of the weights in the stencil table |
| duWeights | CL buffer of the du weights in the stencil table |
| dvWeights | CL buffer of the dv weights in the stencil table |
| duuWeights | CL buffer of the duu weights in the stencil table |
| duvWeights | CL buffer of the duv weights in the stencil table |
| dvvWeights | CL buffer of the dvv weights in the stencil table |
| start | start index of stencil table |
| end | end index of stencil table |
| numStartEvents | the number of events in the array pointed to by startEvents. |
| startEvents | points to an array of cl_event which will determine when it is safe for the OpenCL device to begin work or NULL if it can begin immediately. |
| endEvent | pointer to a cl_event which will receive a copy of the cl_event which indicates when all work for this call has completed. This cl_event has an incremented reference count and should be released via clReleaseEvent(). NULL if not required. |
|
inlinestatic |
Wait the OpenCL kernels finish.
Definition at line 2613 of file clEvaluator.h.
|
static |