glslang/Test/baseResults/hlsl.entry-in.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

340 lines
20 KiB
Plaintext
Executable File

hlsl.entry-in.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:8 Function Parameters:
0:8 'p' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:? Sequence
0:9 Branch: Return with expression
0:9 add (temp float)
0:9 direct index (temp float)
0:9 v: direct index for structure (temp 2-component vector of float)
0:9 'p' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:9 Constant:
0:9 0 (const int)
0:9 Constant:
0:9 1 (const int)
0:9 direct index (temp float)
0:9 fragCoord: direct index for structure (temp 4-component vector of float)
0:9 'p' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:9 Constant:
0:9 1 (const int)
0:9 Constant:
0:9 0 (const int)
0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (temp 4-component vector of float)
0:13 Function Parameters:
0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:? Sequence
0:15 Sequence
0:15 move second child to first child (temp 2-component vector of float)
0:15 v: direct index for structure (temp 2-component vector of float)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 0 (const int)
0:15 v: direct index for structure (temp 2-component vector of float)
0:15 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
0:15 Constant:
0:15 0 (const int)
0:15 move second child to first child (temp 4-component vector of float)
0:15 fragCoord: direct index for structure (temp 4-component vector of float)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 1 (const int)
0:? 'i_fragCoord' (in 4-component vector of float FragCoord)
0:15 move second child to first child (temp 2-component vector of int)
0:15 i2: direct index for structure (temp 2-component vector of int)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 2 (const int)
0:15 i2: direct index for structure (temp 2-component vector of int)
0:15 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
0:15 Constant:
0:15 1 (const int)
0:16 Sequence
0:16 move second child to first child (temp float)
0:16 'ret1' (temp float)
0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Sequence
0:17 move second child to first child (temp float)
0:17 'ret2' (temp float)
0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:17 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:17 Sequence
0:17 move second child to first child (temp 2-component vector of float)
0:17 v: direct index for structure (temp 2-component vector of float)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 0 (const int)
0:17 v: direct index for structure (temp 2-component vector of float)
0:17 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
0:17 Constant:
0:17 0 (const int)
0:17 move second child to first child (temp 4-component vector of float)
0:17 fragCoord: direct index for structure (temp 4-component vector of float FragCoord)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 1 (const int)
0:? 'i_fragCoord' (in 4-component vector of float FragCoord)
0:17 move second child to first child (temp 2-component vector of int)
0:17 i2: direct index for structure (temp 2-component vector of int)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 2 (const int)
0:17 i2: direct index for structure (temp 2-component vector of int)
0:17 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
0:17 Constant:
0:17 1 (const int)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:19 Sequence
0:19 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:19 vector-scale (temp 4-component vector of float)
0:19 vector-scale (temp 4-component vector of float)
0:19 fragCoord: direct index for structure (temp 4-component vector of float)
0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:19 Constant:
0:19 1 (const int)
0:19 'ret1' (temp float)
0:19 'ret2' (temp float)
0:19 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
0:? 'i_fragCoord' (in 4-component vector of float FragCoord)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:8 Function Parameters:
0:8 'p' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:? Sequence
0:9 Branch: Return with expression
0:9 add (temp float)
0:9 direct index (temp float)
0:9 v: direct index for structure (temp 2-component vector of float)
0:9 'p' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:9 Constant:
0:9 0 (const int)
0:9 Constant:
0:9 1 (const int)
0:9 direct index (temp float)
0:9 fragCoord: direct index for structure (temp 4-component vector of float)
0:9 'p' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:9 Constant:
0:9 1 (const int)
0:9 Constant:
0:9 0 (const int)
0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (temp 4-component vector of float)
0:13 Function Parameters:
0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:? Sequence
0:15 Sequence
0:15 move second child to first child (temp 2-component vector of float)
0:15 v: direct index for structure (temp 2-component vector of float)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 0 (const int)
0:15 v: direct index for structure (temp 2-component vector of float)
0:15 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
0:15 Constant:
0:15 0 (const int)
0:15 move second child to first child (temp 4-component vector of float)
0:15 fragCoord: direct index for structure (temp 4-component vector of float)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 1 (const int)
0:? 'i_fragCoord' (in 4-component vector of float FragCoord)
0:15 move second child to first child (temp 2-component vector of int)
0:15 i2: direct index for structure (temp 2-component vector of int)
0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:15 Constant:
0:15 2 (const int)
0:15 i2: direct index for structure (temp 2-component vector of int)
0:15 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
0:15 Constant:
0:15 1 (const int)
0:16 Sequence
0:16 move second child to first child (temp float)
0:16 'ret1' (temp float)
0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:17 Sequence
0:17 move second child to first child (temp float)
0:17 'ret2' (temp float)
0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float)
0:17 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:17 Sequence
0:17 move second child to first child (temp 2-component vector of float)
0:17 v: direct index for structure (temp 2-component vector of float)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 0 (const int)
0:17 v: direct index for structure (temp 2-component vector of float)
0:17 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
0:17 Constant:
0:17 0 (const int)
0:17 move second child to first child (temp 4-component vector of float)
0:17 fragCoord: direct index for structure (temp 4-component vector of float FragCoord)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 1 (const int)
0:? 'i_fragCoord' (in 4-component vector of float FragCoord)
0:17 move second child to first child (temp 2-component vector of int)
0:17 i2: direct index for structure (temp 2-component vector of int)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:17 Constant:
0:17 2 (const int)
0:17 i2: direct index for structure (temp 2-component vector of int)
0:17 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
0:17 Constant:
0:17 1 (const int)
0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2})
0:19 Sequence
0:19 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:19 vector-scale (temp 4-component vector of float)
0:19 vector-scale (temp 4-component vector of float)
0:19 fragCoord: direct index for structure (temp 4-component vector of float)
0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:19 Constant:
0:19 1 (const int)
0:19 'ret1' (temp float)
0:19 'ret2' (temp float)
0:19 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
0:? 'i_fragCoord' (in 4-component vector of float FragCoord)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 78
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 33 40 70
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 11 "InParam"
MemberName 11(InParam) 0 "v"
MemberName 11(InParam) 1 "fragCoord"
MemberName 11(InParam) 2 "i2"
Name 15 "fun(struct-InParam-vf2-vf4-vi21;"
Name 14 "p"
Name 30 "local"
Name 31 "InParam"
MemberName 31(InParam) 0 "v"
MemberName 31(InParam) 1 "i2"
Name 33 "i"
Name 40 "i_fragCoord"
Name 50 "ret1"
Name 51 "param"
Name 54 "ret2"
Name 55 "InParam"
MemberName 55(InParam) 0 "v"
MemberName 55(InParam) 1 "fragCoord"
MemberName 55(InParam) 2 "i2"
Name 57 "aggShadow"
Name 66 "param"
Name 70 "@entryPointOutput"
Decorate 33(i) Location 0
Decorate 40(i_fragCoord) BuiltIn FragCoord
MemberDecorate 55(InParam) 1 BuiltIn FragCoord
Decorate 70(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 2
8: TypeVector 6(float) 4
9: TypeInt 32 1
10: TypeVector 9(int) 2
11(InParam): TypeStruct 7(fvec2) 8(fvec4) 10(ivec2)
12: TypePointer Function 11(InParam)
13: TypeFunction 6(float) 12(ptr)
17: 9(int) Constant 0
18: TypeInt 32 0
19: 18(int) Constant 1
20: TypePointer Function 6(float)
23: 9(int) Constant 1
24: 18(int) Constant 0
31(InParam): TypeStruct 7(fvec2) 10(ivec2)
32: TypePointer Input 31(InParam)
33(i): 32(ptr) Variable Input
34: TypePointer Input 7(fvec2)
37: TypePointer Function 7(fvec2)
39: TypePointer Input 8(fvec4)
40(i_fragCoord): 39(ptr) Variable Input
42: TypePointer Function 8(fvec4)
44: 9(int) Constant 2
45: TypePointer Input 10(ivec2)
48: TypePointer Function 10(ivec2)
55(InParam): TypeStruct 7(fvec2) 8(fvec4) 10(ivec2)
56: TypePointer Function 55(InParam)
69: TypePointer Output 8(fvec4)
70(@entryPointOutput): 69(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
30(local): 12(ptr) Variable Function
50(ret1): 20(ptr) Variable Function
51(param): 12(ptr) Variable Function
54(ret2): 20(ptr) Variable Function
57(aggShadow): 56(ptr) Variable Function
66(param): 56(ptr) Variable Function
35: 34(ptr) AccessChain 33(i) 17
36: 7(fvec2) Load 35
38: 37(ptr) AccessChain 30(local) 17
Store 38 36
41: 8(fvec4) Load 40(i_fragCoord)
43: 42(ptr) AccessChain 30(local) 23
Store 43 41
46: 45(ptr) AccessChain 33(i) 23
47: 10(ivec2) Load 46
49: 48(ptr) AccessChain 30(local) 44
Store 49 47
52: 11(InParam) Load 30(local)
Store 51(param) 52
53: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 51(param)
Store 50(ret1) 53
58: 34(ptr) AccessChain 33(i) 17
59: 7(fvec2) Load 58
60: 37(ptr) AccessChain 57(aggShadow) 17
Store 60 59
61: 8(fvec4) Load 40(i_fragCoord)
62: 42(ptr) AccessChain 57(aggShadow) 23
Store 62 61
63: 45(ptr) AccessChain 33(i) 23
64: 10(ivec2) Load 63
65: 48(ptr) AccessChain 57(aggShadow) 44
Store 65 64
67: 55(InParam) Load 57(aggShadow)
Store 66(param) 67
68: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 66(param)
Store 54(ret2) 68
71: 42(ptr) AccessChain 30(local) 23
72: 8(fvec4) Load 71
73: 6(float) Load 50(ret1)
74: 8(fvec4) VectorTimesScalar 72 73
75: 6(float) Load 54(ret2)
76: 8(fvec4) VectorTimesScalar 74 75
Store 70(@entryPointOutput) 76
Return
FunctionEnd
15(fun(struct-InParam-vf2-vf4-vi21;): 6(float) Function None 13
14(p): 12(ptr) FunctionParameter
16: Label
21: 20(ptr) AccessChain 14(p) 17 19
22: 6(float) Load 21
25: 20(ptr) AccessChain 14(p) 23 24
26: 6(float) Load 25
27: 6(float) FAdd 22 26
ReturnValue 27
FunctionEnd