From b8982fcf43b86c1e39dcc3dd19bff2821633eda6 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 9 Feb 2022 15:30:38 -0800 Subject: Various fixes to gfx. (#2120) * Various fixes to gfx. * Fix. * Fixes. * Fix. Co-authored-by: Yong He --- tools/gfx/cuda/render-cuda.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'tools/gfx/cuda/render-cuda.cpp') 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 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 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 kernelCode; ComPtr 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; -- cgit v1.2.3