Some texture and SB operations can take non-integer indexes, which should be cast to integers before use if they are not already. This adds makeIntegerIndex() for the purpose. Int types are left alone. (This was done before for operator[], but needs to apply to some other things too, hence its extraction into common function now)
159 lines
7.6 KiB
Plaintext
159 lines
7.6 KiB
Plaintext
spv.ssbo.autoassign.frag
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 99
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 92 95
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source HLSL 500
|
|
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 57 "SB1"
|
|
MemberName 57(SB1) 0 "@data"
|
|
Name 59 "SB1"
|
|
Name 90 "pos"
|
|
Name 92 "pos"
|
|
Name 95 "@entryPointOutput"
|
|
Name 96 "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 56 ArrayStride 32
|
|
MemberDecorate 57(SB1) 0 Offset 0
|
|
Decorate 57(SB1) BufferBlock
|
|
Decorate 59(SB1) DescriptorSet 0
|
|
Decorate 59(SB1) Binding 31
|
|
Decorate 92(pos) Location 0
|
|
Decorate 95(@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
|
|
39: TypePointer Uniform 7(fvec4)
|
|
52: 19(int) Constant 1
|
|
56: TypeRuntimeArray 14(BufType)
|
|
57(SB1): TypeStruct 56
|
|
58: TypePointer Uniform 57(SB1)
|
|
59(SB1): 58(ptr) Variable Uniform
|
|
91: TypePointer Input 7(fvec4)
|
|
92(pos): 91(ptr) Variable Input
|
|
94: TypePointer Output 7(fvec4)
|
|
95(@entryPointOutput): 94(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
90(pos): 8(ptr) Variable Function
|
|
96(param): 8(ptr) Variable Function
|
|
93: 7(fvec4) Load 92(pos)
|
|
Store 90(pos) 93
|
|
97: 7(fvec4) Load 90(pos)
|
|
Store 96(param) 97
|
|
98: 7(fvec4) FunctionCall 11(@main(vf4;) 96(param)
|
|
Store 95(@entryPointOutput) 98
|
|
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
|
|
38: 21(int) ConvertFToU 37
|
|
40: 39(ptr) AccessChain 18(SB0) 20 38 20
|
|
41: 7(fvec4) Load 40
|
|
42: 23(ptr) AccessChain 10(pos) 22
|
|
43: 6(float) Load 42
|
|
44: 29(ptr) AccessChain 28 20
|
|
45: 21(int) Load 44
|
|
46: 6(float) ConvertUToF 45
|
|
47: 6(float) FMul 43 46
|
|
48: 23(ptr) AccessChain 10(pos) 34
|
|
49: 6(float) Load 48
|
|
50: 6(float) FAdd 47 49
|
|
51: 21(int) ConvertFToU 50
|
|
53: 39(ptr) AccessChain 18(SB0) 20 51 52
|
|
54: 7(fvec4) Load 53
|
|
55: 7(fvec4) FAdd 41 54
|
|
Store 13(vTmp) 55
|
|
60: 23(ptr) AccessChain 10(pos) 22
|
|
61: 6(float) Load 60
|
|
62: 29(ptr) AccessChain 28 20
|
|
63: 21(int) Load 62
|
|
64: 6(float) ConvertUToF 63
|
|
65: 6(float) FMul 61 64
|
|
66: 23(ptr) AccessChain 10(pos) 34
|
|
67: 6(float) Load 66
|
|
68: 6(float) FAdd 65 67
|
|
69: 21(int) ConvertFToU 68
|
|
70: 39(ptr) AccessChain 59(SB1) 20 69 20
|
|
71: 7(fvec4) Load 70
|
|
72: 23(ptr) AccessChain 10(pos) 22
|
|
73: 6(float) Load 72
|
|
74: 29(ptr) AccessChain 28 20
|
|
75: 21(int) Load 74
|
|
76: 6(float) ConvertUToF 75
|
|
77: 6(float) FMul 73 76
|
|
78: 23(ptr) AccessChain 10(pos) 34
|
|
79: 6(float) Load 78
|
|
80: 6(float) FAdd 77 79
|
|
81: 21(int) ConvertFToU 80
|
|
82: 39(ptr) AccessChain 59(SB1) 20 81 52
|
|
83: 7(fvec4) Load 82
|
|
84: 7(fvec4) FAdd 71 83
|
|
85: 7(fvec4) Load 13(vTmp)
|
|
86: 7(fvec4) FAdd 85 84
|
|
Store 13(vTmp) 86
|
|
87: 7(fvec4) Load 13(vTmp)
|
|
ReturnValue 87
|
|
FunctionEnd
|