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.
42 lines
1.9 KiB
Text
42 lines
1.9 KiB
Text
spv.volatileAtomic.comp
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 18
|
|
|
|
Capability Shader
|
|
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 8 "D"
|
|
MemberName 8(D) 0 "d"
|
|
Name 10 "d"
|
|
Decorate 7 ArrayStride 4
|
|
Decorate 8(D) BufferBlock
|
|
MemberDecorate 8(D) 0 Volatile
|
|
MemberDecorate 8(D) 0 Coherent
|
|
MemberDecorate 8(D) 0 Offset 0
|
|
Decorate 10(d) Volatile
|
|
Decorate 10(d) Coherent
|
|
Decorate 10(d) Binding 3
|
|
Decorate 10(d) DescriptorSet 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 0
|
|
7: TypeRuntimeArray 6(int)
|
|
8(D): TypeStruct 7
|
|
9: TypePointer Uniform 8(D)
|
|
10(d): 9(ptr) Variable Uniform
|
|
11: TypeInt 32 1
|
|
12: 11(int) Constant 0
|
|
13: TypePointer Uniform 6(int)
|
|
15: 6(int) Constant 0
|
|
16: 6(int) Constant 1
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
14: 13(ptr) AccessChain 10(d) 12 12
|
|
17: 6(int) AtomicExchange 14 16 15 15
|
|
Return
|
|
FunctionEnd
|