Skip to content

Commit beec2e4

Browse files
authored
tweak local_size comparison a bit (KhronosGroup#2456)
no longer causes an incorrect error if the current unit has local_size set, but the incoming unit does not
1 parent fb53f83 commit beec2e4

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

glslang/MachineIndependent/linkValidate.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,14 @@ void TIntermediate::mergeModes(TInfoSink& infoSink, TIntermediate& unit)
196196
MERGE_TRUE(pointMode);
197197

198198
for (int i = 0; i < 3; ++i) {
199-
if (!localSizeNotDefault[i] && unit.localSizeNotDefault[i]) {
200-
localSize[i] = unit.localSize[i];
201-
localSizeNotDefault[i] = true;
199+
if (unit.localSizeNotDefault[i]) {
200+
if (!localSizeNotDefault[i]) {
201+
localSize[i] = unit.localSize[i];
202+
localSizeNotDefault[i] = true;
203+
}
204+
else if (localSize[i] != unit.localSize[i])
205+
error(infoSink, "Contradictory local size");
202206
}
203-
else if (localSize[i] != unit.localSize[i])
204-
error(infoSink, "Contradictory local size");
205207

206208
if (localSizeSpecId[i] == TQualifier::layoutNotSet)
207209
localSizeSpecId[i] = unit.localSizeSpecId[i];

0 commit comments

Comments
 (0)