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: '[]' : 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:54: 'location' : SPIR-V requires location for user input/output
|
||||||
ERROR: 0:58: '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
|
SPIR-V is not generated for failed compile or link
|
||||||
|
@ -61,3 +61,5 @@ out ban2 {
|
|||||||
|
|
||||||
layout(binding = 3000) uniform sampler2D s3000;
|
layout(binding = 3000) uniform sampler2D s3000;
|
||||||
layout(binding = 3001) uniform b3001 { int a; };
|
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
|
// combine location and component ranges
|
||||||
TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0);
|
TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0);
|
||||||
|
|
||||||
// check for collisions, except for vertex inputs on desktop
|
// check for collisions, except for vertex inputs on desktop targeting OpenGL
|
||||||
if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput()))
|
if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput()) || spvVersion.vulkan > 0)
|
||||||
collision = checkLocationRange(set, range, type, typeCollision);
|
collision = checkLocationRange(set, range, type, typeCollision);
|
||||||
|
|
||||||
if (collision < 0)
|
if (collision < 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user