Remove one layer of arrayness on geometry shader inputs before checking for location overlaps. I think there is a spec. bug here.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24377 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
0b39137009
commit
521ca375e0
@ -49,3 +49,7 @@ void foo3()
|
|||||||
color2.length();
|
color2.length();
|
||||||
colorS.length();
|
colorS.length();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
layout(location = 4) in vec4 cva[3];
|
||||||
|
layout(location = 5) in vec4 cvb[3];
|
||||||
|
layout(location = 2) in mat3 cmc[3]; // ERROR, collision
|
||||||
|
@ -5,7 +5,8 @@ ERROR: 0:24: 'length' : array must be declared with a size before using this me
|
|||||||
ERROR: 0:35: 'length' : array must be declared with a size before using this method
|
ERROR: 0:35: 'length' : array must be declared with a size before using this method
|
||||||
ERROR: 0:39: 'triangles' : inconsistent input primitive for array size colorBad
|
ERROR: 0:39: 'triangles' : inconsistent input primitive for array size colorBad
|
||||||
ERROR: 0:43: 'triangles' : inconsistent input primitive for array size colorbad2
|
ERROR: 0:43: 'triangles' : inconsistent input primitive for array size colorbad2
|
||||||
ERROR: 5 compilation errors. No code generated.
|
ERROR: 0:55: 'location' : repeated use of location 4
|
||||||
|
ERROR: 6 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
invocations = 4
|
invocations = 4
|
||||||
@ -66,6 +67,9 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 'colorS' (in 3-element array of 4-component vector of float)
|
0:? 'colorS' (in 3-element array of 4-component vector of float)
|
||||||
0:? 'colorBad' (in 4-element array of 4-component vector of float)
|
0:? 'colorBad' (in 4-element array of 4-component vector of float)
|
||||||
0:? 'colorbad2' (in 2-element array of 4-component vector of float)
|
0:? 'colorbad2' (in 2-element array of 4-component vector of float)
|
||||||
|
0:? 'cva' (layout(location=4 ) in 3-element array of 4-component vector of float)
|
||||||
|
0:? 'cvb' (layout(location=5 ) in 3-element array of 4-component vector of float)
|
||||||
|
0:? 'cmc' (layout(location=2 ) in 3-element array of 3X3 matrix of float)
|
||||||
|
|
||||||
|
|
||||||
Linked geometry stage:
|
Linked geometry stage:
|
||||||
|
@ -9,5 +9,5 @@
|
|||||||
// source have to figure out how to create revision.h just to get a build
|
// source have to figure out how to create revision.h just to get a build
|
||||||
// going. However, if it is not updated, it can be a version behind.
|
// going. However, if it is not updated, it can be a version behind.
|
||||||
|
|
||||||
#define GLSLANG_REVISION "24356"
|
#define GLSLANG_REVISION "24376"
|
||||||
#define GLSLANG_DATE "2013/12/04 14:50:38"
|
#define GLSLANG_DATE "2013/12/05 13:07:56"
|
||||||
|
@ -465,8 +465,14 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ
|
|||||||
size = type.getArraySize();
|
size = type.getArraySize();
|
||||||
else
|
else
|
||||||
size = 1;
|
size = 1;
|
||||||
|
} else {
|
||||||
|
if (language == EShLangGeometry && qualifier.isPipeInput()) {
|
||||||
|
assert(type.isArray());
|
||||||
|
TType elementType(type, 0);
|
||||||
|
size = computeTypeLocationSize(elementType);
|
||||||
} else
|
} else
|
||||||
size = computeTypeLocationSize(type);
|
size = computeTypeLocationSize(type);
|
||||||
|
}
|
||||||
|
|
||||||
TRange range = { qualifier.layoutSlotLocation, qualifier.layoutSlotLocation + size - 1 };
|
TRange range = { qualifier.layoutSlotLocation, qualifier.layoutSlotLocation + size - 1 };
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user