GLSL: Check for implicit inner dimension in array of atomic_uint.
This commit is contained in:
parent
9cfc15513f
commit
437911af33
21
Test/baseResults/implicitInnerAtomicUint.frag.out
Normal file
21
Test/baseResults/implicitInnerAtomicUint.frag.out
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
implicitInnerAtomicUint.frag
|
||||||
|
ERROR: 0:2: '[]' : only outermost dimension of an array of arrays can be implicitly sized
|
||||||
|
ERROR: 0:2: 'atomic_uint' : array must be explicitly sized
|
||||||
|
ERROR: 2 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 460
|
||||||
|
ERROR: node is still EOpNull!
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'c' (layout( binding=0 offset=0) uniform 1-element array of implicitly-sized array of atomic_uint)
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point
|
||||||
|
|
||||||
|
Shader version: 460
|
||||||
|
ERROR: node is still EOpNull!
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'c' (layout( binding=0 offset=0) uniform 1-element array of implicitly-sized array of atomic_uint)
|
||||||
|
|
2
Test/implicitInnerAtomicUint.frag
Normal file
2
Test/implicitInnerAtomicUint.frag
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#version 460
|
||||||
|
layout(binding = 0) uniform atomic_uint c[1][];
|
@ -4863,7 +4863,7 @@ void TParseContext::fixOffset(const TSourceLoc& loc, TSymbol& symbol)
|
|||||||
// Check for overlap
|
// Check for overlap
|
||||||
int numOffsets = 4;
|
int numOffsets = 4;
|
||||||
if (symbol.getType().isArray()) {
|
if (symbol.getType().isArray()) {
|
||||||
if (symbol.getType().isExplicitlySizedArray())
|
if (symbol.getType().isExplicitlySizedArray() && ! symbol.getType().getArraySizes()->isInnerImplicit())
|
||||||
numOffsets *= symbol.getType().getCumulativeArraySize();
|
numOffsets *= symbol.getType().getCumulativeArraySize();
|
||||||
else {
|
else {
|
||||||
// "It is a compile-time error to declare an unsized array of atomic_uint."
|
// "It is a compile-time error to declare an unsized array of atomic_uint."
|
||||||
|
@ -159,6 +159,7 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
"460.vert",
|
"460.vert",
|
||||||
"dce.frag",
|
"dce.frag",
|
||||||
"atomic_uint.frag",
|
"atomic_uint.frag",
|
||||||
|
"implicitInnerAtomicUint.frag",
|
||||||
"aggOps.frag",
|
"aggOps.frag",
|
||||||
"always-discard.frag",
|
"always-discard.frag",
|
||||||
"always-discard2.frag",
|
"always-discard2.frag",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user