Loading...
Searching...
No Matches
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.
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.

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

## ~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]

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

## Create() [2/2]

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

static

## EvalPatches() [1/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

## EvalPatches() [2/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() [3/8]

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,
|  | MTLComputeEvaluator * | instance,
|  | MTLContext * | context )

inline static

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

  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.

## EvalPatches() [4/8]

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

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

  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.

## EvalPatches() [5/8]

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,
|  | MTLComputeEvaluator * | instance,
|  | MTLContext * | context )

inline static

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

  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.

## EvalPatches() [6/8]

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

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

  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.

## EvalPatches() [7/8]

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,
|  | MTLComputeEvaluator const * | instance,
|  | MTLContext * | context )

inline static

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

  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.

## EvalPatches() [8/8]

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

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

  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.

## EvalPatchesFaceVarying() [1/6]

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,
|  | MTLComputeEvaluator const * | instance,
|  | MTLContext * | deviceContext )

inline static

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

  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.

## EvalPatchesFaceVarying() [2/6]

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

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

  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.

## EvalPatchesFaceVarying() [3/6]

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,
|  | MTLComputeEvaluator const * | instance,
|  | MTLContext * | deviceContext )

inline static

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

  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.

## EvalPatchesFaceVarying() [4/6]

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

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

  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.

## EvalPatchesFaceVarying() [5/6]

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,
|  | MTLComputeEvaluator const * | instance,
|  | MTLContext * | deviceContext )

inline static

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

  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.

## EvalPatchesFaceVarying() [6/6]

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

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

  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.

## EvalPatchesVarying() [1/6]

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,
|  | MTLComputeEvaluator const * | instance,
|  | MTLContext * | deviceContext )

inline static

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

  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.

## EvalPatchesVarying() [2/6]

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

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

  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.

## EvalPatchesVarying() [3/6]

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,
|  | MTLComputeEvaluator const * | instance,
|  | MTLContext * | deviceContext )

inline static

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

  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.

## EvalPatchesVarying() [4/6]

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

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

  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.

## EvalPatchesVarying() [5/6]

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,
|  | MTLComputeEvaluator const * | instance,
|  | MTLContext * | deviceContext )

inline static

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

  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.

## EvalPatchesVarying() [6/6]

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

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

  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.

## EvalStencils() [1/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

  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.

## EvalStencils() [2/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

  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.

## EvalStencils() [3/8]

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,
|  | MTLComputeEvaluator const * | instance,
|  | MTLContext * | context )

inline static

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

  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.

## EvalStencils() [4/8]

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

inline

Generic stencil function.

Parameters

  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.

## EvalStencils() [5/8]

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,
|  | MTLComputeEvaluator const * | instance,
|  | MTLContext * | context )

inline static

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

  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.

## EvalStencils() [6/8]

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

inline

Generic stencil function.

Parameters

  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.

## EvalStencils() [7/8]

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,
|  | MTLComputeEvaluator const * | instance,
|  | MTLContext * | context )

inline static

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

  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.

## EvalStencils() [8/8]

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

inline

Generic stencil function.

Parameters

  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.

## Synchronize()

void Synchronize | ( | MTLContext * | context | ) |

static

Wait for the dispatched kernel to finish.

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

- opensubdiv/osd/mtlComputeEvaluator.h