Whole stack: Fix stale types in the AST linker object nodes, fixing #557.

Rationalizes the entire tracking of the linker object nodes, effecting
GLSL, HLSL, and SPIR-V, to allow tracked objects to be fully edited before
their type snapshot for linker objects.

Should only effect things when the rest of the AST contained no reference to
the symbol, because normal AST nodes were not stale. Also will only effect such
objects when their types were edited.
This commit is contained in:
John Kessenich 2016-11-05 10:15:53 -06:00
parent e5e58cfee3
commit d3f1122a44
107 changed files with 630 additions and 560 deletions

View file

@ -326,6 +326,8 @@ gl_FragCoord origin is upper left
0:95 1 (const int)
0:95 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@ -345,9 +347,7 @@ gl_FragCoord origin is upper left
0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer)
0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer)
0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@ -680,6 +680,8 @@ gl_FragCoord origin is upper left
0:95 1 (const int)
0:95 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@ -699,9 +701,7 @@ gl_FragCoord origin is upper left
0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer)
0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer)
0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
@ -796,6 +796,14 @@ gl_FragCoord origin is upper left
Decorate 214(Depth) BuiltIn FragDepth
Decorate 220(g_sSamp) DescriptorSet 0
Decorate 220(g_sSamp) Binding 0
MemberDecorate 222($Global) 0 Offset 0
MemberDecorate 222($Global) 1 Offset 8
MemberDecorate 222($Global) 2 Offset 16
MemberDecorate 222($Global) 3 Offset 32
MemberDecorate 222($Global) 4 Offset 48
MemberDecorate 222($Global) 5 Offset 56
MemberDecorate 222($Global) 6 Offset 64
MemberDecorate 222($Global) 7 Offset 80
Decorate 222($Global) Block
Decorate 224 DescriptorSet 0
2: TypeVoid