GLSL/Vulkan: Enforce no location aliasing in vertex inputs.
This commit is contained in:
parent
5d3babdbdf
commit
0f8d43e505
@ -36,7 +36,8 @@ ERROR: 0:51: '[]' : only outermost dimension of an array of arrays can be a spec
|
||||
ERROR: 0:54: '[]' : only outermost dimension of an array of arrays can be a specialization constant
|
||||
ERROR: 0:54: 'location' : SPIR-V requires location for user input/output
|
||||
ERROR: 0:58: 'location' : SPIR-V requires location for user input/output
|
||||
ERROR: 37 compilation errors. No code generated.
|
||||
ERROR: 0:65: 'location' : overlapping use of location 10
|
||||
ERROR: 38 compilation errors. No code generated.
|
||||
|
||||
|
||||
SPIR-V is not generated for failed compile or link
|
||||
|
@ -61,3 +61,5 @@ out ban2 {
|
||||
|
||||
layout(binding = 3000) uniform sampler2D s3000;
|
||||
layout(binding = 3001) uniform b3001 { int a; };
|
||||
layout(location = 10) in vec4 in1;
|
||||
layout(location = 10) in vec4 in2; // ERROR, no location aliasing
|
||||
|
@ -847,8 +847,8 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ
|
||||
// combine location and component ranges
|
||||
TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0);
|
||||
|
||||
// check for collisions, except for vertex inputs on desktop
|
||||
if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput()))
|
||||
// check for collisions, except for vertex inputs on desktop targeting OpenGL
|
||||
if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput()) || spvVersion.vulkan > 0)
|
||||
collision = checkLocationRange(set, range, type, typeCollision);
|
||||
|
||||
if (collision < 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user