@@ -86,11 +86,6 @@ struct GlobalVarTranslationContext
86
86
IRTypeLayout::Builder fieldTypeLayout (&builder);
87
87
IRVarLayout::Builder varLayoutBuilder (&builder, fieldTypeLayout.build ());
88
88
varLayoutBuilder.setStage (entryPointDecor->getProfile ().getStage ());
89
- if (auto locationDecoration = input->findDecoration <IRGLSLLocationDecoration>())
90
- {
91
- varLayoutBuilder.findOrAddResourceInfo (LayoutResourceKind::VaryingInput)
92
- ->offset = (UInt)getIntVal (locationDecoration->getLocation ());
93
- }
94
89
if (auto semanticDecor = input->findDecoration <IRSemanticDecoration>())
95
90
{
96
91
varLayoutBuilder.setSystemValueSemantic (
@@ -102,6 +97,16 @@ struct GlobalVarTranslationContext
102
97
fieldTypeLayout.addResourceUsage (
103
98
LayoutResourceKind::VaryingInput,
104
99
LayoutSize (1 ));
100
+ if (auto layoutDecor = findVarLayout (input))
101
+ {
102
+ if (auto offsetAttr =
103
+ layoutDecor->findOffsetAttr (LayoutResourceKind::VaryingInput))
104
+ {
105
+ varLayoutBuilder
106
+ .findOrAddResourceInfo (LayoutResourceKind::VaryingInput)
107
+ ->offset = (UInt)offsetAttr->getOffset ();
108
+ }
109
+ }
105
110
if (entryPointDecor->getProfile ().getStage () == Stage::Fragment)
106
111
{
107
112
varLayoutBuilder.setUserSemantic (" COLOR" , inputVarIndex);
@@ -180,13 +185,15 @@ struct GlobalVarTranslationContext
180
185
fieldTypeLayout.addResourceUsage (
181
186
LayoutResourceKind::VaryingOutput,
182
187
LayoutSize (1 ));
183
-
184
- if (auto locationDecoration =
185
- output->findDecoration <IRGLSLLocationDecoration>())
188
+ if (auto layoutDecor = findVarLayout (output))
186
189
{
187
- varLayoutBuilder
188
- .findOrAddResourceInfo (LayoutResourceKind::VaryingOutput)
189
- ->offset = (UInt)getIntVal (locationDecoration->getLocation ());
190
+ if (auto offsetAttr =
191
+ layoutDecor->findOffsetAttr (LayoutResourceKind::VaryingOutput))
192
+ {
193
+ varLayoutBuilder
194
+ .findOrAddResourceInfo (LayoutResourceKind::VaryingOutput)
195
+ ->offset = (UInt)offsetAttr->getOffset ();
196
+ }
190
197
}
191
198
if (entryPointDecor->getProfile ().getStage () == Stage::Fragment)
192
199
{
0 commit comments