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

                              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 7  "t2"
                              MemberName 7(t2) 0  "f"
                              MemberName 7(t2) 1  "g"
                              Name 9  "blockType"
                              MemberName 9(blockType) 0  "a"
                              MemberName 9(blockType) 1  "b"
                              MemberName 9(blockType) 2  "c"
                              MemberName 9(blockType) 3  "d"
                              MemberName 9(blockType) 4  "e"
                              Name 11  "t"
                              Name 14  "t3"
                              MemberName 14(t3) 0  "f"
                              Name 15  "t2"
                              MemberName 15(t2) 0  "f"
                              MemberName 15(t2) 1  "g"
                              Name 17  "u"
                              MemberDecorate 7(t2) 0 Offset 0
                              MemberDecorate 7(t2) 1 Offset 8
                              Decorate 7(t2) Block
                              MemberDecorate 9(blockType) 0 Offset 0
                              MemberDecorate 9(blockType) 1 Offset 4
                              MemberDecorate 9(blockType) 2 Offset 8
                              MemberDecorate 9(blockType) 3 Offset 12
                              MemberDecorate 9(blockType) 4 Offset 16
                              Decorate 9(blockType) Block
                              Decorate 11(t) DescriptorSet 0
                              Decorate 11(t) Binding 0
                              MemberDecorate 14(t3) 0 Offset 0
                              Decorate 14(t3) Block
                              MemberDecorate 15(t2) 0 Offset 0
                              MemberDecorate 15(t2) 1 Offset 8
                              Decorate 15(t2) Block
                              Decorate 17(u) DescriptorSet 0
                              Decorate 17(u) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
                              TypeForwardPointer 6 PhysicalStorageBufferEXT
           7(t2):             TypeStruct 6 6
               8:             TypeInt 32 1
    9(blockType):             TypeStruct 8(int) 8(int) 8(int) 8(int) 8(int)
               6:             TypePointer PhysicalStorageBufferEXT 9(blockType)
              10:             TypePointer StorageBuffer 7(t2)
           11(t):     10(ptr) Variable StorageBuffer
              12:      8(int) Constant 0
                              TypeForwardPointer 13 PhysicalStorageBufferEXT
          14(t3):             TypeStruct 13
          15(t2):             TypeStruct 6(ptr) 6(ptr)
              13:             TypePointer PhysicalStorageBufferEXT 15(t2)
              16:             TypePointer StorageBuffer 14(t3)
           17(u):     16(ptr) Variable StorageBuffer
              18:             TypePointer StorageBuffer 13(ptr)
              22:             TypePointer StorageBuffer 6(ptr)
         4(main):           2 Function None 3
               5:             Label
              19:     18(ptr) AccessChain 17(u) 12
              20:     13(ptr) Load 19
              21:      6(ptr) Bitcast 20
              23:     22(ptr) AccessChain 11(t) 12
                              Store 23 21
                              Return
                              FunctionEnd
