spv.bufferhandle8.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 27

                              Capability Shader
                              Capability PhysicalStorageBufferAddressesEXT
                              Extension  "SPV_EXT_physical_storage_buffer"
                              Extension  "SPV_KHR_storage_buffer_storage_class"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel PhysicalStorageBuffer64EXT GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_EXT_buffer_reference"
                              Name 4  "main"
                              Name 8  "Blah"
                              MemberName 8(Blah) 0  "t1"
                              MemberName 8(Blah) 1  "t2"
                              Name 10  "T1"
                              MemberName 10(T1) 0  "x"
                              Name 11  "T2"
                              MemberName 11(T2) 0  "x"
                              Name 13  "T3"
                              MemberName 13(T3) 0  "Bindings"
                              Name 15  "t3"
                              Name 23  "t2"
                              MemberName 23(t2) 0  "f"
                              MemberName 23(t2) 1  "g"
                              Name 24  "blockType"
                              MemberName 24(blockType) 0  "a"
                              MemberName 24(blockType) 1  "b"
                              MemberName 24(blockType) 2  "c"
                              MemberName 24(blockType) 3  "d"
                              MemberName 24(blockType) 4  "e"
                              Name 26  "t"
                              MemberDecorate 8(Blah) 0 Offset 0
                              MemberDecorate 8(Blah) 1 Offset 8
                              MemberDecorate 10(T1) 0 Offset 0
                              Decorate 10(T1) Block
                              MemberDecorate 11(T2) 0 Offset 0
                              Decorate 11(T2) Block
                              Decorate 12 ArrayStride 16
                              MemberDecorate 13(T3) 0 Offset 0
                              Decorate 13(T3) Block
                              Decorate 15(t3) DescriptorSet 0
                              Decorate 15(t3) Binding 0
                              MemberDecorate 23(t2) 0 Offset 0
                              MemberDecorate 23(t2) 1 Offset 8
                              Decorate 23(t2) Block
                              MemberDecorate 24(blockType) 0 Offset 0
                              MemberDecorate 24(blockType) 1 Offset 4
                              MemberDecorate 24(blockType) 2 Offset 8
                              MemberDecorate 24(blockType) 3 Offset 12
                              MemberDecorate 24(blockType) 4 Offset 16
                              Decorate 24(blockType) Block
                              Decorate 26(t) DescriptorSet 0
                              Decorate 26(t) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
                              TypeForwardPointer 6 PhysicalStorageBufferEXT
                              TypeForwardPointer 7 PhysicalStorageBufferEXT
         8(Blah):             TypeStruct 6 7
               9:             TypeInt 32 1
          10(T1):             TypeStruct 9(int)
               6:             TypePointer PhysicalStorageBufferEXT 10(T1)
          11(T2):             TypeStruct 9(int)
               7:             TypePointer PhysicalStorageBufferEXT 11(T2)
              12:             TypeRuntimeArray 8(Blah)
          13(T3):             TypeStruct 12
              14:             TypePointer StorageBuffer 13(T3)
          15(t3):     14(ptr) Variable StorageBuffer
              16:      9(int) Constant 0
              17:      9(int) Constant 1
              18:             TypePointer StorageBuffer 8(Blah)
                              TypeForwardPointer 22 PhysicalStorageBufferEXT
          23(t2):             TypeStruct 22 22
   24(blockType):             TypeStruct 9(int) 9(int) 9(int) 9(int) 9(int)
              22:             TypePointer PhysicalStorageBufferEXT 24(blockType)
              25:             TypePointer StorageBuffer 23(t2)
           26(t):     25(ptr) Variable StorageBuffer
         4(main):           2 Function None 3
               5:             Label
              19:     18(ptr) AccessChain 15(t3) 16 17
              20:     8(Blah) Load 19
              21:     18(ptr) AccessChain 15(t3) 16 16
                              Store 21 20
                              Return
                              FunctionEnd
