Loading...
Searching...
No Matches
TbbEvaluator Class Reference

`#include <tbbEvaluator.h>`

## Static Public Member Functions

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, TbbEvaluator const *instance=NULL, void *deviceContext=NULL)
| Generic static eval stencils function. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface.
static bool | EvalStencils (const float *src, BufferDescriptor const &srcDesc, float *dst, BufferDescriptor const &dstDesc, const int *sizes, const int *offsets, const int *indices, const float *weights, int start, int end)
| Static eval stencils function which takes raw CPU pointers for input and output.
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, const TbbEvaluator *instance=NULL, void *deviceContext=NULL)
| Generic static eval stencils function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface.
static bool | EvalStencils (const float *src, BufferDescriptor const &srcDesc, float *dst, BufferDescriptor const &dstDesc, float *du, BufferDescriptor const &duDesc, float *dv, BufferDescriptor const &dvDesc, const int *sizes, const int *offsets, const int *indices, const float *weights, const float *duWeights, const float *dvWeights, int start, int end)
| Static eval stencils function with derivatives, which takes raw CPU pointers for input and output.
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, const TbbEvaluator *instance=NULL, void *deviceContext=NULL)

| Generic static eval stencils function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface.

static bool

EvalStencils (const float *src, BufferDescriptor const &srcDesc, float *dst, BufferDescriptor const &dstDesc, float *du, BufferDescriptor const &duDesc, float *dv, BufferDescriptor const &dvDesc, float *duu, BufferDescriptor const &duuDesc, float *duv, BufferDescriptor const &duvDesc, float *dvv, BufferDescriptor const &dvvDesc, const int *sizes, const int *offsets, const int *indices, const float *weights, const float *duWeights, const float *dvWeights, const float *duuWeights, const float *duvWeights, const float *dvvWeights, int start, int end)

| Static eval stencils function with derivatives, which takes raw CPU pointers for input and output.
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, TbbEvaluator const *instance=NULL, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
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, TbbEvaluator const *instance=NULL, void *deviceContext=NULL)
| 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 >

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, TbbEvaluator const *instance=NULL, void *deviceContext=NULL)

| 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.
static bool | EvalPatches (const float *src, BufferDescriptor const &srcDesc, float *dst, BufferDescriptor const &dstDesc, int numPatchCoords, const PatchCoord *patchCoords, const PatchArray *patchArrays, const int *patchIndexBuffer, const PatchParam *patchParamBuffer)
| Static limit eval function. It takes an array of PatchCoord and evaluate limit values on given PatchTable.
static bool | EvalPatches (const float *src, BufferDescriptor const &srcDesc, float *dst, BufferDescriptor const &dstDesc, float *du, BufferDescriptor const &duDesc, float *dv, BufferDescriptor const &dvDesc, int numPatchCoords, PatchCoord const *patchCoords, PatchArray const *patchArrays, const int *patchIndexBuffer, PatchParam const *patchParamBuffer)
| Static limit eval function. It takes an array of PatchCoord and evaluate limit values on given PatchTable.

static bool

EvalPatches (const float *src, BufferDescriptor const &srcDesc, float *dst, BufferDescriptor const &dstDesc, float *du, BufferDescriptor const &duDesc, float *dv, BufferDescriptor const &dvDesc, float *duu, BufferDescriptor const &duuDesc, float *duv, BufferDescriptor const &duvDesc, float *dvv, BufferDescriptor const &dvvDesc, int numPatchCoords, PatchCoord const *patchCoords, PatchArray const *patchArrays, const int *patchIndexBuffer, PatchParam const *patchParamBuffer)

| Static limit eval function. It takes an array of PatchCoord and evaluate limit values on given PatchTable.
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, TbbEvaluator const *instance=NULL, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
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, TbbEvaluator const *instance=NULL, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
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, TbbEvaluator const *instance=NULL, void *deviceContext=NULL)

| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
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, TbbEvaluator const *instance=NULL, void *deviceContext=NULL)
| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
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, TbbEvaluator const *instance=NULL, void *deviceContext=NULL)

| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
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, TbbEvaluator const *instance=NULL, void *deviceContext=NULL)

| Generic limit eval function. This function has a same signature as other device kernels have so that it can be called in the same way.
static void | Synchronize (void *deviceContext=NULL)
| synchronize all asynchronous computation invoked on this device.
static void | SetNumThreads (int numThreads)
| initialize tbb task schedular (optional: client may use tbb::task_scheduler_init)

## Detailed Description

Definition at line 39 of file tbbEvaluator.h.

## Member Function Documentation

## EvalPatches() [1/6]

static bool EvalPatches | ( | const float * | src,
|  | BufferDescriptor const & | srcDesc,
|  | float * | dst,
|  | BufferDescriptor const & | dstDesc,
|  | float * | du,
|  | BufferDescriptor const & | duDesc,
|  | float * | dv,
|  | BufferDescriptor const & | dvDesc,
|  | float * | duu,
|  | BufferDescriptor const & | duuDesc,
|  | float * | duv,
|  | BufferDescriptor const & | duvDesc,
|  | float * | dvv,
|  | BufferDescriptor const & | dvvDesc,
|  | int | numPatchCoords,
|  | PatchCoord const * | patchCoords,
|  | PatchArray const * | patchArrays,
|  | const int * | patchIndexBuffer,
|  | PatchParam const * | patchParamBuffer )

static

Static limit eval function. It takes an array of PatchCoord and evaluate limit values on given PatchTable.

Parameters

  src | Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
  srcDesc | vertex buffer descriptor for the input buffer
  dst | Output primvar pointer. An offset of dstDesc will be applied internally.
  dstDesc | vertex buffer descriptor for the output buffer
  du | Output pointer derivative wrt u. An offset of duDesc will be applied internally.
  duDesc | vertex buffer descriptor for the duBuffer
  dv | Output pointer derivative wrt v. An offset of dvDesc will be applied internally.
  dvDesc | vertex buffer descriptor for the dvBuffer
  duu | Output pointer 2nd derivative wrt u. An offset of duuDesc will be applied internally.
  duuDesc | vertex buffer descriptor for the duuBuffer
  duv | Output pointer 2nd derivative wrt u and v. An offset of duvDesc will be applied internally.
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvv | Output pointer 2nd derivative wrt v. An offset of dvvDesc will be applied internally.
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchArrays | an array of Osd::PatchArray struct indexed by PatchCoord::arrayIndex
  patchIndexBuffer | an array of patch indices indexed by PatchCoord::vertIndex
  patchParamBuffer | an array of Osd::PatchParam struct indexed by PatchCoord::patchIndex

## EvalPatches() [2/6]

static bool EvalPatches | ( | const float * | src,
|  | BufferDescriptor const & | srcDesc,
|  | float * | dst,
|  | BufferDescriptor const & | dstDesc,
|  | float * | du,
|  | BufferDescriptor const & | duDesc,
|  | float * | dv,
|  | BufferDescriptor const & | dvDesc,
|  | int | numPatchCoords,
|  | PatchCoord const * | patchCoords,
|  | PatchArray const * | patchArrays,
|  | const int * | patchIndexBuffer,
|  | PatchParam const * | patchParamBuffer )

static

Static limit eval function. It takes an array of PatchCoord and evaluate limit values on given PatchTable.

Parameters

  src | Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
  srcDesc | vertex buffer descriptor for the input buffer
  dst | Output primvar pointer. An offset of dstDesc will be applied internally.
  dstDesc | vertex buffer descriptor for the output buffer
  du | Output pointer derivative wrt u. An offset of duDesc will be applied internally.
  duDesc | vertex buffer descriptor for the duBuffer
  dv | Output pointer derivative wrt v. An offset of dvDesc will be applied internally.
  dvDesc | vertex buffer descriptor for the dvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchArrays | an array of Osd::PatchArray struct indexed by PatchCoord::arrayIndex
  patchIndexBuffer | an array of patch indices indexed by PatchCoord::vertIndex
  patchParamBuffer | an array of Osd::PatchParam struct indexed by PatchCoord::patchIndex

## EvalPatches() [3/6]

static bool EvalPatches | ( | const float * | src,
|  | BufferDescriptor const & | srcDesc,
|  | float * | dst,
|  | BufferDescriptor const & | dstDesc,
|  | int | numPatchCoords,
|  | const PatchCoord * | patchCoords,
|  | const PatchArray * | patchArrays,
|  | const int * | patchIndexBuffer,
|  | const PatchParam * | patchParamBuffer )

static

Static limit eval function. It takes an array of PatchCoord and evaluate limit values on given PatchTable.

Parameters

  src | Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
  srcDesc | vertex buffer descriptor for the input buffer
  dst | Output primvar pointer. An offset of dstDesc will be applied internally.
  dstDesc | vertex buffer descriptor for the output buffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchArrays | an array of Osd::PatchArray struct indexed by PatchCoord::arrayIndex
  patchIndexBuffer | an array of patch indices indexed by PatchCoord::vertIndex
  patchParamBuffer | an array of Osd::PatchParam struct indexed by PatchCoord::patchIndex

## EvalPatches() [4/6]

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,
|  | TbbEvaluator const * | instance = NULL,
|  | void * | deviceContext = NULL )

inlinestatic

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 BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCpuBuffer() method returning a float pointer for write
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | CpuPatchTable or equivalent XXX: currently Far::PatchTable can't be used due to interface mismatch
  instance | not used in the cpu evaluator
  deviceContext | not used in the cpu evaluator

Definition at line 607 of file tbbEvaluator.h.

## EvalPatches() [5/6]

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,
|  | TbbEvaluator const * | instance = NULL,
|  | void * | deviceContext = NULL )

inlinestatic

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 BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvDesc | vertex buffer descriptor for the dvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | CpuPatchTable or equivalent XXX: currently Far::PatchTable can't be used due to interface mismatch
  instance | not used in the cpu evaluator
  deviceContext | not used in the cpu evaluator

Definition at line 517 of file tbbEvaluator.h.

## EvalPatches() [6/6]

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,
|  | TbbEvaluator const * | instance = NULL,
|  | void * | deviceContext = NULL )

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

  srcBuffer | Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | CpuPatchTable or equivalent XXX: currently Far::PatchTable can't be used due to interface mismatch
  instance | not used in the cpu evaluator
  deviceContext | not used in the cpu evaluator

Definition at line 454 of file tbbEvaluator.h.

## EvalPatchesFaceVarying() [1/3]

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,
|  | TbbEvaluator const * | instance = NULL,
|  | void * | deviceContext = NULL )

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

  srcBuffer | Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCpuBuffer() method returning a float pointer for write
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | CpuPatchTable or equivalent XXX: currently Far::PatchTable can't be used due to interface mismatch
  fvarChannel | face-varying channel
  instance | not used in the cpu evaluator
  deviceContext | not used in the cpu evaluator

Definition at line 1188 of file tbbEvaluator.h.

## EvalPatchesFaceVarying() [2/3]

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,
|  | TbbEvaluator const * | instance = NULL,
|  | void * | deviceContext = NULL )

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

  srcBuffer | Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvDesc | vertex buffer descriptor for the dvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | CpuPatchTable or equivalent XXX: currently Far::PatchTable can't be used due to interface mismatch
  fvarChannel | face-varying channel
  instance | not used in the cpu evaluator
  deviceContext | not used in the cpu evaluator

Definition at line 1100 of file tbbEvaluator.h.

## EvalPatchesFaceVarying() [3/3]

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,
|  | TbbEvaluator const * | instance = NULL,
|  | void * | deviceContext = NULL )

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

  srcBuffer | Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | CpuPatchTable or equivalent XXX: currently Far::PatchTable can't be used due to interface mismatch
  fvarChannel | face-varying channel
  instance | not used in the cpu evaluator
  deviceContext | not used in the cpu evaluator

Definition at line 1034 of file tbbEvaluator.h.

## EvalPatchesVarying() [1/3]

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,
|  | TbbEvaluator const * | instance = NULL,
|  | void * | deviceContext = NULL )

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

  srcBuffer | Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCpuBuffer() method returning a float pointer for write
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | CpuPatchTable or equivalent XXX: currently Far::PatchTable can't be used due to interface mismatch
  instance | not used in the cpu evaluator
  deviceContext | not used in the cpu evaluator

Definition at line 971 of file tbbEvaluator.h.

## EvalPatchesVarying() [2/3]

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,
|  | TbbEvaluator const * | instance = NULL,
|  | void * | deviceContext = NULL )

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

  srcBuffer | Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvDesc | vertex buffer descriptor for the dvBuffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | CpuPatchTable or equivalent XXX: currently Far::PatchTable can't be used due to interface mismatch
  instance | not used in the cpu evaluator
  deviceContext | not used in the cpu evaluator

Definition at line 886 of file tbbEvaluator.h.

## EvalPatchesVarying() [3/3]

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,
|  | TbbEvaluator const * | instance = NULL,
|  | void * | deviceContext = NULL )

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

  srcBuffer | Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  numPatchCoords | number of patchCoords.
  patchCoords | array of locations to be evaluated.
  patchTable | CpuPatchTable or equivalent XXX: currently Far::PatchTable can't be used due to interface mismatch
  instance | not used in the cpu evaluator
  deviceContext | not used in the cpu evaluator

Definition at line 823 of file tbbEvaluator.h.

## EvalStencils() [1/6]

static bool EvalStencils | ( | const float * | src,
|  | BufferDescriptor const & | srcDesc,
|  | float * | dst,
|  | BufferDescriptor const & | dstDesc,
|  | const int * | sizes,
|  | const int * | offsets,
|  | const int * | indices,
|  | const float * | weights,
|  | int | start,
|  | int | end )

static

Static eval stencils function which takes raw CPU pointers for input and output.

Parameters

  src | Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
  srcDesc | vertex buffer descriptor for the input buffer
  dst | Output primvar pointer. An offset of dstDesc will be applied internally.
  dstDesc | vertex buffer descriptor for the output buffer
  sizes | pointer to the sizes buffer of the stencil table
  offsets | pointer to the offsets buffer of the stencil table
  indices | pointer to the indices buffer of the stencil table
  weights | pointer to the weights buffer of the stencil table
  start | start index of stencil table
  end | end index of stencil table

## EvalStencils() [2/6]

static bool EvalStencils | ( | const float * | src,
|  | BufferDescriptor const & | srcDesc,
|  | float * | dst,
|  | BufferDescriptor const & | dstDesc,
|  | float * | du,
|  | BufferDescriptor const & | duDesc,
|  | float * | dv,
|  | BufferDescriptor const & | dvDesc,
|  | const int * | sizes,
|  | const int * | offsets,
|  | const int * | indices,
|  | const float * | weights,
|  | const float * | duWeights,
|  | const float * | dvWeights,
|  | int | start,
|  | int | end )

static

Static eval stencils function with derivatives, which takes raw CPU pointers for input and output.

Parameters

  src | Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
  srcDesc | vertex buffer descriptor for the input buffer
  dst | Output primvar pointer. An offset of dstDesc will be applied internally.
  dstDesc | vertex buffer descriptor for the output buffer
  du | Output pointer derivative wrt u. An offset of duDesc will be applied internally.
  duDesc | vertex buffer descriptor for the duBuffer
  dv | Output pointer derivative wrt v. An offset of dvDesc will be applied internally.
  dvDesc | vertex buffer descriptor for the dvBuffer
  sizes | pointer to the sizes buffer of the stencil table
  offsets | pointer to the offsets buffer of the stencil table
  indices | pointer to the indices buffer of the stencil table
  weights | pointer to the weights buffer of the stencil table
  duWeights | pointer to the du-weights buffer of the stencil table
  dvWeights | pointer to the dv-weights buffer of the stencil table
  start | start index of stencil table
  end | end index of stencil table

## EvalStencils() [3/6]

static bool EvalStencils | ( | const float * | src,
|  | BufferDescriptor const & | srcDesc,
|  | float * | dst,
|  | BufferDescriptor const & | dstDesc,
|  | float * | du,
|  | BufferDescriptor const & | duDesc,
|  | float * | dv,
|  | BufferDescriptor const & | dvDesc,
|  | float * | duu,
|  | BufferDescriptor const & | duuDesc,
|  | float * | duv,
|  | BufferDescriptor const & | duvDesc,
|  | float * | dvv,
|  | BufferDescriptor const & | dvvDesc,
|  | const int * | sizes,
|  | const int * | offsets,
|  | const int * | indices,
|  | const float * | weights,
|  | const float * | duWeights,
|  | const float * | dvWeights,
|  | const float * | duuWeights,
|  | const float * | duvWeights,
|  | const float * | dvvWeights,
|  | int | start,
|  | int | end )

static

Static eval stencils function with derivatives, which takes raw CPU pointers for input and output.

Parameters

  src | Input primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
  srcDesc | vertex buffer descriptor for the input buffer
  dst | Output primvar pointer. An offset of dstDesc will be applied internally.
  dstDesc | vertex buffer descriptor for the output buffer
  du | Output pointer derivative wrt u. An offset of duDesc will be applied internally.
  duDesc | vertex buffer descriptor for the duBuffer
  dv | Output pointer derivative wrt v. An offset of dvDesc will be applied internally.
  dvDesc | vertex buffer descriptor for the dvBuffer
  duu | Output pointer 2nd derivative wrt u. An offset of duuDesc will be applied internally.
  duuDesc | vertex buffer descriptor for the duuBuffer
  duv | Output pointer 2nd derivative wrt u and v. An offset of duvDesc will be applied internally.
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvv | Output pointer 2nd derivative wrt v. An offset of dvvDesc will be applied internally.
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  sizes | pointer to the sizes buffer of the stencil table
  offsets | pointer to the offsets buffer of the stencil table
  indices | pointer to the indices buffer of the stencil table
  weights | pointer to the weights buffer of the stencil table
  duWeights | pointer to the du-weights buffer of the stencil table
  dvWeights | pointer to the dv-weights buffer of the stencil table
  duuWeights | pointer to the duu-weights buffer of the stencil table
  duvWeights | pointer to the duv-weights buffer of the stencil table
  dvvWeights | pointer to the dvv-weights buffer of the stencil table
  start | start index of stencil table
  end | end index of stencil table

## EvalStencils() [4/6]

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,
|  | const TbbEvaluator * | instance = NULL,
|  | void * | deviceContext = NULL )

inlinestatic

Generic static eval stencils function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface.

Parameters

  srcBuffer | Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvDesc | vertex buffer descriptor for the dvBuffer
  duuBuffer | Output buffer 2nd derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duuDesc | vertex buffer descriptor for the duuBuffer
  duvBuffer | Output buffer 2nd derivative wrt u and v must have BindCpuBuffer() method returning a float pointer for write
  duvDesc | vertex buffer descriptor for the duvBuffer
  dvvBuffer | Output buffer 2nd derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvvDesc | vertex buffer descriptor for the dvvBuffer
  stencilTable | Far::StencilTable or equivalent
  instance | not used in the tbb kernel (declared as a typed pointer to prevent undesirable template resolution)
  deviceContext | not used in the tbb kernel

Definition at line 303 of file tbbEvaluator.h.

## EvalStencils() [5/6]

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,
|  | const TbbEvaluator * | instance = NULL,
|  | void * | deviceContext = NULL )

inlinestatic

Generic static eval stencils function with derivatives. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface.

Parameters

  srcBuffer | Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  duBuffer | Output buffer derivative wrt u must have BindCpuBuffer() method returning a float pointer for write
  duDesc | vertex buffer descriptor for the duBuffer
  dvBuffer | Output buffer derivative wrt v must have BindCpuBuffer() method returning a float pointer for write
  dvDesc | vertex buffer descriptor for the dvBuffer
  stencilTable | Far::StencilTable or equivalent
  instance | not used in the tbb kernel (declared as a typed pointer to prevent undesirable template resolution)
  deviceContext | not used in the tbb kernel

Definition at line 168 of file tbbEvaluator.h.

## EvalStencils() [6/6]

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,
|  | TbbEvaluator const * | instance = NULL,
|  | void * | deviceContext = NULL )

inlinestatic

Generic static eval stencils function. This function has a same signature as other device kernels have so that it can be called in the same way from OsdMesh template interface.

Stencil evaluations with StencilTable

Parameters

  srcBuffer | Input primvar buffer. must have BindCpuBuffer() method returning a const float pointer for read
  srcDesc | vertex buffer descriptor for the input buffer
  dstBuffer | Output primvar buffer must have BindCpuBuffer() method returning a float pointer for write
  dstDesc | vertex buffer descriptor for the output buffer
  stencilTable | Far::StencilTable or equivalent
  instance | not used in the tbb kernel (declared as a typed pointer to prevent undesirable template resolution)
  deviceContext | not used in the tbb kernel

Definition at line 72 of file tbbEvaluator.h.

## SetNumThreads()

static void SetNumThreads | ( | int | numThreads | ) |

static

initialize tbb task schedular (optional: client may use tbb::task_scheduler_init)

Parameters

  numThreads | how many threads

## Synchronize()

static void Synchronize | ( | void * | deviceContext = NULL | ) |

static

synchronize all asynchronous computation invoked on this device.

Other methods

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

- opensubdiv/osd/tbbEvaluator.h