Add more location aliasing checks
When location aliasing, the aliases sharing the location must have the same underlying numerical type and bit width (floating-point or integer, 32-bit versus 64-bit, etc.) and the same auxiliary storage and interpolation qualification. This adds checks for the "patch" and "sample" qualifiers, and also relaxes the checks when the signedness of integer types differs.
This commit is contained in:
parent
48eaea60b8
commit
52f68dc6b2
9 changed files with 201 additions and 8 deletions
47
Test/baseResults/ps_sample.frag.out
Normal file
47
Test/baseResults/ps_sample.frag.out
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
ps_sample.frag
|
||||
ERROR: 0:5: 'location' : the aliases sharing the location 1 must be the same basic type and interpolation qualification
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 430
|
||||
Requested GL_ARB_enhanced_layouts
|
||||
ERROR: node is still EOpNull!
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp 4-component vector of float)
|
||||
0:12 'result' ( temp 4-component vector of float)
|
||||
0:12 'gs_fs' ( smooth in 4-component vector of float)
|
||||
0:16 move second child to first child ( temp 4-component vector of float)
|
||||
0:16 'fs_out' ( out 4-component vector of float)
|
||||
0:16 'result' ( temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'gohan' (layout( location=1 component=0) flat in uint)
|
||||
0:? 'goten' (layout( location=1 component=2) flat sample in 2-component vector of uint)
|
||||
0:? 'gs_fs' ( smooth in 4-component vector of float)
|
||||
0:? 'fs_out' ( out 4-component vector of float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 430
|
||||
Requested GL_ARB_enhanced_layouts
|
||||
ERROR: node is still EOpNull!
|
||||
0:10 Function Definition: main( ( global void)
|
||||
0:10 Function Parameters:
|
||||
0:12 Sequence
|
||||
0:12 Sequence
|
||||
0:12 move second child to first child ( temp 4-component vector of float)
|
||||
0:12 'result' ( temp 4-component vector of float)
|
||||
0:12 'gs_fs' ( smooth in 4-component vector of float)
|
||||
0:16 move second child to first child ( temp 4-component vector of float)
|
||||
0:16 'fs_out' ( out 4-component vector of float)
|
||||
0:16 'result' ( temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'gohan' (layout( location=1 component=0) flat in uint)
|
||||
0:? 'goten' (layout( location=1 component=2) flat sample in 2-component vector of uint)
|
||||
0:? 'gs_fs' ( smooth in 4-component vector of float)
|
||||
0:? 'fs_out' ( out 4-component vector of float)
|
||||
|
||||
21
Test/baseResults/ps_uint_int.frag.out
Normal file
21
Test/baseResults/ps_uint_int.frag.out
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
ps_uint_int.frag
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:6 Function Definition: main( ( global void)
|
||||
0:6 Function Parameters:
|
||||
0:? Linker Objects
|
||||
0:? 'u' (layout( location=0 component=0) flat in uint)
|
||||
0:? 'i' (layout( location=0 component=1) flat in int)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:6 Function Definition: main( ( global void)
|
||||
0:6 Function Parameters:
|
||||
0:? Linker Objects
|
||||
0:? 'u' (layout( location=0 component=0) flat in uint)
|
||||
0:? 'i' (layout( location=0 component=1) flat in int)
|
||||
|
||||
61
Test/baseResults/tes_patch.tese.out
Normal file
61
Test/baseResults/tes_patch.tese.out
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
tes_patch.tese
|
||||
ERROR: 0:7: 'location' : the aliases sharing the location 1 must be the same basic type and interpolation qualification
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 430
|
||||
Requested GL_ARB_enhanced_layouts
|
||||
input primitive = isolines
|
||||
vertex spacing = none
|
||||
triangle order = none
|
||||
using point mode
|
||||
ERROR: node is still EOpNull!
|
||||
0:12 Function Definition: main( ( global void)
|
||||
0:12 Function Parameters:
|
||||
0:14 Sequence
|
||||
0:14 Sequence
|
||||
0:14 move second child to first child ( temp 4-component vector of float)
|
||||
0:14 'result' ( temp 4-component vector of float)
|
||||
0:14 direct index ( temp 4-component vector of float)
|
||||
0:14 'tcs_tes' ( in 32-element array of 4-component vector of float)
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:18 add second child into first child ( temp 4-component vector of float)
|
||||
0:18 'tes_gs' ( out 4-component vector of float)
|
||||
0:18 'result' ( temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'gohan' (layout( location=1 component=0) in 32-element array of 2-component vector of float)
|
||||
0:? 'goten' (layout( location=1 component=2) patch in 2-component vector of float)
|
||||
0:? 'tcs_tes' ( in 32-element array of 4-component vector of float)
|
||||
0:? 'tes_gs' ( out 4-component vector of float)
|
||||
|
||||
|
||||
Linked tessellation evaluation stage:
|
||||
|
||||
|
||||
Shader version: 430
|
||||
Requested GL_ARB_enhanced_layouts
|
||||
input primitive = isolines
|
||||
vertex spacing = equal_spacing
|
||||
triangle order = ccw
|
||||
using point mode
|
||||
ERROR: node is still EOpNull!
|
||||
0:12 Function Definition: main( ( global void)
|
||||
0:12 Function Parameters:
|
||||
0:14 Sequence
|
||||
0:14 Sequence
|
||||
0:14 move second child to first child ( temp 4-component vector of float)
|
||||
0:14 'result' ( temp 4-component vector of float)
|
||||
0:14 direct index ( temp 4-component vector of float)
|
||||
0:14 'tcs_tes' ( in 32-element array of 4-component vector of float)
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:18 add second child into first child ( temp 4-component vector of float)
|
||||
0:18 'tes_gs' ( out 4-component vector of float)
|
||||
0:18 'result' ( temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'gohan' (layout( location=1 component=0) in 32-element array of 2-component vector of float)
|
||||
0:? 'goten' (layout( location=1 component=2) patch in 2-component vector of float)
|
||||
0:? 'tcs_tes' ( in 32-element array of 4-component vector of float)
|
||||
0:? 'tes_gs' ( out 4-component vector of float)
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue