diff options
Diffstat (limited to 'tools/gfx/renderer-shared.cpp')
| -rw-r--r-- | tools/gfx/renderer-shared.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/tools/gfx/renderer-shared.cpp b/tools/gfx/renderer-shared.cpp index 911d4712c..d4fda3183 100644 --- a/tools/gfx/renderer-shared.cpp +++ b/tools/gfx/renderer-shared.cpp @@ -1264,8 +1264,9 @@ Result ShaderTableBase::init(const IShaderTable::Desc& desc) m_rayGenShaderCount = desc.rayGenShaderCount; m_missShaderCount = desc.missShaderCount; m_hitGroupCount = desc.hitGroupCount; - m_shaderGroupNames.reserve(desc.hitGroupCount + desc.missShaderCount + desc.rayGenShaderCount); - m_recordOverwrites.reserve(desc.hitGroupCount + desc.missShaderCount + desc.rayGenShaderCount); + m_callableShaderCount = desc.callableShaderCount; + m_shaderGroupNames.reserve(desc.hitGroupCount + desc.missShaderCount + desc.rayGenShaderCount + desc.callableShaderCount); + m_recordOverwrites.reserve(desc.hitGroupCount + desc.missShaderCount + desc.rayGenShaderCount + desc.callableShaderCount); for (GfxIndex i = 0; i < desc.rayGenShaderCount; i++) { m_shaderGroupNames.add(desc.rayGenShaderEntryPointNames[i]); @@ -1302,6 +1303,18 @@ Result ShaderTableBase::init(const IShaderTable::Desc& desc) m_recordOverwrites.add(ShaderRecordOverwrite{}); } } + for (GfxIndex i = 0; i < desc.callableShaderCount; i++) + { + m_shaderGroupNames.add(desc.callableShaderEntryPointNames[i]); + if (desc.callableShaderRecordOverwrites) + { + m_recordOverwrites.add(desc.callableShaderRecordOverwrites[i]); + } + else + { + m_recordOverwrites.add(ShaderRecordOverwrite{}); + } + } return SLANG_OK; } |
