spv.fsi.frag
// Module Version 10000
// Generated by (magic number): 8000a
// 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"
                              MemberDecorate 7(B1) 0 Coherent
                              MemberDecorate 7(B1) 0 Offset 0
                              Decorate 7(B1) BufferBlock
                              Decorate 9(b1) DescriptorSet 0
                              Decorate 9(b1) Binding 0
                              Decorate 17(im) DescriptorSet 0
                              Decorate 17(im) Binding 1
                              Decorate 17(im) Coherent
               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
