HLSL: Wrap the entry-point; need to write 'in' args, and support 'inout' args.
This needs some render testing, but is destined to be part of master. This also leads to a variety of other simplifications. - IO are global symbols, so only need one list of linkage nodes (deferred) - no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized - several parts of splitting/flattening are now localized
This commit is contained in:
@@ -6,9 +6,9 @@ WARNING: 0:30: 'register' : ignoring shader_profile
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:34 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:34 Function Parameters:
|
||||
0:34 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:34 'input' (in 4-component vector of float)
|
||||
0:34 's' (in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:? Sequence
|
||||
0:39 Compare Equal (temp bool)
|
||||
@@ -20,19 +20,97 @@ gl_FragCoord origin is upper left
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:40 's' (in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 6 (const int)
|
||||
0:42 Sequence
|
||||
0:42 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:42 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:42 Branch: Return
|
||||
0:40 7 (const int)
|
||||
0:42 Branch: Return with expression
|
||||
0:42 'input' (in 4-component vector of float)
|
||||
0:34 Function Definition: PixelShaderFunction( (temp void)
|
||||
0:34 Function Parameters:
|
||||
0:? Sequence
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:34 Sequence
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:34 a: direct index for structure (smooth temp 4-component vector of float)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 a: direct index for structure (smooth temp 4-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 b: direct index for structure (flat temp bool)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 b: direct index for structure (flat temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 move second child to first child (temp 1-component vector of float)
|
||||
0:34 c: direct index for structure (centroid noperspective temp 1-component vector of float)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 c: direct index for structure (centroid noperspective temp 1-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 move second child to first child (temp 2-component vector of float)
|
||||
0:34 d: direct index for structure (centroid sample temp 2-component vector of float)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 d: direct index for structure (centroid sample temp 2-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff1: direct index for structure (temp bool Face)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 4 (const int)
|
||||
0:? 's_ff1' (in bool Face)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff2: direct index for structure (layout(offset=4 ) temp bool)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 5 (const int)
|
||||
0:34 ff2: direct index for structure (layout(offset=4 ) temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 4 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff3: direct index for structure (layout(binding=0 offset=4 ) temp bool)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 6 (const int)
|
||||
0:34 ff3: direct index for structure (layout(binding=0 offset=4 ) temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 5 (const int)
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:34 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 7 (const int)
|
||||
0:34 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 6 (const int)
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:34 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:? Linker Objects
|
||||
0:? 's2' (global structure{temp 4-component vector of float i})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:? 's2' (global structure{temp 4-component vector of float i})
|
||||
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
|
||||
0:? 's_ff1' (in bool Face)
|
||||
|
||||
@@ -43,9 +121,9 @@ Linked fragment stage:
|
||||
Shader version: 450
|
||||
gl_FragCoord origin is upper left
|
||||
0:? Sequence
|
||||
0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:34 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:34 Function Parameters:
|
||||
0:34 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:34 'input' (in 4-component vector of float)
|
||||
0:34 's' (in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:? Sequence
|
||||
0:39 Compare Equal (temp bool)
|
||||
@@ -57,117 +135,275 @@ gl_FragCoord origin is upper left
|
||||
0:40 Constant:
|
||||
0:40 0 (const int)
|
||||
0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float)
|
||||
0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:40 's' (in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:40 Constant:
|
||||
0:40 6 (const int)
|
||||
0:42 Sequence
|
||||
0:42 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:42 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:42 Branch: Return
|
||||
0:40 7 (const int)
|
||||
0:42 Branch: Return with expression
|
||||
0:42 'input' (in 4-component vector of float)
|
||||
0:34 Function Definition: PixelShaderFunction( (temp void)
|
||||
0:34 Function Parameters:
|
||||
0:? Sequence
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:34 Sequence
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:34 a: direct index for structure (smooth temp 4-component vector of float)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 a: direct index for structure (smooth temp 4-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 0 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 b: direct index for structure (flat temp bool)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 b: direct index for structure (flat temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 move second child to first child (temp 1-component vector of float)
|
||||
0:34 c: direct index for structure (centroid noperspective temp 1-component vector of float)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 c: direct index for structure (centroid noperspective temp 1-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 2 (const int)
|
||||
0:34 move second child to first child (temp 2-component vector of float)
|
||||
0:34 d: direct index for structure (centroid sample temp 2-component vector of float)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 d: direct index for structure (centroid sample temp 2-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 3 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff1: direct index for structure (temp bool Face)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 4 (const int)
|
||||
0:? 's_ff1' (in bool Face)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff2: direct index for structure (layout(offset=4 ) temp bool)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 5 (const int)
|
||||
0:34 ff2: direct index for structure (layout(offset=4 ) temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 4 (const int)
|
||||
0:34 move second child to first child (temp bool)
|
||||
0:34 ff3: direct index for structure (layout(binding=0 offset=4 ) temp bool)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 6 (const int)
|
||||
0:34 ff3: direct index for structure (layout(binding=0 offset=4 ) temp bool)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 5 (const int)
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:34 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 7 (const int)
|
||||
0:34 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float)
|
||||
0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:34 Constant:
|
||||
0:34 6 (const int)
|
||||
0:34 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:34 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? 's' (temp structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:? Linker Objects
|
||||
0:? 's2' (global structure{temp 4-component vector of float i})
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4})
|
||||
0:? 's2' (global structure{temp 4-component vector of float i})
|
||||
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
|
||||
0:? 's_ff1' (in bool Face)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 46
|
||||
// Id's are bound by 97
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 27 35 36 45
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 43 48 71 86
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 8 "FS"
|
||||
MemberName 8(FS) 0 "b3"
|
||||
Name 10 "s3"
|
||||
Name 19 ""
|
||||
MemberName 19 0 "i"
|
||||
Name 21 "s2"
|
||||
Name 25 "IN_S"
|
||||
MemberName 25(IN_S) 0 "a"
|
||||
MemberName 25(IN_S) 1 "b"
|
||||
MemberName 25(IN_S) 2 "c"
|
||||
MemberName 25(IN_S) 3 "d"
|
||||
MemberName 25(IN_S) 4 "ff2"
|
||||
MemberName 25(IN_S) 5 "ff3"
|
||||
MemberName 25(IN_S) 6 "ff4"
|
||||
Name 27 "s"
|
||||
Name 35 "@entryPointOutput"
|
||||
Name 36 "input"
|
||||
Name 40 "myS"
|
||||
MemberName 40(myS) 0 "b"
|
||||
MemberName 40(myS) 1 "c"
|
||||
MemberName 40(myS) 2 "a"
|
||||
MemberName 40(myS) 3 "d"
|
||||
Name 41 "$Global"
|
||||
MemberName 41($Global) 0 "s1"
|
||||
MemberName 41($Global) 1 "ff5"
|
||||
MemberName 41($Global) 2 "ff6"
|
||||
Name 43 ""
|
||||
Name 45 "s_ff1"
|
||||
Decorate 27(s) Location 1
|
||||
Decorate 35(@entryPointOutput) Location 0
|
||||
Decorate 36(input) Location 0
|
||||
MemberDecorate 40(myS) 0 Offset 0
|
||||
MemberDecorate 40(myS) 1 Offset 4
|
||||
MemberDecorate 40(myS) 2 Offset 16
|
||||
MemberDecorate 40(myS) 3 Offset 32
|
||||
MemberDecorate 41($Global) 0 Offset 0
|
||||
MemberDecorate 41($Global) 1 Offset 1620
|
||||
MemberDecorate 41($Global) 2 Offset 1636
|
||||
Decorate 41($Global) Block
|
||||
Decorate 43 DescriptorSet 0
|
||||
Decorate 45(s_ff1) BuiltIn FrontFacing
|
||||
Name 11 "IN_S"
|
||||
MemberName 11(IN_S) 0 "a"
|
||||
MemberName 11(IN_S) 1 "b"
|
||||
MemberName 11(IN_S) 2 "c"
|
||||
MemberName 11(IN_S) 3 "d"
|
||||
MemberName 11(IN_S) 4 "ff1"
|
||||
MemberName 11(IN_S) 5 "ff2"
|
||||
MemberName 11(IN_S) 6 "ff3"
|
||||
MemberName 11(IN_S) 7 "ff4"
|
||||
Name 16 "@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;"
|
||||
Name 14 "input"
|
||||
Name 15 "s"
|
||||
Name 19 "FS"
|
||||
MemberName 19(FS) 0 "b3"
|
||||
Name 21 "s3"
|
||||
Name 28 ""
|
||||
MemberName 28 0 "i"
|
||||
Name 30 "s2"
|
||||
Name 41 "input"
|
||||
Name 43 "input"
|
||||
Name 45 "s"
|
||||
Name 46 "IN_S"
|
||||
MemberName 46(IN_S) 0 "a"
|
||||
MemberName 46(IN_S) 1 "b"
|
||||
MemberName 46(IN_S) 2 "c"
|
||||
MemberName 46(IN_S) 3 "d"
|
||||
MemberName 46(IN_S) 4 "ff2"
|
||||
MemberName 46(IN_S) 5 "ff3"
|
||||
MemberName 46(IN_S) 6 "ff4"
|
||||
Name 48 "s"
|
||||
Name 71 "s_ff1"
|
||||
Name 86 "@entryPointOutput"
|
||||
Name 87 "param"
|
||||
Name 89 "param"
|
||||
Name 93 "myS"
|
||||
MemberName 93(myS) 0 "b"
|
||||
MemberName 93(myS) 1 "c"
|
||||
MemberName 93(myS) 2 "a"
|
||||
MemberName 93(myS) 3 "d"
|
||||
Name 94 "$Global"
|
||||
MemberName 94($Global) 0 "s1"
|
||||
MemberName 94($Global) 1 "ff5"
|
||||
MemberName 94($Global) 2 "ff6"
|
||||
Name 96 ""
|
||||
MemberDecorate 11(IN_S) 4 BuiltIn FrontFacing
|
||||
Decorate 43(input) Location 0
|
||||
Decorate 48(s) Location 1
|
||||
Decorate 71(s_ff1) BuiltIn FrontFacing
|
||||
Decorate 86(@entryPointOutput) Location 0
|
||||
MemberDecorate 93(myS) 0 Offset 0
|
||||
MemberDecorate 93(myS) 1 Offset 4
|
||||
MemberDecorate 93(myS) 2 Offset 16
|
||||
MemberDecorate 93(myS) 3 Offset 32
|
||||
MemberDecorate 94($Global) 0 Offset 0
|
||||
MemberDecorate 94($Global) 1 Offset 1620
|
||||
MemberDecorate 94($Global) 2 Offset 1636
|
||||
Decorate 94($Global) Block
|
||||
Decorate 96 DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeBool
|
||||
7: TypeVector 6(bool) 3
|
||||
8(FS): TypeStruct 7(bvec3)
|
||||
9: TypePointer Function 8(FS)
|
||||
17: TypeFloat 32
|
||||
18: TypeVector 17(float) 4
|
||||
19: TypeStruct 18(fvec4)
|
||||
20: TypePointer Private 19(struct)
|
||||
21(s2): 20(ptr) Variable Private
|
||||
22: TypeInt 32 1
|
||||
23: 22(int) Constant 0
|
||||
24: TypeVector 17(float) 2
|
||||
25(IN_S): TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 18(fvec4)
|
||||
26: TypePointer Input 25(IN_S)
|
||||
27(s): 26(ptr) Variable Input
|
||||
28: 22(int) Constant 6
|
||||
29: TypePointer Input 18(fvec4)
|
||||
32: TypePointer Private 18(fvec4)
|
||||
34: TypePointer Output 18(fvec4)
|
||||
35(@entryPointOutput): 34(ptr) Variable Output
|
||||
36(input): 29(ptr) Variable Input
|
||||
39: TypeInt 32 0
|
||||
40(myS): TypeStruct 39(int) 39(int) 18(fvec4) 18(fvec4)
|
||||
41($Global): TypeStruct 40(myS) 17(float) 17(float)
|
||||
42: TypePointer Uniform 41($Global)
|
||||
43: 42(ptr) Variable Uniform
|
||||
44: TypePointer Input 6(bool)
|
||||
45(s_ff1): 44(ptr) Variable Input
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
9: TypeBool
|
||||
10: TypeVector 6(float) 2
|
||||
11(IN_S): TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 9(bool) 7(fvec4)
|
||||
12: TypePointer Function 11(IN_S)
|
||||
13: TypeFunction 7(fvec4) 8(ptr) 12(ptr)
|
||||
18: TypeVector 9(bool) 3
|
||||
19(FS): TypeStruct 18(bvec3)
|
||||
20: TypePointer Function 19(FS)
|
||||
28: TypeStruct 7(fvec4)
|
||||
29: TypePointer Private 28(struct)
|
||||
30(s2): 29(ptr) Variable Private
|
||||
31: TypeInt 32 1
|
||||
32: 31(int) Constant 0
|
||||
33: 31(int) Constant 7
|
||||
36: TypePointer Private 7(fvec4)
|
||||
42: TypePointer Input 7(fvec4)
|
||||
43(input): 42(ptr) Variable Input
|
||||
46(IN_S): TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 7(fvec4)
|
||||
47: TypePointer Input 46(IN_S)
|
||||
48(s): 47(ptr) Variable Input
|
||||
52: 31(int) Constant 1
|
||||
53: TypePointer Input 9(bool)
|
||||
56: TypePointer Function 9(bool)
|
||||
58: 31(int) Constant 2
|
||||
59: TypePointer Input 6(float)
|
||||
62: TypePointer Function 6(float)
|
||||
64: 31(int) Constant 3
|
||||
65: TypePointer Input 10(fvec2)
|
||||
68: TypePointer Function 10(fvec2)
|
||||
70: 31(int) Constant 4
|
||||
71(s_ff1): 53(ptr) Variable Input
|
||||
74: 31(int) Constant 5
|
||||
78: 31(int) Constant 6
|
||||
85: TypePointer Output 7(fvec4)
|
||||
86(@entryPointOutput): 85(ptr) Variable Output
|
||||
92: TypeInt 32 0
|
||||
93(myS): TypeStruct 92(int) 92(int) 7(fvec4) 7(fvec4)
|
||||
94($Global): TypeStruct 93(myS) 6(float) 6(float)
|
||||
95: TypePointer Uniform 94($Global)
|
||||
96: 95(ptr) Variable Uniform
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
10(s3): 9(ptr) Variable Function
|
||||
11: 8(FS) Load 10(s3)
|
||||
12: 8(FS) Load 10(s3)
|
||||
13: 7(bvec3) CompositeExtract 11 0
|
||||
14: 7(bvec3) CompositeExtract 12 0
|
||||
15: 7(bvec3) LogicalEqual 13 14
|
||||
16: 6(bool) All 15
|
||||
30: 29(ptr) AccessChain 27(s) 28
|
||||
31: 18(fvec4) Load 30
|
||||
33: 32(ptr) AccessChain 21(s2) 23
|
||||
Store 33 31
|
||||
37: 18(fvec4) Load 36(input)
|
||||
Store 35(@entryPointOutput) 37
|
||||
41(input): 8(ptr) Variable Function
|
||||
45(s): 12(ptr) Variable Function
|
||||
87(param): 8(ptr) Variable Function
|
||||
89(param): 12(ptr) Variable Function
|
||||
44: 7(fvec4) Load 43(input)
|
||||
Store 41(input) 44
|
||||
49: 42(ptr) AccessChain 48(s) 32
|
||||
50: 7(fvec4) Load 49
|
||||
51: 8(ptr) AccessChain 45(s) 32
|
||||
Store 51 50
|
||||
54: 53(ptr) AccessChain 48(s) 52
|
||||
55: 9(bool) Load 54
|
||||
57: 56(ptr) AccessChain 45(s) 52
|
||||
Store 57 55
|
||||
60: 59(ptr) AccessChain 48(s) 58
|
||||
61: 6(float) Load 60
|
||||
63: 62(ptr) AccessChain 45(s) 58
|
||||
Store 63 61
|
||||
66: 65(ptr) AccessChain 48(s) 64
|
||||
67: 10(fvec2) Load 66
|
||||
69: 68(ptr) AccessChain 45(s) 64
|
||||
Store 69 67
|
||||
72: 9(bool) Load 71(s_ff1)
|
||||
73: 56(ptr) AccessChain 45(s) 70
|
||||
Store 73 72
|
||||
75: 53(ptr) AccessChain 48(s) 70
|
||||
76: 9(bool) Load 75
|
||||
77: 56(ptr) AccessChain 45(s) 74
|
||||
Store 77 76
|
||||
79: 53(ptr) AccessChain 48(s) 74
|
||||
80: 9(bool) Load 79
|
||||
81: 56(ptr) AccessChain 45(s) 78
|
||||
Store 81 80
|
||||
82: 42(ptr) AccessChain 48(s) 78
|
||||
83: 7(fvec4) Load 82
|
||||
84: 8(ptr) AccessChain 45(s) 33
|
||||
Store 84 83
|
||||
88: 7(fvec4) Load 41(input)
|
||||
Store 87(param) 88
|
||||
90: 11(IN_S) Load 45(s)
|
||||
Store 89(param) 90
|
||||
91: 7(fvec4) FunctionCall 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;) 87(param) 89(param)
|
||||
Store 86(@entryPointOutput) 91
|
||||
Return
|
||||
FunctionEnd
|
||||
16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;): 7(fvec4) Function None 13
|
||||
14(input): 8(ptr) FunctionParameter
|
||||
15(s): 12(ptr) FunctionParameter
|
||||
17: Label
|
||||
21(s3): 20(ptr) Variable Function
|
||||
22: 19(FS) Load 21(s3)
|
||||
23: 19(FS) Load 21(s3)
|
||||
24: 18(bvec3) CompositeExtract 22 0
|
||||
25: 18(bvec3) CompositeExtract 23 0
|
||||
26: 18(bvec3) LogicalEqual 24 25
|
||||
27: 9(bool) All 26
|
||||
34: 8(ptr) AccessChain 15(s) 33
|
||||
35: 7(fvec4) Load 34
|
||||
37: 36(ptr) AccessChain 30(s2) 32
|
||||
Store 37 35
|
||||
38: 7(fvec4) Load 14(input)
|
||||
ReturnValue 38
|
||||
FunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user