From b8982fcf43b86c1e39dcc3dd19bff2821633eda6 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 9 Feb 2022 15:30:38 -0800 Subject: Various fixes to gfx. (#2120) * Various fixes to gfx. * Fix. * Fixes. * Fix. Co-authored-by: Yong He --- source/slang/slang-parameter-binding.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source/slang/slang-parameter-binding.cpp') 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 collectEntryPointParameters( ParameterBindingContext* context, EntryPoint* entryPoint, + String entryPointNameOverride, EntryPoint::EntryPointSpecializationInfo* specializationInfo) { auto astBuilder = context->getASTBuilder(); @@ -2487,6 +2488,7 @@ static RefPtr collectEntryPointParameters( RefPtr 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 -- cgit v1.2.3