diff options
| author | Yong He <yonghe@outlook.com> | 2022-02-10 12:39:55 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-10 12:39:55 -0800 |
| commit | 120f97fb8d4e22b057cea43b503611f8292ade37 (patch) | |
| tree | e1f7bae615b499425702f7e82bc556a312c7515c /tools/gfx/renderer-shared.cpp | |
| parent | 0c04885da9edc3df7a1ef5cb520be1bd29eb13e4 (diff) | |
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 <yhe@nvidia.com>
Diffstat (limited to 'tools/gfx/renderer-shared.cpp')
| -rw-r--r-- | tools/gfx/renderer-shared.cpp | 25 |
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; } |
