hlsl.getdimensions.dx10.vert
Shader version: 450
0:? Sequence
0:28  Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos})
0:11    Function Parameters: 
0:?     Sequence
0:21      Sequence
0:21        move second child to first child (temp uint)
0:21          'sizeQueryTemp' (temp uint)
0:21          textureSize (temp uint)
0:21            'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:21        move second child to first child (temp uint)
0:21          'WidthU' (temp uint)
0:21          'sizeQueryTemp' (temp uint)
0:22      Sequence
0:22        move second child to first child (temp uint)
0:22          'sizeQueryTemp' (temp uint)
0:22          textureSize (temp uint)
0:22            'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:22            Constant:
0:22              6 (const uint)
0:22        move second child to first child (temp uint)
0:22          'WidthU' (temp uint)
0:22          'sizeQueryTemp' (temp uint)
0:22        move second child to first child (temp uint)
0:22          'NumberOfLevelsU' (temp uint)
0:22          textureQueryLevels (temp uint)
0:22            'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:24      move second child to first child (temp 4-component vector of float)
0:24        Pos: direct index for structure (temp 4-component vector of float FragCoord)
0:24          'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
0:24          Constant:
0:24            0 (const int)
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:26      Branch: Return with expression
0:26        'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
0:?   Linker Objects
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)


Linked vertex stage:


Shader version: 450
0:? Sequence
0:28  Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos})
0:11    Function Parameters: 
0:?     Sequence
0:21      Sequence
0:21        move second child to first child (temp uint)
0:21          'sizeQueryTemp' (temp uint)
0:21          textureSize (temp uint)
0:21            'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:21        move second child to first child (temp uint)
0:21          'WidthU' (temp uint)
0:21          'sizeQueryTemp' (temp uint)
0:22      Sequence
0:22        move second child to first child (temp uint)
0:22          'sizeQueryTemp' (temp uint)
0:22          textureSize (temp uint)
0:22            'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:22            Constant:
0:22              6 (const uint)
0:22        move second child to first child (temp uint)
0:22          'WidthU' (temp uint)
0:22          'sizeQueryTemp' (temp uint)
0:22        move second child to first child (temp uint)
0:22          'NumberOfLevelsU' (temp uint)
0:22          textureQueryLevels (temp uint)
0:22            'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:24      move second child to first child (temp 4-component vector of float)
0:24        Pos: direct index for structure (temp 4-component vector of float FragCoord)
0:24          'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
0:24          Constant:
0:24            0 (const int)
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:26      Branch: Return with expression
0:26        'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
0:?   Linker Objects
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)

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

                              Capability Shader
                              Capability Sampled1D
                              Capability ImageQuery
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main"
                              Source HLSL 450
                              Name 4  "main"
                              Name 8  "sizeQueryTemp"
                              Name 12  "g_tTex1df4"
                              Name 16  "WidthU"
                              Name 18  "sizeQueryTemp"
                              Name 23  "NumberOfLevelsU"
                              Name 27  "VS_OUTPUT"
                              MemberName 27(VS_OUTPUT) 0  "Pos"
                              Name 29  "vsout"
                              Name 39  "g_sSamp"
                              Decorate 12(g_tTex1df4) DescriptorSet 0
                              Decorate 12(g_tTex1df4) Binding 0
                              MemberDecorate 27(VS_OUTPUT) 0 BuiltIn FragCoord
                              Decorate 39(g_sSamp) DescriptorSet 0
                              Decorate 39(g_sSamp) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               9:             TypeFloat 32
              10:             TypeImage 9(float) 1D sampled format:Unknown
              11:             TypePointer UniformConstant 10
  12(g_tTex1df4):     11(ptr) Variable UniformConstant
              14:             TypeInt 32 1
              20:      6(int) Constant 6
              26:             TypeVector 9(float) 4
   27(VS_OUTPUT):             TypeStruct 26(fvec4)
              28:             TypePointer Function 27(VS_OUTPUT)
              30:     14(int) Constant 0
              31:    9(float) Constant 0
              32:   26(fvec4) ConstantComposite 31 31 31 31
              33:             TypePointer Function 26(fvec4)
              37:             TypeSampler
              38:             TypePointer UniformConstant 37
     39(g_sSamp):     38(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
8(sizeQueryTemp):      7(ptr) Variable Function
      16(WidthU):      7(ptr) Variable Function
18(sizeQueryTemp):      7(ptr) Variable Function
23(NumberOfLevelsU):      7(ptr) Variable Function
       29(vsout):     28(ptr) Variable Function
              13:          10 Load 12(g_tTex1df4)
              15:     14(int) ImageQuerySize 13
                              Store 8(sizeQueryTemp) 15
              17:      6(int) Load 8(sizeQueryTemp)
                              Store 16(WidthU) 17
              19:          10 Load 12(g_tTex1df4)
              21:     14(int) ImageQuerySizeLod 19 20
                              Store 18(sizeQueryTemp) 21
              22:      6(int) Load 18(sizeQueryTemp)
                              Store 16(WidthU) 22
              24:          10 Load 12(g_tTex1df4)
              25:     14(int) ImageQueryLevels 24
                              Store 23(NumberOfLevelsU) 25
              34:     33(ptr) AccessChain 29(vsout) 30
                              Store 34 32
              35:27(VS_OUTPUT) Load 29(vsout)
                              ReturnValue 35
                              FunctionEnd
