hlsl.attributeC11.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:20  Function Definition: @main(vf4; ( temp 4-component vector of float)
0:20    Function Parameters: 
0:20      'input' ( in 4-component vector of float)
0:?     Sequence
0:21      Branch: Return with expression
0:21        add ( temp 4-component vector of float)
0:21          'input' ( in 4-component vector of float)
0:21          textureFetch ( temp 4-component vector of float)
0:21            'attach' ( uniform texture2D)
0:21            vector swizzle ( temp int)
0:21              Constant:
0:21                0 (const int)
0:21                0 (const int)
0:21              Sequence
0:21                Constant:
0:21                  0 (const int)
0:21            direct index ( temp int)
0:21              Constant:
0:21                0 (const int)
0:21                0 (const int)
0:21              Constant:
0:21                1 (const int)
0:20  Function Definition: main( ( temp void)
0:20    Function Parameters: 
0:?     Sequence
0:20      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=8) in 4-component vector of float)
0:20      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=7) out 4-component vector of float)
0:20        Function Call: @main(vf4; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'buffer1' (layout( set=0 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data})
0:?     'buffer3' (layout( set=2 binding=3 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data})
0:?     'attach' ( uniform texture2D)
0:?     'ci' ( specialization-constant const int)
0:?       11 (const int)
0:?     'anon@0' (layout( row_major std430 push_constant) uniform block{layout( row_major std430 offset=0) uniform int a})
0:?     '@entryPointOutput' (layout( location=7) out 4-component vector of float)
0:?     'input' (layout( location=8) in 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:20  Function Definition: @main(vf4; ( temp 4-component vector of float)
0:20    Function Parameters: 
0:20      'input' ( in 4-component vector of float)
0:?     Sequence
0:21      Branch: Return with expression
0:21        add ( temp 4-component vector of float)
0:21          'input' ( in 4-component vector of float)
0:21          textureFetch ( temp 4-component vector of float)
0:21            'attach' ( uniform texture2D)
0:21            vector swizzle ( temp int)
0:21              Constant:
0:21                0 (const int)
0:21                0 (const int)
0:21              Sequence
0:21                Constant:
0:21                  0 (const int)
0:21            direct index ( temp int)
0:21              Constant:
0:21                0 (const int)
0:21                0 (const int)
0:21              Constant:
0:21                1 (const int)
0:20  Function Definition: main( ( temp void)
0:20    Function Parameters: 
0:?     Sequence
0:20      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=8) in 4-component vector of float)
0:20      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=7) out 4-component vector of float)
0:20        Function Call: @main(vf4; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'buffer1' (layout( set=0 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data})
0:?     'buffer3' (layout( set=2 binding=3 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data})
0:?     'attach' ( uniform texture2D)
0:?     'ci' ( specialization-constant const int)
0:?       11 (const int)
0:?     'anon@0' (layout( row_major std430 push_constant) uniform block{layout( row_major std430 offset=0) uniform int a})
0:?     '@entryPointOutput' (layout( location=7) out 4-component vector of float)
0:?     'input' (layout( location=8) in 4-component vector of float)

Validation failed
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 51

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 33 36
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 11  "@main(vf4;"
                              Name 10  "input"
                              Name 16  "attach"
                              Name 31  "input"
                              Name 33  "input"
                              Name 36  "@entryPointOutput"
                              Name 37  "param"
                              Name 41  "S"
                              MemberName 41(S) 0  "f"
                              Name 43  "buffer1"
                              MemberName 43(buffer1) 0  "@data"
                              Name 45  "buffer1"
                              Name 46  "buffer3"
                              Name 47  "ci"
                              Name 48  "pcBuf"
                              MemberName 48(pcBuf) 0  "a"
                              Name 50  ""
                              Decorate 16(attach) DescriptorSet 0
                              Decorate 16(attach) Binding 0
                              Decorate 16(attach) InputAttachmentIndex 4
                              Decorate 33(input) Location 8
                              Decorate 36(@entryPointOutput) Location 7
                              MemberDecorate 41(S) 0 Offset 0
                              Decorate 42 ArrayStride 8
                              MemberDecorate 43(buffer1) 0 NonWritable
                              MemberDecorate 43(buffer1) 0 Offset 0
                              Decorate 43(buffer1) BufferBlock
                              Decorate 45(buffer1) DescriptorSet 0
                              Decorate 45(buffer1) Binding 1
                              Decorate 46(buffer3) DescriptorSet 2
                              Decorate 46(buffer3) Binding 3
                              Decorate 47(ci) SpecId 13
                              MemberDecorate 48(pcBuf) 0 Offset 0
                              Decorate 48(pcBuf) Block
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeFunction 7(fvec4) 8(ptr)
              14:             TypeImage 6(float) 2D sampled format:Unknown
              15:             TypePointer UniformConstant 14
      16(attach):     15(ptr) Variable UniformConstant
              18:             TypeInt 32 1
              19:             TypeVector 18(int) 2
              20:     18(int) Constant 0
              21:   19(ivec2) ConstantComposite 20 20
              22:             TypeInt 32 0
              23:     22(int) Constant 0
              25:     22(int) Constant 1
              32:             TypePointer Input 7(fvec4)
       33(input):     32(ptr) Variable Input
              35:             TypePointer Output 7(fvec4)
36(@entryPointOutput):     35(ptr) Variable Output
              40:             TypeVector 6(float) 2
           41(S):             TypeStruct 40(fvec2)
              42:             TypeRuntimeArray 41(S)
     43(buffer1):             TypeStruct 42
              44:             TypePointer Uniform 43(buffer1)
     45(buffer1):     44(ptr) Variable Uniform
     46(buffer3):     44(ptr) Variable Uniform
          47(ci):     18(int) SpecConstant 11
       48(pcBuf):             TypeStruct 18(int)
              49:             TypePointer PushConstant 48(pcBuf)
              50:     49(ptr) Variable PushConstant
         4(main):           2 Function None 3
               5:             Label
       31(input):      8(ptr) Variable Function
       37(param):      8(ptr) Variable Function
              34:    7(fvec4) Load 33(input)
                              Store 31(input) 34
              38:    7(fvec4) Load 31(input)
                              Store 37(param) 38
              39:    7(fvec4) FunctionCall 11(@main(vf4;) 37(param)
                              Store 36(@entryPointOutput) 39
                              Return
                              FunctionEnd
  11(@main(vf4;):    7(fvec4) Function None 9
       10(input):      8(ptr) FunctionParameter
              12:             Label
              13:    7(fvec4) Load 10(input)
              17:          14 Load 16(attach)
              24:     18(int) CompositeExtract 21 0
              26:     18(int) CompositeExtract 21 1
              27:    7(fvec4) ImageFetch 17 24 Lod 26
              28:    7(fvec4) FAdd 13 27
                              ReturnValue 28
                              FunctionEnd
