You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
6.4 KiB
131 lines
6.4 KiB
4 months ago
|
spv.atomic.comp
|
||
|
// Module Version 10000
|
||
|
// Generated by (magic number): 8000a
|
||
|
// Id's are bound by 74
|
||
|
|
||
|
Capability Shader
|
||
|
Capability AtomicStorage
|
||
|
1: ExtInstImport "GLSL.std.450"
|
||
|
MemoryModel Logical GLSL450
|
||
|
EntryPoint GLCompute 4 "main"
|
||
|
ExecutionMode 4 LocalSize 1 1 1
|
||
|
Source GLSL 450
|
||
|
Name 4 "main"
|
||
|
Name 10 "func(au1;"
|
||
|
Name 9 "c"
|
||
|
Name 12 "atoms("
|
||
|
Name 20 "counter"
|
||
|
Name 23 "val"
|
||
|
Name 27 "countArr"
|
||
|
Name 37 "origi"
|
||
|
Name 39 "atomi"
|
||
|
Name 42 "origu"
|
||
|
Name 44 "atomu"
|
||
|
Name 45 "value"
|
||
|
Name 62 "dataSSB"
|
||
|
MemberName 62(dataSSB) 0 "f"
|
||
|
MemberName 62(dataSSB) 1 "n_frames_rendered"
|
||
|
Name 64 "result"
|
||
|
Name 71 "arrX"
|
||
|
Name 72 "arrY"
|
||
|
Name 73 "arrZ"
|
||
|
Decorate 20(counter) Offset 0
|
||
|
Decorate 20(counter) DescriptorSet 0
|
||
|
Decorate 20(counter) Binding 0
|
||
|
Decorate 27(countArr) Offset 4
|
||
|
Decorate 27(countArr) DescriptorSet 0
|
||
|
Decorate 27(countArr) Binding 0
|
||
|
MemberDecorate 62(dataSSB) 0 Restrict
|
||
|
MemberDecorate 62(dataSSB) 0 Offset 0
|
||
|
MemberDecorate 62(dataSSB) 1 Restrict
|
||
|
MemberDecorate 62(dataSSB) 1 Offset 16
|
||
|
Decorate 62(dataSSB) BufferBlock
|
||
|
Decorate 64(result) DescriptorSet 0
|
||
|
Decorate 64(result) Binding 0
|
||
|
2: TypeVoid
|
||
|
3: TypeFunction 2
|
||
|
6: TypeInt 32 0
|
||
|
7: TypePointer AtomicCounter 6(int)
|
||
|
8: TypeFunction 6(int) 7(ptr)
|
||
|
14: 6(int) Constant 1
|
||
|
15: 6(int) Constant 0
|
||
|
19: 6(int) Constant 1032
|
||
|
20(counter): 7(ptr) Variable AtomicCounter
|
||
|
22: TypePointer Function 6(int)
|
||
|
24: 6(int) Constant 4
|
||
|
25: TypeArray 6(int) 24
|
||
|
26: TypePointer AtomicCounter 25
|
||
|
27(countArr): 26(ptr) Variable AtomicCounter
|
||
|
28: TypeInt 32 1
|
||
|
29: 28(int) Constant 2
|
||
|
33: 28(int) Constant 1
|
||
|
36: TypePointer Function 28(int)
|
||
|
38: TypePointer Workgroup 28(int)
|
||
|
39(atomi): 38(ptr) Variable Workgroup
|
||
|
40: 28(int) Constant 3
|
||
|
43: TypePointer Workgroup 6(int)
|
||
|
44(atomu): 43(ptr) Variable Workgroup
|
||
|
45(value): 43(ptr) Variable Workgroup
|
||
|
48: 6(int) Constant 7
|
||
|
53: 28(int) Constant 7
|
||
|
57: 6(int) Constant 10
|
||
|
60: TypeFloat 32
|
||
|
61: TypeVector 28(int) 4
|
||
|
62(dataSSB): TypeStruct 60(float) 61(ivec4)
|
||
|
63: TypePointer Uniform 62(dataSSB)
|
||
|
64(result): 63(ptr) Variable Uniform
|
||
|
65: 6(int) Constant 2
|
||
|
66: TypePointer Uniform 28(int)
|
||
|
69: TypeArray 28(int) 14
|
||
|
70: TypePointer Private 69
|
||
|
71(arrX): 70(ptr) Variable Private
|
||
|
72(arrY): 70(ptr) Variable Private
|
||
|
73(arrZ): 70(ptr) Variable Private
|
||
|
4(main): 2 Function None 3
|
||
|
5: Label
|
||
|
23(val): 22(ptr) Variable Function
|
||
|
MemoryBarrier 14 19
|
||
|
21: 6(int) FunctionCall 10(func(au1;) 20(counter)
|
||
|
30: 7(ptr) AccessChain 27(countArr) 29
|
||
|
31: 6(int) AtomicLoad 30 14 15
|
||
|
Store 23(val) 31
|
||
|
32: 6(int) AtomicIDecrement 20(counter) 14 15
|
||
|
34: 6(int) ISub 32 33
|
||
|
35: 6(int) AtomicIIncrement 20(counter) 14 15
|
||
|
Return
|
||
|
FunctionEnd
|
||
|
10(func(au1;): 6(int) Function None 8
|
||
|
9(c): 7(ptr) FunctionParameter
|
||
|
11: Label
|
||
|
16: 6(int) AtomicIIncrement 9(c) 14 15
|
||
|
ReturnValue 16
|
||
|
FunctionEnd
|
||
|
12(atoms(): 2 Function None 3
|
||
|
13: Label
|
||
|
37(origi): 36(ptr) Variable Function
|
||
|
42(origu): 22(ptr) Variable Function
|
||
|
41: 28(int) AtomicIAdd 39(atomi) 14 15 40
|
||
|
Store 37(origi) 41
|
||
|
46: 6(int) Load 45(value)
|
||
|
47: 6(int) AtomicAnd 44(atomu) 14 15 46
|
||
|
Store 42(origu) 47
|
||
|
49: 6(int) AtomicOr 44(atomu) 14 15 48
|
||
|
Store 42(origu) 49
|
||
|
50: 6(int) AtomicXor 44(atomu) 14 15 48
|
||
|
Store 42(origu) 50
|
||
|
51: 6(int) Load 45(value)
|
||
|
52: 6(int) AtomicUMin 44(atomu) 14 15 51
|
||
|
Store 42(origu) 52
|
||
|
54: 28(int) AtomicSMax 39(atomi) 14 15 53
|
||
|
Store 37(origi) 54
|
||
|
55: 28(int) Load 37(origi)
|
||
|
56: 28(int) AtomicExchange 39(atomi) 14 15 55
|
||
|
Store 37(origi) 56
|
||
|
58: 6(int) Load 45(value)
|
||
|
59: 6(int) AtomicCompareExchange 44(atomu) 14 15 15 58 57
|
||
|
Store 42(origu) 59
|
||
|
67: 66(ptr) AccessChain 64(result) 33 65
|
||
|
68: 28(int) AtomicIAdd 67 14 15 33
|
||
|
Return
|
||
|
FunctionEnd
|