summaryrefslogtreecommitdiffstats
path: root/tools/gfx/renderer-shared.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx/renderer-shared.cpp')
-rw-r--r--tools/gfx/renderer-shared.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/gfx/renderer-shared.cpp b/tools/gfx/renderer-shared.cpp
index f9ffe8dfd..a97462c73 100644
--- a/tools/gfx/renderer-shared.cpp
+++ b/tools/gfx/renderer-shared.cpp
@@ -957,17 +957,42 @@ Result ShaderTableBase::init(const IShaderTable::Desc& desc)
m_missShaderCount = desc.missShaderCount;
m_hitGroupCount = desc.hitGroupCount;
m_entryPointNames.reserve(desc.hitGroupCount + desc.missShaderCount + desc.rayGenShaderCount);
+ m_recordOverwrites.reserve(desc.hitGroupCount + desc.missShaderCount + desc.rayGenShaderCount);
for (uint32_t i = 0; i < desc.rayGenShaderCount; i++)
{
m_entryPointNames.add(desc.rayGenShaderEntryPointNames[i]);
+ if (desc.rayGenShaderRecordOverwrites)
+ {
+ m_recordOverwrites.add(desc.rayGenShaderRecordOverwrites[i]);
+ }
+ else
+ {
+ m_recordOverwrites.add(ShaderRecordOverwrite{});
+ }
}
for (uint32_t i = 0; i < desc.missShaderCount; i++)
{
m_entryPointNames.add(desc.missShaderEntryPointNames[i]);
+ if (desc.missShaderRecordOverwrites)
+ {
+ m_recordOverwrites.add(desc.missShaderRecordOverwrites[i]);
+ }
+ else
+ {
+ m_recordOverwrites.add(ShaderRecordOverwrite{});
+ }
}
for (uint32_t i = 0; i < desc.hitGroupCount; i++)
{
m_entryPointNames.add(desc.hitGroupNames[i]);
+ if (desc.hitGroupRecordOverwrites)
+ {
+ m_recordOverwrites.add(desc.hitGroupRecordOverwrites[i]);
+ }
+ else
+ {
+ m_recordOverwrites.add(ShaderRecordOverwrite{});
+ }
}
return SLANG_OK;
}