diff options
| author | Yong He <yonghe@outlook.com> | 2022-02-09 15:30:38 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-09 15:30:38 -0800 |
| commit | b8982fcf43b86c1e39dcc3dd19bff2821633eda6 (patch) | |
| tree | 0d66dbf46b50e760cce4aee232bd6a020976e6fb /source/slang/slang-parameter-binding.cpp | |
| parent | 59f3fdc0a372d19ce4e989514ee3e9ecbcbf234c (diff) | |
Various fixes to gfx. (#2120)
* Various fixes to gfx.
* Fix.
* Fixes.
* Fix.
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-parameter-binding.cpp')
| -rw-r--r-- | source/slang/slang-parameter-binding.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source/slang/slang-parameter-binding.cpp b/source/slang/slang-parameter-binding.cpp index 48e637047..abbc010f8 100644 --- a/source/slang/slang-parameter-binding.cpp +++ b/source/slang/slang-parameter-binding.cpp @@ -2477,6 +2477,7 @@ static void removePerEntryPointParameterKinds( static RefPtr<EntryPointLayout> collectEntryPointParameters( ParameterBindingContext* context, EntryPoint* entryPoint, + String entryPointNameOverride, EntryPoint::EntryPointSpecializationInfo* specializationInfo) { auto astBuilder = context->getASTBuilder(); @@ -2487,6 +2488,7 @@ static RefPtr<EntryPointLayout> collectEntryPointParameters( RefPtr<EntryPointLayout> entryPointLayout = new EntryPointLayout(); entryPointLayout->profile = entryPoint->getProfile(); entryPointLayout->name = entryPoint->getName(); + entryPointLayout->nameOverride = entryPointNameOverride; // The entry point layout must be added to the output // program layout so that it can be accessed by reflection. @@ -2836,6 +2838,7 @@ struct CollectParametersVisitor : ComponentTypeVisitor {} ParameterBindingContext* m_context; + String m_currentEntryPointNameOverride; void visitComposite(CompositeComponentType* composite, CompositeComponentType::CompositeSpecializationInfo* specializationInfo) SLANG_OVERRIDE { @@ -2892,15 +2895,18 @@ struct CollectParametersVisitor : ComponentTypeVisitor ParameterBindingContext contextData = *m_context; auto context = &contextData; context->stage = entryPoint->getStage(); - - collectEntryPointParameters(context, entryPoint, specializationInfo); + collectEntryPointParameters( + context, entryPoint, m_currentEntryPointNameOverride, specializationInfo); } void visitRenamedEntryPoint( RenamedEntryPointComponentType* renamedEntryPoint, EntryPoint::EntryPointSpecializationInfo* specializationInfo) SLANG_OVERRIDE { + auto lastNameOverride = m_currentEntryPointNameOverride; + m_currentEntryPointNameOverride = renamedEntryPoint->getEntryPointNameOverride(0); renamedEntryPoint->getBase()->acceptVisitor(this, specializationInfo); + m_currentEntryPointNameOverride = lastNameOverride; } void visitModule(Module* module, Module::ModuleSpecializationInfo* specializationInfo) SLANG_OVERRIDE |
