hlsl.structarray.flatten.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:23  Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:23    Function Parameters: 
0:23      'ps_output' ( out structure{ temp 4-component vector of float color})
0:?     Sequence
0:24      move second child to first child ( temp 4-component vector of float)
0:24        color: direct index for structure ( temp 4-component vector of float)
0:24          'ps_output' ( out structure{ temp 4-component vector of float color})
0:24          Constant:
0:24            0 (const int)
0:26        add ( temp 4-component vector of float)
0:25          add ( temp 4-component vector of float)
0:25            texture ( temp 4-component vector of float)
0:25              Construct combined texture-sampler ( temp sampler1D)
0:?                 'g_texdata.tex' ( uniform texture1D)
0:?                 'g_texdata.samp' ( uniform sampler)
0:25              Constant:
0:25                0.500000
0:26            texture ( temp 4-component vector of float)
0:26              Construct combined texture-sampler ( temp sampler1D)
0:?                 'g_texdata_array[1].tex' ( uniform texture1D)
0:?                 'g_texdata_array[1].samp' ( uniform sampler)
0:26              Constant:
0:26                0.400000
0:27          texture ( temp 4-component vector of float)
0:27            Construct combined texture-sampler ( temp sampler1D)
0:27              direct index ( temp texture1D)
0:?                 'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D)
0:27                Constant:
0:27                  0 (const int)
0:27              direct index ( temp sampler)
0:?                 'g_texdata_array2[1].samp' ( uniform 2-element array of sampler)
0:27                Constant:
0:27                  0 (const int)
0:27            Constant:
0:27              0.300000
0:23  Function Definition: main( ( temp void)
0:23    Function Parameters: 
0:?     Sequence
0:23      Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:?         'ps_output' ( temp structure{ temp 4-component vector of float color})
0:23      Sequence
0:23        move second child to first child ( temp 4-component vector of float)
0:?           'ps_output.color' (layout( location=0) out 4-component vector of float)
0:23          color: direct index for structure ( temp 4-component vector of float)
0:?             'ps_output' ( temp structure{ temp 4-component vector of float color})
0:23            Constant:
0:23              0 (const int)
0:?   Linker Objects
0:?     'g_samp' ( uniform sampler)
0:?     'g_tex' ( uniform texture1D)
0:?     'g_texdata.samp' ( uniform sampler)
0:?     'g_texdata.tex' ( uniform texture1D)
0:?     'g_texdata.nonopaque_thing' ( uniform int)
0:?     'g_texdata_array[0].samp' ( uniform sampler)
0:?     'g_texdata_array[0].tex' ( uniform texture1D)
0:?     'g_texdata_array[0].nonopaque_thing' ( uniform int)
0:?     'g_texdata_array[1].samp' ( uniform sampler)
0:?     'g_texdata_array[1].tex' ( uniform texture1D)
0:?     'g_texdata_array[1].nonopaque_thing' ( uniform int)
0:?     'g_texdata_array[2].samp' ( uniform sampler)
0:?     'g_texdata_array[2].tex' ( uniform texture1D)
0:?     'g_texdata_array[2].nonopaque_thing' ( uniform int)
0:?     'g_texdata_array2[0].samp' ( uniform 2-element array of sampler)
0:?     'g_texdata_array2[0].tex' ( uniform 2-element array of texture1D)
0:?     'g_texdata_array2[0].nonopaque_thing' ( uniform int)
0:?     'g_texdata_array2[1].samp' ( uniform 2-element array of sampler)
0:?     'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D)
0:?     'g_texdata_array2[1].nonopaque_thing' ( uniform int)
0:?     'g_texdata_array2[2].samp' ( uniform 2-element array of sampler)
0:?     'g_texdata_array2[2].tex' ( uniform 2-element array of texture1D)
0:?     'g_texdata_array2[2].nonopaque_thing' ( uniform int)
0:?     'ps_output.color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:23  Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:23    Function Parameters: 
0:23      'ps_output' ( out structure{ temp 4-component vector of float color})
0:?     Sequence
0:24      move second child to first child ( temp 4-component vector of float)
0:24        color: direct index for structure ( temp 4-component vector of float)
0:24          'ps_output' ( out structure{ temp 4-component vector of float color})
0:24          Constant:
0:24            0 (const int)
0:26        add ( temp 4-component vector of float)
0:25          add ( temp 4-component vector of float)
0:25            texture ( temp 4-component vector of float)
0:25              Construct combined texture-sampler ( temp sampler1D)
0:?                 'g_texdata.tex' ( uniform texture1D)
0:?                 'g_texdata.samp' ( uniform sampler)
0:25              Constant:
0:25                0.500000
0:26            texture ( temp 4-component vector of float)
0:26              Construct combined texture-sampler ( temp sampler1D)
0:?                 'g_texdata_array[1].tex' ( uniform texture1D)
0:?                 'g_texdata_array[1].samp' ( uniform sampler)
0:26              Constant:
0:26                0.400000
0:27          texture ( temp 4-component vector of float)
0:27            Construct combined texture-sampler ( temp sampler1D)
0:27              direct index ( temp texture1D)
0:?                 'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D)
0:27                Constant:
0:27                  0 (const int)
0:27              direct index ( temp sampler)
0:?                 'g_texdata_array2[1].samp' ( uniform 2-element array of sampler)
0:27                Constant:
0:27                  0 (const int)
0:27            Constant:
0:27              0.300000
0:23  Function Definition: main( ( temp void)
0:23    Function Parameters: 
0:?     Sequence
0:23      Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:?         'ps_output' ( temp structure{ temp 4-component vector of float color})
0:23      Sequence
0:23        move second child to first child ( temp 4-component vector of float)
0:?           'ps_output.color' (layout( location=0) out 4-component vector of float)
0:23          color: direct index for structure ( temp 4-component vector of float)
0:?             'ps_output' ( temp structure{ temp 4-component vector of float color})
0:23            Constant:
0:23              0 (const int)
0:?   Linker Objects
0:?     'g_samp' ( uniform sampler)
0:?     'g_tex' ( uniform texture1D)
0:?     'g_texdata.samp' ( uniform sampler)
0:?     'g_texdata.tex' ( uniform texture1D)
0:?     'g_texdata.nonopaque_thing' ( uniform int)
0:?     'g_texdata_array[0].samp' ( uniform sampler)
0:?     'g_texdata_array[0].tex' ( uniform texture1D)
0:?     'g_texdata_array[0].nonopaque_thing' ( uniform int)
0:?     'g_texdata_array[1].samp' ( uniform sampler)
0:?     'g_texdata_array[1].tex' ( uniform texture1D)
0:?     'g_texdata_array[1].nonopaque_thing' ( uniform int)
0:?     'g_texdata_array[2].samp' ( uniform sampler)
0:?     'g_texdata_array[2].tex' ( uniform texture1D)
0:?     'g_texdata_array[2].nonopaque_thing' ( uniform int)
0:?     'g_texdata_array2[0].samp' ( uniform 2-element array of sampler)
0:?     'g_texdata_array2[0].tex' ( uniform 2-element array of texture1D)
0:?     'g_texdata_array2[0].nonopaque_thing' ( uniform int)
0:?     'g_texdata_array2[1].samp' ( uniform 2-element array of sampler)
0:?     'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D)
0:?     'g_texdata_array2[1].nonopaque_thing' ( uniform int)
0:?     'g_texdata_array2[2].samp' ( uniform 2-element array of sampler)
0:?     'g_texdata_array2[2].tex' ( uniform 2-element array of texture1D)
0:?     'g_texdata_array2[2].nonopaque_thing' ( uniform int)
0:?     'ps_output.color' (layout( location=0) out 4-component vector of float)

error: SPIRV-Tools Validation Errors
error: UniformConstant OpVariable <id> '65[g_texdata.nonopaque_thing] 'has illegal type.
From Vulkan spec, section 14.5.2:
Variables identified with the UniformConstant storage class are used only as handles to refer to opaque resources. Such variables must be typed as OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureNV, or an array of one of these types.
  %g_texdata_nonopaque_thing = OpVariable %_ptr_UniformConstant_int UniformConstant

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

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 59
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "color"
                              Name 12  "@main(struct-PS_OUTPUT-vf41;"
                              Name 11  "ps_output"
                              Name 18  "g_texdata.tex"
                              Name 22  "g_texdata.samp"
                              Name 28  "g_texdata_array[1].tex"
                              Name 30  "g_texdata_array[1].samp"
                              Name 40  "g_texdata_array2[1].tex"
                              Name 45  "g_texdata_array2[1].samp"
                              Name 54  "ps_output"
                              Name 55  "param"
                              Name 59  "ps_output.color"
                              Name 62  "g_samp"
                              Name 63  "g_tex"
                              Name 65  "g_texdata.nonopaque_thing"
                              Name 66  "g_texdata_array[0].samp"
                              Name 67  "g_texdata_array[0].tex"
                              Name 68  "g_texdata_array[0].nonopaque_thing"
                              Name 69  "g_texdata_array[1].nonopaque_thing"
                              Name 70  "g_texdata_array[2].samp"
                              Name 71  "g_texdata_array[2].tex"
                              Name 72  "g_texdata_array[2].nonopaque_thing"
                              Name 73  "g_texdata_array2[0].samp"
                              Name 74  "g_texdata_array2[0].tex"
                              Name 75  "g_texdata_array2[0].nonopaque_thing"
                              Name 76  "g_texdata_array2[1].nonopaque_thing"
                              Name 77  "g_texdata_array2[2].samp"
                              Name 78  "g_texdata_array2[2].tex"
                              Name 79  "g_texdata_array2[2].nonopaque_thing"
                              Decorate 18(g_texdata.tex) DescriptorSet 0
                              Decorate 22(g_texdata.samp) DescriptorSet 0
                              Decorate 28(g_texdata_array[1].tex) DescriptorSet 0
                              Decorate 30(g_texdata_array[1].samp) DescriptorSet 0
                              Decorate 40(g_texdata_array2[1].tex) DescriptorSet 0
                              Decorate 45(g_texdata_array2[1].samp) DescriptorSet 0
                              Decorate 59(ps_output.color) Location 0
                              Decorate 62(g_samp) DescriptorSet 0
                              Decorate 63(g_tex) DescriptorSet 0
                              Decorate 66(g_texdata_array[0].samp) DescriptorSet 0
                              Decorate 67(g_texdata_array[0].tex) DescriptorSet 0
                              Decorate 70(g_texdata_array[2].samp) DescriptorSet 0
                              Decorate 71(g_texdata_array[2].tex) DescriptorSet 0
                              Decorate 73(g_texdata_array2[0].samp) DescriptorSet 0
                              Decorate 74(g_texdata_array2[0].tex) DescriptorSet 0
                              Decorate 77(g_texdata_array2[2].samp) DescriptorSet 0
                              Decorate 78(g_texdata_array2[2].tex) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypePointer Function 8(PS_OUTPUT)
              10:             TypeFunction 2 9(ptr)
              14:             TypeInt 32 1
              15:     14(int) Constant 0
              16:             TypeImage 6(float) 1D sampled format:Unknown
              17:             TypePointer UniformConstant 16
18(g_texdata.tex):     17(ptr) Variable UniformConstant
              20:             TypeSampler
              21:             TypePointer UniformConstant 20
22(g_texdata.samp):     21(ptr) Variable UniformConstant
              24:             TypeSampledImage 16
              26:    6(float) Constant 1056964608
28(g_texdata_array[1].tex):     17(ptr) Variable UniformConstant
30(g_texdata_array[1].samp):     21(ptr) Variable UniformConstant
              33:    6(float) Constant 1053609165
              36:             TypeInt 32 0
              37:     36(int) Constant 2
              38:             TypeArray 16 37
              39:             TypePointer UniformConstant 38
40(g_texdata_array2[1].tex):     39(ptr) Variable UniformConstant
              43:             TypeArray 20 37
              44:             TypePointer UniformConstant 43
45(g_texdata_array2[1].samp):     44(ptr) Variable UniformConstant
              49:    6(float) Constant 1050253722
              52:             TypePointer Function 7(fvec4)
              58:             TypePointer Output 7(fvec4)
59(ps_output.color):     58(ptr) Variable Output
      62(g_samp):     21(ptr) Variable UniformConstant
       63(g_tex):     17(ptr) Variable UniformConstant
              64:             TypePointer UniformConstant 14(int)
65(g_texdata.nonopaque_thing):     64(ptr) Variable UniformConstant
66(g_texdata_array[0].samp):     21(ptr) Variable UniformConstant
67(g_texdata_array[0].tex):     17(ptr) Variable UniformConstant
68(g_texdata_array[0].nonopaque_thing):     64(ptr) Variable UniformConstant
69(g_texdata_array[1].nonopaque_thing):     64(ptr) Variable UniformConstant
70(g_texdata_array[2].samp):     21(ptr) Variable UniformConstant
71(g_texdata_array[2].tex):     17(ptr) Variable UniformConstant
72(g_texdata_array[2].nonopaque_thing):     64(ptr) Variable UniformConstant
73(g_texdata_array2[0].samp):     44(ptr) Variable UniformConstant
74(g_texdata_array2[0].tex):     39(ptr) Variable UniformConstant
75(g_texdata_array2[0].nonopaque_thing):     64(ptr) Variable UniformConstant
76(g_texdata_array2[1].nonopaque_thing):     64(ptr) Variable UniformConstant
77(g_texdata_array2[2].samp):     44(ptr) Variable UniformConstant
78(g_texdata_array2[2].tex):     39(ptr) Variable UniformConstant
79(g_texdata_array2[2].nonopaque_thing):     64(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
   54(ps_output):      9(ptr) Variable Function
       55(param):      9(ptr) Variable Function
              56:           2 FunctionCall 12(@main(struct-PS_OUTPUT-vf41;) 55(param)
              57:8(PS_OUTPUT) Load 55(param)
                              Store 54(ps_output) 57
              60:     52(ptr) AccessChain 54(ps_output) 15
              61:    7(fvec4) Load 60
                              Store 59(ps_output.color) 61
                              Return
                              FunctionEnd
12(@main(struct-PS_OUTPUT-vf41;):           2 Function None 10
   11(ps_output):      9(ptr) FunctionParameter
              13:             Label
              19:          16 Load 18(g_texdata.tex)
              23:          20 Load 22(g_texdata.samp)
              25:          24 SampledImage 19 23
              27:    7(fvec4) ImageSampleImplicitLod 25 26
              29:          16 Load 28(g_texdata_array[1].tex)
              31:          20 Load 30(g_texdata_array[1].samp)
              32:          24 SampledImage 29 31
              34:    7(fvec4) ImageSampleImplicitLod 32 33
              35:    7(fvec4) FAdd 27 34
              41:     17(ptr) AccessChain 40(g_texdata_array2[1].tex) 15
              42:          16 Load 41
              46:     21(ptr) AccessChain 45(g_texdata_array2[1].samp) 15
              47:          20 Load 46
              48:          24 SampledImage 42 47
              50:    7(fvec4) ImageSampleImplicitLod 48 49
              51:    7(fvec4) FAdd 35 50
              53:     52(ptr) AccessChain 11(ps_output) 15
                              Store 53 51
                              Return
                              FunctionEnd
