glslang/Test/baseResults/hlsl.struct.frag.out
steve-lunarg 46d5428422 WIP: add other builtins to interstage IO
(Still adding tests: do not commit)

This fixes PR #632 so that:

(a) The 4 PerVertex builtins are added to an interface block for all stages except fragment.

(b) Other builtin qualified variables are added as "loose" linkage members.

(c) Arrayness from the PerVertex builtins is moved to the PerVertex block.

(d) Sometimes, two PerVertex blocks are created, one for in, one for out (e.g, for some GS that
    both reads and writes a Position)
2017-01-09 13:58:05 -07:00

174 lines
11 KiB
Plaintext
Executable File

hlsl.struct.frag
WARNING: 0:26: 'register' : ignoring shader_profile
WARNING: 0:27: 'register' : ignoring shader_profile
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 Parameters:
0:34 'input' (layout(location=0 ) 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)
0:39 's3' (temp structure{temp 3-component vector of bool b3})
0:39 's3' (temp structure{temp 3-component vector of bool b3})
0:40 move second child to first child (temp 4-component vector of float)
0:40 i: direct index for structure (temp 4-component vector of float)
0:40 's2' (global structure{temp 4-component vector of float i})
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 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:? Linker Objects
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)
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 Parameters:
0:34 'input' (layout(location=0 ) 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)
0:39 's3' (temp structure{temp 3-component vector of bool b3})
0:39 's3' (temp structure{temp 3-component vector of bool b3})
0:40 move second child to first child (temp 4-component vector of float)
0:40 i: direct index for structure (temp 4-component vector of float)
0:40 's2' (global structure{temp 4-component vector of float i})
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 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:? Linker Objects
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
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 27 35 36 45
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
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
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
Return
FunctionEnd