HLSL: Add GatherRed/Green/Blue/Alpha methods, inc 4-offset forms

This commit is contained in:
steve-lunarg 2016-07-31 10:37:02 -06:00
parent 98a2e92f0c
commit 7dfcf4d1ad
16 changed files with 5046 additions and 11 deletions

View File

@ -0,0 +1,884 @@
hlsl.gatherRGBA.array.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:28 Function Parameters:
0:? Sequence
0:33 Sequence
0:33 move second child to first child (temp 4-component vector of float)
0:33 'txval00' (temp 4-component vector of float)
0:33 textureGather (global 4-component vector of float)
0:33 Construct combined texture-sampler (temp sampler2DArray)
0:33 'g_tTex2df4a' (uniform texture2DArray)
0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 'c3' (uniform 3-component vector of float)
0:33 Constant:
0:33 0 (const int)
0:34 Sequence
0:34 move second child to first child (temp 4-component vector of int)
0:34 'txval01' (temp 4-component vector of int)
0:34 textureGather (global 4-component vector of int)
0:34 Construct combined texture-sampler (temp isampler2DArray)
0:34 'g_tTex2di4a' (uniform itexture2DArray)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:34 'c3' (uniform 3-component vector of float)
0:34 Constant:
0:34 0 (const int)
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of uint)
0:35 'txval02' (temp 4-component vector of uint)
0:35 textureGather (global 4-component vector of uint)
0:35 Construct combined texture-sampler (temp usampler2DArray)
0:35 'g_tTex2du4a' (uniform utexture2DArray)
0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:35 'c3' (uniform 3-component vector of float)
0:35 Constant:
0:35 0 (const int)
0:37 Sequence
0:37 move second child to first child (temp 4-component vector of float)
0:37 'txval10' (temp 4-component vector of float)
0:37 textureGather (global 4-component vector of float)
0:37 Construct combined texture-sampler (temp sampler2DArray)
0:37 'g_tTex2df4a' (uniform texture2DArray)
0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:37 'c3' (uniform 3-component vector of float)
0:37 Constant:
0:37 1 (const int)
0:38 Sequence
0:38 move second child to first child (temp 4-component vector of int)
0:38 'txval11' (temp 4-component vector of int)
0:38 textureGather (global 4-component vector of int)
0:38 Construct combined texture-sampler (temp isampler2DArray)
0:38 'g_tTex2di4a' (uniform itexture2DArray)
0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:38 'c3' (uniform 3-component vector of float)
0:38 Constant:
0:38 1 (const int)
0:39 Sequence
0:39 move second child to first child (temp 4-component vector of uint)
0:39 'txval12' (temp 4-component vector of uint)
0:39 textureGather (global 4-component vector of uint)
0:39 Construct combined texture-sampler (temp usampler2DArray)
0:39 'g_tTex2du4a' (uniform utexture2DArray)
0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:39 'c3' (uniform 3-component vector of float)
0:39 Constant:
0:39 1 (const int)
0:41 Sequence
0:41 move second child to first child (temp 4-component vector of float)
0:41 'txval20' (temp 4-component vector of float)
0:41 textureGather (global 4-component vector of float)
0:41 Construct combined texture-sampler (temp sampler2DArray)
0:41 'g_tTex2df4a' (uniform texture2DArray)
0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:41 'c3' (uniform 3-component vector of float)
0:41 Constant:
0:41 2 (const int)
0:42 Sequence
0:42 move second child to first child (temp 4-component vector of int)
0:42 'txval21' (temp 4-component vector of int)
0:42 textureGather (global 4-component vector of int)
0:42 Construct combined texture-sampler (temp isampler2DArray)
0:42 'g_tTex2di4a' (uniform itexture2DArray)
0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:42 'c3' (uniform 3-component vector of float)
0:42 Constant:
0:42 2 (const int)
0:43 Sequence
0:43 move second child to first child (temp 4-component vector of uint)
0:43 'txval22' (temp 4-component vector of uint)
0:43 textureGather (global 4-component vector of uint)
0:43 Construct combined texture-sampler (temp usampler2DArray)
0:43 'g_tTex2du4a' (uniform utexture2DArray)
0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:43 'c3' (uniform 3-component vector of float)
0:43 Constant:
0:43 2 (const int)
0:45 Sequence
0:45 move second child to first child (temp 4-component vector of float)
0:45 'txval30' (temp 4-component vector of float)
0:45 textureGather (global 4-component vector of float)
0:45 Construct combined texture-sampler (temp sampler2DArray)
0:45 'g_tTex2df4a' (uniform texture2DArray)
0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:45 'c3' (uniform 3-component vector of float)
0:45 Constant:
0:45 3 (const int)
0:46 Sequence
0:46 move second child to first child (temp 4-component vector of int)
0:46 'txval31' (temp 4-component vector of int)
0:46 textureGather (global 4-component vector of int)
0:46 Construct combined texture-sampler (temp isampler2DArray)
0:46 'g_tTex2di4a' (uniform itexture2DArray)
0:46 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:46 'c3' (uniform 3-component vector of float)
0:46 Constant:
0:46 3 (const int)
0:47 Sequence
0:47 move second child to first child (temp 4-component vector of uint)
0:47 'txval32' (temp 4-component vector of uint)
0:47 textureGather (global 4-component vector of uint)
0:47 Construct combined texture-sampler (temp usampler2DArray)
0:47 'g_tTex2du4a' (uniform utexture2DArray)
0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:47 'c3' (uniform 3-component vector of float)
0:47 Constant:
0:47 3 (const int)
0:51 Sequence
0:51 move second child to first child (temp 4-component vector of float)
0:51 'txval40' (temp 4-component vector of float)
0:51 textureGather (global 4-component vector of float)
0:51 Construct combined texture-sampler (temp samplerCubeArray)
0:51 'g_tTexcdf4a' (uniform textureCubeArray)
0:51 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:51 'c4' (uniform 4-component vector of float)
0:51 Constant:
0:51 0 (const int)
0:52 Sequence
0:52 move second child to first child (temp 4-component vector of int)
0:52 'txval41' (temp 4-component vector of int)
0:52 textureGather (global 4-component vector of int)
0:52 Construct combined texture-sampler (temp isamplerCubeArray)
0:52 'g_tTexcdi4a' (uniform itextureCubeArray)
0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:52 'c4' (uniform 4-component vector of float)
0:52 Constant:
0:52 0 (const int)
0:53 Sequence
0:53 move second child to first child (temp 4-component vector of uint)
0:53 'txval42' (temp 4-component vector of uint)
0:53 textureGather (global 4-component vector of uint)
0:53 Construct combined texture-sampler (temp usamplerCubeArray)
0:53 'g_tTexcdu4a' (uniform utextureCubeArray)
0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:53 'c4' (uniform 4-component vector of float)
0:53 Constant:
0:53 0 (const int)
0:55 Sequence
0:55 move second child to first child (temp 4-component vector of float)
0:55 'txval50' (temp 4-component vector of float)
0:55 textureGather (global 4-component vector of float)
0:55 Construct combined texture-sampler (temp samplerCubeArray)
0:55 'g_tTexcdf4a' (uniform textureCubeArray)
0:55 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:55 'c4' (uniform 4-component vector of float)
0:55 Constant:
0:55 1 (const int)
0:56 Sequence
0:56 move second child to first child (temp 4-component vector of int)
0:56 'txval51' (temp 4-component vector of int)
0:56 textureGather (global 4-component vector of int)
0:56 Construct combined texture-sampler (temp isamplerCubeArray)
0:56 'g_tTexcdi4a' (uniform itextureCubeArray)
0:56 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:56 'c4' (uniform 4-component vector of float)
0:56 Constant:
0:56 1 (const int)
0:57 Sequence
0:57 move second child to first child (temp 4-component vector of uint)
0:57 'txval52' (temp 4-component vector of uint)
0:57 textureGather (global 4-component vector of uint)
0:57 Construct combined texture-sampler (temp usamplerCubeArray)
0:57 'g_tTexcdu4a' (uniform utextureCubeArray)
0:57 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:57 'c4' (uniform 4-component vector of float)
0:57 Constant:
0:57 1 (const int)
0:59 Sequence
0:59 move second child to first child (temp 4-component vector of float)
0:59 'txval60' (temp 4-component vector of float)
0:59 textureGather (global 4-component vector of float)
0:59 Construct combined texture-sampler (temp samplerCubeArray)
0:59 'g_tTexcdf4a' (uniform textureCubeArray)
0:59 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:59 'c4' (uniform 4-component vector of float)
0:59 Constant:
0:59 2 (const int)
0:60 Sequence
0:60 move second child to first child (temp 4-component vector of int)
0:60 'txval61' (temp 4-component vector of int)
0:60 textureGather (global 4-component vector of int)
0:60 Construct combined texture-sampler (temp isamplerCubeArray)
0:60 'g_tTexcdi4a' (uniform itextureCubeArray)
0:60 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:60 'c4' (uniform 4-component vector of float)
0:60 Constant:
0:60 2 (const int)
0:61 Sequence
0:61 move second child to first child (temp 4-component vector of uint)
0:61 'txval62' (temp 4-component vector of uint)
0:61 textureGather (global 4-component vector of uint)
0:61 Construct combined texture-sampler (temp usamplerCubeArray)
0:61 'g_tTexcdu4a' (uniform utextureCubeArray)
0:61 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:61 'c4' (uniform 4-component vector of float)
0:61 Constant:
0:61 2 (const int)
0:63 Sequence
0:63 move second child to first child (temp 4-component vector of float)
0:63 'txval70' (temp 4-component vector of float)
0:63 textureGather (global 4-component vector of float)
0:63 Construct combined texture-sampler (temp samplerCubeArray)
0:63 'g_tTexcdf4a' (uniform textureCubeArray)
0:63 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:63 'c4' (uniform 4-component vector of float)
0:63 Constant:
0:63 3 (const int)
0:64 Sequence
0:64 move second child to first child (temp 4-component vector of int)
0:64 'txval71' (temp 4-component vector of int)
0:64 textureGather (global 4-component vector of int)
0:64 Construct combined texture-sampler (temp isamplerCubeArray)
0:64 'g_tTexcdi4a' (uniform itextureCubeArray)
0:64 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:64 'c4' (uniform 4-component vector of float)
0:64 Constant:
0:64 3 (const int)
0:65 Sequence
0:65 move second child to first child (temp 4-component vector of uint)
0:65 'txval72' (temp 4-component vector of uint)
0:65 textureGather (global 4-component vector of uint)
0:65 Construct combined texture-sampler (temp usamplerCubeArray)
0:65 'g_tTexcdu4a' (uniform utextureCubeArray)
0:65 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:65 'c4' (uniform 4-component vector of float)
0:65 Constant:
0:65 3 (const int)
0:67 move second child to first child (temp 4-component vector of float)
0:67 Color: direct index for structure (temp 4-component vector of float)
0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:67 Constant:
0:67 0 (const int)
0:67 Constant:
0:67 1.000000
0:67 1.000000
0:67 1.000000
0:67 1.000000
0:68 move second child to first child (temp float)
0:68 Depth: direct index for structure (temp float FragDepth)
0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:68 Constant:
0:68 1 (const int)
0:68 Constant:
0:68 1.000000
0:70 Branch: Return with expression
0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
0:? 'c1' (uniform float)
0:? 'c2' (uniform 2-component vector of float)
0:? 'c3' (uniform 3-component vector of float)
0:? 'c4' (uniform 4-component vector of float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:28 Function Parameters:
0:? Sequence
0:33 Sequence
0:33 move second child to first child (temp 4-component vector of float)
0:33 'txval00' (temp 4-component vector of float)
0:33 textureGather (global 4-component vector of float)
0:33 Construct combined texture-sampler (temp sampler2DArray)
0:33 'g_tTex2df4a' (uniform texture2DArray)
0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 'c3' (uniform 3-component vector of float)
0:33 Constant:
0:33 0 (const int)
0:34 Sequence
0:34 move second child to first child (temp 4-component vector of int)
0:34 'txval01' (temp 4-component vector of int)
0:34 textureGather (global 4-component vector of int)
0:34 Construct combined texture-sampler (temp isampler2DArray)
0:34 'g_tTex2di4a' (uniform itexture2DArray)
0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:34 'c3' (uniform 3-component vector of float)
0:34 Constant:
0:34 0 (const int)
0:35 Sequence
0:35 move second child to first child (temp 4-component vector of uint)
0:35 'txval02' (temp 4-component vector of uint)
0:35 textureGather (global 4-component vector of uint)
0:35 Construct combined texture-sampler (temp usampler2DArray)
0:35 'g_tTex2du4a' (uniform utexture2DArray)
0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:35 'c3' (uniform 3-component vector of float)
0:35 Constant:
0:35 0 (const int)
0:37 Sequence
0:37 move second child to first child (temp 4-component vector of float)
0:37 'txval10' (temp 4-component vector of float)
0:37 textureGather (global 4-component vector of float)
0:37 Construct combined texture-sampler (temp sampler2DArray)
0:37 'g_tTex2df4a' (uniform texture2DArray)
0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:37 'c3' (uniform 3-component vector of float)
0:37 Constant:
0:37 1 (const int)
0:38 Sequence
0:38 move second child to first child (temp 4-component vector of int)
0:38 'txval11' (temp 4-component vector of int)
0:38 textureGather (global 4-component vector of int)
0:38 Construct combined texture-sampler (temp isampler2DArray)
0:38 'g_tTex2di4a' (uniform itexture2DArray)
0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:38 'c3' (uniform 3-component vector of float)
0:38 Constant:
0:38 1 (const int)
0:39 Sequence
0:39 move second child to first child (temp 4-component vector of uint)
0:39 'txval12' (temp 4-component vector of uint)
0:39 textureGather (global 4-component vector of uint)
0:39 Construct combined texture-sampler (temp usampler2DArray)
0:39 'g_tTex2du4a' (uniform utexture2DArray)
0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:39 'c3' (uniform 3-component vector of float)
0:39 Constant:
0:39 1 (const int)
0:41 Sequence
0:41 move second child to first child (temp 4-component vector of float)
0:41 'txval20' (temp 4-component vector of float)
0:41 textureGather (global 4-component vector of float)
0:41 Construct combined texture-sampler (temp sampler2DArray)
0:41 'g_tTex2df4a' (uniform texture2DArray)
0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:41 'c3' (uniform 3-component vector of float)
0:41 Constant:
0:41 2 (const int)
0:42 Sequence
0:42 move second child to first child (temp 4-component vector of int)
0:42 'txval21' (temp 4-component vector of int)
0:42 textureGather (global 4-component vector of int)
0:42 Construct combined texture-sampler (temp isampler2DArray)
0:42 'g_tTex2di4a' (uniform itexture2DArray)
0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:42 'c3' (uniform 3-component vector of float)
0:42 Constant:
0:42 2 (const int)
0:43 Sequence
0:43 move second child to first child (temp 4-component vector of uint)
0:43 'txval22' (temp 4-component vector of uint)
0:43 textureGather (global 4-component vector of uint)
0:43 Construct combined texture-sampler (temp usampler2DArray)
0:43 'g_tTex2du4a' (uniform utexture2DArray)
0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:43 'c3' (uniform 3-component vector of float)
0:43 Constant:
0:43 2 (const int)
0:45 Sequence
0:45 move second child to first child (temp 4-component vector of float)
0:45 'txval30' (temp 4-component vector of float)
0:45 textureGather (global 4-component vector of float)
0:45 Construct combined texture-sampler (temp sampler2DArray)
0:45 'g_tTex2df4a' (uniform texture2DArray)
0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:45 'c3' (uniform 3-component vector of float)
0:45 Constant:
0:45 3 (const int)
0:46 Sequence
0:46 move second child to first child (temp 4-component vector of int)
0:46 'txval31' (temp 4-component vector of int)
0:46 textureGather (global 4-component vector of int)
0:46 Construct combined texture-sampler (temp isampler2DArray)
0:46 'g_tTex2di4a' (uniform itexture2DArray)
0:46 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:46 'c3' (uniform 3-component vector of float)
0:46 Constant:
0:46 3 (const int)
0:47 Sequence
0:47 move second child to first child (temp 4-component vector of uint)
0:47 'txval32' (temp 4-component vector of uint)
0:47 textureGather (global 4-component vector of uint)
0:47 Construct combined texture-sampler (temp usampler2DArray)
0:47 'g_tTex2du4a' (uniform utexture2DArray)
0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:47 'c3' (uniform 3-component vector of float)
0:47 Constant:
0:47 3 (const int)
0:51 Sequence
0:51 move second child to first child (temp 4-component vector of float)
0:51 'txval40' (temp 4-component vector of float)
0:51 textureGather (global 4-component vector of float)
0:51 Construct combined texture-sampler (temp samplerCubeArray)
0:51 'g_tTexcdf4a' (uniform textureCubeArray)
0:51 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:51 'c4' (uniform 4-component vector of float)
0:51 Constant:
0:51 0 (const int)
0:52 Sequence
0:52 move second child to first child (temp 4-component vector of int)
0:52 'txval41' (temp 4-component vector of int)
0:52 textureGather (global 4-component vector of int)
0:52 Construct combined texture-sampler (temp isamplerCubeArray)
0:52 'g_tTexcdi4a' (uniform itextureCubeArray)
0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:52 'c4' (uniform 4-component vector of float)
0:52 Constant:
0:52 0 (const int)
0:53 Sequence
0:53 move second child to first child (temp 4-component vector of uint)
0:53 'txval42' (temp 4-component vector of uint)
0:53 textureGather (global 4-component vector of uint)
0:53 Construct combined texture-sampler (temp usamplerCubeArray)
0:53 'g_tTexcdu4a' (uniform utextureCubeArray)
0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:53 'c4' (uniform 4-component vector of float)
0:53 Constant:
0:53 0 (const int)
0:55 Sequence
0:55 move second child to first child (temp 4-component vector of float)
0:55 'txval50' (temp 4-component vector of float)
0:55 textureGather (global 4-component vector of float)
0:55 Construct combined texture-sampler (temp samplerCubeArray)
0:55 'g_tTexcdf4a' (uniform textureCubeArray)
0:55 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:55 'c4' (uniform 4-component vector of float)
0:55 Constant:
0:55 1 (const int)
0:56 Sequence
0:56 move second child to first child (temp 4-component vector of int)
0:56 'txval51' (temp 4-component vector of int)
0:56 textureGather (global 4-component vector of int)
0:56 Construct combined texture-sampler (temp isamplerCubeArray)
0:56 'g_tTexcdi4a' (uniform itextureCubeArray)
0:56 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:56 'c4' (uniform 4-component vector of float)
0:56 Constant:
0:56 1 (const int)
0:57 Sequence
0:57 move second child to first child (temp 4-component vector of uint)
0:57 'txval52' (temp 4-component vector of uint)
0:57 textureGather (global 4-component vector of uint)
0:57 Construct combined texture-sampler (temp usamplerCubeArray)
0:57 'g_tTexcdu4a' (uniform utextureCubeArray)
0:57 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:57 'c4' (uniform 4-component vector of float)
0:57 Constant:
0:57 1 (const int)
0:59 Sequence
0:59 move second child to first child (temp 4-component vector of float)
0:59 'txval60' (temp 4-component vector of float)
0:59 textureGather (global 4-component vector of float)
0:59 Construct combined texture-sampler (temp samplerCubeArray)
0:59 'g_tTexcdf4a' (uniform textureCubeArray)
0:59 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:59 'c4' (uniform 4-component vector of float)
0:59 Constant:
0:59 2 (const int)
0:60 Sequence
0:60 move second child to first child (temp 4-component vector of int)
0:60 'txval61' (temp 4-component vector of int)
0:60 textureGather (global 4-component vector of int)
0:60 Construct combined texture-sampler (temp isamplerCubeArray)
0:60 'g_tTexcdi4a' (uniform itextureCubeArray)
0:60 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:60 'c4' (uniform 4-component vector of float)
0:60 Constant:
0:60 2 (const int)
0:61 Sequence
0:61 move second child to first child (temp 4-component vector of uint)
0:61 'txval62' (temp 4-component vector of uint)
0:61 textureGather (global 4-component vector of uint)
0:61 Construct combined texture-sampler (temp usamplerCubeArray)
0:61 'g_tTexcdu4a' (uniform utextureCubeArray)
0:61 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:61 'c4' (uniform 4-component vector of float)
0:61 Constant:
0:61 2 (const int)
0:63 Sequence
0:63 move second child to first child (temp 4-component vector of float)
0:63 'txval70' (temp 4-component vector of float)
0:63 textureGather (global 4-component vector of float)
0:63 Construct combined texture-sampler (temp samplerCubeArray)
0:63 'g_tTexcdf4a' (uniform textureCubeArray)
0:63 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:63 'c4' (uniform 4-component vector of float)
0:63 Constant:
0:63 3 (const int)
0:64 Sequence
0:64 move second child to first child (temp 4-component vector of int)
0:64 'txval71' (temp 4-component vector of int)
0:64 textureGather (global 4-component vector of int)
0:64 Construct combined texture-sampler (temp isamplerCubeArray)
0:64 'g_tTexcdi4a' (uniform itextureCubeArray)
0:64 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:64 'c4' (uniform 4-component vector of float)
0:64 Constant:
0:64 3 (const int)
0:65 Sequence
0:65 move second child to first child (temp 4-component vector of uint)
0:65 'txval72' (temp 4-component vector of uint)
0:65 textureGather (global 4-component vector of uint)
0:65 Construct combined texture-sampler (temp usamplerCubeArray)
0:65 'g_tTexcdu4a' (uniform utextureCubeArray)
0:65 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:65 'c4' (uniform 4-component vector of float)
0:65 Constant:
0:65 3 (const int)
0:67 move second child to first child (temp 4-component vector of float)
0:67 Color: direct index for structure (temp 4-component vector of float)
0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:67 Constant:
0:67 0 (const int)
0:67 Constant:
0:67 1.000000
0:67 1.000000
0:67 1.000000
0:67 1.000000
0:68 move second child to first child (temp float)
0:68 Depth: direct index for structure (temp float FragDepth)
0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:68 Constant:
0:68 1 (const int)
0:68 Constant:
0:68 1.000000
0:70 Branch: Return with expression
0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4a' (uniform itexture1DArray)
0:? 'g_tTex1du4a' (uniform utexture1DArray)
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
0:? 'c1' (uniform float)
0:? 'c2' (uniform 2-component vector of float)
0:? 'c3' (uniform 3-component vector of float)
0:? 'c4' (uniform 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 220
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "main"
Name 9 "txval00"
Name 12 "g_tTex2df4a"
Name 16 "g_sSamp"
Name 22 "c3"
Name 29 "txval01"
Name 32 "g_tTex2di4a"
Name 42 "txval02"
Name 45 "g_tTex2du4a"
Name 52 "txval10"
Name 59 "txval11"
Name 65 "txval12"
Name 71 "txval20"
Name 78 "txval21"
Name 84 "txval22"
Name 90 "txval30"
Name 97 "txval31"
Name 103 "txval32"
Name 109 "txval40"
Name 112 "g_tTexcdf4a"
Name 118 "c4"
Name 121 "txval41"
Name 124 "g_tTexcdi4a"
Name 131 "txval42"
Name 134 "g_tTexcdu4a"
Name 141 "txval50"
Name 147 "txval51"
Name 153 "txval52"
Name 159 "txval60"
Name 165 "txval61"
Name 171 "txval62"
Name 177 "txval70"
Name 183 "txval71"
Name 189 "txval72"
Name 195 "PS_OUTPUT"
MemberName 195(PS_OUTPUT) 0 "Color"
MemberName 195(PS_OUTPUT) 1 "Depth"
Name 197 "psout"
Name 205 "g_sSamp2d"
Name 208 "g_tTex1df4a"
Name 211 "g_tTex1di4a"
Name 214 "g_tTex1du4a"
Name 216 "c1"
Name 219 "c2"
Decorate 12(g_tTex2df4a) DescriptorSet 0
Decorate 16(g_sSamp) DescriptorSet 0
Decorate 16(g_sSamp) Binding 0
Decorate 32(g_tTex2di4a) DescriptorSet 0
Decorate 45(g_tTex2du4a) DescriptorSet 0
Decorate 112(g_tTexcdf4a) DescriptorSet 0
Decorate 124(g_tTexcdi4a) DescriptorSet 0
Decorate 134(g_tTexcdu4a) DescriptorSet 0
MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth
Decorate 205(g_sSamp2d) DescriptorSet 0
Decorate 208(g_tTex1df4a) DescriptorSet 0
Decorate 208(g_tTex1df4a) Binding 0
Decorate 211(g_tTex1di4a) DescriptorSet 0
Decorate 214(g_tTex1du4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypeImage 6(float) 2D array sampled format:Unknown
11: TypePointer UniformConstant 10
12(g_tTex2df4a): 11(ptr) Variable UniformConstant
14: TypeSampler
15: TypePointer UniformConstant 14
16(g_sSamp): 15(ptr) Variable UniformConstant
18: TypeSampledImage 10
20: TypeVector 6(float) 3
21: TypePointer UniformConstant 20(fvec3)
22(c3): 21(ptr) Variable UniformConstant
24: TypeInt 32 1
25: 24(int) Constant 0
27: TypeVector 24(int) 4
28: TypePointer Function 27(ivec4)
30: TypeImage 24(int) 2D array sampled format:Unknown
31: TypePointer UniformConstant 30
32(g_tTex2di4a): 31(ptr) Variable UniformConstant
35: TypeSampledImage 30
39: TypeInt 32 0
40: TypeVector 39(int) 4
41: TypePointer Function 40(ivec4)
43: TypeImage 39(int) 2D array sampled format:Unknown
44: TypePointer UniformConstant 43
45(g_tTex2du4a): 44(ptr) Variable UniformConstant
48: TypeSampledImage 43
57: 24(int) Constant 1
76: 24(int) Constant 2
95: 24(int) Constant 3
110: TypeImage 6(float) Cube array sampled format:Unknown
111: TypePointer UniformConstant 110
112(g_tTexcdf4a): 111(ptr) Variable UniformConstant
115: TypeSampledImage 110
117: TypePointer UniformConstant 7(fvec4)
118(c4): 117(ptr) Variable UniformConstant
122: TypeImage 24(int) Cube array sampled format:Unknown
123: TypePointer UniformConstant 122
124(g_tTexcdi4a): 123(ptr) Variable UniformConstant
127: TypeSampledImage 122
132: TypeImage 39(int) Cube array sampled format:Unknown
133: TypePointer UniformConstant 132
134(g_tTexcdu4a): 133(ptr) Variable UniformConstant
137: TypeSampledImage 132
195(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
196: TypePointer Function 195(PS_OUTPUT)
198: 6(float) Constant 1065353216
199: 7(fvec4) ConstantComposite 198 198 198 198
201: TypePointer Function 6(float)
205(g_sSamp2d): 15(ptr) Variable UniformConstant
206: TypeImage 6(float) 1D array sampled format:Unknown
207: TypePointer UniformConstant 206
208(g_tTex1df4a): 207(ptr) Variable UniformConstant
209: TypeImage 24(int) 1D array sampled format:Unknown
210: TypePointer UniformConstant 209
211(g_tTex1di4a): 210(ptr) Variable UniformConstant
212: TypeImage 39(int) 1D array sampled format:Unknown
213: TypePointer UniformConstant 212
214(g_tTex1du4a): 213(ptr) Variable UniformConstant
215: TypePointer UniformConstant 6(float)
216(c1): 215(ptr) Variable UniformConstant
217: TypeVector 6(float) 2
218: TypePointer UniformConstant 217(fvec2)
219(c2): 218(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval00): 8(ptr) Variable Function
29(txval01): 28(ptr) Variable Function
42(txval02): 41(ptr) Variable Function
52(txval10): 8(ptr) Variable Function
59(txval11): 28(ptr) Variable Function
65(txval12): 41(ptr) Variable Function
71(txval20): 8(ptr) Variable Function
78(txval21): 28(ptr) Variable Function
84(txval22): 41(ptr) Variable Function
90(txval30): 8(ptr) Variable Function
97(txval31): 28(ptr) Variable Function
103(txval32): 41(ptr) Variable Function
109(txval40): 8(ptr) Variable Function
121(txval41): 28(ptr) Variable Function
131(txval42): 41(ptr) Variable Function
141(txval50): 8(ptr) Variable Function
147(txval51): 28(ptr) Variable Function
153(txval52): 41(ptr) Variable Function
159(txval60): 8(ptr) Variable Function
165(txval61): 28(ptr) Variable Function
171(txval62): 41(ptr) Variable Function
177(txval70): 8(ptr) Variable Function
183(txval71): 28(ptr) Variable Function
189(txval72): 41(ptr) Variable Function
197(psout): 196(ptr) Variable Function
13: 10 Load 12(g_tTex2df4a)
17: 14 Load 16(g_sSamp)
19: 18 SampledImage 13 17
23: 20(fvec3) Load 22(c3)
26: 7(fvec4) ImageGather 19 23 25
Store 9(txval00) 26
33: 30 Load 32(g_tTex2di4a)
34: 14 Load 16(g_sSamp)
36: 35 SampledImage 33 34
37: 20(fvec3) Load 22(c3)
38: 27(ivec4) ImageGather 36 37 25
Store 29(txval01) 38
46: 43 Load 45(g_tTex2du4a)
47: 14 Load 16(g_sSamp)
49: 48 SampledImage 46 47
50: 20(fvec3) Load 22(c3)
51: 40(ivec4) ImageGather 49 50 25
Store 42(txval02) 51
53: 10 Load 12(g_tTex2df4a)
54: 14 Load 16(g_sSamp)
55: 18 SampledImage 53 54
56: 20(fvec3) Load 22(c3)
58: 7(fvec4) ImageGather 55 56 57
Store 52(txval10) 58
60: 30 Load 32(g_tTex2di4a)
61: 14 Load 16(g_sSamp)
62: 35 SampledImage 60 61
63: 20(fvec3) Load 22(c3)
64: 27(ivec4) ImageGather 62 63 57
Store 59(txval11) 64
66: 43 Load 45(g_tTex2du4a)
67: 14 Load 16(g_sSamp)
68: 48 SampledImage 66 67
69: 20(fvec3) Load 22(c3)
70: 40(ivec4) ImageGather 68 69 57
Store 65(txval12) 70
72: 10 Load 12(g_tTex2df4a)
73: 14 Load 16(g_sSamp)
74: 18 SampledImage 72 73
75: 20(fvec3) Load 22(c3)
77: 7(fvec4) ImageGather 74 75 76
Store 71(txval20) 77
79: 30 Load 32(g_tTex2di4a)
80: 14 Load 16(g_sSamp)
81: 35 SampledImage 79 80
82: 20(fvec3) Load 22(c3)
83: 27(ivec4) ImageGather 81 82 76
Store 78(txval21) 83
85: 43 Load 45(g_tTex2du4a)
86: 14 Load 16(g_sSamp)
87: 48 SampledImage 85 86
88: 20(fvec3) Load 22(c3)
89: 40(ivec4) ImageGather 87 88 76
Store 84(txval22) 89
91: 10 Load 12(g_tTex2df4a)
92: 14 Load 16(g_sSamp)
93: 18 SampledImage 91 92
94: 20(fvec3) Load 22(c3)
96: 7(fvec4) ImageGather 93 94 95
Store 90(txval30) 96
98: 30 Load 32(g_tTex2di4a)
99: 14 Load 16(g_sSamp)
100: 35 SampledImage 98 99
101: 20(fvec3) Load 22(c3)
102: 27(ivec4) ImageGather 100 101 95
Store 97(txval31) 102
104: 43 Load 45(g_tTex2du4a)
105: 14 Load 16(g_sSamp)
106: 48 SampledImage 104 105
107: 20(fvec3) Load 22(c3)
108: 40(ivec4) ImageGather 106 107 95
Store 103(txval32) 108
113: 110 Load 112(g_tTexcdf4a)
114: 14 Load 16(g_sSamp)
116: 115 SampledImage 113 114
119: 7(fvec4) Load 118(c4)
120: 7(fvec4) ImageGather 116 119 25
Store 109(txval40) 120
125: 122 Load 124(g_tTexcdi4a)
126: 14 Load 16(g_sSamp)
128: 127 SampledImage 125 126
129: 7(fvec4) Load 118(c4)
130: 27(ivec4) ImageGather 128 129 25
Store 121(txval41) 130
135: 132 Load 134(g_tTexcdu4a)
136: 14 Load 16(g_sSamp)
138: 137 SampledImage 135 136
139: 7(fvec4) Load 118(c4)
140: 40(ivec4) ImageGather 138 139 25
Store 131(txval42) 140
142: 110 Load 112(g_tTexcdf4a)
143: 14 Load 16(g_sSamp)
144: 115 SampledImage 142 143
145: 7(fvec4) Load 118(c4)
146: 7(fvec4) ImageGather 144 145 57
Store 141(txval50) 146
148: 122 Load 124(g_tTexcdi4a)
149: 14 Load 16(g_sSamp)
150: 127 SampledImage 148 149
151: 7(fvec4) Load 118(c4)
152: 27(ivec4) ImageGather 150 151 57
Store 147(txval51) 152
154: 132 Load 134(g_tTexcdu4a)
155: 14 Load 16(g_sSamp)
156: 137 SampledImage 154 155
157: 7(fvec4) Load 118(c4)
158: 40(ivec4) ImageGather 156 157 57
Store 153(txval52) 158
160: 110 Load 112(g_tTexcdf4a)
161: 14 Load 16(g_sSamp)
162: 115 SampledImage 160 161
163: 7(fvec4) Load 118(c4)
164: 7(fvec4) ImageGather 162 163 76
Store 159(txval60) 164
166: 122 Load 124(g_tTexcdi4a)
167: 14 Load 16(g_sSamp)
168: 127 SampledImage 166 167
169: 7(fvec4) Load 118(c4)
170: 27(ivec4) ImageGather 168 169 76
Store 165(txval61) 170
172: 132 Load 134(g_tTexcdu4a)
173: 14 Load 16(g_sSamp)
174: 137 SampledImage 172 173
175: 7(fvec4) Load 118(c4)
176: 40(ivec4) ImageGather 174 175 76
Store 171(txval62) 176
178: 110 Load 112(g_tTexcdf4a)
179: 14 Load 16(g_sSamp)
180: 115 SampledImage 178 179
181: 7(fvec4) Load 118(c4)
182: 7(fvec4) ImageGather 180 181 95
Store 177(txval70) 182
184: 122 Load 124(g_tTexcdi4a)
185: 14 Load 16(g_sSamp)
186: 127 SampledImage 184 185
187: 7(fvec4) Load 118(c4)
188: 27(ivec4) ImageGather 186 187 95
Store 183(txval71) 188
190: 132 Load 134(g_tTexcdu4a)
191: 14 Load 16(g_sSamp)
192: 137 SampledImage 190 191
193: 7(fvec4) Load 118(c4)
194: 40(ivec4) ImageGather 192 193 95
Store 189(txval72) 194
200: 8(ptr) AccessChain 197(psout) 25
Store 200 199
202: 201(ptr) AccessChain 197(psout) 57
Store 202 198
203:195(PS_OUTPUT) Load 197(psout)
ReturnValue 203
FunctionEnd

View File

@ -0,0 +1,910 @@
hlsl.gatherRGBA.basic.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:34 Function Parameters:
0:? Sequence
0:39 Sequence
0:39 move second child to first child (temp 4-component vector of float)
0:39 'txval00' (temp 4-component vector of float)
0:39 textureGather (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler2D)
0:39 'g_tTex2df4' (uniform texture2D)
0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:39 'c2' (uniform 2-component vector of float)
0:39 Constant:
0:39 0 (const int)
0:40 Sequence
0:40 move second child to first child (temp 4-component vector of int)
0:40 'txval01' (temp 4-component vector of int)
0:40 textureGather (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler2D)
0:40 'g_tTex2di4' (uniform itexture2D)
0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:40 'c2' (uniform 2-component vector of float)
0:40 Constant:
0:40 0 (const int)
0:41 Sequence
0:41 move second child to first child (temp 4-component vector of uint)
0:41 'txval02' (temp 4-component vector of uint)
0:41 textureGather (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler2D)
0:41 'g_tTex2du4' (uniform utexture2D)
0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:41 'c2' (uniform 2-component vector of float)
0:41 Constant:
0:41 0 (const int)
0:43 Sequence
0:43 move second child to first child (temp 4-component vector of float)
0:43 'txval10' (temp 4-component vector of float)
0:43 textureGather (global 4-component vector of float)
0:43 Construct combined texture-sampler (temp sampler2D)
0:43 'g_tTex2df4' (uniform texture2D)
0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:43 'c2' (uniform 2-component vector of float)
0:43 Constant:
0:43 1 (const int)
0:44 Sequence
0:44 move second child to first child (temp 4-component vector of int)
0:44 'txval11' (temp 4-component vector of int)
0:44 textureGather (global 4-component vector of int)
0:44 Construct combined texture-sampler (temp isampler2D)
0:44 'g_tTex2di4' (uniform itexture2D)
0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:44 'c2' (uniform 2-component vector of float)
0:44 Constant:
0:44 1 (const int)
0:45 Sequence
0:45 move second child to first child (temp 4-component vector of uint)
0:45 'txval12' (temp 4-component vector of uint)
0:45 textureGather (global 4-component vector of uint)
0:45 Construct combined texture-sampler (temp usampler2D)
0:45 'g_tTex2du4' (uniform utexture2D)
0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:45 'c2' (uniform 2-component vector of float)
0:45 Constant:
0:45 1 (const int)
0:47 Sequence
0:47 move second child to first child (temp 4-component vector of float)
0:47 'txval20' (temp 4-component vector of float)
0:47 textureGather (global 4-component vector of float)
0:47 Construct combined texture-sampler (temp sampler2D)
0:47 'g_tTex2df4' (uniform texture2D)
0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:47 'c2' (uniform 2-component vector of float)
0:47 Constant:
0:47 2 (const int)
0:48 Sequence
0:48 move second child to first child (temp 4-component vector of int)
0:48 'txval21' (temp 4-component vector of int)
0:48 textureGather (global 4-component vector of int)
0:48 Construct combined texture-sampler (temp isampler2D)
0:48 'g_tTex2di4' (uniform itexture2D)
0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:48 'c2' (uniform 2-component vector of float)
0:48 Constant:
0:48 2 (const int)
0:49 Sequence
0:49 move second child to first child (temp 4-component vector of uint)
0:49 'txval22' (temp 4-component vector of uint)
0:49 textureGather (global 4-component vector of uint)
0:49 Construct combined texture-sampler (temp usampler2D)
0:49 'g_tTex2du4' (uniform utexture2D)
0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:49 'c2' (uniform 2-component vector of float)
0:49 Constant:
0:49 2 (const int)
0:51 Sequence
0:51 move second child to first child (temp 4-component vector of float)
0:51 'txval30' (temp 4-component vector of float)
0:51 textureGather (global 4-component vector of float)
0:51 Construct combined texture-sampler (temp sampler2D)
0:51 'g_tTex2df4' (uniform texture2D)
0:51 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:51 'c2' (uniform 2-component vector of float)
0:51 Constant:
0:51 3 (const int)
0:52 Sequence
0:52 move second child to first child (temp 4-component vector of int)
0:52 'txval31' (temp 4-component vector of int)
0:52 textureGather (global 4-component vector of int)
0:52 Construct combined texture-sampler (temp isampler2D)
0:52 'g_tTex2di4' (uniform itexture2D)
0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:52 'c2' (uniform 2-component vector of float)
0:52 Constant:
0:52 3 (const int)
0:53 Sequence
0:53 move second child to first child (temp 4-component vector of uint)
0:53 'txval32' (temp 4-component vector of uint)
0:53 textureGather (global 4-component vector of uint)
0:53 Construct combined texture-sampler (temp usampler2D)
0:53 'g_tTex2du4' (uniform utexture2D)
0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:53 'c2' (uniform 2-component vector of float)
0:53 Constant:
0:53 3 (const int)
0:57 Sequence
0:57 move second child to first child (temp 4-component vector of float)
0:57 'txval40' (temp 4-component vector of float)
0:57 textureGather (global 4-component vector of float)
0:57 Construct combined texture-sampler (temp samplerCube)
0:57 'g_tTexcdf4' (uniform textureCube)
0:57 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:57 'c3' (uniform 3-component vector of float)
0:57 Constant:
0:57 0 (const int)
0:58 Sequence
0:58 move second child to first child (temp 4-component vector of int)
0:58 'txval41' (temp 4-component vector of int)
0:58 textureGather (global 4-component vector of int)
0:58 Construct combined texture-sampler (temp isamplerCube)
0:58 'g_tTexcdi4' (uniform itextureCube)
0:58 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:58 'c3' (uniform 3-component vector of float)
0:58 Constant:
0:58 0 (const int)
0:59 Sequence
0:59 move second child to first child (temp 4-component vector of uint)
0:59 'txval42' (temp 4-component vector of uint)
0:59 textureGather (global 4-component vector of uint)
0:59 Construct combined texture-sampler (temp usamplerCube)
0:59 'g_tTexcdu4' (uniform utextureCube)
0:59 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:59 'c3' (uniform 3-component vector of float)
0:59 Constant:
0:59 0 (const int)
0:61 Sequence
0:61 move second child to first child (temp 4-component vector of float)
0:61 'txval50' (temp 4-component vector of float)
0:61 textureGather (global 4-component vector of float)
0:61 Construct combined texture-sampler (temp samplerCube)
0:61 'g_tTexcdf4' (uniform textureCube)
0:61 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:61 'c3' (uniform 3-component vector of float)
0:61 Constant:
0:61 1 (const int)
0:62 Sequence
0:62 move second child to first child (temp 4-component vector of int)
0:62 'txval51' (temp 4-component vector of int)
0:62 textureGather (global 4-component vector of int)
0:62 Construct combined texture-sampler (temp isamplerCube)
0:62 'g_tTexcdi4' (uniform itextureCube)
0:62 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:62 'c3' (uniform 3-component vector of float)
0:62 Constant:
0:62 1 (const int)
0:63 Sequence
0:63 move second child to first child (temp 4-component vector of uint)
0:63 'txval52' (temp 4-component vector of uint)
0:63 textureGather (global 4-component vector of uint)
0:63 Construct combined texture-sampler (temp usamplerCube)
0:63 'g_tTexcdu4' (uniform utextureCube)
0:63 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:63 'c3' (uniform 3-component vector of float)
0:63 Constant:
0:63 1 (const int)
0:65 Sequence
0:65 move second child to first child (temp 4-component vector of float)
0:65 'txval60' (temp 4-component vector of float)
0:65 textureGather (global 4-component vector of float)
0:65 Construct combined texture-sampler (temp samplerCube)
0:65 'g_tTexcdf4' (uniform textureCube)
0:65 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:65 'c3' (uniform 3-component vector of float)
0:65 Constant:
0:65 2 (const int)
0:66 Sequence
0:66 move second child to first child (temp 4-component vector of int)
0:66 'txval61' (temp 4-component vector of int)
0:66 textureGather (global 4-component vector of int)
0:66 Construct combined texture-sampler (temp isamplerCube)
0:66 'g_tTexcdi4' (uniform itextureCube)
0:66 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:66 'c3' (uniform 3-component vector of float)
0:66 Constant:
0:66 2 (const int)
0:67 Sequence
0:67 move second child to first child (temp 4-component vector of uint)
0:67 'txval62' (temp 4-component vector of uint)
0:67 textureGather (global 4-component vector of uint)
0:67 Construct combined texture-sampler (temp usamplerCube)
0:67 'g_tTexcdu4' (uniform utextureCube)
0:67 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:67 'c3' (uniform 3-component vector of float)
0:67 Constant:
0:67 2 (const int)
0:69 Sequence
0:69 move second child to first child (temp 4-component vector of float)
0:69 'txval70' (temp 4-component vector of float)
0:69 textureGather (global 4-component vector of float)
0:69 Construct combined texture-sampler (temp samplerCube)
0:69 'g_tTexcdf4' (uniform textureCube)
0:69 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:69 'c3' (uniform 3-component vector of float)
0:69 Constant:
0:69 3 (const int)
0:70 Sequence
0:70 move second child to first child (temp 4-component vector of int)
0:70 'txval71' (temp 4-component vector of int)
0:70 textureGather (global 4-component vector of int)
0:70 Construct combined texture-sampler (temp isamplerCube)
0:70 'g_tTexcdi4' (uniform itextureCube)
0:70 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:70 'c3' (uniform 3-component vector of float)
0:70 Constant:
0:70 3 (const int)
0:71 Sequence
0:71 move second child to first child (temp 4-component vector of uint)
0:71 'txval72' (temp 4-component vector of uint)
0:71 textureGather (global 4-component vector of uint)
0:71 Construct combined texture-sampler (temp usamplerCube)
0:71 'g_tTexcdu4' (uniform utextureCube)
0:71 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:71 'c3' (uniform 3-component vector of float)
0:71 Constant:
0:71 3 (const int)
0:73 move second child to first child (temp 4-component vector of float)
0:73 Color: direct index for structure (temp 4-component vector of float)
0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:73 Constant:
0:73 0 (const int)
0:73 Constant:
0:73 1.000000
0:73 1.000000
0:73 1.000000
0:73 1.000000
0:74 move second child to first child (temp float)
0:74 Depth: direct index for structure (temp float FragDepth)
0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:74 Constant:
0:74 1 (const int)
0:74 Constant:
0:74 1.000000
0:76 Branch: Return with expression
0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'c1' (uniform float)
0:? 'c2' (uniform 2-component vector of float)
0:? 'c3' (uniform 3-component vector of float)
0:? 'c4' (uniform 4-component vector of float)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:34 Function Parameters:
0:? Sequence
0:39 Sequence
0:39 move second child to first child (temp 4-component vector of float)
0:39 'txval00' (temp 4-component vector of float)
0:39 textureGather (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler2D)
0:39 'g_tTex2df4' (uniform texture2D)
0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:39 'c2' (uniform 2-component vector of float)
0:39 Constant:
0:39 0 (const int)
0:40 Sequence
0:40 move second child to first child (temp 4-component vector of int)
0:40 'txval01' (temp 4-component vector of int)
0:40 textureGather (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler2D)
0:40 'g_tTex2di4' (uniform itexture2D)
0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:40 'c2' (uniform 2-component vector of float)
0:40 Constant:
0:40 0 (const int)
0:41 Sequence
0:41 move second child to first child (temp 4-component vector of uint)
0:41 'txval02' (temp 4-component vector of uint)
0:41 textureGather (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler2D)
0:41 'g_tTex2du4' (uniform utexture2D)
0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:41 'c2' (uniform 2-component vector of float)
0:41 Constant:
0:41 0 (const int)
0:43 Sequence
0:43 move second child to first child (temp 4-component vector of float)
0:43 'txval10' (temp 4-component vector of float)
0:43 textureGather (global 4-component vector of float)
0:43 Construct combined texture-sampler (temp sampler2D)
0:43 'g_tTex2df4' (uniform texture2D)
0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:43 'c2' (uniform 2-component vector of float)
0:43 Constant:
0:43 1 (const int)
0:44 Sequence
0:44 move second child to first child (temp 4-component vector of int)
0:44 'txval11' (temp 4-component vector of int)
0:44 textureGather (global 4-component vector of int)
0:44 Construct combined texture-sampler (temp isampler2D)
0:44 'g_tTex2di4' (uniform itexture2D)
0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:44 'c2' (uniform 2-component vector of float)
0:44 Constant:
0:44 1 (const int)
0:45 Sequence
0:45 move second child to first child (temp 4-component vector of uint)
0:45 'txval12' (temp 4-component vector of uint)
0:45 textureGather (global 4-component vector of uint)
0:45 Construct combined texture-sampler (temp usampler2D)
0:45 'g_tTex2du4' (uniform utexture2D)
0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:45 'c2' (uniform 2-component vector of float)
0:45 Constant:
0:45 1 (const int)
0:47 Sequence
0:47 move second child to first child (temp 4-component vector of float)
0:47 'txval20' (temp 4-component vector of float)
0:47 textureGather (global 4-component vector of float)
0:47 Construct combined texture-sampler (temp sampler2D)
0:47 'g_tTex2df4' (uniform texture2D)
0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:47 'c2' (uniform 2-component vector of float)
0:47 Constant:
0:47 2 (const int)
0:48 Sequence
0:48 move second child to first child (temp 4-component vector of int)
0:48 'txval21' (temp 4-component vector of int)
0:48 textureGather (global 4-component vector of int)
0:48 Construct combined texture-sampler (temp isampler2D)
0:48 'g_tTex2di4' (uniform itexture2D)
0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:48 'c2' (uniform 2-component vector of float)
0:48 Constant:
0:48 2 (const int)
0:49 Sequence
0:49 move second child to first child (temp 4-component vector of uint)
0:49 'txval22' (temp 4-component vector of uint)
0:49 textureGather (global 4-component vector of uint)
0:49 Construct combined texture-sampler (temp usampler2D)
0:49 'g_tTex2du4' (uniform utexture2D)
0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:49 'c2' (uniform 2-component vector of float)
0:49 Constant:
0:49 2 (const int)
0:51 Sequence
0:51 move second child to first child (temp 4-component vector of float)
0:51 'txval30' (temp 4-component vector of float)
0:51 textureGather (global 4-component vector of float)
0:51 Construct combined texture-sampler (temp sampler2D)
0:51 'g_tTex2df4' (uniform texture2D)
0:51 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:51 'c2' (uniform 2-component vector of float)
0:51 Constant:
0:51 3 (const int)
0:52 Sequence
0:52 move second child to first child (temp 4-component vector of int)
0:52 'txval31' (temp 4-component vector of int)
0:52 textureGather (global 4-component vector of int)
0:52 Construct combined texture-sampler (temp isampler2D)
0:52 'g_tTex2di4' (uniform itexture2D)
0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:52 'c2' (uniform 2-component vector of float)
0:52 Constant:
0:52 3 (const int)
0:53 Sequence
0:53 move second child to first child (temp 4-component vector of uint)
0:53 'txval32' (temp 4-component vector of uint)
0:53 textureGather (global 4-component vector of uint)
0:53 Construct combined texture-sampler (temp usampler2D)
0:53 'g_tTex2du4' (uniform utexture2D)
0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:53 'c2' (uniform 2-component vector of float)
0:53 Constant:
0:53 3 (const int)
0:57 Sequence
0:57 move second child to first child (temp 4-component vector of float)
0:57 'txval40' (temp 4-component vector of float)
0:57 textureGather (global 4-component vector of float)
0:57 Construct combined texture-sampler (temp samplerCube)
0:57 'g_tTexcdf4' (uniform textureCube)
0:57 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:57 'c3' (uniform 3-component vector of float)
0:57 Constant:
0:57 0 (const int)
0:58 Sequence
0:58 move second child to first child (temp 4-component vector of int)
0:58 'txval41' (temp 4-component vector of int)
0:58 textureGather (global 4-component vector of int)
0:58 Construct combined texture-sampler (temp isamplerCube)
0:58 'g_tTexcdi4' (uniform itextureCube)
0:58 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:58 'c3' (uniform 3-component vector of float)
0:58 Constant:
0:58 0 (const int)
0:59 Sequence
0:59 move second child to first child (temp 4-component vector of uint)
0:59 'txval42' (temp 4-component vector of uint)
0:59 textureGather (global 4-component vector of uint)
0:59 Construct combined texture-sampler (temp usamplerCube)
0:59 'g_tTexcdu4' (uniform utextureCube)
0:59 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:59 'c3' (uniform 3-component vector of float)
0:59 Constant:
0:59 0 (const int)
0:61 Sequence
0:61 move second child to first child (temp 4-component vector of float)
0:61 'txval50' (temp 4-component vector of float)
0:61 textureGather (global 4-component vector of float)
0:61 Construct combined texture-sampler (temp samplerCube)
0:61 'g_tTexcdf4' (uniform textureCube)
0:61 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:61 'c3' (uniform 3-component vector of float)
0:61 Constant:
0:61 1 (const int)
0:62 Sequence
0:62 move second child to first child (temp 4-component vector of int)
0:62 'txval51' (temp 4-component vector of int)
0:62 textureGather (global 4-component vector of int)
0:62 Construct combined texture-sampler (temp isamplerCube)
0:62 'g_tTexcdi4' (uniform itextureCube)
0:62 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:62 'c3' (uniform 3-component vector of float)
0:62 Constant:
0:62 1 (const int)
0:63 Sequence
0:63 move second child to first child (temp 4-component vector of uint)
0:63 'txval52' (temp 4-component vector of uint)
0:63 textureGather (global 4-component vector of uint)
0:63 Construct combined texture-sampler (temp usamplerCube)
0:63 'g_tTexcdu4' (uniform utextureCube)
0:63 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:63 'c3' (uniform 3-component vector of float)
0:63 Constant:
0:63 1 (const int)
0:65 Sequence
0:65 move second child to first child (temp 4-component vector of float)
0:65 'txval60' (temp 4-component vector of float)
0:65 textureGather (global 4-component vector of float)
0:65 Construct combined texture-sampler (temp samplerCube)
0:65 'g_tTexcdf4' (uniform textureCube)
0:65 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:65 'c3' (uniform 3-component vector of float)
0:65 Constant:
0:65 2 (const int)
0:66 Sequence
0:66 move second child to first child (temp 4-component vector of int)
0:66 'txval61' (temp 4-component vector of int)
0:66 textureGather (global 4-component vector of int)
0:66 Construct combined texture-sampler (temp isamplerCube)
0:66 'g_tTexcdi4' (uniform itextureCube)
0:66 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:66 'c3' (uniform 3-component vector of float)
0:66 Constant:
0:66 2 (const int)
0:67 Sequence
0:67 move second child to first child (temp 4-component vector of uint)
0:67 'txval62' (temp 4-component vector of uint)
0:67 textureGather (global 4-component vector of uint)
0:67 Construct combined texture-sampler (temp usamplerCube)
0:67 'g_tTexcdu4' (uniform utextureCube)
0:67 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:67 'c3' (uniform 3-component vector of float)
0:67 Constant:
0:67 2 (const int)
0:69 Sequence
0:69 move second child to first child (temp 4-component vector of float)
0:69 'txval70' (temp 4-component vector of float)
0:69 textureGather (global 4-component vector of float)
0:69 Construct combined texture-sampler (temp samplerCube)
0:69 'g_tTexcdf4' (uniform textureCube)
0:69 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:69 'c3' (uniform 3-component vector of float)
0:69 Constant:
0:69 3 (const int)
0:70 Sequence
0:70 move second child to first child (temp 4-component vector of int)
0:70 'txval71' (temp 4-component vector of int)
0:70 textureGather (global 4-component vector of int)
0:70 Construct combined texture-sampler (temp isamplerCube)
0:70 'g_tTexcdi4' (uniform itextureCube)
0:70 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:70 'c3' (uniform 3-component vector of float)
0:70 Constant:
0:70 3 (const int)
0:71 Sequence
0:71 move second child to first child (temp 4-component vector of uint)
0:71 'txval72' (temp 4-component vector of uint)
0:71 textureGather (global 4-component vector of uint)
0:71 Construct combined texture-sampler (temp usamplerCube)
0:71 'g_tTexcdu4' (uniform utextureCube)
0:71 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:71 'c3' (uniform 3-component vector of float)
0:71 Constant:
0:71 3 (const int)
0:73 move second child to first child (temp 4-component vector of float)
0:73 Color: direct index for structure (temp 4-component vector of float)
0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:73 Constant:
0:73 0 (const int)
0:73 Constant:
0:73 1.000000
0:73 1.000000
0:73 1.000000
0:73 1.000000
0:74 move second child to first child (temp float)
0:74 Depth: direct index for structure (temp float FragDepth)
0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:74 Constant:
0:74 1 (const int)
0:74 Constant:
0:74 1.000000
0:76 Branch: Return with expression
0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
0:? 'g_tTex2di4' (uniform itexture2D)
0:? 'g_tTex2du4' (uniform utexture2D)
0:? 'g_tTex3df4' (uniform texture3D)
0:? 'g_tTex3di4' (uniform itexture3D)
0:? 'g_tTex3du4' (uniform utexture3D)
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
0:? 'c1' (uniform float)
0:? 'c2' (uniform 2-component vector of float)
0:? 'c3' (uniform 3-component vector of float)
0:? 'c4' (uniform 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 230
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "main"
Name 9 "txval00"
Name 12 "g_tTex2df4"
Name 16 "g_sSamp"
Name 22 "c2"
Name 29 "txval01"
Name 32 "g_tTex2di4"
Name 42 "txval02"
Name 45 "g_tTex2du4"
Name 52 "txval10"
Name 59 "txval11"
Name 65 "txval12"
Name 71 "txval20"
Name 78 "txval21"
Name 84 "txval22"
Name 90 "txval30"
Name 97 "txval31"
Name 103 "txval32"
Name 109 "txval40"
Name 112 "g_tTexcdf4"
Name 119 "c3"
Name 122 "txval41"
Name 125 "g_tTexcdi4"
Name 132 "txval42"
Name 135 "g_tTexcdu4"
Name 142 "txval50"
Name 148 "txval51"
Name 154 "txval52"
Name 160 "txval60"
Name 166 "txval61"
Name 172 "txval62"
Name 178 "txval70"
Name 184 "txval71"
Name 190 "txval72"
Name 196 "PS_OUTPUT"
MemberName 196(PS_OUTPUT) 0 "Color"
MemberName 196(PS_OUTPUT) 1 "Depth"
Name 198 "psout"
Name 206 "g_sSamp2d"
Name 209 "g_tTex1df4a"
Name 210 "g_tTex1df4"
Name 213 "g_tTex1di4"
Name 216 "g_tTex1du4"
Name 219 "g_tTex3df4"
Name 222 "g_tTex3di4"
Name 225 "g_tTex3du4"
Name 227 "c1"
Name 229 "c4"
Decorate 12(g_tTex2df4) DescriptorSet 0
Decorate 16(g_sSamp) DescriptorSet 0
Decorate 16(g_sSamp) Binding 0
Decorate 32(g_tTex2di4) DescriptorSet 0
Decorate 45(g_tTex2du4) DescriptorSet 0
Decorate 112(g_tTexcdf4) DescriptorSet 0
Decorate 125(g_tTexcdi4) DescriptorSet 0
Decorate 135(g_tTexcdu4) DescriptorSet 0
MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth
Decorate 206(g_sSamp2d) DescriptorSet 0
Decorate 209(g_tTex1df4a) DescriptorSet 0
Decorate 209(g_tTex1df4a) Binding 1
Decorate 210(g_tTex1df4) DescriptorSet 0
Decorate 210(g_tTex1df4) Binding 0
Decorate 213(g_tTex1di4) DescriptorSet 0
Decorate 216(g_tTex1du4) DescriptorSet 0
Decorate 219(g_tTex3df4) DescriptorSet 0
Decorate 222(g_tTex3di4) DescriptorSet 0
Decorate 225(g_tTex3du4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypeImage 6(float) 2D sampled format:Unknown
11: TypePointer UniformConstant 10
12(g_tTex2df4): 11(ptr) Variable UniformConstant
14: TypeSampler
15: TypePointer UniformConstant 14
16(g_sSamp): 15(ptr) Variable UniformConstant
18: TypeSampledImage 10
20: TypeVector 6(float) 2
21: TypePointer UniformConstant 20(fvec2)
22(c2): 21(ptr) Variable UniformConstant
24: TypeInt 32 1
25: 24(int) Constant 0
27: TypeVector 24(int) 4
28: TypePointer Function 27(ivec4)
30: TypeImage 24(int) 2D sampled format:Unknown
31: TypePointer UniformConstant 30
32(g_tTex2di4): 31(ptr) Variable UniformConstant
35: TypeSampledImage 30
39: TypeInt 32 0
40: TypeVector 39(int) 4
41: TypePointer Function 40(ivec4)
43: TypeImage 39(int) 2D sampled format:Unknown
44: TypePointer UniformConstant 43
45(g_tTex2du4): 44(ptr) Variable UniformConstant
48: TypeSampledImage 43
57: 24(int) Constant 1
76: 24(int) Constant 2
95: 24(int) Constant 3
110: TypeImage 6(float) Cube sampled format:Unknown
111: TypePointer UniformConstant 110
112(g_tTexcdf4): 111(ptr) Variable UniformConstant
115: TypeSampledImage 110
117: TypeVector 6(float) 3
118: TypePointer UniformConstant 117(fvec3)
119(c3): 118(ptr) Variable UniformConstant
123: TypeImage 24(int) Cube sampled format:Unknown
124: TypePointer UniformConstant 123
125(g_tTexcdi4): 124(ptr) Variable UniformConstant
128: TypeSampledImage 123
133: TypeImage 39(int) Cube sampled format:Unknown
134: TypePointer UniformConstant 133
135(g_tTexcdu4): 134(ptr) Variable UniformConstant
138: TypeSampledImage 133
196(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
197: TypePointer Function 196(PS_OUTPUT)
199: 6(float) Constant 1065353216
200: 7(fvec4) ConstantComposite 199 199 199 199
202: TypePointer Function 6(float)
206(g_sSamp2d): 15(ptr) Variable UniformConstant
207: TypeImage 6(float) 1D sampled format:Unknown
208: TypePointer UniformConstant 207
209(g_tTex1df4a): 208(ptr) Variable UniformConstant
210(g_tTex1df4): 208(ptr) Variable UniformConstant
211: TypeImage 24(int) 1D sampled format:Unknown
212: TypePointer UniformConstant 211
213(g_tTex1di4): 212(ptr) Variable UniformConstant
214: TypeImage 39(int) 1D sampled format:Unknown
215: TypePointer UniformConstant 214
216(g_tTex1du4): 215(ptr) Variable UniformConstant
217: TypeImage 6(float) 3D sampled format:Unknown
218: TypePointer UniformConstant 217
219(g_tTex3df4): 218(ptr) Variable UniformConstant
220: TypeImage 24(int) 3D sampled format:Unknown
221: TypePointer UniformConstant 220
222(g_tTex3di4): 221(ptr) Variable UniformConstant
223: TypeImage 39(int) 3D sampled format:Unknown
224: TypePointer UniformConstant 223
225(g_tTex3du4): 224(ptr) Variable UniformConstant
226: TypePointer UniformConstant 6(float)
227(c1): 226(ptr) Variable UniformConstant
228: TypePointer UniformConstant 7(fvec4)
229(c4): 228(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval00): 8(ptr) Variable Function
29(txval01): 28(ptr) Variable Function
42(txval02): 41(ptr) Variable Function
52(txval10): 8(ptr) Variable Function
59(txval11): 28(ptr) Variable Function
65(txval12): 41(ptr) Variable Function
71(txval20): 8(ptr) Variable Function
78(txval21): 28(ptr) Variable Function
84(txval22): 41(ptr) Variable Function
90(txval30): 8(ptr) Variable Function
97(txval31): 28(ptr) Variable Function
103(txval32): 41(ptr) Variable Function
109(txval40): 8(ptr) Variable Function
122(txval41): 28(ptr) Variable Function
132(txval42): 41(ptr) Variable Function
142(txval50): 8(ptr) Variable Function
148(txval51): 28(ptr) Variable Function
154(txval52): 41(ptr) Variable Function
160(txval60): 8(ptr) Variable Function
166(txval61): 28(ptr) Variable Function
172(txval62): 41(ptr) Variable Function
178(txval70): 8(ptr) Variable Function
184(txval71): 28(ptr) Variable Function
190(txval72): 41(ptr) Variable Function
198(psout): 197(ptr) Variable Function
13: 10 Load 12(g_tTex2df4)
17: 14 Load 16(g_sSamp)
19: 18 SampledImage 13 17
23: 20(fvec2) Load 22(c2)
26: 7(fvec4) ImageGather 19 23 25
Store 9(txval00) 26
33: 30 Load 32(g_tTex2di4)
34: 14 Load 16(g_sSamp)
36: 35 SampledImage 33 34
37: 20(fvec2) Load 22(c2)
38: 27(ivec4) ImageGather 36 37 25
Store 29(txval01) 38
46: 43 Load 45(g_tTex2du4)
47: 14 Load 16(g_sSamp)
49: 48 SampledImage 46 47
50: 20(fvec2) Load 22(c2)
51: 40(ivec4) ImageGather 49 50 25
Store 42(txval02) 51
53: 10 Load 12(g_tTex2df4)
54: 14 Load 16(g_sSamp)
55: 18 SampledImage 53 54
56: 20(fvec2) Load 22(c2)
58: 7(fvec4) ImageGather 55 56 57
Store 52(txval10) 58
60: 30 Load 32(g_tTex2di4)
61: 14 Load 16(g_sSamp)
62: 35 SampledImage 60 61
63: 20(fvec2) Load 22(c2)
64: 27(ivec4) ImageGather 62 63 57
Store 59(txval11) 64
66: 43 Load 45(g_tTex2du4)
67: 14 Load 16(g_sSamp)
68: 48 SampledImage 66 67
69: 20(fvec2) Load 22(c2)
70: 40(ivec4) ImageGather 68 69 57
Store 65(txval12) 70
72: 10 Load 12(g_tTex2df4)
73: 14 Load 16(g_sSamp)
74: 18 SampledImage 72 73
75: 20(fvec2) Load 22(c2)
77: 7(fvec4) ImageGather 74 75 76
Store 71(txval20) 77
79: 30 Load 32(g_tTex2di4)
80: 14 Load 16(g_sSamp)
81: 35 SampledImage 79 80
82: 20(fvec2) Load 22(c2)
83: 27(ivec4) ImageGather 81 82 76
Store 78(txval21) 83
85: 43 Load 45(g_tTex2du4)
86: 14 Load 16(g_sSamp)
87: 48 SampledImage 85 86
88: 20(fvec2) Load 22(c2)
89: 40(ivec4) ImageGather 87 88 76
Store 84(txval22) 89
91: 10 Load 12(g_tTex2df4)
92: 14 Load 16(g_sSamp)
93: 18 SampledImage 91 92
94: 20(fvec2) Load 22(c2)
96: 7(fvec4) ImageGather 93 94 95
Store 90(txval30) 96
98: 30 Load 32(g_tTex2di4)
99: 14 Load 16(g_sSamp)
100: 35 SampledImage 98 99
101: 20(fvec2) Load 22(c2)
102: 27(ivec4) ImageGather 100 101 95
Store 97(txval31) 102
104: 43 Load 45(g_tTex2du4)
105: 14 Load 16(g_sSamp)
106: 48 SampledImage 104 105
107: 20(fvec2) Load 22(c2)
108: 40(ivec4) ImageGather 106 107 95
Store 103(txval32) 108
113: 110 Load 112(g_tTexcdf4)
114: 14 Load 16(g_sSamp)
116: 115 SampledImage 113 114
120: 117(fvec3) Load 119(c3)
121: 7(fvec4) ImageGather 116 120 25
Store 109(txval40) 121
126: 123 Load 125(g_tTexcdi4)
127: 14 Load 16(g_sSamp)
129: 128 SampledImage 126 127
130: 117(fvec3) Load 119(c3)
131: 27(ivec4) ImageGather 129 130 25
Store 122(txval41) 131
136: 133 Load 135(g_tTexcdu4)
137: 14 Load 16(g_sSamp)
139: 138 SampledImage 136 137
140: 117(fvec3) Load 119(c3)
141: 40(ivec4) ImageGather 139 140 25
Store 132(txval42) 141
143: 110 Load 112(g_tTexcdf4)
144: 14 Load 16(g_sSamp)
145: 115 SampledImage 143 144
146: 117(fvec3) Load 119(c3)
147: 7(fvec4) ImageGather 145 146 57
Store 142(txval50) 147
149: 123 Load 125(g_tTexcdi4)
150: 14 Load 16(g_sSamp)
151: 128 SampledImage 149 150
152: 117(fvec3) Load 119(c3)
153: 27(ivec4) ImageGather 151 152 57
Store 148(txval51) 153
155: 133 Load 135(g_tTexcdu4)
156: 14 Load 16(g_sSamp)
157: 138 SampledImage 155 156
158: 117(fvec3) Load 119(c3)
159: 40(ivec4) ImageGather 157 158 57
Store 154(txval52) 159
161: 110 Load 112(g_tTexcdf4)
162: 14 Load 16(g_sSamp)
163: 115 SampledImage 161 162
164: 117(fvec3) Load 119(c3)
165: 7(fvec4) ImageGather 163 164 76
Store 160(txval60) 165
167: 123 Load 125(g_tTexcdi4)
168: 14 Load 16(g_sSamp)
169: 128 SampledImage 167 168
170: 117(fvec3) Load 119(c3)
171: 27(ivec4) ImageGather 169 170 76
Store 166(txval61) 171
173: 133 Load 135(g_tTexcdu4)
174: 14 Load 16(g_sSamp)
175: 138 SampledImage 173 174
176: 117(fvec3) Load 119(c3)
177: 40(ivec4) ImageGather 175 176 76
Store 172(txval62) 177
179: 110 Load 112(g_tTexcdf4)
180: 14 Load 16(g_sSamp)
181: 115 SampledImage 179 180
182: 117(fvec3) Load 119(c3)
183: 7(fvec4) ImageGather 181 182 95
Store 178(txval70) 183
185: 123 Load 125(g_tTexcdi4)
186: 14 Load 16(g_sSamp)
187: 128 SampledImage 185 186
188: 117(fvec3) Load 119(c3)
189: 27(ivec4) ImageGather 187 188 95
Store 184(txval71) 189
191: 133 Load 135(g_tTexcdu4)
192: 14 Load 16(g_sSamp)
193: 138 SampledImage 191 192
194: 117(fvec3) Load 119(c3)
195: 40(ivec4) ImageGather 193 194 95
Store 190(txval72) 195
201: 8(ptr) AccessChain 198(psout) 25
Store 201 200
203: 202(ptr) AccessChain 198(psout) 57
Store 203 199
204:196(PS_OUTPUT) Load 198(psout)
ReturnValue 204
FunctionEnd

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,71 @@
SamplerState g_sSamp : register(s0);
uniform sampler2D g_sSamp2d;
uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
uniform float c1;
uniform float2 c2;
uniform float3 c3;
uniform float4 c4;
PS_OUTPUT main()
{
PS_OUTPUT psout;
// no 1D gathers
float4 txval00 = g_tTex2df4a . GatherRed(g_sSamp, c3);
int4 txval01 = g_tTex2di4a . GatherRed(g_sSamp, c3);
uint4 txval02 = g_tTex2du4a . GatherRed(g_sSamp, c3);
float4 txval10 = g_tTex2df4a . GatherGreen(g_sSamp, c3);
int4 txval11 = g_tTex2di4a . GatherGreen(g_sSamp, c3);
uint4 txval12 = g_tTex2du4a . GatherGreen(g_sSamp, c3);
float4 txval20 = g_tTex2df4a . GatherBlue(g_sSamp, c3);
int4 txval21 = g_tTex2di4a . GatherBlue(g_sSamp, c3);
uint4 txval22 = g_tTex2du4a . GatherBlue(g_sSamp, c3);
float4 txval30 = g_tTex2df4a . GatherAlpha(g_sSamp, c3);
int4 txval31 = g_tTex2di4a . GatherAlpha(g_sSamp, c3);
uint4 txval32 = g_tTex2du4a . GatherAlpha(g_sSamp, c3);
// no 3D gathers
float4 txval40 = g_tTexcdf4a . GatherRed(g_sSamp, c4);
int4 txval41 = g_tTexcdi4a . GatherRed(g_sSamp, c4);
uint4 txval42 = g_tTexcdu4a . GatherRed(g_sSamp, c4);
float4 txval50 = g_tTexcdf4a . GatherGreen(g_sSamp, c4);
int4 txval51 = g_tTexcdi4a . GatherGreen(g_sSamp, c4);
uint4 txval52 = g_tTexcdu4a . GatherGreen(g_sSamp, c4);
float4 txval60 = g_tTexcdf4a . GatherBlue(g_sSamp, c4);
int4 txval61 = g_tTexcdi4a . GatherBlue(g_sSamp, c4);
uint4 txval62 = g_tTexcdu4a . GatherBlue(g_sSamp, c4);
float4 txval70 = g_tTexcdf4a . GatherAlpha(g_sSamp, c4);
int4 txval71 = g_tTexcdi4a . GatherAlpha(g_sSamp, c4);
uint4 txval72 = g_tTexcdu4a . GatherAlpha(g_sSamp, c4);
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,77 @@
SamplerState g_sSamp : register(s0);
uniform sampler2D g_sSamp2d;
Texture1D g_tTex1df4a : register(t1);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
uniform float c1;
uniform float2 c2;
uniform float3 c3;
uniform float4 c4;
PS_OUTPUT main()
{
PS_OUTPUT psout;
// no 1D gathers
float4 txval00 = g_tTex2df4 . GatherRed(g_sSamp, c2);
int4 txval01 = g_tTex2di4 . GatherRed(g_sSamp, c2);
uint4 txval02 = g_tTex2du4 . GatherRed(g_sSamp, c2);
float4 txval10 = g_tTex2df4 . GatherGreen(g_sSamp, c2);
int4 txval11 = g_tTex2di4 . GatherGreen(g_sSamp, c2);
uint4 txval12 = g_tTex2du4 . GatherGreen(g_sSamp, c2);
float4 txval20 = g_tTex2df4 . GatherBlue(g_sSamp, c2);
int4 txval21 = g_tTex2di4 . GatherBlue(g_sSamp, c2);
uint4 txval22 = g_tTex2du4 . GatherBlue(g_sSamp, c2);
float4 txval30 = g_tTex2df4 . GatherAlpha(g_sSamp, c2);
int4 txval31 = g_tTex2di4 . GatherAlpha(g_sSamp, c2);
uint4 txval32 = g_tTex2du4 . GatherAlpha(g_sSamp, c2);
// no 3D gathers
float4 txval40 = g_tTexcdf4 . GatherRed(g_sSamp, c3);
int4 txval41 = g_tTexcdi4 . GatherRed(g_sSamp, c3);
uint4 txval42 = g_tTexcdu4 . GatherRed(g_sSamp, c3);
float4 txval50 = g_tTexcdf4 . GatherGreen(g_sSamp, c3);
int4 txval51 = g_tTexcdi4 . GatherGreen(g_sSamp, c3);
uint4 txval52 = g_tTexcdu4 . GatherGreen(g_sSamp, c3);
float4 txval60 = g_tTexcdf4 . GatherBlue(g_sSamp, c3);
int4 txval61 = g_tTexcdi4 . GatherBlue(g_sSamp, c3);
uint4 txval62 = g_tTexcdu4 . GatherBlue(g_sSamp, c3);
float4 txval70 = g_tTexcdf4 . GatherAlpha(g_sSamp, c3);
int4 txval71 = g_tTexcdi4 . GatherAlpha(g_sSamp, c3);
uint4 txval72 = g_tTexcdu4 . GatherAlpha(g_sSamp, c3);
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,116 @@
SamplerState g_sSamp : register(s0);
uniform sampler2D g_sSamp2d;
Texture1D g_tTex1df4a : register(t1);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
uniform float c1;
uniform float2 c2;
uniform float3 c3;
uniform float4 c4;
uniform int o1;
uniform int2 o2;
uniform int3 o3;
uniform int4 o4;
PS_OUTPUT main()
{
PS_OUTPUT psout;
uint status;
// no 1D gathers
float4 txval001 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2);
int4 txval011 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2);
uint4 txval021 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2);
float4 txval004 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2);
int4 txval014 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2);
uint4 txval024 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2);
// float4 txval00s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, status);
// int4 txval01s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, status);
// uint4 txval02s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, status);
// float4 txval004s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status);
// int4 txval014s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status);
// uint4 txval024s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status);
float4 txval101 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2);
int4 txval111 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2);
uint4 txval121 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2);
float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2);
int4 txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2);
uint4 txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2);
// float4 txval10s = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, status);
// int4 txval11s = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, status);
// uint4 txval12s = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, status);
// float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status);
// int4 txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status);
// uint4 txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status);
float4 txval201 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2);
int4 txval211 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2);
uint4 txval221 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2);
float4 txval204 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2);
int4 txval214 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2);
uint4 txval224 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2);
// float4 txval204s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status);
// int4 txval214s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status);
// uint4 txval224s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status);
// float4 txval20s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, status);
// int4 txval21s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, status);
// uint4 txval22s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, status);
float4 txval301 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2);
int4 txval311 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2);
uint4 txval321 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2);
float4 txval304 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2);
int4 txval314 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2);
uint4 txval324 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2);
// float4 txval304s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status);
// int4 txval314s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status);
// uint4 txval324s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status);
// float4 txval30s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, status);
// int4 txval31s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, status);
// uint4 txval32s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, status);
// no 3D gathers with offset
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,110 @@
SamplerState g_sSamp : register(s0);
uniform sampler2D g_sSamp2d;
uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
uniform float c1;
uniform float2 c2;
uniform float3 c3;
uniform float4 c4;
uniform int o1;
uniform int2 o2;
uniform int3 o3;
uniform int4 o4;
PS_OUTPUT main()
{
PS_OUTPUT psout;
uint status;
// no 1D gathers
float4 txval001 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2);
int4 txval011 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2);
uint4 txval021 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2);
float4 txval004 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2);
int4 txval014 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2);
uint4 txval024 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2);
// float4 txval00s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, status);
// int4 txval01s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, status);
// uint4 txval02s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, status);
// float4 txval004s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status);
// int4 txval014s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status);
// uint4 txval024s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status);
float4 txval101 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2);
int4 txval111 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2);
uint4 txval121 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2);
float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2);
int4 txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2);
uint4 txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2);
// float4 txval10s = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, status);
// int4 txval11s = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, status);
// uint4 txval12s = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, status);
// float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status);
// int4 txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status);
// uint4 txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status);
float4 txval201 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2);
int4 txval211 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2);
uint4 txval221 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2);
float4 txval204 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2);
int4 txval214 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2);
uint4 txval224 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2);
// float4 txval204s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status);
// int4 txval214s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status);
// uint4 txval224s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status);
// float4 txval20s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, status);
// int4 txval21s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, status);
// uint4 txval22s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, status);
float4 txval301 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2);
int4 txval311 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2);
uint4 txval321 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2);
float4 txval304 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2);
int4 txval314 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2);
uint4 txval324 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2);
// float4 txval304s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status);
// int4 txval314s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status);
// uint4 txval324s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status);
// float4 txval30s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, status);
// int4 txval31s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, status);
// uint4 txval32s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, status);
// no 3D gathers with offset
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,70 @@
SamplerComparisonState g_sSampCmp : register(s0);
uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
uniform float c1;
uniform float2 c2;
uniform float3 c3;
uniform float4 c4;
PS_OUTPUT main()
{
PS_OUTPUT psout;
// no 1D gathers
float4 txval00 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, .75);
int4 txval01 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, .75);
uint4 txval02 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, .75);
float4 txval10 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, .75);
int4 txval11 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, .75);
uint4 txval12 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, .75);
float4 txval20 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, .75);
int4 txval21 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, .75);
uint4 txval22 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, .75);
float4 txval30 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, .75);
int4 txval31 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, .75);
uint4 txval32 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, .75);
// no 3D gathers
float4 txval40 = g_tTexcdf4a . GatherCmpRed(g_sSampCmp, c4, .75);
int4 txval41 = g_tTexcdi4a . GatherCmpRed(g_sSampCmp, c4, .75);
uint4 txval42 = g_tTexcdu4a . GatherCmpRed(g_sSampCmp, c4, .75);
float4 txval50 = g_tTexcdf4a . GatherCmpGreen(g_sSampCmp, c4, .75);
int4 txval51 = g_tTexcdi4a . GatherCmpGreen(g_sSampCmp, c4, .75);
uint4 txval52 = g_tTexcdu4a . GatherCmpGreen(g_sSampCmp, c4, .75);
float4 txval60 = g_tTexcdf4a . GatherCmpBlue(g_sSampCmp, c4, .75);
int4 txval61 = g_tTexcdi4a . GatherCmpBlue(g_sSampCmp, c4, .75);
uint4 txval62 = g_tTexcdu4a . GatherCmpBlue(g_sSampCmp, c4, .75);
float4 txval70 = g_tTexcdf4a . GatherCmpAlpha(g_sSampCmp, c4, .75);
int4 txval71 = g_tTexcdi4a . GatherCmpAlpha(g_sSampCmp, c4, .75);
uint4 txval72 = g_tTexcdu4a . GatherCmpAlpha(g_sSampCmp, c4, .75);
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,76 @@
SamplerComparisonState g_sSampCmp : register(s0);
Texture1D g_tTex1df4a : register(t1);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
uniform float c1;
uniform float2 c2;
uniform float3 c3;
uniform float4 c4;
PS_OUTPUT main()
{
PS_OUTPUT psout;
// no 1D gathers
float4 txval00 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75);
int4 txval01 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75);
uint4 txval02 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75);
float4 txval10 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75);
int4 txval11 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75);
uint4 txval12 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75);
float4 txval20 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75);
int4 txval21 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75);
uint4 txval22 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75);
float4 txval30 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75);
int4 txval31 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75);
uint4 txval32 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75);
// no 3D gathers
float4 txval40 = g_tTexcdf4 . GatherCmpRed(g_sSampCmp, c3, 0.75);
int4 txval41 = g_tTexcdi4 . GatherCmpRed(g_sSampCmp, c3, 0.75);
uint4 txval42 = g_tTexcdu4 . GatherCmpRed(g_sSampCmp, c3, 0.75);
float4 txval50 = g_tTexcdf4 . GatherCmpGreen(g_sSampCmp, c3, 0.75);
int4 txval51 = g_tTexcdi4 . GatherCmpGreen(g_sSampCmp, c3, 0.75);
uint4 txval52 = g_tTexcdu4 . GatherCmpGreen(g_sSampCmp, c3, 0.75);
float4 txval60 = g_tTexcdf4 . GatherCmpBlue(g_sSampCmp, c3, 0.75);
int4 txval61 = g_tTexcdi4 . GatherCmpBlue(g_sSampCmp, c3, 0.75);
uint4 txval62 = g_tTexcdu4 . GatherCmpBlue(g_sSampCmp, c3, 0.75);
float4 txval70 = g_tTexcdf4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75);
int4 txval71 = g_tTexcdi4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75);
uint4 txval72 = g_tTexcdu4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75);
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,115 @@
SamplerComparisonState g_sSampCmp : register(s0);
Texture1D g_tTex1df4a : register(t1);
uniform Texture1D <float4> g_tTex1df4 : register(t0);
Texture1D <int4> g_tTex1di4;
Texture1D <uint4> g_tTex1du4;
Texture2D <float4> g_tTex2df4;
Texture2D <int4> g_tTex2di4;
Texture2D <uint4> g_tTex2du4;
Texture3D <float4> g_tTex3df4;
Texture3D <int4> g_tTex3di4;
Texture3D <uint4> g_tTex3du4;
TextureCube <float4> g_tTexcdf4;
TextureCube <int4> g_tTexcdi4;
TextureCube <uint4> g_tTexcdu4;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
uniform float c1;
uniform float2 c2;
uniform float3 c3;
uniform float4 c4;
uniform int o1;
uniform int2 o2;
uniform int3 o3;
uniform int4 o4;
PS_OUTPUT main()
{
PS_OUTPUT psout;
uint status;
// no 1D gathers
float4 txval001 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2);
int4 txval011 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2);
uint4 txval021 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2);
float4 txval004 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
int4 txval014 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
uint4 txval024 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
// float4 txval00s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status);
// int4 txval01s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status);
// uint4 txval02s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status);
// float4 txval004s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
// int4 txval014s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
// uint4 txval024s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
float4 txval101 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2);
int4 txval111 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2);
uint4 txval121 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2);
float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
// float4 txval10s = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status);
// int4 txval11s = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status);
// uint4 txval12s = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status);
// float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
// int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
// uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
float4 txval201 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2);
int4 txval211 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2);
uint4 txval221 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2);
float4 txval204 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
int4 txval214 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
uint4 txval224 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
// float4 txval204s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
// int4 txval214s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
// uint4 txval224s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
// float4 txval20s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status);
// int4 txval21s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status);
// uint4 txval22s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status);
float4 txval301 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2);
int4 txval311 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2);
uint4 txval321 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2);
float4 txval304 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
int4 txval314 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
uint4 txval324 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
// float4 txval304s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
// int4 txval314s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
// uint4 txval324s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
// float4 txval30s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status);
// int4 txval31s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status);
// uint4 txval32s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status);
// no 3D gathers with offset
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -0,0 +1,109 @@
SamplerComparisonState g_sSampCmp : register(s0);
uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
Texture1DArray <int4> g_tTex1di4a;
Texture1DArray <uint4> g_tTex1du4a;
Texture2DArray <float4> g_tTex2df4a;
Texture2DArray <int4> g_tTex2di4a;
Texture2DArray <uint4> g_tTex2du4a;
TextureCubeArray <float4> g_tTexcdf4a;
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
struct PS_OUTPUT
{
float4 Color : SV_Target0;
float Depth : SV_Depth;
};
uniform float c1;
uniform float2 c2;
uniform float3 c3;
uniform float4 c4;
uniform int o1;
uniform int2 o2;
uniform int3 o3;
uniform int4 o4;
PS_OUTPUT main()
{
PS_OUTPUT psout;
uint status;
// no 1D gathers
float4 txval001 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2);
int4 txval011 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2);
uint4 txval021 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2);
float4 txval004 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
int4 txval014 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
uint4 txval024 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
// float4 txval00s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status);
// int4 txval01s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status);
// uint4 txval02s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status);
// float4 txval004s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
// int4 txval014s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
// uint4 txval024s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
float4 txval101 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2);
int4 txval111 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2);
uint4 txval121 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2);
float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
int4 txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
uint4 txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
// float4 txval10s = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status);
// int4 txval11s = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status);
// uint4 txval12s = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status);
// float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
// int4 txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
// uint4 txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
float4 txval201 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2);
int4 txval211 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2);
uint4 txval221 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2);
float4 txval204 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
int4 txval214 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
uint4 txval224 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
// float4 txval204s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
// int4 txval214s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
// uint4 txval224s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
// float4 txval20s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status);
// int4 txval21s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status);
// uint4 txval22s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status);
float4 txval301 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2);
int4 txval311 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2);
uint4 txval321 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2);
float4 txval304 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
int4 txval314 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
uint4 txval324 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
// float4 txval304s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
// int4 txval314s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
// uint4 txval324s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
// float4 txval30s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status);
// int4 txval31s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status);
// uint4 txval32s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status);
// no 3D gathers with offset
psout.Color = 1.0;
psout.Depth = 1.0;
return psout;
}

View File

@ -568,6 +568,17 @@ enum TOperator {
EOpMethodGather, // ...
EOpMethodCalculateLevelOfDetail, // ...
EOpMethodCalculateLevelOfDetailUnclamped, // ...
// SM5 texture methods
EOpMethodGatherRed, // These are covered under the above EOpMethodSample comment about
EOpMethodGatherGreen, // translation to existing AST opcodes. They exist temporarily
EOpMethodGatherBlue, // because HLSL arguments are slightly different.
EOpMethodGatherAlpha, // ...
EOpMethodGatherCmp, // ...
EOpMethodGatherCmpRed, // ...
EOpMethodGatherCmpGreen, // ...
EOpMethodGatherCmpBlue, // ...
EOpMethodGatherCmpAlpha, // ...
};
class TIntermTraverser;

View File

@ -91,6 +91,10 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.gather.basic.dx10.vert", "main"},
{"hlsl.gather.offset.dx10.frag", "main"},
{"hlsl.gather.offsetarray.dx10.frag", "main"},
{"hlsl.gatherRGBA.array.dx10.frag", "main"},
{"hlsl.gatherRGBA.basic.dx10.frag", "main"},
{"hlsl.gatherRGBA.offset.dx10.frag", "main"},
{"hlsl.gatherRGBA.offsetarray.dx10.frag", "main"},
{"hlsl.getdimensions.dx10.frag", "main"},
{"hlsl.getdimensions.dx10.vert", "main"},
{"hlsl.getsampleposition.dx10.frag", "main"},

View File

@ -581,6 +581,15 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt
} else if (field == "CalculateLevelOfDetail" ||
field == "CalculateLevelOfDetailUnclamped" ||
field == "Gather" ||
field == "GatherRed" ||
field == "GatherGreen" ||
field == "GatherBlue" ||
field == "GatherAlpha" ||
field == "GatherCmp" ||
field == "GatherCmpRed" ||
field == "GatherCmpGreen" ||
field == "GatherCmpBlue" ||
field == "GatherCmpAlpha" ||
field == "GetDimensions" ||
field == "GetSamplePosition" ||
field == "Load" ||
@ -1251,7 +1260,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType
TIntermTyped* argOffset = nullptr;
// Offset is optional
if (argAggregate->getSequence().size() == 4)
if (argAggregate->getSequence().size() > 3)
argOffset = argAggregate->getSequence()[3]->getAsTyped();
const TOperator textureOp = (argOffset == nullptr ? EOpTextureGather : EOpTextureGatherOffset);
@ -1261,6 +1270,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType
txgather->getSequence().push_back(txcombine);
txgather->getSequence().push_back(argCoord);
// Offset if not given is implicitly channel 0 (red)
if (argOffset != nullptr)
txgather->getSequence().push_back(argOffset);
@ -1272,6 +1282,131 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType
break;
}
case EOpMethodGatherRed: // fall through...
case EOpMethodGatherGreen: // ...
case EOpMethodGatherBlue: // ...
case EOpMethodGatherAlpha: // ...
case EOpMethodGatherCmpRed: // ...
case EOpMethodGatherCmpGreen: // ...
case EOpMethodGatherCmpBlue: // ...
case EOpMethodGatherCmpAlpha: // ...
{
int channel = 0; // the channel we are gathering
int cmpValues = 0; // 1 if there is a compare value (handier than a bool below)
switch (op) {
case EOpMethodGatherCmpRed: cmpValues = 1; // fall through
case EOpMethodGatherRed: channel = 0; break;
case EOpMethodGatherCmpGreen: cmpValues = 1; // fall through
case EOpMethodGatherGreen: channel = 1; break;
case EOpMethodGatherCmpBlue: cmpValues = 1; // fall through
case EOpMethodGatherBlue: channel = 2; break;
case EOpMethodGatherCmpAlpha: cmpValues = 1; // fall through
case EOpMethodGatherAlpha: channel = 3; break;
default: assert(0); break;
}
// For now, we have nothing to map the component-wise comparison forms
// to, because neither GLSL nor SPIR-V has such an opcode. Issue an
// unimplemented error instead. Most of the machinery is here if that
// should ever become available.
if (cmpValues) {
error(loc, "unimplemented: component-level gather compare", "", "");
return;
}
int arg = 0;
TIntermTyped* argTex = argAggregate->getSequence()[arg++]->getAsTyped();
TIntermTyped* argSamp = argAggregate->getSequence()[arg++]->getAsTyped();
TIntermTyped* argCoord = argAggregate->getSequence()[arg++]->getAsTyped();
TIntermTyped* argOffset = nullptr;
TIntermTyped* argOffsets[4] = { nullptr, nullptr, nullptr, nullptr };
// TIntermTyped* argStatus = nullptr; // TODO: residency
TIntermTyped* argCmp = nullptr;
const TSamplerDim dim = argTex->getType().getSampler().dim;
const int argSize = argAggregate->getSequence().size();
bool hasStatus = (argSize == (5+cmpValues) || argSize == (8+cmpValues));
bool hasOffset1 = false;
bool hasOffset4 = false;
// Only 2D forms can have offsets. Discover if we have 0, 1 or 4 offsets.
if (dim == Esd2D) {
hasOffset1 = (argSize == (4+cmpValues) || argSize == (5+cmpValues));
hasOffset4 = (argSize == (7+cmpValues) || argSize == (8+cmpValues));
}
assert(!(hasOffset1 && hasOffset4));
TOperator textureOp = EOpTextureGather;
// Compare forms have compare value
if (cmpValues != 0)
argCmp = argOffset = argAggregate->getSequence()[arg++]->getAsTyped();
// Some forms have single offset
if (hasOffset1) {
textureOp = EOpTextureGatherOffset; // single offset form
argOffset = argAggregate->getSequence()[arg++]->getAsTyped();
}
// Some forms have 4 gather offsets
if (hasOffset4) {
textureOp = EOpTextureGatherOffsets; // note plural, for 4 offset form
for (int offsetNum = 0; offsetNum < 4; ++offsetNum)
argOffsets[offsetNum] = argAggregate->getSequence()[arg++]->getAsTyped();
}
// Residency status
if (hasStatus) {
// argStatus = argAggregate->getSequence()[arg++]->getAsTyped();
error(loc, "unimplemented: residency status", "", "");
return;
}
TIntermAggregate* txgather = new TIntermAggregate(textureOp);
TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp);
TIntermTyped* argChannel = intermediate.addConstantUnion(channel, loc, true);
txgather->getSequence().push_back(txcombine);
txgather->getSequence().push_back(argCoord);
// AST wants an array of 4 offsets, where HLSL has separate args. Here
// we construct an array from the separate args.
if (hasOffset4) {
TType arrayType(EbtInt, EvqTemporary, 2);
TArraySizes arraySizes;
arraySizes.addInnerSize(4);
arrayType.newArraySizes(arraySizes);
TIntermAggregate* initList = new TIntermAggregate(EOpNull);
for (int offsetNum = 0; offsetNum < 4; ++offsetNum)
initList->getSequence().push_back(argOffsets[offsetNum]);
argOffset = addConstructor(loc, initList, arrayType);
}
// Add comparison value if we have one
if (argTex->getType().getSampler().isShadow())
txgather->getSequence().push_back(argCmp);
// Add offset (either 1, or an array of 4) if we have one
if (argOffset != nullptr)
txgather->getSequence().push_back(argOffset);
txgather->getSequence().push_back(argChannel);
txgather->setType(node->getType());
txgather->setLoc(loc);
node = txgather;
break;
}
case EOpMethodCalculateLevelOfDetail:
case EOpMethodCalculateLevelOfDetailUnclamped:
{

View File

@ -101,12 +101,29 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim
return true;
}
const bool isGather =
(name == "Gather" ||
name == "GatherRed" ||
name == "GatherGreen" ||
name == "GatherBlue" ||
name == "GatherAlpha");
const bool isGatherCmp =
(name == "GatherCmpRed" ||
name == "GatherCmpGreen" ||
name == "GatherCmpBlue" ||
name == "GatherCmpAlpha");
// Reject invalid Gathers
if (name == "Gather") {
if (isGather || isGatherCmp) {
if (dim0 == 1 || dim0 == 3) // there are no 1D or 3D gathers
return true;
if (dim0 == 4 && numArgs == 4) // there are no Cube gathers with offset
return true;
// no offset on cube or cube array gathers
if (dim0 == 4) {
if ((isGather && numArgs > 3) || (isGatherCmp && numArgs > 4))
return true;
}
}
// Reject invalid Loads
@ -648,15 +665,14 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
{ "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll },
{ "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll },
{ "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangVSPSGS },
{ "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangVSPSGS },
{ "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
{ "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll },
{ "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangFragmentMask },
{ "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangFragmentMask },
{ "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS },
// table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx
//
// UINT Width
// UINT MipLevel, UINT Width, UINT NumberOfLevels
@ -709,10 +725,61 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
// UINT Width, UINT Height, UINT Samples
// UINT Width, UINT Height, UINT Elements, UINT Samples
{ "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll },
{ "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll },
{ "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll },
{ "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll },
{ "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll },
{ "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll },
{ "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll },
{ "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll },
// SM5 texture methods
{ "GatherRed", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
{ "GatherRed", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll },
{ "GatherRed", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll },
{ "GatherRed", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll },
{ "GatherRed", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll },
{ "GatherGreen", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
{ "GatherGreen", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll },
{ "GatherGreen", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll },
{ "GatherGreen", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll },
{ "GatherGreen", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll },
{ "GatherBlue", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
{ "GatherBlue", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll },
{ "GatherBlue", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll },
{ "GatherBlue", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll },
{ "GatherBlue", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll },
{ "GatherAlpha", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
{ "GatherAlpha", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll },
{ "GatherAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll },
{ "GatherAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll },
{ "GatherAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll },
{ "GatherCmpRed", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll },
{ "GatherCmpRed", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll },
{ "GatherCmpRed", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll },
{ "GatherCmpRed", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll },
{ "GatherCmpRed", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll },
{ "GatherCmpGreen", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll },
{ "GatherCmpGreen", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll },
{ "GatherCmpGreen", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll },
{ "GatherCmpGreen", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll },
{ "GatherCmpGreen", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll },
{ "GatherCmpBlue", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll },
{ "GatherCmpBlue", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll },
{ "GatherCmpBlue", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll },
{ "GatherCmpBlue", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll },
{ "GatherCmpBlue", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll },
{ "GatherCmpAlpha", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll },
{ "GatherCmpAlpha", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll },
{ "GatherCmpAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll },
{ "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll },
{ "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll },
// TODO: Cmp forms
// Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet.
{ nullptr, nullptr, nullptr, nullptr, nullptr, 0 },
@ -1012,6 +1079,16 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil
symbolTable.relateToOperator("Gather", EOpMethodGather);
symbolTable.relateToOperator("CalculateLevelOfDetail", EOpMethodCalculateLevelOfDetail);
symbolTable.relateToOperator("CalculateLevelOfDetailUnclamped", EOpMethodCalculateLevelOfDetailUnclamped);
// SM5 Texture methods
symbolTable.relateToOperator("GatherRed", EOpMethodGatherRed);
symbolTable.relateToOperator("GatherGreen", EOpMethodGatherGreen);
symbolTable.relateToOperator("GatherBlue", EOpMethodGatherBlue);
symbolTable.relateToOperator("GatherAlpha", EOpMethodGatherAlpha);
symbolTable.relateToOperator("GatherCmpRed", EOpMethodGatherCmpRed);
symbolTable.relateToOperator("GatherCmpGreen", EOpMethodGatherCmpGreen);
symbolTable.relateToOperator("GatherCmpBlue", EOpMethodGatherCmpBlue);
symbolTable.relateToOperator("GatherCmpAlpha", EOpMethodGatherCmpAlpha);
}
//