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:
@@ -114,6 +114,11 @@ Shader version: 450
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:? 'inI0' (layout(location=3 ) in 4-component vector of int)
|
||||
0:? 'gs_ua' (global uint)
|
||||
0:? 'gs_ub' (global uint)
|
||||
0:? 'gs_uc' (global uint)
|
||||
@@ -126,11 +131,6 @@ Shader version: 450
|
||||
0:? 'gs_ua4' (global 4-component vector of uint)
|
||||
0:? 'gs_ub4' (global 4-component vector of uint)
|
||||
0:? 'gs_uc4' (global 4-component vector of uint)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:? 'inI0' (layout(location=3 ) in 4-component vector of int)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
@@ -251,6 +251,11 @@ Shader version: 450
|
||||
0:? 4.000000
|
||||
0:? 4.000000
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:? 'inI0' (layout(location=3 ) in 4-component vector of int)
|
||||
0:? 'gs_ua' (global uint)
|
||||
0:? 'gs_ub' (global uint)
|
||||
0:? 'gs_uc' (global uint)
|
||||
@@ -263,11 +268,6 @@ Shader version: 450
|
||||
0:? 'gs_ua4' (global 4-component vector of uint)
|
||||
0:? 'gs_ub4' (global 4-component vector of uint)
|
||||
0:? 'gs_uc4' (global 4-component vector of uint)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:? 'inI0' (layout(location=3 ) in 4-component vector of int)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
@@ -276,7 +276,7 @@ Shader version: 450
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "VertexShaderFunction" 85 122 123 124 127
|
||||
EntryPoint Vertex 4 "VertexShaderFunction" 85 102 103 104 107
|
||||
Name 4 "VertexShaderFunction"
|
||||
Name 15 "VertexShaderFunctionS(f1;f1;f1;i1;"
|
||||
Name 11 "inF0"
|
||||
@@ -311,27 +311,27 @@ Shader version: 450
|
||||
Name 66 "inF1"
|
||||
Name 67 "inF2"
|
||||
Name 85 "@entryPointOutput"
|
||||
Name 103 "gs_ua"
|
||||
Name 104 "gs_ub"
|
||||
Name 105 "gs_uc"
|
||||
Name 108 "gs_ua2"
|
||||
Name 109 "gs_ub2"
|
||||
Name 110 "gs_uc2"
|
||||
Name 113 "gs_ua3"
|
||||
Name 114 "gs_ub3"
|
||||
Name 115 "gs_uc3"
|
||||
Name 118 "gs_ua4"
|
||||
Name 119 "gs_ub4"
|
||||
Name 120 "gs_uc4"
|
||||
Name 122 "inF0"
|
||||
Name 123 "inF1"
|
||||
Name 124 "inF2"
|
||||
Name 127 "inI0"
|
||||
Name 102 "inF0"
|
||||
Name 103 "inF1"
|
||||
Name 104 "inF2"
|
||||
Name 107 "inI0"
|
||||
Name 110 "gs_ua"
|
||||
Name 111 "gs_ub"
|
||||
Name 112 "gs_uc"
|
||||
Name 115 "gs_ua2"
|
||||
Name 116 "gs_ub2"
|
||||
Name 117 "gs_uc2"
|
||||
Name 120 "gs_ua3"
|
||||
Name 121 "gs_ub3"
|
||||
Name 122 "gs_uc3"
|
||||
Name 125 "gs_ua4"
|
||||
Name 126 "gs_ub4"
|
||||
Name 127 "gs_uc4"
|
||||
Decorate 85(@entryPointOutput) Location 0
|
||||
Decorate 122(inF0) Location 0
|
||||
Decorate 123(inF1) Location 1
|
||||
Decorate 124(inF2) Location 2
|
||||
Decorate 127(inI0) Location 3
|
||||
Decorate 102(inF0) Location 0
|
||||
Decorate 103(inF1) Location 1
|
||||
Decorate 104(inF2) Location 2
|
||||
Decorate 107(inI0) Location 3
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -375,33 +375,33 @@ Shader version: 450
|
||||
94: 53 ConstantComposite 93 93 93
|
||||
97: 61(fvec4) ConstantComposite 86 86 86 86
|
||||
98: 62 ConstantComposite 97 97 97 97
|
||||
101: TypeInt 32 0
|
||||
102: TypePointer Private 101(int)
|
||||
103(gs_ua): 102(ptr) Variable Private
|
||||
104(gs_ub): 102(ptr) Variable Private
|
||||
105(gs_uc): 102(ptr) Variable Private
|
||||
106: TypeVector 101(int) 2
|
||||
107: TypePointer Private 106(ivec2)
|
||||
108(gs_ua2): 107(ptr) Variable Private
|
||||
109(gs_ub2): 107(ptr) Variable Private
|
||||
110(gs_uc2): 107(ptr) Variable Private
|
||||
111: TypeVector 101(int) 3
|
||||
112: TypePointer Private 111(ivec3)
|
||||
113(gs_ua3): 112(ptr) Variable Private
|
||||
114(gs_ub3): 112(ptr) Variable Private
|
||||
115(gs_uc3): 112(ptr) Variable Private
|
||||
116: TypeVector 101(int) 4
|
||||
117: TypePointer Private 116(ivec4)
|
||||
118(gs_ua4): 117(ptr) Variable Private
|
||||
119(gs_ub4): 117(ptr) Variable Private
|
||||
120(gs_uc4): 117(ptr) Variable Private
|
||||
121: TypePointer Input 61(fvec4)
|
||||
122(inF0): 121(ptr) Variable Input
|
||||
123(inF1): 121(ptr) Variable Input
|
||||
124(inF2): 121(ptr) Variable Input
|
||||
125: TypeVector 8(int) 4
|
||||
126: TypePointer Input 125(ivec4)
|
||||
127(inI0): 126(ptr) Variable Input
|
||||
101: TypePointer Input 61(fvec4)
|
||||
102(inF0): 101(ptr) Variable Input
|
||||
103(inF1): 101(ptr) Variable Input
|
||||
104(inF2): 101(ptr) Variable Input
|
||||
105: TypeVector 8(int) 4
|
||||
106: TypePointer Input 105(ivec4)
|
||||
107(inI0): 106(ptr) Variable Input
|
||||
108: TypeInt 32 0
|
||||
109: TypePointer Private 108(int)
|
||||
110(gs_ua): 109(ptr) Variable Private
|
||||
111(gs_ub): 109(ptr) Variable Private
|
||||
112(gs_uc): 109(ptr) Variable Private
|
||||
113: TypeVector 108(int) 2
|
||||
114: TypePointer Private 113(ivec2)
|
||||
115(gs_ua2): 114(ptr) Variable Private
|
||||
116(gs_ub2): 114(ptr) Variable Private
|
||||
117(gs_uc2): 114(ptr) Variable Private
|
||||
118: TypeVector 108(int) 3
|
||||
119: TypePointer Private 118(ivec3)
|
||||
120(gs_ua3): 119(ptr) Variable Private
|
||||
121(gs_ub3): 119(ptr) Variable Private
|
||||
122(gs_uc3): 119(ptr) Variable Private
|
||||
123: TypeVector 108(int) 4
|
||||
124: TypePointer Private 123(ivec4)
|
||||
125(gs_ua4): 124(ptr) Variable Private
|
||||
126(gs_ub4): 124(ptr) Variable Private
|
||||
127(gs_uc4): 124(ptr) Variable Private
|
||||
4(VertexShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
Store 85(@entryPointOutput) 87
|
||||
|
||||
Reference in New Issue
Block a user