diff options
| author | skallweitNV <64953474+skallweitNV@users.noreply.github.com> | 2024-05-28 02:05:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-27 17:05:12 -0700 |
| commit | eefdd4ab99fa99ed326b68cd2b0d4024347ed8fc (patch) | |
| tree | 22fdde5317e337ea5307c3487038a5191db9b0f3 /tools/gfx/renderer-shared.cpp | |
| parent | d9443d670ef8413971fe7c3f02368b60a7fc5904 (diff) | |
add support for callable shaders in gfx (#3460)
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
Co-authored-by: Yong He <yonghe@outlook.com>
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; } |
