All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
CudaEvaluator Class Reference

#include <cudaEvaluator.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, const void *instance=NULL, void *deviceContext=NULL)
 Generic static compute function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface. More...
 
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 cuda buffers for input and output. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
static bool EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, STENCIL_TABLE const *stencilTable, const CudaEvaluator *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. More...
 
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 cuda pointers for input and output. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename STENCIL_TABLE >
static bool EvalStencils (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, STENCIL_TABLE const *stencilTable, const CudaEvaluator *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. More...
 
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 cuda pointers for input and output. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CudaEvaluator const *instance, 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. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CudaEvaluator const *instance, 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. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool EvalPatches (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CudaEvaluator const *instance, 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. More...
 
static bool EvalPatches (const float *src, BufferDescriptor const &srcDesc, float *dst, BufferDescriptor const &dstDesc, int numPatchCoords, const PatchCoord *patchCoords, const PatchArray *patchArrays, const int *patchIndices, const PatchParam *patchParams)
 Static limit eval function. It takes an array of PatchCoord and evaluate limit values on given PatchTable. More...
 
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 *patchIndices, PatchParam const *patchParams)
 Static limit eval function. It takes an array of PatchCoord and evaluate limit values on given PatchTable. More...
 
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 *patchIndices, PatchParam const *patchParams)
 Static limit eval function. It takes an array of PatchCoord and evaluate limit values on given PatchTable. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CudaEvaluator const *instance, 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. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CudaEvaluator const *instance, 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. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool EvalPatchesVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, CudaEvaluator const *instance, 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. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, CudaEvaluator const *instance, 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. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, CudaEvaluator const *instance, 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. More...
 
template<typename SRC_BUFFER , typename DST_BUFFER , typename PATCHCOORD_BUFFER , typename PATCH_TABLE >
static bool EvalPatchesFaceVarying (SRC_BUFFER *srcBuffer, BufferDescriptor const &srcDesc, DST_BUFFER *dstBuffer, BufferDescriptor const &dstDesc, DST_BUFFER *duBuffer, BufferDescriptor const &duDesc, DST_BUFFER *dvBuffer, BufferDescriptor const &dvDesc, DST_BUFFER *duuBuffer, BufferDescriptor const &duuDesc, DST_BUFFER *duvBuffer, BufferDescriptor const &duvDesc, DST_BUFFER *dvvBuffer, BufferDescriptor const &dvvDesc, int numPatchCoords, PATCHCOORD_BUFFER *patchCoords, PATCH_TABLE *patchTable, int fvarChannel, CudaEvaluator const *instance, 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. More...
 
static void Synchronize (void *deviceContext=NULL)
 

Detailed Description

Definition at line 94 of file cudaEvaluator.h.

Member Function Documentation

static bool EvalPatches ( SRC_BUFFER *  srcBuffer,
BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
BufferDescriptor const &  dstDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
CudaEvaluator const *  instance,
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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindCudaBuffer() method returning an array of PatchCoord struct in cuda memory.
patchTableCudaPatchTable or equivalent
instancenot used in the cuda evaluator
deviceContextnot used in the cuda evaluator

Definition at line 504 of file cudaEvaluator.h.

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,
CudaEvaluator const *  instance,
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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated.
patchTableCudaPatchTable or equivalent
instancenot used in the cuda evaluator
deviceContextnot used in the cuda evaluator

Definition at line 565 of file cudaEvaluator.h.

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,
CudaEvaluator const *  instance,
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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated.
patchTableCudaPatchTable or equivalent
instancenot used in the cuda evaluator
deviceContextnot used in the cuda evaluator

Definition at line 648 of file cudaEvaluator.h.

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

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

Parameters
srcInput primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
srcDescvertex buffer descriptor for the input buffer
dstOutput primvar pointer. An offset of dstDesc will be applied internally.
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated.
patchArraysan array of Osd::PatchArray struct indexed by PatchCoord::arrayIndex
patchIndicesan array of patch indices indexed by PatchCoord::vertIndex
patchParamsan array of Osd::PatchParam struct indexed by PatchCoord::patchIndex
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 *  patchIndices,
PatchParam const *  patchParams 
)
static

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

Parameters
srcInput primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
srcDescvertex buffer descriptor for the input buffer
dstOutput primvar pointer. An offset of dstDesc will be applied internally.
dstDescvertex buffer descriptor for the output buffer
duOutput pointer derivative wrt u. An offset of duDesc will be applied internally.
duDescvertex buffer descriptor for the duBuffer
dvOutput pointer derivative wrt v. An offset of dvDesc will be applied internally.
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated.
patchArraysan array of Osd::PatchArray struct indexed by PatchCoord::arrayIndex
patchIndicesan array of patch indices indexed by PatchCoord::vertIndex
patchParamsan array of Osd::PatchParam struct indexed by PatchCoord::patchIndex
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 *  patchIndices,
PatchParam const *  patchParams 
)
static

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

Parameters
srcInput primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
srcDescvertex buffer descriptor for the input buffer
dstOutput primvar pointer. An offset of dstDesc will be applied internally.
dstDescvertex buffer descriptor for the output buffer
duOutput pointer derivative wrt u. An offset of duDesc will be applied internally.
duDescvertex buffer descriptor for the duBuffer
dvOutput pointer derivative wrt v. An offset of dvDesc will be applied internally.
dvDescvertex buffer descriptor for the dvBuffer
duuOutput pointer 2nd derivative wrt u. An offset of duuDesc will be applied internally.
duuDescvertex buffer descriptor for the duuBuffer
duvOutput pointer 2nd derivative wrt u and v. An offset of duvDesc will be applied internally.
duvDescvertex buffer descriptor for the duvBuffer
dvvOutput pointer 2nd derivative wrt v. An offset of dvvDesc will be applied internally.
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated.
patchArraysan array of Osd::PatchArray struct indexed by PatchCoord::arrayIndex
patchIndicesan array of patch indices indexed by PatchCoord::vertIndex
patchParamsan array of Osd::PatchParam struct indexed by PatchCoord::patchIndex
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,
CudaEvaluator const *  instance,
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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindCudaBuffer() method returning an array of PatchCoord struct in cuda memory.
patchTableCudaPatchTable or equivalent
fvarChannelface-varying channel
instancenot used in the cuda evaluator
deviceContextnot used in the cuda evaluator

Definition at line 1070 of file cudaEvaluator.h.

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,
CudaEvaluator const *  instance,
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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindCudaBuffer() method returning an array of PatchCoord struct in cuda memory.
patchTableCudaPatchTable or equivalent
fvarChannelface-varying channel
instancenot used in the cuda evaluator
deviceContextnot used in the cuda evaluator

Definition at line 1136 of file cudaEvaluator.h.

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,
CudaEvaluator const *  instance,
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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindCudaBuffer() method returning an array of PatchCoord struct in cuda memory.
patchTableCudaPatchTable or equivalent
fvarChannelface-varying channel
instancenot used in the cuda evaluator
deviceContextnot used in the cuda evaluator

Definition at line 1224 of file cudaEvaluator.h.

static bool EvalPatchesVarying ( SRC_BUFFER *  srcBuffer,
BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
BufferDescriptor const &  dstDesc,
int  numPatchCoords,
PATCHCOORD_BUFFER *  patchCoords,
PATCH_TABLE *  patchTable,
CudaEvaluator const *  instance,
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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindCudaBuffer() method returning an array of PatchCoord struct in cuda memory.
patchTableCudaPatchTable or equivalent
instancenot used in the cuda evaluator
deviceContextnot used in the cuda evaluator

Definition at line 859 of file cudaEvaluator.h.

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,
CudaEvaluator const *  instance,
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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvDescvertex buffer descriptor for the dvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindCudaBuffer() method returning an array of PatchCoord struct in cuda memory.
patchTableCudaPatchTable or equivalent
instancenot used in the cuda evaluator
deviceContextnot used in the cuda evaluator

Definition at line 922 of file cudaEvaluator.h.

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,
CudaEvaluator const *  instance,
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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvvDescvertex buffer descriptor for the dvvBuffer
numPatchCoordsnumber of patchCoords.
patchCoordsarray of locations to be evaluated. must have BindCudaBuffer() method returning an array of PatchCoord struct in cuda memory.
patchTableCudaPatchTable or equivalent
instancenot used in the cuda evaluator
deviceContextnot used in the cuda evaluator

Definition at line 1007 of file cudaEvaluator.h.

static bool EvalStencils ( SRC_BUFFER *  srcBuffer,
BufferDescriptor const &  srcDesc,
DST_BUFFER *  dstBuffer,
BufferDescriptor const &  dstDesc,
STENCIL_TABLE const *  stencilTable,
const void *  instance = NULL,
void *  deviceContext = NULL 
)
inlinestatic

Generic static compute function. This function has a same signature as other device kernels have so that it can be called transparently from OsdMesh template interface.


Stencil evaluations with StencilTable


Parameters
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
stencilTablestencil table to be applied. The table must have Cuda memory interfaces.
instancenot used in the CudaEvaluator
deviceContextnot used in the CudaEvaluator

Definition at line 126 of file cudaEvaluator.h.

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 cuda buffers for input and output.

Parameters
srcInput primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
srcDescvertex buffer descriptor for the input buffer
dstOutput primvar pointer. An offset of dstDesc will be applied internally.
dstDescvertex buffer descriptor for the output buffer
sizespointer to the sizes buffer of the stencil table
offsetspointer to the offsets buffer of the stencil table
indicespointer to the indices buffer of the stencil table
weightspointer to the weights buffer of the stencil table
startstart index of stencil table
endend index of 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 CudaEvaluator 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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvDescvertex buffer descriptor for the dvBuffer
stencilTablestencil table to be applied.
instancenot used in the cuda kernel (declared as a typed pointer to prevent undesirable template resolution)
deviceContextnot used in the cuda kernel

Definition at line 218 of file cudaEvaluator.h.

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 cuda pointers for input and output.

Parameters
srcInput primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
srcDescvertex buffer descriptor for the input buffer
dstOutput primvar pointer. An offset of dstDesc will be applied internally.
dstDescvertex buffer descriptor for the output buffer
duOutput pointer derivative wrt u. An offset of duDesc will be applied internally.
duDescvertex buffer descriptor for the duBuffer
dvOutput pointer derivative wrt v. An offset of dvDesc will be applied internally.
dvDescvertex buffer descriptor for the dvBuffer
sizespointer to the sizes buffer of the stencil table
offsetspointer to the offsets buffer of the stencil table
indicespointer to the indices buffer of the stencil table
weightspointer to the weights buffer of the stencil table
duWeightspointer to the du-weights buffer of the stencil table
dvWeightspointer to the dv-weights buffer of the stencil table
startstart index of stencil table
endend index of 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 CudaEvaluator 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
srcBufferInput primvar buffer. must have BindCudaBuffer() method returning a const float pointer for read
srcDescvertex buffer descriptor for the input buffer
dstBufferOutput primvar buffer must have BindCudaBuffer() method returning a float pointer for write
dstDescvertex buffer descriptor for the output buffer
duBufferOutput buffer derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duDescvertex buffer descriptor for the duBuffer
dvBufferOutput buffer derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvDescvertex buffer descriptor for the dvBuffer
duuBufferOutput buffer 2nd derivative wrt u must have BindCudaBuffer() method returning a float pointer for write
duuDescvertex buffer descriptor for the duuBuffer
duvBufferOutput buffer 2nd derivative wrt u and v must have BindCudaBuffer() method returning a float pointer for write
duvDescvertex buffer descriptor for the duvBuffer
dvvBufferOutput buffer 2nd derivative wrt v must have BindCudaBuffer() method returning a float pointer for write
dvvDescvertex buffer descriptor for the dvvBuffer
stencilTablestencil table to be applied.
instancenot used in the cuda kernel (declared as a typed pointer to prevent undesirable template resolution)
deviceContextnot used in the cuda kernel

Definition at line 353 of file cudaEvaluator.h.

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 cuda pointers for input and output.

Parameters
srcInput primvar pointer. An offset of srcDesc will be applied internally (i.e. the pointer should not include the offset)
srcDescvertex buffer descriptor for the input buffer
dstOutput primvar pointer. An offset of dstDesc will be applied internally.
dstDescvertex buffer descriptor for the output buffer
duOutput pointer derivative wrt u. An offset of duDesc will be applied internally.
duDescvertex buffer descriptor for the duBuffer
dvOutput pointer derivative wrt v. An offset of dvDesc will be applied internally.
dvDescvertex buffer descriptor for the dvBuffer
duuOutput pointer 2nd derivative wrt u. An offset of duuDesc will be applied internally.
duuDescvertex buffer descriptor for the duuBuffer
duvOutput pointer 2nd derivative wrt u and v. An offset of duvDesc will be applied internally.
duvDescvertex buffer descriptor for the duvBuffer
dvvOutput pointer 2nd derivative wrt v. An offset of dvvDesc will be applied internally.
dvvDescvertex buffer descriptor for the dvvBuffer
sizespointer to the sizes buffer of the stencil table
offsetspointer to the offsets buffer of the stencil table
indicespointer to the indices buffer of the stencil table
weightspointer to the weights buffer of the stencil table
duWeightspointer to the du-weights buffer of the stencil table
dvWeightspointer to the dv-weights buffer of the stencil table
duuWeightspointer to the duu-weights buffer of the stencil table
duvWeightspointer to the duv-weights buffer of the stencil table
dvvWeightspointer to the dvv-weights buffer of the stencil table
startstart index of stencil table
endend index of stencil table
static void Synchronize ( void *  deviceContext = NULL)
static

Other methods



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