mirror of
https://github.com/RPCS3/glslang.git
synced 2024-12-03 16:41:30 +00:00
dd8287a109
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.
154 lines
7.4 KiB
Plaintext
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
|