OpenSubdiv
MTLComputeEvaluator Class Reference

#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. 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, MTLContext *context) 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, MTLContext *context) const
 Generic stencil function. More...
 
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. More...
 
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. 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, 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. 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, 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. 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, 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. More...
 
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. 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, 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. 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, 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. 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, 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. 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, 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. 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, 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. More...
 
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. More...
 

Static Public Member Functions

static MTLComputeEvaluatorCreate (BufferDescriptor const &srcDesc, BufferDescriptor const &dstDesc, BufferDescriptor const &duDesc, BufferDescriptor const &dvDesc, MTLContext *context)
 
static MTLComputeEvaluatorCreate (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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static void Synchronize (MTLContext *context)
 Wait for the dispatched kernel to finish. More...
 

Detailed Description

Definition at line 91 of file mtlComputeEvaluator.h.

Member Typedef Documentation

◆ Instantiatable

typedef bool Instantiatable

Definition at line 94 of file mtlComputeEvaluator.h.

Constructor & Destructor Documentation

◆ MTLComputeEvaluator()

◆ ~MTLComputeEvaluator()

Member Function Documentation

◆ Compile()

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.

◆ Create() [1/2]

static MTLComputeEvaluator* Create ( BufferDescriptor const &  srcDesc,
BufferDescriptor const &  dstDesc,
BufferDescriptor const &  duDesc,
BufferDescriptor const &  dvDesc,
MTLContext context 
)
static

◆ Create() [2/2]

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 
)
static

◆ EvalPatches() [1/8]

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 
)
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


Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
instancecached 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.
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 705 of file mtlComputeEvaluator.h.

◆ EvalPatches() [2/8]

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 
)
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
instancecached 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.
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 786 of file mtlComputeEvaluator.h.

◆ EvalPatches() [3/8]

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 
)
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning an MTLBuffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
instancecached 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.
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 889 of file mtlComputeEvaluator.h.

◆ EvalPatches() [4/8]

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
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBOBuffer() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 966 of file mtlComputeEvaluator.h.

◆ EvalPatches() [5/8]

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
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated.
patchTableMTLPatchTable or equivalent
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1025 of file mtlComputeEvaluator.h.

◆ EvalPatches() [6/8]

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
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning a MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a MTLBuffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated.
patchTableMTLPatchTable or equivalent
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1104 of file mtlComputeEvaluator.h.

◆ EvalPatches() [7/8]

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

◆ EvalPatches() [8/8]

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

◆ EvalPatchesFaceVarying() [1/6]

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 
)
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
fvarChannelface-varying channel
instancecached 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.
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1672 of file mtlComputeEvaluator.h.

◆ EvalPatchesFaceVarying() [2/6]

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
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning a MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
fvarChannelface-varying channel
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1742 of file mtlComputeEvaluator.h.

◆ EvalPatchesFaceVarying() [3/6]

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 
)
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
fvarChannelface-varying channel
instancecached 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.
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1813 of file mtlComputeEvaluator.h.

◆ EvalPatchesFaceVarying() [4/6]

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
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning a MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
fvarChannelface-varying channel
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1900 of file mtlComputeEvaluator.h.

◆ EvalPatchesFaceVarying() [5/6]

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 
)
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning an MTLBuffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
fvarChannelface-varying channel
instancecached 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.
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1991 of file mtlComputeEvaluator.h.

◆ EvalPatchesFaceVarying() [6/6]

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
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning a MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a MTLBuffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
fvarChannelface-varying channel
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 2106 of file mtlComputeEvaluator.h.

◆ EvalPatchesVarying() [1/6]

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 
)
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
instancecached 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.
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1192 of file mtlComputeEvaluator.h.

◆ EvalPatchesVarying() [2/6]

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
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1257 of file mtlComputeEvaluator.h.

◆ EvalPatchesVarying() [3/6]

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 
)
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
instancecached 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.
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1325 of file mtlComputeEvaluator.h.

◆ EvalPatchesVarying() [4/6]

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
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning a MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1407 of file mtlComputeEvaluator.h.

◆ EvalPatchesVarying() [5/6]

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 
)
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning an MTLBuffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
instancecached 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.
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1496 of file mtlComputeEvaluator.h.

◆ EvalPatchesVarying() [6/6]

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
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning a MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning a MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning a MTLBuffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning a MTLBuffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning a MTLBuffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindVBO() method returning an array of PatchCoord struct in VBO.
patchTableMTLPatchTable or equivalent
deviceContextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 1606 of file mtlComputeEvaluator.h.

◆ EvalStencils() [1/8]

static bool EvalStencils ( SRC_BUFFER *  srcBuffer,
BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
BufferDescriptor const &  dstDesc,
STENCIL_TABLE const *  stencilTable,
MTLComputeEvaluator const *  instance,
MTLContext context 
)
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


Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
stencilTablestencil table to be applied. The table must have MTLBuffer interfaces.
instancecached 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.
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 149 of file mtlComputeEvaluator.h.

◆ EvalStencils() [2/8]

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 
)
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
stencilTablestencil table to be applied. The table must have MTLBuffer interfaces.
instancecached 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.
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 220 of file mtlComputeEvaluator.h.

◆ EvalStencils() [3/8]

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 
)
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.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning an MTLBuffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
stencilTablestencil table to be applied. The table must have MTLBuffer interfaces.
instancecached 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.
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 312 of file mtlComputeEvaluator.h.

◆ EvalStencils() [4/8]

bool EvalStencils ( SRC_BUFFER *  srcBuffer,
BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
BufferDescriptor const &  dstDesc,
STENCIL_TABLE const *  stencilTable,
MTLContext context 
) const
inline

Generic stencil function.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the output buffer
stencilTablestencil table to be applied. The table must have MTLBuffer interfaces.
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 376 of file mtlComputeEvaluator.h.

◆ EvalStencils() [5/8]

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
inline

Generic stencil function.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
stencilTablestencil table to be applied. The table must have MTLBuffer interfaces.
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 430 of file mtlComputeEvaluator.h.

◆ EvalStencils() [6/8]

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
inline

Generic stencil function.

Parameters
srcBufferInput primvar buffer. must have BindVBO() method returning an MTLBuffer object of source data
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindVBO() method returning an MTLBuffer object of destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferOutput buffer derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindVBO() method returning an MTLBuffer object of destination data
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindVBO() method returning an MTLBuffer object of destination data
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindVBO() method returning an MTLBuffer object of destination data
dvvDescvertex buffer descriptor for the dvvBuffer
stencilTablestencil table to be applied. The table must have MTLBuffer interfaces.
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

Definition at line 504 of file mtlComputeEvaluator.h.

◆ EvalStencils() [7/8]

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.

Parameters
srcBufferMTLBuffer of input primvar source data
srcDescvertex buffer descriptor for the srcBuffer
dstBufferMTLBuffer of output primvar destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferMTLBuffer of output derivative wrt u
duDescvertex buffer descriptor for the duBuffer
dvBufferMTLBuffer of output derivative wrt v
dvDescvertex buffer descriptor for the dvBuffer
sizesBufferMTLBuffer of the sizes in the stencil table
offsetsBufferMTLBuffer of the offsets in the stencil table
indicesBufferMTLBuffer of the indices in the stencil table
weightsBufferMTLBuffer of the weights in the stencil table
duWeightsBufferMTLBuffer of the du weights in the stencil table
dvWeightsBufferMTLBuffer of the dv weights in the stencil table
startstart index of stencil table
endend index of stencil table
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

◆ EvalStencils() [8/8]

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.

Parameters
srcBufferMTLBuffer of input primvar source data
srcDescvertex buffer descriptor for the srcBuffer
dstBufferMTLBuffer of output primvar destination data
dstDescvertex buffer descriptor for the dstBuffer
duBufferMTLBuffer of output derivative wrt u
duDescvertex buffer descriptor for the duBuffer
dvBufferMTLBuffer of output derivative wrt v
dvDescvertex buffer descriptor for the dvBuffer
duuBufferMTLBuffer of output 2nd derivative wrt u
duuDescvertex buffer descriptor for the duuBuffer
duvBufferMTLBuffer of output 2nd derivative wrt u and v
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferMTLBuffer of output 2nd derivative wrt v
dvvDescvertex buffer descriptor for the dvvBuffer
sizesBufferMTLBuffer of the sizes in the stencil table
offsetsBufferMTLBuffer of the offsets in the stencil table
indicesBufferMTLBuffer of the indices in the stencil table
weightsBufferMTLBuffer of the weights in the stencil table
duWeightsBufferMTLBuffer of the du weights in the stencil table
dvWeightsBufferMTLBuffer of the dv weights in the stencil table
duuWeightsBufferMTLBuffer of the duu weights in the stencil table
duvWeightsBufferMTLBuffer of the duv weights in the stencil table
dvvWeightsBufferMTLBuffer of the dvv weights in the stencil table
startstart index of stencil table
endend index of stencil table
contextused to obtain the MTLDevice object and command queue to obtain command buffers from.

◆ Synchronize()

static void Synchronize ( MTLContext context)
static

Wait for the dispatched kernel to finish.


The documentation for this class was generated from the following file: