From eefdd4ab99fa99ed326b68cd2b0d4024347ed8fc Mon Sep 17 00:00:00 2001 From: skallweitNV <64953474+skallweitNV@users.noreply.github.com> Date: Tue, 28 May 2024 02:05:12 +0200 Subject: 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 --- tools/gfx/renderer-shared.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'tools/gfx/renderer-shared.cpp') 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; } -- cgit v1.2.3