link1.vk.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:16  Function Definition: main( ( global void)
0:16    Function Parameters: 
0:18    Sequence
0:18      move second child to first child ( temp highp 4-component vector of float)
0:18        'color' (layout( location=0) out highp 4-component vector of float)
0:18        Function Call: getColor( ( global highp 4-component vector of float)
0:20      move second child to first child ( temp highp int)
0:20        direct index ( temp highp int)
0:20          'a1' ( global unsized 9-element array of highp int)
0:20          Constant:
0:20            8 (const int)
0:20        Constant:
0:20          1 (const int)
0:21      move second child to first child ( temp highp int)
0:21        direct index ( temp highp int)
0:21          'a2' ( global unsized 2-element array of highp int)
0:21          Constant:
0:21            1 (const int)
0:21        Constant:
0:21          1 (const int)
0:22      move second child to first child ( temp highp int)
0:22        indirect index ( temp highp int)
0:22          'b' ( global 5-element array of highp int)
0:22          'i' ( global highp int)
0:22        Constant:
0:22          1 (const int)
0:23      move second child to first child ( temp highp int)
0:23        direct index ( temp highp int)
0:23          'c' ( global unsized 4-element array of highp int)
0:23          Constant:
0:23            3 (const int)
0:23        Constant:
0:23          1 (const int)
0:?   Linker Objects
0:?     'color' (layout( location=0) out highp 4-component vector of float)
0:?     'a1' ( global unsized 9-element array of highp int)
0:?     'a2' ( global unsized 2-element array of highp int)
0:?     'b' ( global 5-element array of highp int)
0:?     'c' ( global unsized 4-element array of highp int)
0:?     'i' ( global highp int)
0:?     'anon@0' (layout( column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float r})
0:?     'anon@1' (layout( column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float m})

link2.vk.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14  Function Definition: getColor( ( global highp 4-component vector of float)
0:14    Function Parameters: 
0:16    Sequence
0:16      move second child to first child ( temp highp int)
0:16        direct index ( temp highp int)
0:16          'a1' ( global unsized 3-element array of highp int)
0:16          Constant:
0:16            2 (const int)
0:16        Constant:
0:16          1 (const int)
0:17      move second child to first child ( temp highp int)
0:17        direct index ( temp highp int)
0:17          'a2' ( global unsized 10-element array of highp int)
0:17          Constant:
0:17            9 (const int)
0:17        Constant:
0:17          1 (const int)
0:18      move second child to first child ( temp highp int)
0:18        direct index ( temp highp int)
0:18          'b' ( global unsized 3-element array of highp int)
0:18          Constant:
0:18            2 (const int)
0:18        Constant:
0:18          1 (const int)
0:19      move second child to first child ( temp highp int)
0:19        direct index ( temp highp int)
0:19          'c' ( global 7-element array of highp int)
0:19          Constant:
0:19            3 (const int)
0:19        Constant:
0:19          1 (const int)
0:20      move second child to first child ( temp highp int)
0:20        indirect index ( temp highp int)
0:20          'c' ( global 7-element array of highp int)
0:20          'i' ( global highp int)
0:20        Constant:
0:20          1 (const int)
0:22      Branch: Return with expression
0:22        texture ( global highp 4-component vector of float)
0:22          's2D' (layout( binding=1) uniform highp sampler2D)
0:22          Constant:
0:22            0.500000
0:22            0.500000
0:?   Linker Objects
0:?     's2D' (layout( binding=1) uniform highp sampler2D)
0:?     'a1' ( global unsized 3-element array of highp int)
0:?     'a2' ( global unsized 10-element array of highp int)
0:?     'b' ( global unsized 3-element array of highp int)
0:?     'c' ( global 7-element array of highp int)
0:?     'i' ( global highp int)
0:?     'anon@0' (layout( column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float r})
0:?     'anon@1' (layout( column_major std430) buffer block{layout( column_major std430) buffer 4-element array of highp float m})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:16  Function Definition: main( ( global void)
0:16    Function Parameters: 
0:18    Sequence
0:18      move second child to first child ( temp highp 4-component vector of float)
0:18        'color' (layout( location=0) out highp 4-component vector of float)
0:18        Function Call: getColor( ( global highp 4-component vector of float)
0:20      move second child to first child ( temp highp int)
0:20        direct index ( temp highp int)
0:20          'a1' ( global 9-element array of highp int)
0:20          Constant:
0:20            8 (const int)
0:20        Constant:
0:20          1 (const int)
0:21      move second child to first child ( temp highp int)
0:21        direct index ( temp highp int)
0:21          'a2' ( global 10-element array of highp int)
0:21          Constant:
0:21            1 (const int)
0:21        Constant:
0:21          1 (const int)
0:22      move second child to first child ( temp highp int)
0:22        indirect index ( temp highp int)
0:22          'b' ( global 5-element array of highp int)
0:22          'i' ( global highp int)
0:22        Constant:
0:22          1 (const int)
0:23      move second child to first child ( temp highp int)
0:23        direct index ( temp highp int)
0:23          'c' ( global 7-element array of highp int)
0:23          Constant:
0:23            3 (const int)
0:23        Constant:
0:23          1 (const int)
0:14  Function Definition: getColor( ( global highp 4-component vector of float)
0:14    Function Parameters: 
0:16    Sequence
0:16      move second child to first child ( temp highp int)
0:16        direct index ( temp highp int)
0:16          'a1' ( global 3-element array of highp int)
0:16          Constant:
0:16            2 (const int)
0:16        Constant:
0:16          1 (const int)
0:17      move second child to first child ( temp highp int)
0:17        direct index ( temp highp int)
0:17          'a2' ( global 10-element array of highp int)
0:17          Constant:
0:17            9 (const int)
0:17        Constant:
0:17          1 (const int)
0:18      move second child to first child ( temp highp int)
0:18        direct index ( temp highp int)
0:18          'b' ( global 3-element array of highp int)
0:18          Constant:
0:18            2 (const int)
0:18        Constant:
0:18          1 (const int)
0:19      move second child to first child ( temp highp int)
0:19        direct index ( temp highp int)
0:19          'c' ( global 7-element array of highp int)
0:19          Constant:
0:19            3 (const int)
0:19        Constant:
0:19          1 (const int)
0:20      move second child to first child ( temp highp int)
0:20        indirect index ( temp highp int)
0:20          'c' ( global 7-element array of highp int)
0:20          'i' ( global highp int)
0:20        Constant:
0:20          1 (const int)
0:22      Branch: Return with expression
0:22        texture ( global highp 4-component vector of float)
0:22          's2D' (layout( binding=1) uniform highp sampler2D)
0:22          Constant:
0:22            0.500000
0:22            0.500000
0:?   Linker Objects
0:?     'color' (layout( location=0) out highp 4-component vector of float)
0:?     'a1' ( global 9-element array of highp int)
0:?     'a2' ( global 10-element array of highp int)
0:?     'b' ( global 5-element array of highp int)
0:?     'c' ( global 7-element array of highp int)
0:?     'i' ( global highp int)
0:?     'anon@0' (layout( column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float r})
0:?     'anon@1' (layout( column_major std430) buffer block{layout( column_major std430) buffer 4-element array of highp float m})
0:?     's2D' (layout( binding=1) uniform highp sampler2D)

// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 70

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 12
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "getColor("
                              Name 12  "color"
                              Name 19  "a1"
                              Name 27  "a2"
                              Name 32  "b"
                              Name 33  "i"
                              Name 39  "c"
                              Name 53  "s2D"
                              Name 62  "bnameRuntime"
                              MemberName 62(bnameRuntime) 0  "r"
                              Name 64  ""
                              Name 67  "bnameImplicit"
                              MemberName 67(bnameImplicit) 0  "m"
                              Name 69  ""
                              Decorate 12(color) Location 0
                              Decorate 53(s2D) DescriptorSet 0
                              Decorate 53(s2D) Binding 1
                              Decorate 61 ArrayStride 4
                              MemberDecorate 62(bnameRuntime) 0 Offset 0
                              Decorate 62(bnameRuntime) BufferBlock
                              Decorate 64 DescriptorSet 0
                              Decorate 66 ArrayStride 4
                              MemberDecorate 67(bnameImplicit) 0 Offset 0
                              Decorate 67(bnameImplicit) BufferBlock
                              Decorate 69 DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypePointer Output 7(fvec4)
       12(color):     11(ptr) Variable Output
              14:             TypeInt 32 1
              15:             TypeInt 32 0
              16:     15(int) Constant 9
              17:             TypeArray 14(int) 16
              18:             TypePointer Private 17
          19(a1):     18(ptr) Variable Private
              20:     14(int) Constant 8
              21:     14(int) Constant 1
              22:             TypePointer Private 14(int)
              24:     15(int) Constant 10
              25:             TypeArray 14(int) 24
              26:             TypePointer Private 25
          27(a2):     26(ptr) Variable Private
              29:     15(int) Constant 5
              30:             TypeArray 14(int) 29
              31:             TypePointer Private 30
           32(b):     31(ptr) Variable Private
           33(i):     22(ptr) Variable Private
              36:     15(int) Constant 7
              37:             TypeArray 14(int) 36
              38:             TypePointer Private 37
           39(c):     38(ptr) Variable Private
              40:     14(int) Constant 3
              42:     14(int) Constant 2
              44:     14(int) Constant 9
              50:             TypeImage 6(float) 2D sampled format:Unknown
              51:             TypeSampledImage 50
              52:             TypePointer UniformConstant 51
         53(s2D):     52(ptr) Variable UniformConstant
              55:             TypeVector 6(float) 2
              56:    6(float) Constant 1056964608
              57:   55(fvec2) ConstantComposite 56 56
              61:             TypeRuntimeArray 6(float)
62(bnameRuntime):             TypeStruct 61
              63:             TypePointer Uniform 62(bnameRuntime)
              64:     63(ptr) Variable Uniform
              65:     15(int) Constant 4
              66:             TypeArray 6(float) 65
67(bnameImplicit):             TypeStruct 66
              68:             TypePointer Uniform 67(bnameImplicit)
              69:     68(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
              13:    7(fvec4) FunctionCall 9(getColor()
                              Store 12(color) 13
              23:     22(ptr) AccessChain 19(a1) 20
                              Store 23 21
              28:     22(ptr) AccessChain 27(a2) 21
                              Store 28 21
              34:     14(int) Load 33(i)
              35:     22(ptr) AccessChain 32(b) 34
                              Store 35 21
              41:     22(ptr) AccessChain 39(c) 40
                              Store 41 21
                              Return
                              FunctionEnd
    9(getColor():    7(fvec4) Function None 8
              10:             Label
              43:     22(ptr) AccessChain 19(a1) 42
                              Store 43 21
              45:     22(ptr) AccessChain 27(a2) 44
                              Store 45 21
              46:     22(ptr) AccessChain 32(b) 42
                              Store 46 21
              47:     22(ptr) AccessChain 39(c) 40
                              Store 47 21
              48:     14(int) Load 33(i)
              49:     22(ptr) AccessChain 39(c) 48
                              Store 49 21
              54:          51 Load 53(s2D)
              58:    7(fvec4) ImageSampleImplicitLod 54 57
                              ReturnValue 58
                              FunctionEnd
