mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 11:30:06 +00:00
5073d93ec4
Apply memory decorations from GLSL source to the top-level OpVariable. Previously, these decorations would only be applied to individual members. While this is correct behavior, it is more convenient for some front ends to see the decorations (specifically ReadOnly and WriteOnly) applied to the whole variable rather than individual members.
73 lines
3.6 KiB
Plaintext
73 lines
3.6 KiB
Plaintext
spv.atomiAddEXT.task
|
|
// Module Version 10400
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 34
|
|
|
|
Capability MeshShadingEXT
|
|
Extension "SPV_EXT_mesh_shader"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint TaskEXT 4 "main" 9 23 28
|
|
ExecutionMode 4 LocalSize 1 1 1
|
|
Source GLSL 460
|
|
SourceExtension "GL_EXT_mesh_shader"
|
|
Name 4 "main"
|
|
Name 7 "Buffer"
|
|
MemberName 7(Buffer) 0 "x"
|
|
Name 9 ""
|
|
Name 20 "structType"
|
|
MemberName 20(structType) 0 "y"
|
|
Name 21 "t2"
|
|
MemberName 21(t2) 0 "f"
|
|
Name 23 "t"
|
|
Name 26 "taskBlock"
|
|
MemberName 26(taskBlock) 0 "atom1"
|
|
Name 28 "mytask"
|
|
Decorate 7(Buffer) Block
|
|
MemberDecorate 7(Buffer) 0 Coherent
|
|
MemberDecorate 7(Buffer) 0 Offset 0
|
|
Decorate 9 Coherent
|
|
Decorate 9 Binding 1
|
|
Decorate 9 DescriptorSet 0
|
|
Decorate 19 ArrayStride 4
|
|
MemberDecorate 20(structType) 0 Offset 0
|
|
Decorate 21(t2) Block
|
|
MemberDecorate 21(t2) 0 Offset 0
|
|
Decorate 23(t) Binding 0
|
|
Decorate 23(t) DescriptorSet 0
|
|
Decorate 33 BuiltIn WorkgroupSize
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7(Buffer): TypeStruct 6(int)
|
|
8: TypePointer StorageBuffer 7(Buffer)
|
|
9: 8(ptr) Variable StorageBuffer
|
|
10: 6(int) Constant 0
|
|
11: TypePointer StorageBuffer 6(int)
|
|
13: 6(int) Constant 1
|
|
14: TypeInt 32 0
|
|
15: 14(int) Constant 1
|
|
16: 14(int) Constant 0
|
|
18: 14(int) Constant 3
|
|
19: TypeArray 6(int) 18
|
|
20(structType): TypeStruct 19
|
|
21(t2): TypeStruct 20(structType)
|
|
22: TypePointer StorageBuffer 21(t2)
|
|
23(t): 22(ptr) Variable StorageBuffer
|
|
26(taskBlock): TypeStruct 6(int)
|
|
27: TypePointer TaskPayloadWorkgroupEXT 26(taskBlock)
|
|
28(mytask): 27(ptr) Variable TaskPayloadWorkgroupEXT
|
|
29: TypePointer TaskPayloadWorkgroupEXT 6(int)
|
|
32: TypeVector 14(int) 3
|
|
33: 32(ivec3) ConstantComposite 15 15 15
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
12: 11(ptr) AccessChain 9 10
|
|
17: 6(int) AtomicIAdd 12 15 16 13
|
|
24: 11(ptr) AccessChain 23(t) 10 10 13
|
|
25: 6(int) AtomicIAdd 24 15 16 13
|
|
30: 29(ptr) AccessChain 28(mytask) 10
|
|
31: 6(int) AtomicIAdd 30 15 16 13
|
|
Return
|
|
FunctionEnd
|