spv.bufferReferenceNestedStruct.comp
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 21

                              Capability Shader
                              Capability PhysicalStorageBufferAddressesEXT
                              Extension  "SPV_KHR_physical_storage_buffer"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel PhysicalStorageBuffer64EXT GLSL450
                              EntryPoint GLCompute 4  "main"
                              ExecutionMode 4 LocalSize 16 16 1
                              Source GLSL 450
                              SourceExtension  "GL_EXT_buffer_reference"
                              Name 4  "main"
                              Name 7  "PushConstants"
                              MemberName 7(PushConstants) 0  "args"
                              Name 9  "GridInfo"
                              MemberName 9(GridInfo) 0  "probes"
                              Name 12  "ProbeInfo"
                              MemberName 12(ProbeInfo) 0  "validity"
                              Name 14  "Args"
                              MemberName 14(Args) 0  "gridInfo"
                              MemberName 14(Args) 1  "colorSpace"
                              Name 16  ""
                              Decorate 7(PushConstants) Block
                              MemberDecorate 7(PushConstants) 0 Offset 0
                              MemberDecorate 9(GridInfo) 0 Offset 0
                              Decorate 11 ArrayStride 4
                              Decorate 12(ProbeInfo) Block
                              MemberDecorate 12(ProbeInfo) 0 Offset 0
                              Decorate 14(Args) Block
                              MemberDecorate 14(Args) 0 Offset 0
                              MemberDecorate 14(Args) 1 Offset 8
                              Decorate 20 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
                              TypeForwardPointer 6 PhysicalStorageBufferEXT
7(PushConstants):             TypeStruct 6
                              TypeForwardPointer 8 PhysicalStorageBufferEXT
     9(GridInfo):             TypeStruct 8
              10:             TypeFloat 32
              11:             TypeRuntimeArray 10(float)
   12(ProbeInfo):             TypeStruct 11
               8:             TypePointer PhysicalStorageBufferEXT 12(ProbeInfo)
              13:             TypeInt 32 0
        14(Args):             TypeStruct 9(GridInfo) 13(int)
               6:             TypePointer PhysicalStorageBufferEXT 14(Args)
              15:             TypePointer PushConstant 7(PushConstants)
              16:     15(ptr) Variable PushConstant
              17:             TypeVector 13(int) 3
              18:     13(int) Constant 16
              19:     13(int) Constant 1
              20:   17(ivec3) ConstantComposite 18 18 19
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
