void OsdCudaKernelDispatcher::ApplyLoopEdgeVerticesKernel(FarMesh<OsdVertex> * mesh, int offset, int level, int start, int end, void * data) const { OsdCudaComputeEdge(_deviceVertices, _deviceVaryings, _numVertexElements-3, _numVaryingElements, (int*)_tables[E_IT].devicePtr + _tableOffsets[E_IT][level-1], (float*)_tables[E_W].devicePtr + _tableOffsets[E_W][level-1], offset, start, end); }
void OsdCudaComputeController::ApplyLoopEdgeVerticesKernel( FarKernelBatch const &batch, void * clientdata) const { OsdCudaComputeContext * context = static_cast<OsdCudaComputeContext*>(clientdata); assert(context); const OsdCudaTable * E_IT = context->GetTable(FarSubdivisionTables<OsdVertex>::E_IT); const OsdCudaTable * E_W = context->GetTable(FarSubdivisionTables<OsdVertex>::E_W); assert(E_IT); assert(E_W); OsdCudaComputeEdge( context->GetCurrentVertexBuffer(), context->GetCurrentVaryingBuffer(), context->GetVertexDescriptor().numVertexElements-3, context->GetVertexDescriptor().numVaryingElements, static_cast<int*>(E_IT->GetCudaMemory()), static_cast<float*>(E_W->GetCudaMemory()), batch.GetVertexOffset(), batch.GetTableOffset(), batch.GetStart(), batch.GetEnd()); }
void OsdCudaComputeController::ApplyLoopEdgeVerticesKernel( FarKernelBatch const &batch, OsdCudaComputeContext const *context) const { assert(context); const OsdCudaTable * E_IT = context->GetTable(FarSubdivisionTables::E_IT); const OsdCudaTable * E_W = context->GetTable(FarSubdivisionTables::E_W); assert(E_IT); assert(E_W); float *vertex = _currentBindState.GetOffsettedVertexBuffer(); float *varying = _currentBindState.GetOffsettedVaryingBuffer(); OsdCudaComputeEdge( vertex, varying, _currentBindState.vertexDesc.length, _currentBindState.vertexDesc.stride, _currentBindState.varyingDesc.length, _currentBindState.varyingDesc.stride, static_cast<int*>(E_IT->GetCudaMemory()), static_cast<float*>(E_W->GetCudaMemory()), batch.GetVertexOffset(), batch.GetTableOffset(), batch.GetStart(), batch.GetEnd()); }
void OsdCudaKernelDispatcher::ApplyLoopEdgeVerticesKernel( FarMesh<OsdVertex> * mesh, int offset, int level, int start, int end, void * clientdata) const { OsdCudaComputeContext * context = static_cast<OsdCudaComputeContext*>(clientdata); assert(context); const OsdCudaTable * E_IT = context->GetTable(Table::E_IT); const OsdCudaTable * E_W = context->GetTable(Table::E_W); assert(E_IT); assert(E_W); OsdCudaComputeEdge( context->GetCurrentVertexBuffer(), context->GetCurrentVaryingBuffer(), context->GetCurrentVertexNumElements()-3, context->GetCurrentVaryingNumElements(), static_cast<int*>(E_IT->GetCudaMemory()) + E_IT->GetMarker(level-1), static_cast<float*>(E_W->GetCudaMemory()) + E_W->GetMarker(level-1), offset, start, end); }