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

                              Capability Shader
                              Capability CapabilityPhysicalStorageBufferAddressesEXT
                              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
