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.
57 lines
2.8 KiB
Text
57 lines
2.8 KiB
Text
spv.fsi.frag
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 24
|
|
|
|
Capability Shader
|
|
Capability CapabilityFragmentShaderSampleInterlockEXT
|
|
Extension "SPV_EXT_fragment_shader_interlock"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main"
|
|
ExecutionMode 4 OriginUpperLeft
|
|
ExecutionMode 4 SampleInterlockOrderedEXT
|
|
Source GLSL 450
|
|
SourceExtension "GL_ARB_fragment_shader_interlock"
|
|
Name 4 "main"
|
|
Name 7 "B1"
|
|
MemberName 7(B1) 0 "x"
|
|
Name 9 "b1"
|
|
Name 17 "im"
|
|
Decorate 7(B1) BufferBlock
|
|
MemberDecorate 7(B1) 0 Coherent
|
|
MemberDecorate 7(B1) 0 Offset 0
|
|
Decorate 9(b1) Coherent
|
|
Decorate 9(b1) Binding 0
|
|
Decorate 9(b1) DescriptorSet 0
|
|
Decorate 17(im) Coherent
|
|
Decorate 17(im) Binding 1
|
|
Decorate 17(im) DescriptorSet 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7(B1): TypeStruct 6(int)
|
|
8: TypePointer Uniform 7(B1)
|
|
9(b1): 8(ptr) Variable Uniform
|
|
10: 6(int) Constant 0
|
|
11: 6(int) Constant 1
|
|
12: TypePointer Uniform 6(int)
|
|
14: TypeFloat 32
|
|
15: TypeImage 14(float) 2D nonsampled format:Rgba32f
|
|
16: TypePointer UniformConstant 15
|
|
17(im): 16(ptr) Variable UniformConstant
|
|
19: TypeVector 6(int) 2
|
|
20: 19(ivec2) ConstantComposite 10 10
|
|
21: TypeVector 14(float) 4
|
|
22: 14(float) Constant 0
|
|
23: 21(fvec4) ConstantComposite 22 22 22 22
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
BeginInvocationInterlockEXT
|
|
13: 12(ptr) AccessChain 9(b1) 10
|
|
Store 13 11
|
|
18: 15 Load 17(im)
|
|
ImageWrite 18 20 23
|
|
EndInvocationInterlockEXT
|
|
Return
|
|
FunctionEnd
|