hlsl.intrinsics.promote.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:20  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
0:20    Function Parameters: 
0:?     Sequence
0:23      Sequence
0:23        move second child to first child ( temp float)
0:23          'r00' ( temp float)
0:23          max ( temp float)
0:23            Convert bool to float ( temp float)
0:23              b: direct index for structure ( uniform bool)
0:23                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:23                Constant:
0:23                  3 (const uint)
0:23            f: direct index for structure ( uniform float)
0:23              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:23              Constant:
0:23                2 (const uint)
0:24      Sequence
0:24        move second child to first child ( temp uint)
0:24          'r01' ( temp uint)
0:24          max ( temp uint)
0:24            Convert bool to uint ( temp uint)
0:24              b: direct index for structure ( uniform bool)
0:24                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:24                Constant:
0:24                  3 (const uint)
0:24            u: direct index for structure ( uniform uint)
0:24              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:24              Constant:
0:24                1 (const uint)
0:25      Sequence
0:25        move second child to first child ( temp int)
0:25          'r02' ( temp int)
0:25          max ( temp int)
0:25            Convert bool to int ( temp int)
0:25              b: direct index for structure ( uniform bool)
0:25                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:25                Constant:
0:25                  3 (const uint)
0:25            i: direct index for structure ( uniform int)
0:25              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:25              Constant:
0:25                0 (const uint)
0:26      Sequence
0:26        move second child to first child ( temp float)
0:26          'r03' ( temp float)
0:26          max ( temp float)
0:26            Convert int to float ( temp float)
0:26              i: direct index for structure ( uniform int)
0:26                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:26                Constant:
0:26                  0 (const uint)
0:26            f: direct index for structure ( uniform float)
0:26              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:26              Constant:
0:26                2 (const uint)
0:27      Sequence
0:27        move second child to first child ( temp float)
0:27          'r04' ( temp float)
0:27          max ( temp float)
0:27            Convert uint to float ( temp float)
0:27              u: direct index for structure ( uniform uint)
0:27                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:27                Constant:
0:27                  1 (const uint)
0:27            f: direct index for structure ( uniform float)
0:27              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:27              Constant:
0:27                2 (const uint)
0:29      Sequence
0:29        move second child to first child ( temp 2-component vector of float)
0:29          'r10' ( temp 2-component vector of float)
0:29          max ( temp 2-component vector of float)
0:29            Convert bool to float ( temp 2-component vector of float)
0:29              b2: direct index for structure ( uniform 2-component vector of bool)
0:29                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:29                Constant:
0:29                  7 (const uint)
0:29            f2: direct index for structure ( uniform 2-component vector of float)
0:29              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:29              Constant:
0:29                6 (const uint)
0:30      Sequence
0:30        move second child to first child ( temp 2-component vector of uint)
0:30          'r11' ( temp 2-component vector of uint)
0:30          max ( temp 2-component vector of uint)
0:30            Convert bool to uint ( temp 2-component vector of uint)
0:30              b2: direct index for structure ( uniform 2-component vector of bool)
0:30                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:30                Constant:
0:30                  7 (const uint)
0:30            u2: direct index for structure ( uniform 2-component vector of uint)
0:30              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:30              Constant:
0:30                5 (const uint)
0:31      Sequence
0:31        move second child to first child ( temp 2-component vector of int)
0:31          'r12' ( temp 2-component vector of int)
0:31          max ( temp 2-component vector of int)
0:31            Convert bool to int ( temp 2-component vector of int)
0:31              b2: direct index for structure ( uniform 2-component vector of bool)
0:31                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:31                Constant:
0:31                  7 (const uint)
0:31            i2: direct index for structure ( uniform 2-component vector of int)
0:31              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:31              Constant:
0:31                4 (const uint)
0:32      Sequence
0:32        move second child to first child ( temp 2-component vector of float)
0:32          'r13' ( temp 2-component vector of float)
0:32          max ( temp 2-component vector of float)
0:32            Convert int to float ( temp 2-component vector of float)
0:32              i2: direct index for structure ( uniform 2-component vector of int)
0:32                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:32                Constant:
0:32                  4 (const uint)
0:32            f2: direct index for structure ( uniform 2-component vector of float)
0:32              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:32              Constant:
0:32                6 (const uint)
0:33      Sequence
0:33        move second child to first child ( temp 2-component vector of float)
0:33          'r14' ( temp 2-component vector of float)
0:33          max ( temp 2-component vector of float)
0:33            Convert uint to float ( temp 2-component vector of float)
0:33              u2: direct index for structure ( uniform 2-component vector of uint)
0:33                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:33                Constant:
0:33                  5 (const uint)
0:33            f2: direct index for structure ( uniform 2-component vector of float)
0:33              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:33              Constant:
0:33                6 (const uint)
0:35      Sequence
0:35        move second child to first child ( temp 2-component vector of float)
0:35          'r20' ( temp 2-component vector of float)
0:35          clamp ( temp 2-component vector of float)
0:35            Convert int to float ( temp 2-component vector of float)
0:35              i2: direct index for structure ( uniform 2-component vector of int)
0:35                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:35                Constant:
0:35                  4 (const uint)
0:35            Convert uint to float ( temp 2-component vector of float)
0:35              u2: direct index for structure ( uniform 2-component vector of uint)
0:35                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:35                Constant:
0:35                  5 (const uint)
0:35            f2: direct index for structure ( uniform 2-component vector of float)
0:35              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:35              Constant:
0:35                6 (const uint)
0:36      Sequence
0:36        move second child to first child ( temp 2-component vector of uint)
0:36          'r21' ( temp 2-component vector of uint)
0:36          clamp ( temp 2-component vector of uint)
0:36            Convert bool to uint ( temp 2-component vector of uint)
0:36              b2: direct index for structure ( uniform 2-component vector of bool)
0:36                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:36                Constant:
0:36                  7 (const uint)
0:36            u2: direct index for structure ( uniform 2-component vector of uint)
0:36              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:36              Constant:
0:36                5 (const uint)
0:36            Convert bool to uint ( temp 2-component vector of uint)
0:36              b2: direct index for structure ( uniform 2-component vector of bool)
0:36                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:36                Constant:
0:36                  7 (const uint)
0:37      Sequence
0:37        move second child to first child ( temp 2-component vector of float)
0:37          'r22' ( temp 2-component vector of float)
0:37          clamp ( temp 2-component vector of float)
0:37            Convert bool to float ( temp 2-component vector of float)
0:37              b2: direct index for structure ( uniform 2-component vector of bool)
0:37                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:37                Constant:
0:37                  7 (const uint)
0:37            f2: direct index for structure ( uniform 2-component vector of float)
0:37              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:37              Constant:
0:37                6 (const uint)
0:37            Convert bool to float ( temp 2-component vector of float)
0:37              b2: direct index for structure ( uniform 2-component vector of bool)
0:37                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:37                Constant:
0:37                  7 (const uint)
0:40      Sequence
0:40        move second child to first child ( temp 2-component vector of float)
0:40          'r30' ( temp 2-component vector of float)
0:40          max ( temp 2-component vector of float)
0:40            Construct vec2 ( in 2-component vector of float)
0:40              Convert bool to float ( temp float)
0:40                b: direct index for structure ( uniform bool)
0:40                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:40                  Constant:
0:40                    3 (const uint)
0:40            f2: direct index for structure ( uniform 2-component vector of float)
0:40              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:40              Constant:
0:40                6 (const uint)
0:41      Sequence
0:41        move second child to first child ( temp 2-component vector of uint)
0:41          'r31' ( temp 2-component vector of uint)
0:41          max ( temp 2-component vector of uint)
0:41            Construct uvec2 ( in 2-component vector of uint)
0:41              Convert bool to uint ( temp uint)
0:41                b: direct index for structure ( uniform bool)
0:41                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:41                  Constant:
0:41                    3 (const uint)
0:41            u2: direct index for structure ( uniform 2-component vector of uint)
0:41              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:41              Constant:
0:41                5 (const uint)
0:42      Sequence
0:42        move second child to first child ( temp 2-component vector of int)
0:42          'r32' ( temp 2-component vector of int)
0:42          max ( temp 2-component vector of int)
0:42            Construct ivec2 ( in 2-component vector of int)
0:42              Convert bool to int ( temp int)
0:42                b: direct index for structure ( uniform bool)
0:42                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:42                  Constant:
0:42                    3 (const uint)
0:42            i2: direct index for structure ( uniform 2-component vector of int)
0:42              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:42              Constant:
0:42                4 (const uint)
0:43      Sequence
0:43        move second child to first child ( temp 2-component vector of float)
0:43          'r33' ( temp 2-component vector of float)
0:43          max ( temp 2-component vector of float)
0:43            Construct vec2 ( in 2-component vector of float)
0:43              Convert int to float ( temp float)
0:43                i: direct index for structure ( uniform int)
0:43                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:43                  Constant:
0:43                    0 (const uint)
0:43            f2: direct index for structure ( uniform 2-component vector of float)
0:43              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:43              Constant:
0:43                6 (const uint)
0:44      Sequence
0:44        move second child to first child ( temp 2-component vector of float)
0:44          'r34' ( temp 2-component vector of float)
0:44          max ( temp 2-component vector of float)
0:44            Construct vec2 ( in 2-component vector of float)
0:44              Convert uint to float ( temp float)
0:44                u: direct index for structure ( uniform uint)
0:44                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:44                  Constant:
0:44                    1 (const uint)
0:44            f2: direct index for structure ( uniform 2-component vector of float)
0:44              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:44              Constant:
0:44                6 (const uint)
0:46      Sequence
0:46        move second child to first child ( temp 2-component vector of float)
0:46          'r40' ( temp 2-component vector of float)
0:46          clamp ( temp 2-component vector of float)
0:46            Construct vec2 ( in 2-component vector of float)
0:46              Convert int to float ( temp float)
0:46                i: direct index for structure ( uniform int)
0:46                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:46                  Constant:
0:46                    0 (const uint)
0:46            Convert uint to float ( temp 2-component vector of float)
0:46              u2: direct index for structure ( uniform 2-component vector of uint)
0:46                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:46                Constant:
0:46                  5 (const uint)
0:46            f2: direct index for structure ( uniform 2-component vector of float)
0:46              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:46              Constant:
0:46                6 (const uint)
0:47      Sequence
0:47        move second child to first child ( temp 2-component vector of uint)
0:47          'r41' ( temp 2-component vector of uint)
0:47          clamp ( temp 2-component vector of uint)
0:47            Convert bool to uint ( temp 2-component vector of uint)
0:47              b2: direct index for structure ( uniform 2-component vector of bool)
0:47                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:47                Constant:
0:47                  7 (const uint)
0:47            Construct uvec2 ( in 2-component vector of uint)
0:47              u: direct index for structure ( uniform uint)
0:47                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:47                Constant:
0:47                  1 (const uint)
0:47            Convert bool to uint ( temp 2-component vector of uint)
0:47              b2: direct index for structure ( uniform 2-component vector of bool)
0:47                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:47                Constant:
0:47                  7 (const uint)
0:48      Sequence
0:48        move second child to first child ( temp 2-component vector of float)
0:48          'r42' ( temp 2-component vector of float)
0:48          clamp ( temp 2-component vector of float)
0:48            Convert bool to float ( temp 2-component vector of float)
0:48              b2: direct index for structure ( uniform 2-component vector of bool)
0:48                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:48                Constant:
0:48                  7 (const uint)
0:48            Construct vec2 ( in 2-component vector of float)
0:48              f: direct index for structure ( uniform float)
0:48                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:48                Constant:
0:48                  2 (const uint)
0:48            Construct vec2 ( in 2-component vector of float)
0:48              Convert bool to float ( temp float)
0:48                b: direct index for structure ( uniform bool)
0:48                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:48                  Constant:
0:48                    3 (const uint)
0:49      Sequence
0:49        move second child to first child ( temp 2-component vector of int)
0:49          'r43' ( temp 2-component vector of int)
0:49          Convert uint to int ( temp 2-component vector of int)
0:49            clamp ( temp 2-component vector of uint)
0:49              Construct uvec2 ( in 2-component vector of uint)
0:49                Convert int to uint ( temp uint)
0:49                  i: direct index for structure ( uniform int)
0:49                    'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:49                    Constant:
0:49                      0 (const uint)
0:49              Convert int to uint ( temp 2-component vector of uint)
0:49                i2: direct index for structure ( uniform 2-component vector of int)
0:49                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:49                  Constant:
0:49                    4 (const uint)
0:49              u2: direct index for structure ( uniform 2-component vector of uint)
0:49                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:49                Constant:
0:49                  5 (const uint)
0:51      Sequence
0:51        move second child to first child ( temp float)
0:51          'r50' ( temp float)
0:51          Construct float ( temp float)
0:?             textureFetch ( temp 4-component vector of float)
0:51              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:51              Convert uint to int ( temp int)
0:51                upos: direct index for structure ( uniform uint)
0:51                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:51                  Constant:
0:51                    8 (const uint)
0:52      Sequence
0:52        move second child to first child ( temp float)
0:52          'r51' ( temp float)
0:52          Construct float ( temp float)
0:?             textureFetch ( temp 4-component vector of float)
0:52              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:52              Convert float to int ( temp int)
0:52                fpos: direct index for structure ( uniform float)
0:52                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:52                  Constant:
0:52                    9 (const uint)
0:70      Sequence
0:70        move second child to first child ( temp uint)
0:70          'sizeQueryTemp' ( temp uint)
0:70          textureSize ( temp uint)
0:70            'g_tTex1df4' ( uniform texture1D)
0:70            Constant:
0:70              0 (const int)
0:70        move second child to first child ( temp int)
0:70          'WidthI' ( temp int)
0:70          Convert uint to int ( temp int)
0:70            'sizeQueryTemp' ( temp uint)
0:71      Sequence
0:71        move second child to first child ( temp uint)
0:71          'sizeQueryTemp' ( temp uint)
0:71          textureSize ( temp uint)
0:71            'g_tTex1df4' ( uniform texture1D)
0:71            Constant:
0:71              6 (const uint)
0:71        move second child to first child ( temp int)
0:71          'WidthI' ( temp int)
0:71          Convert uint to int ( temp int)
0:71            'sizeQueryTemp' ( temp uint)
0:71        move second child to first child ( temp uint)
0:71          'NumberOfLevelsU' ( temp uint)
0:71          textureQueryLevels ( temp uint)
0:71            'g_tTex1df4' ( uniform texture1D)
0:72      Sequence
0:72        move second child to first child ( temp uint)
0:72          'sizeQueryTemp' ( temp uint)
0:72          textureSize ( temp uint)
0:72            'g_tTex1df4' ( uniform texture1D)
0:72            Constant:
0:72              6 (const uint)
0:72        move second child to first child ( temp uint)
0:72          'WidthU' ( temp uint)
0:72          'sizeQueryTemp' ( temp uint)
0:72        move second child to first child ( temp int)
0:72          'NumberOfLevelsI' ( temp int)
0:72          Convert uint to int ( temp int)
0:72            textureQueryLevels ( temp uint)
0:72              'g_tTex1df4' ( uniform texture1D)
0:73      Sequence
0:73        move second child to first child ( temp uint)
0:73          'sizeQueryTemp' ( temp uint)
0:73          textureSize ( temp uint)
0:73            'g_tTex1df4' ( uniform texture1D)
0:73            Constant:
0:73              6 (const uint)
0:73        move second child to first child ( temp int)
0:73          'WidthI' ( temp int)
0:73          Convert uint to int ( temp int)
0:73            'sizeQueryTemp' ( temp uint)
0:73        move second child to first child ( temp int)
0:73          'NumberOfLevelsI' ( temp int)
0:73          Convert uint to int ( temp int)
0:73            textureQueryLevels ( temp uint)
0:73              'g_tTex1df4' ( uniform texture1D)
0:77      move second child to first child ( temp 4-component vector of float)
0:77        color: direct index for structure ( temp 4-component vector of float)
0:77          'ps_output' ( temp structure{ temp 4-component vector of float color})
0:77          Constant:
0:77            0 (const int)
0:77        Construct vec4 ( temp 4-component vector of float)
0:77          'r00' ( temp float)
0:78      Branch: Return with expression
0:78        'ps_output' ( temp structure{ temp 4-component vector of float color})
0:20  Function Definition: main( ( temp void)
0:20    Function Parameters: 
0:?     Sequence
0:20      Sequence
0:20        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
0:20          color: direct index for structure ( temp 4-component vector of float)
0:20            Function Call: @main( ( temp structure{ temp 4-component vector of float color})
0:20            Constant:
0:20              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:?     'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:?     'g_tTex1df4' ( uniform texture1D)
0:?     '@entryPointOutput.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:20  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
0:20    Function Parameters: 
0:?     Sequence
0:23      Sequence
0:23        move second child to first child ( temp float)
0:23          'r00' ( temp float)
0:23          max ( temp float)
0:23            Convert bool to float ( temp float)
0:23              b: direct index for structure ( uniform bool)
0:23                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:23                Constant:
0:23                  3 (const uint)
0:23            f: direct index for structure ( uniform float)
0:23              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:23              Constant:
0:23                2 (const uint)
0:24      Sequence
0:24        move second child to first child ( temp uint)
0:24          'r01' ( temp uint)
0:24          max ( temp uint)
0:24            Convert bool to uint ( temp uint)
0:24              b: direct index for structure ( uniform bool)
0:24                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:24                Constant:
0:24                  3 (const uint)
0:24            u: direct index for structure ( uniform uint)
0:24              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:24              Constant:
0:24                1 (const uint)
0:25      Sequence
0:25        move second child to first child ( temp int)
0:25          'r02' ( temp int)
0:25          max ( temp int)
0:25            Convert bool to int ( temp int)
0:25              b: direct index for structure ( uniform bool)
0:25                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:25                Constant:
0:25                  3 (const uint)
0:25            i: direct index for structure ( uniform int)
0:25              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:25              Constant:
0:25                0 (const uint)
0:26      Sequence
0:26        move second child to first child ( temp float)
0:26          'r03' ( temp float)
0:26          max ( temp float)
0:26            Convert int to float ( temp float)
0:26              i: direct index for structure ( uniform int)
0:26                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:26                Constant:
0:26                  0 (const uint)
0:26            f: direct index for structure ( uniform float)
0:26              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:26              Constant:
0:26                2 (const uint)
0:27      Sequence
0:27        move second child to first child ( temp float)
0:27          'r04' ( temp float)
0:27          max ( temp float)
0:27            Convert uint to float ( temp float)
0:27              u: direct index for structure ( uniform uint)
0:27                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:27                Constant:
0:27                  1 (const uint)
0:27            f: direct index for structure ( uniform float)
0:27              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:27              Constant:
0:27                2 (const uint)
0:29      Sequence
0:29        move second child to first child ( temp 2-component vector of float)
0:29          'r10' ( temp 2-component vector of float)
0:29          max ( temp 2-component vector of float)
0:29            Convert bool to float ( temp 2-component vector of float)
0:29              b2: direct index for structure ( uniform 2-component vector of bool)
0:29                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:29                Constant:
0:29                  7 (const uint)
0:29            f2: direct index for structure ( uniform 2-component vector of float)
0:29              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:29              Constant:
0:29                6 (const uint)
0:30      Sequence
0:30        move second child to first child ( temp 2-component vector of uint)
0:30          'r11' ( temp 2-component vector of uint)
0:30          max ( temp 2-component vector of uint)
0:30            Convert bool to uint ( temp 2-component vector of uint)
0:30              b2: direct index for structure ( uniform 2-component vector of bool)
0:30                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:30                Constant:
0:30                  7 (const uint)
0:30            u2: direct index for structure ( uniform 2-component vector of uint)
0:30              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:30              Constant:
0:30                5 (const uint)
0:31      Sequence
0:31        move second child to first child ( temp 2-component vector of int)
0:31          'r12' ( temp 2-component vector of int)
0:31          max ( temp 2-component vector of int)
0:31            Convert bool to int ( temp 2-component vector of int)
0:31              b2: direct index for structure ( uniform 2-component vector of bool)
0:31                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:31                Constant:
0:31                  7 (const uint)
0:31            i2: direct index for structure ( uniform 2-component vector of int)
0:31              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:31              Constant:
0:31                4 (const uint)
0:32      Sequence
0:32        move second child to first child ( temp 2-component vector of float)
0:32          'r13' ( temp 2-component vector of float)
0:32          max ( temp 2-component vector of float)
0:32            Convert int to float ( temp 2-component vector of float)
0:32              i2: direct index for structure ( uniform 2-component vector of int)
0:32                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:32                Constant:
0:32                  4 (const uint)
0:32            f2: direct index for structure ( uniform 2-component vector of float)
0:32              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:32              Constant:
0:32                6 (const uint)
0:33      Sequence
0:33        move second child to first child ( temp 2-component vector of float)
0:33          'r14' ( temp 2-component vector of float)
0:33          max ( temp 2-component vector of float)
0:33            Convert uint to float ( temp 2-component vector of float)
0:33              u2: direct index for structure ( uniform 2-component vector of uint)
0:33                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:33                Constant:
0:33                  5 (const uint)
0:33            f2: direct index for structure ( uniform 2-component vector of float)
0:33              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:33              Constant:
0:33                6 (const uint)
0:35      Sequence
0:35        move second child to first child ( temp 2-component vector of float)
0:35          'r20' ( temp 2-component vector of float)
0:35          clamp ( temp 2-component vector of float)
0:35            Convert int to float ( temp 2-component vector of float)
0:35              i2: direct index for structure ( uniform 2-component vector of int)
0:35                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:35                Constant:
0:35                  4 (const uint)
0:35            Convert uint to float ( temp 2-component vector of float)
0:35              u2: direct index for structure ( uniform 2-component vector of uint)
0:35                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:35                Constant:
0:35                  5 (const uint)
0:35            f2: direct index for structure ( uniform 2-component vector of float)
0:35              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:35              Constant:
0:35                6 (const uint)
0:36      Sequence
0:36        move second child to first child ( temp 2-component vector of uint)
0:36          'r21' ( temp 2-component vector of uint)
0:36          clamp ( temp 2-component vector of uint)
0:36            Convert bool to uint ( temp 2-component vector of uint)
0:36              b2: direct index for structure ( uniform 2-component vector of bool)
0:36                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:36                Constant:
0:36                  7 (const uint)
0:36            u2: direct index for structure ( uniform 2-component vector of uint)
0:36              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:36              Constant:
0:36                5 (const uint)
0:36            Convert bool to uint ( temp 2-component vector of uint)
0:36              b2: direct index for structure ( uniform 2-component vector of bool)
0:36                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:36                Constant:
0:36                  7 (const uint)
0:37      Sequence
0:37        move second child to first child ( temp 2-component vector of float)
0:37          'r22' ( temp 2-component vector of float)
0:37          clamp ( temp 2-component vector of float)
0:37            Convert bool to float ( temp 2-component vector of float)
0:37              b2: direct index for structure ( uniform 2-component vector of bool)
0:37                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:37                Constant:
0:37                  7 (const uint)
0:37            f2: direct index for structure ( uniform 2-component vector of float)
0:37              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:37              Constant:
0:37                6 (const uint)
0:37            Convert bool to float ( temp 2-component vector of float)
0:37              b2: direct index for structure ( uniform 2-component vector of bool)
0:37                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:37                Constant:
0:37                  7 (const uint)
0:40      Sequence
0:40        move second child to first child ( temp 2-component vector of float)
0:40          'r30' ( temp 2-component vector of float)
0:40          max ( temp 2-component vector of float)
0:40            Construct vec2 ( in 2-component vector of float)
0:40              Convert bool to float ( temp float)
0:40                b: direct index for structure ( uniform bool)
0:40                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:40                  Constant:
0:40                    3 (const uint)
0:40            f2: direct index for structure ( uniform 2-component vector of float)
0:40              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:40              Constant:
0:40                6 (const uint)
0:41      Sequence
0:41        move second child to first child ( temp 2-component vector of uint)
0:41          'r31' ( temp 2-component vector of uint)
0:41          max ( temp 2-component vector of uint)
0:41            Construct uvec2 ( in 2-component vector of uint)
0:41              Convert bool to uint ( temp uint)
0:41                b: direct index for structure ( uniform bool)
0:41                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:41                  Constant:
0:41                    3 (const uint)
0:41            u2: direct index for structure ( uniform 2-component vector of uint)
0:41              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:41              Constant:
0:41                5 (const uint)
0:42      Sequence
0:42        move second child to first child ( temp 2-component vector of int)
0:42          'r32' ( temp 2-component vector of int)
0:42          max ( temp 2-component vector of int)
0:42            Construct ivec2 ( in 2-component vector of int)
0:42              Convert bool to int ( temp int)
0:42                b: direct index for structure ( uniform bool)
0:42                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:42                  Constant:
0:42                    3 (const uint)
0:42            i2: direct index for structure ( uniform 2-component vector of int)
0:42              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:42              Constant:
0:42                4 (const uint)
0:43      Sequence
0:43        move second child to first child ( temp 2-component vector of float)
0:43          'r33' ( temp 2-component vector of float)
0:43          max ( temp 2-component vector of float)
0:43            Construct vec2 ( in 2-component vector of float)
0:43              Convert int to float ( temp float)
0:43                i: direct index for structure ( uniform int)
0:43                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:43                  Constant:
0:43                    0 (const uint)
0:43            f2: direct index for structure ( uniform 2-component vector of float)
0:43              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:43              Constant:
0:43                6 (const uint)
0:44      Sequence
0:44        move second child to first child ( temp 2-component vector of float)
0:44          'r34' ( temp 2-component vector of float)
0:44          max ( temp 2-component vector of float)
0:44            Construct vec2 ( in 2-component vector of float)
0:44              Convert uint to float ( temp float)
0:44                u: direct index for structure ( uniform uint)
0:44                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:44                  Constant:
0:44                    1 (const uint)
0:44            f2: direct index for structure ( uniform 2-component vector of float)
0:44              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:44              Constant:
0:44                6 (const uint)
0:46      Sequence
0:46        move second child to first child ( temp 2-component vector of float)
0:46          'r40' ( temp 2-component vector of float)
0:46          clamp ( temp 2-component vector of float)
0:46            Construct vec2 ( in 2-component vector of float)
0:46              Convert int to float ( temp float)
0:46                i: direct index for structure ( uniform int)
0:46                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:46                  Constant:
0:46                    0 (const uint)
0:46            Convert uint to float ( temp 2-component vector of float)
0:46              u2: direct index for structure ( uniform 2-component vector of uint)
0:46                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:46                Constant:
0:46                  5 (const uint)
0:46            f2: direct index for structure ( uniform 2-component vector of float)
0:46              'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:46              Constant:
0:46                6 (const uint)
0:47      Sequence
0:47        move second child to first child ( temp 2-component vector of uint)
0:47          'r41' ( temp 2-component vector of uint)
0:47          clamp ( temp 2-component vector of uint)
0:47            Convert bool to uint ( temp 2-component vector of uint)
0:47              b2: direct index for structure ( uniform 2-component vector of bool)
0:47                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:47                Constant:
0:47                  7 (const uint)
0:47            Construct uvec2 ( in 2-component vector of uint)
0:47              u: direct index for structure ( uniform uint)
0:47                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:47                Constant:
0:47                  1 (const uint)
0:47            Convert bool to uint ( temp 2-component vector of uint)
0:47              b2: direct index for structure ( uniform 2-component vector of bool)
0:47                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:47                Constant:
0:47                  7 (const uint)
0:48      Sequence
0:48        move second child to first child ( temp 2-component vector of float)
0:48          'r42' ( temp 2-component vector of float)
0:48          clamp ( temp 2-component vector of float)
0:48            Convert bool to float ( temp 2-component vector of float)
0:48              b2: direct index for structure ( uniform 2-component vector of bool)
0:48                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:48                Constant:
0:48                  7 (const uint)
0:48            Construct vec2 ( in 2-component vector of float)
0:48              f: direct index for structure ( uniform float)
0:48                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:48                Constant:
0:48                  2 (const uint)
0:48            Construct vec2 ( in 2-component vector of float)
0:48              Convert bool to float ( temp float)
0:48                b: direct index for structure ( uniform bool)
0:48                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:48                  Constant:
0:48                    3 (const uint)
0:49      Sequence
0:49        move second child to first child ( temp 2-component vector of int)
0:49          'r43' ( temp 2-component vector of int)
0:49          Convert uint to int ( temp 2-component vector of int)
0:49            clamp ( temp 2-component vector of uint)
0:49              Construct uvec2 ( in 2-component vector of uint)
0:49                Convert int to uint ( temp uint)
0:49                  i: direct index for structure ( uniform int)
0:49                    'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:49                    Constant:
0:49                      0 (const uint)
0:49              Convert int to uint ( temp 2-component vector of uint)
0:49                i2: direct index for structure ( uniform 2-component vector of int)
0:49                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:49                  Constant:
0:49                    4 (const uint)
0:49              u2: direct index for structure ( uniform 2-component vector of uint)
0:49                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:49                Constant:
0:49                  5 (const uint)
0:51      Sequence
0:51        move second child to first child ( temp float)
0:51          'r50' ( temp float)
0:51          Construct float ( temp float)
0:?             textureFetch ( temp 4-component vector of float)
0:51              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:51              Convert uint to int ( temp int)
0:51                upos: direct index for structure ( uniform uint)
0:51                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:51                  Constant:
0:51                    8 (const uint)
0:52      Sequence
0:52        move second child to first child ( temp float)
0:52          'r51' ( temp float)
0:52          Construct float ( temp float)
0:?             textureFetch ( temp 4-component vector of float)
0:52              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:52              Convert float to int ( temp int)
0:52                fpos: direct index for structure ( uniform float)
0:52                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:52                  Constant:
0:52                    9 (const uint)
0:70      Sequence
0:70        move second child to first child ( temp uint)
0:70          'sizeQueryTemp' ( temp uint)
0:70          textureSize ( temp uint)
0:70            'g_tTex1df4' ( uniform texture1D)
0:70            Constant:
0:70              0 (const int)
0:70        move second child to first child ( temp int)
0:70          'WidthI' ( temp int)
0:70          Convert uint to int ( temp int)
0:70            'sizeQueryTemp' ( temp uint)
0:71      Sequence
0:71        move second child to first child ( temp uint)
0:71          'sizeQueryTemp' ( temp uint)
0:71          textureSize ( temp uint)
0:71            'g_tTex1df4' ( uniform texture1D)
0:71            Constant:
0:71              6 (const uint)
0:71        move second child to first child ( temp int)
0:71          'WidthI' ( temp int)
0:71          Convert uint to int ( temp int)
0:71            'sizeQueryTemp' ( temp uint)
0:71        move second child to first child ( temp uint)
0:71          'NumberOfLevelsU' ( temp uint)
0:71          textureQueryLevels ( temp uint)
0:71            'g_tTex1df4' ( uniform texture1D)
0:72      Sequence
0:72        move second child to first child ( temp uint)
0:72          'sizeQueryTemp' ( temp uint)
0:72          textureSize ( temp uint)
0:72            'g_tTex1df4' ( uniform texture1D)
0:72            Constant:
0:72              6 (const uint)
0:72        move second child to first child ( temp uint)
0:72          'WidthU' ( temp uint)
0:72          'sizeQueryTemp' ( temp uint)
0:72        move second child to first child ( temp int)
0:72          'NumberOfLevelsI' ( temp int)
0:72          Convert uint to int ( temp int)
0:72            textureQueryLevels ( temp uint)
0:72              'g_tTex1df4' ( uniform texture1D)
0:73      Sequence
0:73        move second child to first child ( temp uint)
0:73          'sizeQueryTemp' ( temp uint)
0:73          textureSize ( temp uint)
0:73            'g_tTex1df4' ( uniform texture1D)
0:73            Constant:
0:73              6 (const uint)
0:73        move second child to first child ( temp int)
0:73          'WidthI' ( temp int)
0:73          Convert uint to int ( temp int)
0:73            'sizeQueryTemp' ( temp uint)
0:73        move second child to first child ( temp int)
0:73          'NumberOfLevelsI' ( temp int)
0:73          Convert uint to int ( temp int)
0:73            textureQueryLevels ( temp uint)
0:73              'g_tTex1df4' ( uniform texture1D)
0:77      move second child to first child ( temp 4-component vector of float)
0:77        color: direct index for structure ( temp 4-component vector of float)
0:77          'ps_output' ( temp structure{ temp 4-component vector of float color})
0:77          Constant:
0:77            0 (const int)
0:77        Construct vec4 ( temp 4-component vector of float)
0:77          'r00' ( temp float)
0:78      Branch: Return with expression
0:78        'ps_output' ( temp structure{ temp 4-component vector of float color})
0:20  Function Definition: main( ( temp void)
0:20    Function Parameters: 
0:?     Sequence
0:20      Sequence
0:20        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
0:20          color: direct index for structure ( temp 4-component vector of float)
0:20            Function Call: @main( ( temp structure{ temp 4-component vector of float color})
0:20            Constant:
0:20              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
0:?     'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:?     'g_tTex1df4' ( uniform texture1D)
0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
                              Capability Sampled1D
                              Capability SampledBuffer
                              Capability ImageQuery
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 319
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "color"
                              Name 10  "@main("
                              Name 13  "r00"
                              Name 19  "$Global"
                              MemberName 19($Global) 0  "i"
                              MemberName 19($Global) 1  "u"
                              MemberName 19($Global) 2  "f"
                              MemberName 19($Global) 3  "b"
                              MemberName 19($Global) 4  "i2"
                              MemberName 19($Global) 5  "u2"
                              MemberName 19($Global) 6  "f2"
                              MemberName 19($Global) 7  "b2"
                              MemberName 19($Global) 8  "upos"
                              MemberName 19($Global) 9  "fpos"
                              Name 21  ""
                              Name 38  "r01"
                              Name 49  "r02"
                              Name 59  "r03"
                              Name 66  "r04"
                              Name 74  "r10"
                              Name 91  "r11"
                              Name 102  "r12"
                              Name 114  "r13"
                              Name 121  "r14"
                              Name 128  "r20"
                              Name 138  "r21"
                              Name 150  "r22"
                              Name 162  "r30"
                              Name 171  "r31"
                              Name 180  "r32"
                              Name 189  "r33"
                              Name 197  "r34"
                              Name 205  "r40"
                              Name 216  "r41"
                              Name 229  "r42"
                              Name 243  "r43"
                              Name 255  "r50"
                              Name 258  "g_tTexbfs"
                              Name 266  "r51"
                              Name 274  "sizeQueryTemp"
                              Name 277  "g_tTex1df4"
                              Name 280  "WidthI"
                              Name 283  "sizeQueryTemp"
                              Name 289  "NumberOfLevelsU"
                              Name 292  "sizeQueryTemp"
                              Name 295  "WidthU"
                              Name 297  "NumberOfLevelsI"
                              Name 301  "sizeQueryTemp"
                              Name 310  "ps_output"
                              Name 319  "@entryPointOutput.color"
                              MemberDecorate 19($Global) 0 Offset 0
                              MemberDecorate 19($Global) 1 Offset 4
                              MemberDecorate 19($Global) 2 Offset 8
                              MemberDecorate 19($Global) 3 Offset 12
                              MemberDecorate 19($Global) 4 Offset 16
                              MemberDecorate 19($Global) 5 Offset 24
                              MemberDecorate 19($Global) 6 Offset 32
                              MemberDecorate 19($Global) 7 Offset 40
                              MemberDecorate 19($Global) 8 Offset 48
                              MemberDecorate 19($Global) 9 Offset 52
                              Decorate 19($Global) Block
                              Decorate 21 DescriptorSet 0
                              Decorate 258(g_tTexbfs) DescriptorSet 0
                              Decorate 277(g_tTex1df4) DescriptorSet 0
                              Decorate 319(@entryPointOutput.color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypeFunction 8(PS_OUTPUT)
              12:             TypePointer Function 6(float)
              14:             TypeInt 32 1
              15:             TypeInt 32 0
              16:             TypeVector 14(int) 2
              17:             TypeVector 15(int) 2
              18:             TypeVector 6(float) 2
     19($Global):             TypeStruct 14(int) 15(int) 6(float) 15(int) 16(ivec2) 17(ivec2) 18(fvec2) 17(ivec2) 15(int) 6(float)
              20:             TypePointer Uniform 19($Global)
              21:     20(ptr) Variable Uniform
              22:     14(int) Constant 3
              23:             TypePointer Uniform 15(int)
              26:             TypeBool
              27:     15(int) Constant 0
              29:    6(float) Constant 0
              30:    6(float) Constant 1065353216
              32:     14(int) Constant 2
              33:             TypePointer Uniform 6(float)
              37:             TypePointer Function 15(int)
              42:     15(int) Constant 1
              44:     14(int) Constant 1
              48:             TypePointer Function 14(int)
              53:     14(int) Constant 0
              55:             TypePointer Uniform 14(int)
              73:             TypePointer Function 18(fvec2)
              75:     14(int) Constant 7
              76:             TypePointer Uniform 17(ivec2)
              79:             TypeVector 26(bool) 2
              80:   17(ivec2) ConstantComposite 27 27
              82:   18(fvec2) ConstantComposite 29 29
              83:   18(fvec2) ConstantComposite 30 30
              85:     14(int) Constant 6
              86:             TypePointer Uniform 18(fvec2)
              90:             TypePointer Function 17(ivec2)
              95:   17(ivec2) ConstantComposite 42 42
              97:     14(int) Constant 5
             101:             TypePointer Function 16(ivec2)
             106:   16(ivec2) ConstantComposite 53 53
             107:   16(ivec2) ConstantComposite 44 44
             109:     14(int) Constant 4
             110:             TypePointer Uniform 16(ivec2)
             256:             TypeImage 6(float) Buffer sampled format:R32f
             257:             TypePointer UniformConstant 256
  258(g_tTexbfs):    257(ptr) Variable UniformConstant
             260:     14(int) Constant 8
             268:     14(int) Constant 9
             275:             TypeImage 6(float) 1D sampled format:Unknown
             276:             TypePointer UniformConstant 275
 277(g_tTex1df4):    276(ptr) Variable UniformConstant
             285:     15(int) Constant 6
             309:             TypePointer Function 8(PS_OUTPUT)
             313:             TypePointer Function 7(fvec4)
             318:             TypePointer Output 7(fvec4)
319(@entryPointOutput.color):    318(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
             320:8(PS_OUTPUT) FunctionCall 10(@main()
             321:    7(fvec4) CompositeExtract 320 0
                              Store 319(@entryPointOutput.color) 321
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
         13(r00):     12(ptr) Variable Function
         38(r01):     37(ptr) Variable Function
         49(r02):     48(ptr) Variable Function
         59(r03):     12(ptr) Variable Function
         66(r04):     12(ptr) Variable Function
         74(r10):     73(ptr) Variable Function
         91(r11):     90(ptr) Variable Function
        102(r12):    101(ptr) Variable Function
        114(r13):     73(ptr) Variable Function
        121(r14):     73(ptr) Variable Function
        128(r20):     73(ptr) Variable Function
        138(r21):     90(ptr) Variable Function
        150(r22):     73(ptr) Variable Function
        162(r30):     73(ptr) Variable Function
        171(r31):     90(ptr) Variable Function
        180(r32):    101(ptr) Variable Function
        189(r33):     73(ptr) Variable Function
        197(r34):     73(ptr) Variable Function
        205(r40):     73(ptr) Variable Function
        216(r41):     90(ptr) Variable Function
        229(r42):     73(ptr) Variable Function
        243(r43):    101(ptr) Variable Function
        255(r50):     12(ptr) Variable Function
        266(r51):     12(ptr) Variable Function
274(sizeQueryTemp):     37(ptr) Variable Function
     280(WidthI):     48(ptr) Variable Function
283(sizeQueryTemp):     37(ptr) Variable Function
289(NumberOfLevelsU):     37(ptr) Variable Function
292(sizeQueryTemp):     37(ptr) Variable Function
     295(WidthU):     37(ptr) Variable Function
297(NumberOfLevelsI):     48(ptr) Variable Function
301(sizeQueryTemp):     37(ptr) Variable Function
  310(ps_output):    309(ptr) Variable Function
              24:     23(ptr) AccessChain 21 22
              25:     15(int) Load 24
              28:    26(bool) INotEqual 25 27
              31:    6(float) Select 28 30 29
              34:     33(ptr) AccessChain 21 32
              35:    6(float) Load 34
              36:    6(float) ExtInst 1(GLSL.std.450) 40(FMax) 31 35
                              Store 13(r00) 36
              39:     23(ptr) AccessChain 21 22
              40:     15(int) Load 39
              41:    26(bool) INotEqual 40 27
              43:     15(int) Select 41 42 27
              45:     23(ptr) AccessChain 21 44
              46:     15(int) Load 45
              47:     15(int) ExtInst 1(GLSL.std.450) 41(UMax) 43 46
                              Store 38(r01) 47
              50:     23(ptr) AccessChain 21 22
              51:     15(int) Load 50
              52:    26(bool) INotEqual 51 27
              54:     14(int) Select 52 44 53
              56:     55(ptr) AccessChain 21 53
              57:     14(int) Load 56
              58:     14(int) ExtInst 1(GLSL.std.450) 42(SMax) 54 57
                              Store 49(r02) 58
              60:     55(ptr) AccessChain 21 53
              61:     14(int) Load 60
              62:    6(float) ConvertSToF 61
              63:     33(ptr) AccessChain 21 32
              64:    6(float) Load 63
              65:    6(float) ExtInst 1(GLSL.std.450) 40(FMax) 62 64
                              Store 59(r03) 65
              67:     23(ptr) AccessChain 21 44
              68:     15(int) Load 67
              69:    6(float) ConvertUToF 68
              70:     33(ptr) AccessChain 21 32
              71:    6(float) Load 70
              72:    6(float) ExtInst 1(GLSL.std.450) 40(FMax) 69 71
                              Store 66(r04) 72
              77:     76(ptr) AccessChain 21 75
              78:   17(ivec2) Load 77
              81:   79(bvec2) INotEqual 78 80
              84:   18(fvec2) Select 81 83 82
              87:     86(ptr) AccessChain 21 85
              88:   18(fvec2) Load 87
              89:   18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 84 88
                              Store 74(r10) 89
              92:     76(ptr) AccessChain 21 75
              93:   17(ivec2) Load 92
              94:   79(bvec2) INotEqual 93 80
              96:   17(ivec2) Select 94 95 80
              98:     76(ptr) AccessChain 21 97
              99:   17(ivec2) Load 98
             100:   17(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 96 99
                              Store 91(r11) 100
             103:     76(ptr) AccessChain 21 75
             104:   17(ivec2) Load 103
             105:   79(bvec2) INotEqual 104 80
             108:   16(ivec2) Select 105 107 106
             111:    110(ptr) AccessChain 21 109
             112:   16(ivec2) Load 111
             113:   16(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 108 112
                              Store 102(r12) 113
             115:    110(ptr) AccessChain 21 109
             116:   16(ivec2) Load 115
             117:   18(fvec2) ConvertSToF 116
             118:     86(ptr) AccessChain 21 85
             119:   18(fvec2) Load 118
             120:   18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 117 119
                              Store 114(r13) 120
             122:     76(ptr) AccessChain 21 97
             123:   17(ivec2) Load 122
             124:   18(fvec2) ConvertUToF 123
             125:     86(ptr) AccessChain 21 85
             126:   18(fvec2) Load 125
             127:   18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 124 126
                              Store 121(r14) 127
             129:    110(ptr) AccessChain 21 109
             130:   16(ivec2) Load 129
             131:   18(fvec2) ConvertSToF 130
             132:     76(ptr) AccessChain 21 97
             133:   17(ivec2) Load 132
             134:   18(fvec2) ConvertUToF 133
             135:     86(ptr) AccessChain 21 85
             136:   18(fvec2) Load 135
             137:   18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 131 134 136
                              Store 128(r20) 137
             139:     76(ptr) AccessChain 21 75
             140:   17(ivec2) Load 139
             141:   79(bvec2) INotEqual 140 80
             142:   17(ivec2) Select 141 95 80
             143:     76(ptr) AccessChain 21 97
             144:   17(ivec2) Load 143
             145:     76(ptr) AccessChain 21 75
             146:   17(ivec2) Load 145
             147:   79(bvec2) INotEqual 146 80
             148:   17(ivec2) Select 147 95 80
             149:   17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 142 144 148
                              Store 138(r21) 149
             151:     76(ptr) AccessChain 21 75
             152:   17(ivec2) Load 151
             153:   79(bvec2) INotEqual 152 80
             154:   18(fvec2) Select 153 83 82
             155:     86(ptr) AccessChain 21 85
             156:   18(fvec2) Load 155
             157:     76(ptr) AccessChain 21 75
             158:   17(ivec2) Load 157
             159:   79(bvec2) INotEqual 158 80
             160:   18(fvec2) Select 159 83 82
             161:   18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 154 156 160
                              Store 150(r22) 161
             163:     23(ptr) AccessChain 21 22
             164:     15(int) Load 163
             165:    26(bool) INotEqual 164 27
             166:    6(float) Select 165 30 29
             167:   18(fvec2) CompositeConstruct 166 166
             168:     86(ptr) AccessChain 21 85
             169:   18(fvec2) Load 168
             170:   18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 167 169
                              Store 162(r30) 170
             172:     23(ptr) AccessChain 21 22
             173:     15(int) Load 172
             174:    26(bool) INotEqual 173 27
             175:     15(int) Select 174 42 27
             176:   17(ivec2) CompositeConstruct 175 175
             177:     76(ptr) AccessChain 21 97
             178:   17(ivec2) Load 177
             179:   17(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 176 178
                              Store 171(r31) 179
             181:     23(ptr) AccessChain 21 22
             182:     15(int) Load 181
             183:    26(bool) INotEqual 182 27
             184:     14(int) Select 183 44 53
             185:   16(ivec2) CompositeConstruct 184 184
             186:    110(ptr) AccessChain 21 109
             187:   16(ivec2) Load 186
             188:   16(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 185 187
                              Store 180(r32) 188
             190:     55(ptr) AccessChain 21 53
             191:     14(int) Load 190
             192:    6(float) ConvertSToF 191
             193:   18(fvec2) CompositeConstruct 192 192
             194:     86(ptr) AccessChain 21 85
             195:   18(fvec2) Load 194
             196:   18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 193 195
                              Store 189(r33) 196
             198:     23(ptr) AccessChain 21 44
             199:     15(int) Load 198
             200:    6(float) ConvertUToF 199
             201:   18(fvec2) CompositeConstruct 200 200
             202:     86(ptr) AccessChain 21 85
             203:   18(fvec2) Load 202
             204:   18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 201 203
                              Store 197(r34) 204
             206:     55(ptr) AccessChain 21 53
             207:     14(int) Load 206
             208:    6(float) ConvertSToF 207
             209:   18(fvec2) CompositeConstruct 208 208
             210:     76(ptr) AccessChain 21 97
             211:   17(ivec2) Load 210
             212:   18(fvec2) ConvertUToF 211
             213:     86(ptr) AccessChain 21 85
             214:   18(fvec2) Load 213
             215:   18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 209 212 214
                              Store 205(r40) 215
             217:     76(ptr) AccessChain 21 75
             218:   17(ivec2) Load 217
             219:   79(bvec2) INotEqual 218 80
             220:   17(ivec2) Select 219 95 80
             221:     23(ptr) AccessChain 21 44
             222:     15(int) Load 221
             223:   17(ivec2) CompositeConstruct 222 222
             224:     76(ptr) AccessChain 21 75
             225:   17(ivec2) Load 224
             226:   79(bvec2) INotEqual 225 80
             227:   17(ivec2) Select 226 95 80
             228:   17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 220 223 227
                              Store 216(r41) 228
             230:     76(ptr) AccessChain 21 75
             231:   17(ivec2) Load 230
             232:   79(bvec2) INotEqual 231 80
             233:   18(fvec2) Select 232 83 82
             234:     33(ptr) AccessChain 21 32
             235:    6(float) Load 234
             236:   18(fvec2) CompositeConstruct 235 235
             237:     23(ptr) AccessChain 21 22
             238:     15(int) Load 237
             239:    26(bool) INotEqual 238 27
             240:    6(float) Select 239 30 29
             241:   18(fvec2) CompositeConstruct 240 240
             242:   18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 233 236 241
                              Store 229(r42) 242
             244:     55(ptr) AccessChain 21 53
             245:     14(int) Load 244
             246:     15(int) Bitcast 245
             247:   17(ivec2) CompositeConstruct 246 246
             248:    110(ptr) AccessChain 21 109
             249:   16(ivec2) Load 248
             250:   17(ivec2) Bitcast 249
             251:     76(ptr) AccessChain 21 97
             252:   17(ivec2) Load 251
             253:   17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 247 250 252
             254:   16(ivec2) Bitcast 253
                              Store 243(r43) 254
             259:         256 Load 258(g_tTexbfs)
             261:     23(ptr) AccessChain 21 260
             262:     15(int) Load 261
             263:     14(int) Bitcast 262
             264:    7(fvec4) ImageFetch 259 263
             265:    6(float) CompositeExtract 264 0
                              Store 255(r50) 265
             267:         256 Load 258(g_tTexbfs)
             269:     33(ptr) AccessChain 21 268
             270:    6(float) Load 269
             271:     14(int) ConvertFToS 270
             272:    7(fvec4) ImageFetch 267 271
             273:    6(float) CompositeExtract 272 0
                              Store 266(r51) 273
             278:         275 Load 277(g_tTex1df4)
             279:     15(int) ImageQuerySizeLod 278 53
                              Store 274(sizeQueryTemp) 279
             281:     15(int) Load 274(sizeQueryTemp)
             282:     14(int) Bitcast 281
                              Store 280(WidthI) 282
             284:         275 Load 277(g_tTex1df4)
             286:     15(int) ImageQuerySizeLod 284 285
                              Store 283(sizeQueryTemp) 286
             287:     15(int) Load 283(sizeQueryTemp)
             288:     14(int) Bitcast 287
                              Store 280(WidthI) 288
             290:         275 Load 277(g_tTex1df4)
             291:     15(int) ImageQueryLevels 290
                              Store 289(NumberOfLevelsU) 291
             293:         275 Load 277(g_tTex1df4)
             294:     15(int) ImageQuerySizeLod 293 285
                              Store 292(sizeQueryTemp) 294
             296:     15(int) Load 292(sizeQueryTemp)
                              Store 295(WidthU) 296
             298:         275 Load 277(g_tTex1df4)
             299:     15(int) ImageQueryLevels 298
             300:     14(int) Bitcast 299
                              Store 297(NumberOfLevelsI) 300
             302:         275 Load 277(g_tTex1df4)
             303:     15(int) ImageQuerySizeLod 302 285
                              Store 301(sizeQueryTemp) 303
             304:     15(int) Load 301(sizeQueryTemp)
             305:     14(int) Bitcast 304
                              Store 280(WidthI) 305
             306:         275 Load 277(g_tTex1df4)
             307:     15(int) ImageQueryLevels 306
             308:     14(int) Bitcast 307
                              Store 297(NumberOfLevelsI) 308
             311:    6(float) Load 13(r00)
             312:    7(fvec4) CompositeConstruct 311 311 311 311
             314:    313(ptr) AccessChain 310(ps_output) 53
                              Store 314 312
             315:8(PS_OUTPUT) Load 310(ps_output)
                              ReturnValue 315
                              FunctionEnd
