diff options
Diffstat (limited to 'tools/gfx/cuda/render-cuda.cpp')
| -rw-r--r-- | tools/gfx/cuda/render-cuda.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/tools/gfx/cuda/render-cuda.cpp b/tools/gfx/cuda/render-cuda.cpp index cb8f779f4..bacaa42ee 100644 --- a/tools/gfx/cuda/render-cuda.cpp +++ b/tools/gfx/cuda/render-cuda.cpp @@ -2112,7 +2112,10 @@ public: } virtual SLANG_NO_THROW Result SLANG_MCALL createBufferView( - IBufferResource* buffer, IResourceView::Desc const& desc, IResourceView** outView) override + IBufferResource* buffer, + IBufferResource* counterBuffer, + IResourceView::Desc const& desc, + IResourceView** outView) override { RefPtr<CUDAResourceView> view = new CUDAResourceView(); view->m_desc = desc; @@ -2181,18 +2184,18 @@ public: // don't actually create any kernels. This program will be specialized later when we know // the shader object bindings. RefPtr<CUDAShaderProgram> cudaProgram = new CUDAShaderProgram(); - cudaProgram->slangProgram = desc.slangProgram; + cudaProgram->init(desc); cudaProgram->cudaContext = m_context; - if (desc.slangProgram->getSpecializationParamCount() != 0) + if (desc.slangGlobalScope->getSpecializationParamCount() != 0) { - cudaProgram->layout = new CUDAProgramLayout(this, desc.slangProgram->getLayout()); + cudaProgram->layout = new CUDAProgramLayout(this, desc.slangGlobalScope->getLayout()); returnComPtr(outProgram, cudaProgram); return SLANG_OK; } ComPtr<ISlangBlob> kernelCode; ComPtr<ISlangBlob> diagnostics; - auto compileResult = desc.slangProgram->getEntryPointCode( + auto compileResult = desc.slangGlobalScope->getEntryPointCode( (SlangInt)0, 0, kernelCode.writeRef(), diagnostics.writeRef()); if (diagnostics) { @@ -2206,16 +2209,16 @@ public: SLANG_RETURN_ON_FAIL(compileResult); SLANG_CUDA_RETURN_ON_FAIL(cuModuleLoadData(&cudaProgram->cudaModule, kernelCode->getBufferPointer())); - cudaProgram->kernelName = desc.slangProgram->getLayout()->getEntryPointByIndex(0)->getName(); + cudaProgram->kernelName = desc.slangGlobalScope->getLayout()->getEntryPointByIndex(0)->getName(); SLANG_CUDA_RETURN_ON_FAIL(cuModuleGetFunction( &cudaProgram->cudaKernel, cudaProgram->cudaModule, cudaProgram->kernelName.getBuffer())); - auto slangProgram = desc.slangProgram; - if( slangProgram ) + auto slangGlobalScope = desc.slangGlobalScope; + if( slangGlobalScope ) { - cudaProgram->slangProgram = slangProgram; + cudaProgram->slangGlobalScope = slangGlobalScope; - auto slangProgramLayout = slangProgram->getLayout(); + auto slangProgramLayout = slangGlobalScope->getLayout(); if(!slangProgramLayout) return SLANG_FAIL; |
