summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-parameter-binding.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2022-02-09 15:30:38 -0800
committerGitHub <noreply@github.com>2022-02-09 15:30:38 -0800
commitb8982fcf43b86c1e39dcc3dd19bff2821633eda6 (patch)
tree0d66dbf46b50e760cce4aee232bd6a020976e6fb /source/slang/slang-parameter-binding.cpp
parent59f3fdc0a372d19ce4e989514ee3e9ecbcbf234c (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.cpp10
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