OpenSubdiv
|
#include <mtlComputeEvaluator.h>
Public Types | |
typedef bool | Instantiatable |
Public Member Functions | |
MTLComputeEvaluator () | |
~MTLComputeEvaluator () | |
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, MTLContext *context) const |
Generic stencil function. | |
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, MTLContext *context) const |
Generic stencil function. | |
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, MTLContext *context) const |
Generic stencil function. | |
bool | EvalStencils (id< MTLBuffer > srcBuffer, BufferDescriptor const &srcDesc, id< MTLBuffer > dstBuffer, BufferDescriptor const &dstDesc, id< MTLBuffer > duBuffer, BufferDescriptor const &duDesc, id< MTLBuffer > dvBuffer, BufferDescriptor const &dvDesc, id< MTLBuffer > sizesBuffer, id< MTLBuffer > offsetsBuffer, id< MTLBuffer > indicesBuffer, id< MTLBuffer > weightsBuffer, id< MTLBuffer > duWeightsBuffer, id< MTLBuffer > dvWeightsBuffer, int start, int end, MTLContext *context) const |
Dispatch the MTL compute kernel on GPU asynchronously returns false if the kernel hasn't been compiled yet. | |
bool | EvalStencils (id< MTLBuffer > srcBuffer, BufferDescriptor const &srcDesc, id< MTLBuffer > dstBuffer, BufferDescriptor const &dstDesc, id< MTLBuffer > duBuffer, BufferDescriptor const &duDesc, id< MTLBuffer > dvBuffer, BufferDescriptor const &dvDesc, id< MTLBuffer > duuBuffer, BufferDescriptor const &duuDesc, id< MTLBuffer > duvBuffer, BufferDescriptor const &duvDesc, id< MTLBuffer > dvvBuffer, BufferDescriptor const &dvvDesc, id< MTLBuffer > sizesBuffer, id< MTLBuffer > offsetsBuffer, id< MTLBuffer > indicesBuffer, id< MTLBuffer > weightsBuffer, id< MTLBuffer > duWeightsBuffer, id< MTLBuffer > dvWeightsBuffer, id< MTLBuffer > duuWeightsBuffer, id< MTLBuffer > duvWeightsBuffer, id< MTLBuffer > dvvWeightsBuffer, int start, int end, MTLContext *context) const |
Dispatch the MTL compute kernel on GPU asynchronously returns false if the kernel hasn't been compiled yet. | |
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, MTLContext *context) 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. | |
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, MTLContext *context) 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. | |
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, MTLContext *context) 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. | |
bool | EvalPatches (id< MTLBuffer > srcBuffer, BufferDescriptor const &srcDesc, id< MTLBuffer > dstBuffer, BufferDescriptor const &dstDesc, id< MTLBuffer > duBuffer, BufferDescriptor const &duDesc, id< MTLBuffer > dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, id< MTLBuffer > patchCoordsBuffer, const PatchArrayVector &patchArrays, id< MTLBuffer > patchIndexBuffer, id< MTLBuffer > patchParamsBuffer, MTLContext *context) const |
bool | EvalPatches (id< MTLBuffer > srcBuffer, BufferDescriptor const &srcDesc, id< MTLBuffer > dstBuffer, BufferDescriptor const &dstDesc, id< MTLBuffer > duBuffer, BufferDescriptor const &duDesc, id< MTLBuffer > dvBuffer, BufferDescriptor const &dvDesc, id< MTLBuffer > duuBuffer, BufferDescriptor const &duuDesc, id< MTLBuffer > duvBuffer, BufferDescriptor const &duvDesc, id< MTLBuffer > dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, id< MTLBuffer > patchCoordsBuffer, const PatchArrayVector &patchArrays, id< MTLBuffer > patchIndexBuffer, id< MTLBuffer > patchParamsBuffer, MTLContext *context) 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, MTLContext *deviceContext) 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. | |
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, MTLContext *deviceContext) 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. | |
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, MTLContext *deviceContext) 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. | |
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, MTLContext *deviceContext) 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. | |
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, MTLContext *deviceContext) 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. | |
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, MTLContext *deviceContext) 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. | |
bool | Compile (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, BufferDescriptor const &duuDesc, BufferDescriptor const &duvDesc, BufferDescriptor const &dvvDesc, MTLContext *context) |
Configure compute pipline state. Returns false if it fails to create the pipeline state. | |
Static Public Member Functions | |
static MTLComputeEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, MTLContext *context) |
static MTLComputeEvaluator * | Create (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, BufferDescriptor const &duuDesc, BufferDescriptor const &duvDesc, BufferDescriptor const &dvvDesc, MTLContext *context) |
template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE > | |
static bool | EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, STENCIL_TABLE const *stencilTable, MTLComputeEvaluator const *instance, MTLContext *context) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE > | |
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, MTLComputeEvaluator const *instance, MTLContext *context) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE > | |
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, MTLComputeEvaluator const *instance, MTLContext *context) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
static bool | EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, MTLComputeEvaluator const *instance, MTLContext *context) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
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, MTLComputeEvaluator *instance, MTLContext *context) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
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, MTLComputeEvaluator *instance, MTLContext *context) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
static bool | EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, MTLComputeEvaluator const *instance, MTLContext *deviceContext) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
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, MTLComputeEvaluator const *instance, MTLContext *deviceContext) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
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, MTLComputeEvaluator const *instance, MTLContext *deviceContext) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
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, MTLComputeEvaluator const *instance, MTLContext *deviceContext) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
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, MTLComputeEvaluator const *instance, MTLContext *deviceContext) |
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. | |
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE > | |
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, MTLComputeEvaluator const *instance, MTLContext *deviceContext) |
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. | |
static void | Synchronize (MTLContext *context) |
Wait for the dispatched kernel to finish. | |
Definition at line 91 of file mtlComputeEvaluator.h.
typedef bool Instantiatable |
Definition at line 94 of file mtlComputeEvaluator.h.
~MTLComputeEvaluator | ( | ) |
bool Compile | ( | BufferDescriptor const & | srcDesc, |
BufferDescriptor const & | dstDesc, | ||
BufferDescriptor const & | duDesc, | ||
BufferDescriptor const & | dvDesc, | ||
BufferDescriptor const & | duuDesc, | ||
BufferDescriptor const & | duvDesc, | ||
BufferDescriptor const & | dvvDesc, | ||
MTLContext * | context | ||
) |
Configure compute pipline state. Returns false if it fails to create the pipeline state.
|
static |
|
static |
bool EvalPatches | ( | id< MTLBuffer > | srcBuffer, |
BufferDescriptor const & | srcDesc, | ||
id< MTLBuffer > | dstBuffer, | ||
BufferDescriptor const & | dstDesc, | ||
id< MTLBuffer > | duBuffer, | ||
BufferDescriptor const & | duDesc, | ||
id< MTLBuffer > | dvBuffer, | ||
BufferDescriptor const & | dvDesc, | ||
id< MTLBuffer > | duuBuffer, | ||
BufferDescriptor const & | duuDesc, | ||
id< MTLBuffer > | duvBuffer, | ||
BufferDescriptor const & | duvDesc, | ||
id< MTLBuffer > | dvvBuffer, | ||
BufferDescriptor const & | dvvDesc, | ||
int | numPatchCoords, | ||
id< MTLBuffer > | patchCoordsBuffer, | ||
const PatchArrayVector & | patchArrays, | ||
id< MTLBuffer > | patchIndexBuffer, | ||
id< MTLBuffer > | patchParamsBuffer, | ||
MTLContext * | context | ||
) | const |
bool EvalPatches | ( | id< MTLBuffer > | srcBuffer, |
BufferDescriptor const & | srcDesc, | ||
id< MTLBuffer > | dstBuffer, | ||
BufferDescriptor const & | dstDesc, | ||
id< MTLBuffer > | duBuffer, | ||
BufferDescriptor const & | duDesc, | ||
id< MTLBuffer > | dvBuffer, | ||
BufferDescriptor const & | dvDesc, | ||
int | numPatchCoords, | ||
id< MTLBuffer > | patchCoordsBuffer, | ||
const PatchArrayVector & | patchArrays, | ||
id< MTLBuffer > | patchIndexBuffer, | ||
id< MTLBuffer > | patchParamsBuffer, | ||
MTLContext * | context | ||
) | 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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duuDesc | vertex buffer descriptor for the duuBuffer |
duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning an MTLBuffer object of destination data |
duvDesc | vertex buffer descriptor for the duvBuffer |
dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvvDesc | vertex buffer descriptor for the dvvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable 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. |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 889 of file mtlComputeEvaluator.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 BindVBO() method returning a MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data |
duuDesc | vertex buffer descriptor for the duuBuffer |
duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a MTLBuffer object of destination data |
duvDesc | vertex buffer descriptor for the duvBuffer |
dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data |
dvvDesc | vertex buffer descriptor for the dvvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. |
patchTable | MTLPatchTable or equivalent |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1104 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable 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. |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 786 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. |
patchTable | MTLPatchTable or equivalent |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1025 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer 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 BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable 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. |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 705 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBOBuffer() method returning an MTLBuffer 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 BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable or equivalent |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 966 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duuDesc | vertex buffer descriptor for the duuBuffer |
duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning an MTLBuffer object of destination data |
duvDesc | vertex buffer descriptor for the duvBuffer |
dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvvDesc | vertex buffer descriptor for the dvvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable 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 | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1991 of file mtlComputeEvaluator.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 BindVBO() method returning a MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data |
duuDesc | vertex buffer descriptor for the duuBuffer |
duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a MTLBuffer object of destination data |
duvDesc | vertex buffer descriptor for the duvBuffer |
dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data |
dvvDesc | vertex buffer descriptor for the dvvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable or equivalent |
fvarChannel | face-varying channel |
deviceContext | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 2106 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable 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 | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1813 of file mtlComputeEvaluator.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 BindVBO() method returning a MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable or equivalent |
fvarChannel | face-varying channel |
deviceContext | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1900 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer 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 BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable 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 | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1672 of file mtlComputeEvaluator.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 BindVBO() method returning a MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning a MTLBuffer 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 BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable or equivalent |
fvarChannel | face-varying channel |
deviceContext | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1742 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duuDesc | vertex buffer descriptor for the duuBuffer |
duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning an MTLBuffer object of destination data |
duvDesc | vertex buffer descriptor for the duvBuffer |
dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvvDesc | vertex buffer descriptor for the dvvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable 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 | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1496 of file mtlComputeEvaluator.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 BindVBO() method returning a MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data |
duuDesc | vertex buffer descriptor for the duuBuffer |
duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning a MTLBuffer object of destination data |
duvDesc | vertex buffer descriptor for the duvBuffer |
dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data |
dvvDesc | vertex buffer descriptor for the dvvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable or equivalent |
deviceContext | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1606 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable 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 | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1325 of file mtlComputeEvaluator.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 BindVBO() method returning a MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
numPatchCoords | number of patchCoords. |
patchCoords | array of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable or equivalent |
deviceContext | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1407 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer 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 BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable 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 | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1192 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer 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 BindVBO() method returning an array of PatchCoord struct in VBO. |
patchTable | MTLPatchTable or equivalent |
deviceContext | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 1257 of file mtlComputeEvaluator.h.
bool EvalStencils | ( | id< MTLBuffer > | srcBuffer, |
BufferDescriptor const & | srcDesc, | ||
id< MTLBuffer > | dstBuffer, | ||
BufferDescriptor const & | dstDesc, | ||
id< MTLBuffer > | duBuffer, | ||
BufferDescriptor const & | duDesc, | ||
id< MTLBuffer > | dvBuffer, | ||
BufferDescriptor const & | dvDesc, | ||
id< MTLBuffer > | duuBuffer, | ||
BufferDescriptor const & | duuDesc, | ||
id< MTLBuffer > | duvBuffer, | ||
BufferDescriptor const & | duvDesc, | ||
id< MTLBuffer > | dvvBuffer, | ||
BufferDescriptor const & | dvvDesc, | ||
id< MTLBuffer > | sizesBuffer, | ||
id< MTLBuffer > | offsetsBuffer, | ||
id< MTLBuffer > | indicesBuffer, | ||
id< MTLBuffer > | weightsBuffer, | ||
id< MTLBuffer > | duWeightsBuffer, | ||
id< MTLBuffer > | dvWeightsBuffer, | ||
id< MTLBuffer > | duuWeightsBuffer, | ||
id< MTLBuffer > | duvWeightsBuffer, | ||
id< MTLBuffer > | dvvWeightsBuffer, | ||
int | start, | ||
int | end, | ||
MTLContext * | context | ||
) | const |
Dispatch the MTL compute kernel on GPU asynchronously returns false if the kernel hasn't been compiled yet.
srcBuffer | MTLBuffer of input primvar source data |
srcDesc | vertex buffer descriptor for the srcBuffer |
dstBuffer | MTLBuffer of output primvar destination data |
dstDesc | vertex buffer descriptor for the dstBuffer |
duBuffer | MTLBuffer of output derivative wrt u |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | MTLBuffer of output derivative wrt v |
dvDesc | vertex buffer descriptor for the dvBuffer |
duuBuffer | MTLBuffer of output 2nd derivative wrt u |
duuDesc | vertex buffer descriptor for the duuBuffer |
duvBuffer | MTLBuffer of output 2nd derivative wrt u and v |
duvDesc | vertex buffer descriptor for the duvBuffer |
dvvBuffer | MTLBuffer of output 2nd derivative wrt v |
dvvDesc | vertex buffer descriptor for the dvvBuffer |
sizesBuffer | MTLBuffer of the sizes in the stencil table |
offsetsBuffer | MTLBuffer of the offsets in the stencil table |
indicesBuffer | MTLBuffer of the indices in the stencil table |
weightsBuffer | MTLBuffer of the weights in the stencil table |
duWeightsBuffer | MTLBuffer of the du weights in the stencil table |
dvWeightsBuffer | MTLBuffer of the dv weights in the stencil table |
duuWeightsBuffer | MTLBuffer of the duu weights in the stencil table |
duvWeightsBuffer | MTLBuffer of the duv weights in the stencil table |
dvvWeightsBuffer | MTLBuffer of the dvv weights in the stencil table |
start | start index of stencil table |
end | end index of stencil table |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
bool EvalStencils | ( | id< MTLBuffer > | srcBuffer, |
BufferDescriptor const & | srcDesc, | ||
id< MTLBuffer > | dstBuffer, | ||
BufferDescriptor const & | dstDesc, | ||
id< MTLBuffer > | duBuffer, | ||
BufferDescriptor const & | duDesc, | ||
id< MTLBuffer > | dvBuffer, | ||
BufferDescriptor const & | dvDesc, | ||
id< MTLBuffer > | sizesBuffer, | ||
id< MTLBuffer > | offsetsBuffer, | ||
id< MTLBuffer > | indicesBuffer, | ||
id< MTLBuffer > | weightsBuffer, | ||
id< MTLBuffer > | duWeightsBuffer, | ||
id< MTLBuffer > | dvWeightsBuffer, | ||
int | start, | ||
int | end, | ||
MTLContext * | context | ||
) | const |
Dispatch the MTL compute kernel on GPU asynchronously returns false if the kernel hasn't been compiled yet.
srcBuffer | MTLBuffer of input primvar source data |
srcDesc | vertex buffer descriptor for the srcBuffer |
dstBuffer | MTLBuffer of output primvar destination data |
dstDesc | vertex buffer descriptor for the dstBuffer |
duBuffer | MTLBuffer of output derivative wrt u |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | MTLBuffer of output derivative wrt v |
dvDesc | vertex buffer descriptor for the dvBuffer |
sizesBuffer | MTLBuffer of the sizes in the stencil table |
offsetsBuffer | MTLBuffer of the offsets in the stencil table |
indicesBuffer | MTLBuffer of the indices in the stencil table |
weightsBuffer | MTLBuffer of the weights in the stencil table |
duWeightsBuffer | MTLBuffer of the du weights in the stencil table |
dvWeightsBuffer | MTLBuffer of the dv weights in the stencil table |
start | start index of stencil table |
end | end index of stencil table |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
|
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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the dstBuffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duuDesc | vertex buffer descriptor for the duuBuffer |
duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning an MTLBuffer object of destination data |
duvDesc | vertex buffer descriptor for the duvBuffer |
dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvvDesc | vertex buffer descriptor for the dvvBuffer |
stencilTable | stencil table to be applied. The table must have MTLBuffer 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. |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 312 of file mtlComputeEvaluator.h.
|
inline |
Generic stencil function.
srcBuffer | Input primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the dstBuffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
duuBuffer | Output buffer 2nd derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duuDesc | vertex buffer descriptor for the duuBuffer |
duvBuffer | Output buffer 2nd derivative wrt u and v must have BindVBO() method returning an MTLBuffer object of destination data |
duvDesc | vertex buffer descriptor for the duvBuffer |
dvvBuffer | Output buffer 2nd derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvvDesc | vertex buffer descriptor for the dvvBuffer |
stencilTable | stencil table to be applied. The table must have MTLBuffer interfaces. |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 504 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the dstBuffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
stencilTable | stencil table to be applied. The table must have MTLBuffer 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. |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 220 of file mtlComputeEvaluator.h.
|
inline |
Generic stencil function.
srcBuffer | Input primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the dstBuffer |
duBuffer | Output buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data |
duDesc | vertex buffer descriptor for the duBuffer |
dvBuffer | Output buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data |
dvDesc | vertex buffer descriptor for the dvBuffer |
stencilTable | stencil table to be applied. The table must have MTLBuffer interfaces. |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 430 of file mtlComputeEvaluator.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 BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
stencilTable | stencil table to be applied. The table must have MTLBuffer 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. |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 149 of file mtlComputeEvaluator.h.
|
inline |
Generic stencil function.
srcBuffer | Input primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data |
srcDesc | vertex buffer descriptor for the input buffer |
dstBuffer | Output primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data |
dstDesc | vertex buffer descriptor for the output buffer |
stencilTable | stencil table to be applied. The table must have MTLBuffer interfaces. |
context | used to obtain the MTLDevice object and command queue to obtain command buffers from. |
Definition at line 376 of file mtlComputeEvaluator.h.
|
static |
Wait for the dispatched kernel to finish.