From 120f97fb8d4e22b057cea43b503611f8292ade37 Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 10 Feb 2022 12:39:55 -0800 Subject: gfx: support shader record overwrite and fix QueryPool. (#2123) * Various fixes to gfx. * Fix. * Fixes. * Fix. * gfx: support root parameter via user-defined attribute. * Fix. * Fix. * Skip d3d12 tests on win x86. * Fixes. * gfx: support shader record overwrite. * Fix QueyPool implementation. * Rename to `getBindingRangeLeafVariable` Co-authored-by: Yong He --- tools/gfx/renderer-shared.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'tools/gfx/renderer-shared.cpp') 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; } -- cgit v1.2.3