glslang/Test/baseResults/spv.ssbo.autoassign.frag.out
steve-lunarg dd8287a109 WIP: HLSL: add structuredbuffer pass by reference in fn params
This PR adds the ability to pass structuredbuffer types by reference
as function parameters.

It also changes the representation of structuredbuffers from anonymous
blocks with named members, to named blocks with pseudonymous members.
That should not be an externally visible change.
2017-02-26 11:13:42 -07:00

154 lines
7.4 KiB
Plaintext

spv.ssbo.autoassign.frag
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 95
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 88 91
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 11 "@main(vf4;"
Name 10 "pos"
Name 13 "vTmp"
Name 14 "BufType"
MemberName 14(BufType) 0 "va"
MemberName 14(BufType) 1 "vb"
Name 16 "SB0"
MemberName 16(SB0) 0 "@data"
Name 18 "SB0"
Name 26 "TestCB"
MemberName 26(TestCB) 0 "W"
MemberName 26(TestCB) 1 "H"
Name 28 ""
Name 55 "SB1"
MemberName 55(SB1) 0 "@data"
Name 57 "SB1"
Name 86 "pos"
Name 88 "pos"
Name 91 "@entryPointOutput"
Name 92 "param"
MemberDecorate 14(BufType) 0 NonWritable
MemberDecorate 14(BufType) 0 Offset 0
MemberDecorate 14(BufType) 1 NonWritable
MemberDecorate 14(BufType) 1 Offset 16
Decorate 15 ArrayStride 32
MemberDecorate 16(SB0) 0 NonWritable
MemberDecorate 16(SB0) 0 Offset 0
Decorate 16(SB0) BufferBlock
Decorate 18(SB0) DescriptorSet 0
Decorate 18(SB0) Binding 30
MemberDecorate 26(TestCB) 0 Offset 0
MemberDecorate 26(TestCB) 1 Offset 4
Decorate 26(TestCB) Block
Decorate 28 DescriptorSet 0
Decorate 28 Binding 15
Decorate 54 ArrayStride 32
MemberDecorate 55(SB1) 0 Offset 0
Decorate 55(SB1) BufferBlock
Decorate 57(SB1) DescriptorSet 0
Decorate 57(SB1) Binding 31
Decorate 88(pos) Location 0
Decorate 91(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr)
14(BufType): TypeStruct 7(fvec4) 7(fvec4)
15: TypeRuntimeArray 14(BufType)
16(SB0): TypeStruct 15
17: TypePointer Uniform 16(SB0)
18(SB0): 17(ptr) Variable Uniform
19: TypeInt 32 1
20: 19(int) Constant 0
21: TypeInt 32 0
22: 21(int) Constant 1
23: TypePointer Function 6(float)
26(TestCB): TypeStruct 21(int) 21(int)
27: TypePointer Uniform 26(TestCB)
28: 27(ptr) Variable Uniform
29: TypePointer Uniform 21(int)
34: 21(int) Constant 0
38: TypePointer Uniform 7(fvec4)
50: 19(int) Constant 1
54: TypeRuntimeArray 14(BufType)
55(SB1): TypeStruct 54
56: TypePointer Uniform 55(SB1)
57(SB1): 56(ptr) Variable Uniform
87: TypePointer Input 7(fvec4)
88(pos): 87(ptr) Variable Input
90: TypePointer Output 7(fvec4)
91(@entryPointOutput): 90(ptr) Variable Output
4(main): 2 Function None 3
5: Label
86(pos): 8(ptr) Variable Function
92(param): 8(ptr) Variable Function
89: 7(fvec4) Load 88(pos)
Store 86(pos) 89
93: 7(fvec4) Load 86(pos)
Store 92(param) 93
94: 7(fvec4) FunctionCall 11(@main(vf4;) 92(param)
Store 91(@entryPointOutput) 94
Return
FunctionEnd
11(@main(vf4;): 7(fvec4) Function None 9
10(pos): 8(ptr) FunctionParameter
12: Label
13(vTmp): 8(ptr) Variable Function
24: 23(ptr) AccessChain 10(pos) 22
25: 6(float) Load 24
30: 29(ptr) AccessChain 28 20
31: 21(int) Load 30
32: 6(float) ConvertUToF 31
33: 6(float) FMul 25 32
35: 23(ptr) AccessChain 10(pos) 34
36: 6(float) Load 35
37: 6(float) FAdd 33 36
39: 38(ptr) AccessChain 18(SB0) 20 37 20
40: 7(fvec4) Load 39
41: 23(ptr) AccessChain 10(pos) 22
42: 6(float) Load 41
43: 29(ptr) AccessChain 28 20
44: 21(int) Load 43
45: 6(float) ConvertUToF 44
46: 6(float) FMul 42 45
47: 23(ptr) AccessChain 10(pos) 34
48: 6(float) Load 47
49: 6(float) FAdd 46 48
51: 38(ptr) AccessChain 18(SB0) 20 49 50
52: 7(fvec4) Load 51
53: 7(fvec4) FAdd 40 52
Store 13(vTmp) 53
58: 23(ptr) AccessChain 10(pos) 22
59: 6(float) Load 58
60: 29(ptr) AccessChain 28 20
61: 21(int) Load 60
62: 6(float) ConvertUToF 61
63: 6(float) FMul 59 62
64: 23(ptr) AccessChain 10(pos) 34
65: 6(float) Load 64
66: 6(float) FAdd 63 65
67: 38(ptr) AccessChain 57(SB1) 20 66 20
68: 7(fvec4) Load 67
69: 23(ptr) AccessChain 10(pos) 22
70: 6(float) Load 69
71: 29(ptr) AccessChain 28 20
72: 21(int) Load 71
73: 6(float) ConvertUToF 72
74: 6(float) FMul 70 73
75: 23(ptr) AccessChain 10(pos) 34
76: 6(float) Load 75
77: 6(float) FAdd 74 76
78: 38(ptr) AccessChain 57(SB1) 20 77 50
79: 7(fvec4) Load 78
80: 7(fvec4) FAdd 68 79
81: 7(fvec4) Load 13(vTmp)
82: 7(fvec4) FAdd 81 80
Store 13(vTmp) 82
83: 7(fvec4) Load 13(vTmp)
ReturnValue 83
FunctionEnd