diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out new file mode 100644 index 00000000..cad56b6c --- /dev/null +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -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 diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out new file mode 100644 index 00000000..8fd96913 --- /dev/null +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -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 diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out new file mode 100644 index 00000000..ea0d94a0 --- /dev/null +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -0,0 +1,1148 @@ +hlsl.gatherRGBA.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Parameters: +0:? Sequence +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of float) +0:46 'txval001' (temp 4-component vector of float) +0:46 textureGatherOffset (global 4-component vector of float) +0:46 Construct combined texture-sampler (temp sampler2D) +0:46 'g_tTex2df4' (uniform texture2D) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:46 'c2' (uniform 2-component vector of float) +0:46 'o2' (uniform 2-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of int) +0:47 'txval011' (temp 4-component vector of int) +0:47 textureGatherOffset (global 4-component vector of int) +0:47 Construct combined texture-sampler (temp isampler2D) +0:47 'g_tTex2di4' (uniform itexture2D) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:47 'c2' (uniform 2-component vector of float) +0:47 'o2' (uniform 2-component vector of int) +0:47 Constant: +0:47 0 (const int) +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of uint) +0:48 'txval021' (temp 4-component vector of uint) +0:48 textureGatherOffset (global 4-component vector of uint) +0:48 Construct combined texture-sampler (temp usampler2D) +0:48 'g_tTex2du4' (uniform utexture2D) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:48 'c2' (uniform 2-component vector of float) +0:48 'o2' (uniform 2-component vector of int) +0:48 Constant: +0:48 0 (const int) +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:50 'txval004' (temp 4-component vector of float) +0:50 textureGatherOffsets (global 4-component vector of float) +0:50 Construct combined texture-sampler (temp sampler2D) +0:50 'g_tTex2df4' (uniform texture2D) +0:50 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:50 'c2' (uniform 2-component vector of float) +0:50 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 Constant: +0:50 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of int) +0:51 'txval014' (temp 4-component vector of int) +0:51 textureGatherOffsets (global 4-component vector of int) +0:51 Construct combined texture-sampler (temp isampler2D) +0:51 'g_tTex2di4' (uniform itexture2D) +0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:51 'c2' (uniform 2-component vector of float) +0:51 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of uint) +0:52 'txval024' (temp 4-component vector of uint) +0:52 textureGatherOffsets (global 4-component vector of uint) +0:52 Construct combined texture-sampler (temp usampler2D) +0:52 'g_tTex2du4' (uniform utexture2D) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:52 'c2' (uniform 2-component vector of float) +0:52 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 Constant: +0:52 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of float) +0:62 'txval101' (temp 4-component vector of float) +0:62 textureGatherOffset (global 4-component vector of float) +0:62 Construct combined texture-sampler (temp sampler2D) +0:62 'g_tTex2df4' (uniform texture2D) +0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:62 'c2' (uniform 2-component vector of float) +0:62 'o2' (uniform 2-component vector of int) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of int) +0:63 'txval111' (temp 4-component vector of int) +0:63 textureGatherOffset (global 4-component vector of int) +0:63 Construct combined texture-sampler (temp isampler2D) +0:63 'g_tTex2di4' (uniform itexture2D) +0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:63 'c2' (uniform 2-component vector of float) +0:63 'o2' (uniform 2-component vector of int) +0:63 Constant: +0:63 1 (const int) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of uint) +0:64 'txval121' (temp 4-component vector of uint) +0:64 textureGatherOffset (global 4-component vector of uint) +0:64 Construct combined texture-sampler (temp usampler2D) +0:64 'g_tTex2du4' (uniform utexture2D) +0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:64 'c2' (uniform 2-component vector of float) +0:64 'o2' (uniform 2-component vector of int) +0:64 Constant: +0:64 1 (const int) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:66 'txval104' (temp 4-component vector of float) +0:66 textureGatherOffsets (global 4-component vector of float) +0:66 Construct combined texture-sampler (temp sampler2D) +0:66 'g_tTex2df4' (uniform texture2D) +0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:66 'c2' (uniform 2-component vector of float) +0:66 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 Constant: +0:66 1 (const int) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of int) +0:67 'txval114' (temp 4-component vector of int) +0:67 textureGatherOffsets (global 4-component vector of int) +0:67 Construct combined texture-sampler (temp isampler2D) +0:67 'g_tTex2di4' (uniform itexture2D) +0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:67 'c2' (uniform 2-component vector of float) +0:67 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 Constant: +0:67 1 (const int) +0:68 Sequence +0:68 move second child to first child (temp 4-component vector of uint) +0:68 'txval124' (temp 4-component vector of uint) +0:68 textureGatherOffsets (global 4-component vector of uint) +0:68 Construct combined texture-sampler (temp usampler2D) +0:68 'g_tTex2du4' (uniform utexture2D) +0:68 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:68 'c2' (uniform 2-component vector of float) +0:68 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 Constant: +0:68 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:78 'txval201' (temp 4-component vector of float) +0:78 textureGatherOffset (global 4-component vector of float) +0:78 Construct combined texture-sampler (temp sampler2D) +0:78 'g_tTex2df4' (uniform texture2D) +0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:78 'c2' (uniform 2-component vector of float) +0:78 'o2' (uniform 2-component vector of int) +0:78 Constant: +0:78 2 (const int) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'txval211' (temp 4-component vector of int) +0:79 textureGatherOffset (global 4-component vector of int) +0:79 Construct combined texture-sampler (temp isampler2D) +0:79 'g_tTex2di4' (uniform itexture2D) +0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:79 'c2' (uniform 2-component vector of float) +0:79 'o2' (uniform 2-component vector of int) +0:79 Constant: +0:79 2 (const int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'txval221' (temp 4-component vector of uint) +0:80 textureGatherOffset (global 4-component vector of uint) +0:80 Construct combined texture-sampler (temp usampler2D) +0:80 'g_tTex2du4' (uniform utexture2D) +0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:80 'c2' (uniform 2-component vector of float) +0:80 'o2' (uniform 2-component vector of int) +0:80 Constant: +0:80 2 (const int) +0:82 Sequence +0:82 move second child to first child (temp 4-component vector of float) +0:82 'txval204' (temp 4-component vector of float) +0:82 textureGatherOffsets (global 4-component vector of float) +0:82 Construct combined texture-sampler (temp sampler2D) +0:82 'g_tTex2df4' (uniform texture2D) +0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:82 'c2' (uniform 2-component vector of float) +0:82 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 Constant: +0:82 2 (const int) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of int) +0:83 'txval214' (temp 4-component vector of int) +0:83 textureGatherOffsets (global 4-component vector of int) +0:83 Construct combined texture-sampler (temp isampler2D) +0:83 'g_tTex2di4' (uniform itexture2D) +0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:83 'c2' (uniform 2-component vector of float) +0:83 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 4-component vector of uint) +0:84 'txval224' (temp 4-component vector of uint) +0:84 textureGatherOffsets (global 4-component vector of uint) +0:84 Construct combined texture-sampler (temp usampler2D) +0:84 'g_tTex2du4' (uniform utexture2D) +0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:84 'c2' (uniform 2-component vector of float) +0:84 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 Constant: +0:84 2 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of float) +0:94 'txval301' (temp 4-component vector of float) +0:94 textureGatherOffset (global 4-component vector of float) +0:94 Construct combined texture-sampler (temp sampler2D) +0:94 'g_tTex2df4' (uniform texture2D) +0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:94 'c2' (uniform 2-component vector of float) +0:94 'o2' (uniform 2-component vector of int) +0:94 Constant: +0:94 3 (const int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of int) +0:95 'txval311' (temp 4-component vector of int) +0:95 textureGatherOffset (global 4-component vector of int) +0:95 Construct combined texture-sampler (temp isampler2D) +0:95 'g_tTex2di4' (uniform itexture2D) +0:95 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:95 'c2' (uniform 2-component vector of float) +0:95 'o2' (uniform 2-component vector of int) +0:95 Constant: +0:95 3 (const int) +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of uint) +0:96 'txval321' (temp 4-component vector of uint) +0:96 textureGatherOffset (global 4-component vector of uint) +0:96 Construct combined texture-sampler (temp usampler2D) +0:96 'g_tTex2du4' (uniform utexture2D) +0:96 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:96 'c2' (uniform 2-component vector of float) +0:96 'o2' (uniform 2-component vector of int) +0:96 Constant: +0:96 3 (const int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of float) +0:98 'txval304' (temp 4-component vector of float) +0:98 textureGatherOffsets (global 4-component vector of float) +0:98 Construct combined texture-sampler (temp sampler2D) +0:98 'g_tTex2df4' (uniform texture2D) +0:98 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:98 'c2' (uniform 2-component vector of float) +0:98 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 Constant: +0:98 3 (const int) +0:99 Sequence +0:99 move second child to first child (temp 4-component vector of int) +0:99 'txval314' (temp 4-component vector of int) +0:99 textureGatherOffsets (global 4-component vector of int) +0:99 Construct combined texture-sampler (temp isampler2D) +0:99 'g_tTex2di4' (uniform itexture2D) +0:99 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:99 'c2' (uniform 2-component vector of float) +0:99 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 Constant: +0:99 3 (const int) +0:100 Sequence +0:100 move second child to first child (temp 4-component vector of uint) +0:100 'txval324' (temp 4-component vector of uint) +0:100 textureGatherOffsets (global 4-component vector of uint) +0:100 Construct combined texture-sampler (temp usampler2D) +0:100 'g_tTex2du4' (uniform utexture2D) +0:100 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:100 'c2' (uniform 2-component vector of float) +0:100 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 Constant: +0:100 3 (const int) +0:112 move second child to first child (temp 4-component vector of float) +0:112 Color: direct index for structure (temp 4-component vector of float) +0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:113 move second child to first child (temp float) +0:113 Depth: direct index for structure (temp float FragDepth) +0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:113 Constant: +0:113 1 (const int) +0:113 Constant: +0:113 1.000000 +0:115 Branch: Return with expression +0:115 '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) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Parameters: +0:? Sequence +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of float) +0:46 'txval001' (temp 4-component vector of float) +0:46 textureGatherOffset (global 4-component vector of float) +0:46 Construct combined texture-sampler (temp sampler2D) +0:46 'g_tTex2df4' (uniform texture2D) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:46 'c2' (uniform 2-component vector of float) +0:46 'o2' (uniform 2-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of int) +0:47 'txval011' (temp 4-component vector of int) +0:47 textureGatherOffset (global 4-component vector of int) +0:47 Construct combined texture-sampler (temp isampler2D) +0:47 'g_tTex2di4' (uniform itexture2D) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:47 'c2' (uniform 2-component vector of float) +0:47 'o2' (uniform 2-component vector of int) +0:47 Constant: +0:47 0 (const int) +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of uint) +0:48 'txval021' (temp 4-component vector of uint) +0:48 textureGatherOffset (global 4-component vector of uint) +0:48 Construct combined texture-sampler (temp usampler2D) +0:48 'g_tTex2du4' (uniform utexture2D) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:48 'c2' (uniform 2-component vector of float) +0:48 'o2' (uniform 2-component vector of int) +0:48 Constant: +0:48 0 (const int) +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:50 'txval004' (temp 4-component vector of float) +0:50 textureGatherOffsets (global 4-component vector of float) +0:50 Construct combined texture-sampler (temp sampler2D) +0:50 'g_tTex2df4' (uniform texture2D) +0:50 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:50 'c2' (uniform 2-component vector of float) +0:50 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 Constant: +0:50 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of int) +0:51 'txval014' (temp 4-component vector of int) +0:51 textureGatherOffsets (global 4-component vector of int) +0:51 Construct combined texture-sampler (temp isampler2D) +0:51 'g_tTex2di4' (uniform itexture2D) +0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:51 'c2' (uniform 2-component vector of float) +0:51 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of uint) +0:52 'txval024' (temp 4-component vector of uint) +0:52 textureGatherOffsets (global 4-component vector of uint) +0:52 Construct combined texture-sampler (temp usampler2D) +0:52 'g_tTex2du4' (uniform utexture2D) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:52 'c2' (uniform 2-component vector of float) +0:52 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 Constant: +0:52 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of float) +0:62 'txval101' (temp 4-component vector of float) +0:62 textureGatherOffset (global 4-component vector of float) +0:62 Construct combined texture-sampler (temp sampler2D) +0:62 'g_tTex2df4' (uniform texture2D) +0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:62 'c2' (uniform 2-component vector of float) +0:62 'o2' (uniform 2-component vector of int) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of int) +0:63 'txval111' (temp 4-component vector of int) +0:63 textureGatherOffset (global 4-component vector of int) +0:63 Construct combined texture-sampler (temp isampler2D) +0:63 'g_tTex2di4' (uniform itexture2D) +0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:63 'c2' (uniform 2-component vector of float) +0:63 'o2' (uniform 2-component vector of int) +0:63 Constant: +0:63 1 (const int) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of uint) +0:64 'txval121' (temp 4-component vector of uint) +0:64 textureGatherOffset (global 4-component vector of uint) +0:64 Construct combined texture-sampler (temp usampler2D) +0:64 'g_tTex2du4' (uniform utexture2D) +0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:64 'c2' (uniform 2-component vector of float) +0:64 'o2' (uniform 2-component vector of int) +0:64 Constant: +0:64 1 (const int) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:66 'txval104' (temp 4-component vector of float) +0:66 textureGatherOffsets (global 4-component vector of float) +0:66 Construct combined texture-sampler (temp sampler2D) +0:66 'g_tTex2df4' (uniform texture2D) +0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:66 'c2' (uniform 2-component vector of float) +0:66 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 Constant: +0:66 1 (const int) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of int) +0:67 'txval114' (temp 4-component vector of int) +0:67 textureGatherOffsets (global 4-component vector of int) +0:67 Construct combined texture-sampler (temp isampler2D) +0:67 'g_tTex2di4' (uniform itexture2D) +0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:67 'c2' (uniform 2-component vector of float) +0:67 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 Constant: +0:67 1 (const int) +0:68 Sequence +0:68 move second child to first child (temp 4-component vector of uint) +0:68 'txval124' (temp 4-component vector of uint) +0:68 textureGatherOffsets (global 4-component vector of uint) +0:68 Construct combined texture-sampler (temp usampler2D) +0:68 'g_tTex2du4' (uniform utexture2D) +0:68 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:68 'c2' (uniform 2-component vector of float) +0:68 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 Constant: +0:68 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:78 'txval201' (temp 4-component vector of float) +0:78 textureGatherOffset (global 4-component vector of float) +0:78 Construct combined texture-sampler (temp sampler2D) +0:78 'g_tTex2df4' (uniform texture2D) +0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:78 'c2' (uniform 2-component vector of float) +0:78 'o2' (uniform 2-component vector of int) +0:78 Constant: +0:78 2 (const int) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'txval211' (temp 4-component vector of int) +0:79 textureGatherOffset (global 4-component vector of int) +0:79 Construct combined texture-sampler (temp isampler2D) +0:79 'g_tTex2di4' (uniform itexture2D) +0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:79 'c2' (uniform 2-component vector of float) +0:79 'o2' (uniform 2-component vector of int) +0:79 Constant: +0:79 2 (const int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'txval221' (temp 4-component vector of uint) +0:80 textureGatherOffset (global 4-component vector of uint) +0:80 Construct combined texture-sampler (temp usampler2D) +0:80 'g_tTex2du4' (uniform utexture2D) +0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:80 'c2' (uniform 2-component vector of float) +0:80 'o2' (uniform 2-component vector of int) +0:80 Constant: +0:80 2 (const int) +0:82 Sequence +0:82 move second child to first child (temp 4-component vector of float) +0:82 'txval204' (temp 4-component vector of float) +0:82 textureGatherOffsets (global 4-component vector of float) +0:82 Construct combined texture-sampler (temp sampler2D) +0:82 'g_tTex2df4' (uniform texture2D) +0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:82 'c2' (uniform 2-component vector of float) +0:82 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 Constant: +0:82 2 (const int) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of int) +0:83 'txval214' (temp 4-component vector of int) +0:83 textureGatherOffsets (global 4-component vector of int) +0:83 Construct combined texture-sampler (temp isampler2D) +0:83 'g_tTex2di4' (uniform itexture2D) +0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:83 'c2' (uniform 2-component vector of float) +0:83 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 4-component vector of uint) +0:84 'txval224' (temp 4-component vector of uint) +0:84 textureGatherOffsets (global 4-component vector of uint) +0:84 Construct combined texture-sampler (temp usampler2D) +0:84 'g_tTex2du4' (uniform utexture2D) +0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:84 'c2' (uniform 2-component vector of float) +0:84 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 Constant: +0:84 2 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of float) +0:94 'txval301' (temp 4-component vector of float) +0:94 textureGatherOffset (global 4-component vector of float) +0:94 Construct combined texture-sampler (temp sampler2D) +0:94 'g_tTex2df4' (uniform texture2D) +0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:94 'c2' (uniform 2-component vector of float) +0:94 'o2' (uniform 2-component vector of int) +0:94 Constant: +0:94 3 (const int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of int) +0:95 'txval311' (temp 4-component vector of int) +0:95 textureGatherOffset (global 4-component vector of int) +0:95 Construct combined texture-sampler (temp isampler2D) +0:95 'g_tTex2di4' (uniform itexture2D) +0:95 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:95 'c2' (uniform 2-component vector of float) +0:95 'o2' (uniform 2-component vector of int) +0:95 Constant: +0:95 3 (const int) +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of uint) +0:96 'txval321' (temp 4-component vector of uint) +0:96 textureGatherOffset (global 4-component vector of uint) +0:96 Construct combined texture-sampler (temp usampler2D) +0:96 'g_tTex2du4' (uniform utexture2D) +0:96 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:96 'c2' (uniform 2-component vector of float) +0:96 'o2' (uniform 2-component vector of int) +0:96 Constant: +0:96 3 (const int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of float) +0:98 'txval304' (temp 4-component vector of float) +0:98 textureGatherOffsets (global 4-component vector of float) +0:98 Construct combined texture-sampler (temp sampler2D) +0:98 'g_tTex2df4' (uniform texture2D) +0:98 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:98 'c2' (uniform 2-component vector of float) +0:98 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 Constant: +0:98 3 (const int) +0:99 Sequence +0:99 move second child to first child (temp 4-component vector of int) +0:99 'txval314' (temp 4-component vector of int) +0:99 textureGatherOffsets (global 4-component vector of int) +0:99 Construct combined texture-sampler (temp isampler2D) +0:99 'g_tTex2di4' (uniform itexture2D) +0:99 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:99 'c2' (uniform 2-component vector of float) +0:99 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 Constant: +0:99 3 (const int) +0:100 Sequence +0:100 move second child to first child (temp 4-component vector of uint) +0:100 'txval324' (temp 4-component vector of uint) +0:100 textureGatherOffsets (global 4-component vector of uint) +0:100 Construct combined texture-sampler (temp usampler2D) +0:100 'g_tTex2du4' (uniform utexture2D) +0:100 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:100 'c2' (uniform 2-component vector of float) +0:100 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 Constant: +0:100 3 (const int) +0:112 move second child to first child (temp 4-component vector of float) +0:112 Color: direct index for structure (temp 4-component vector of float) +0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:113 move second child to first child (temp float) +0:113 Depth: direct index for structure (temp float FragDepth) +0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:113 Constant: +0:113 1 (const int) +0:113 Constant: +0:113 1.000000 +0:115 Branch: Return with expression +0:115 '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) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 311 + + Capability Shader + Capability ImageGatherExtended + 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 "txval001" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 22 "c2" + Name 27 "o2" + Name 33 "txval011" + Name 36 "g_tTex2di4" + Name 47 "txval021" + Name 50 "g_tTex2du4" + Name 58 "txval004" + Name 71 "txval014" + Name 82 "txval024" + Name 93 "txval101" + Name 101 "txval111" + Name 108 "txval121" + Name 115 "txval104" + Name 126 "txval114" + Name 137 "txval124" + Name 148 "txval201" + Name 156 "txval211" + Name 163 "txval221" + Name 170 "txval204" + Name 181 "txval214" + Name 192 "txval224" + Name 203 "txval301" + Name 211 "txval311" + Name 218 "txval321" + Name 225 "txval304" + Name 236 "txval314" + Name 247 "txval324" + Name 258 "PS_OUTPUT" + MemberName 258(PS_OUTPUT) 0 "Color" + MemberName 258(PS_OUTPUT) 1 "Depth" + Name 260 "psout" + Name 268 "g_sSamp2d" + Name 271 "g_tTex1df4a" + Name 272 "g_tTex1df4" + Name 275 "g_tTex1di4" + Name 278 "g_tTex1du4" + Name 281 "g_tTex3df4" + Name 284 "g_tTex3di4" + Name 287 "g_tTex3du4" + Name 290 "g_tTexcdf4" + Name 293 "g_tTexcdi4" + Name 296 "g_tTexcdu4" + Name 298 "c1" + Name 301 "c3" + Name 303 "c4" + Name 305 "o1" + Name 308 "o3" + Name 310 "o4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 36(g_tTex2di4) DescriptorSet 0 + Decorate 50(g_tTex2du4) DescriptorSet 0 + MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 268(g_sSamp2d) DescriptorSet 0 + Decorate 271(g_tTex1df4a) DescriptorSet 0 + Decorate 271(g_tTex1df4a) Binding 1 + Decorate 272(g_tTex1df4) DescriptorSet 0 + Decorate 272(g_tTex1df4) Binding 0 + Decorate 275(g_tTex1di4) DescriptorSet 0 + Decorate 278(g_tTex1du4) DescriptorSet 0 + Decorate 281(g_tTex3df4) DescriptorSet 0 + Decorate 284(g_tTex3di4) DescriptorSet 0 + Decorate 287(g_tTex3du4) DescriptorSet 0 + Decorate 290(g_tTexcdf4) DescriptorSet 0 + Decorate 293(g_tTexcdi4) DescriptorSet 0 + Decorate 296(g_tTexcdu4) 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: TypeVector 24(int) 2 + 26: TypePointer UniformConstant 25(ivec2) + 27(o2): 26(ptr) Variable UniformConstant + 29: 24(int) Constant 0 + 31: TypeVector 24(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 24(int) 2D sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex2di4): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 44: TypeInt 32 0 + 45: TypeVector 44(int) 4 + 46: TypePointer Function 45(ivec4) + 48: TypeImage 44(int) 2D sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex2du4): 49(ptr) Variable UniformConstant + 53: TypeSampledImage 48 + 67: 44(int) Constant 4 + 68: TypeArray 25(ivec2) 67 + 99: 24(int) Constant 1 + 154: 24(int) Constant 2 + 209: 24(int) Constant 3 + 258(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 259: TypePointer Function 258(PS_OUTPUT) + 261: 6(float) Constant 1065353216 + 262: 7(fvec4) ConstantComposite 261 261 261 261 + 264: TypePointer Function 6(float) + 268(g_sSamp2d): 15(ptr) Variable UniformConstant + 269: TypeImage 6(float) 1D sampled format:Unknown + 270: TypePointer UniformConstant 269 +271(g_tTex1df4a): 270(ptr) Variable UniformConstant + 272(g_tTex1df4): 270(ptr) Variable UniformConstant + 273: TypeImage 24(int) 1D sampled format:Unknown + 274: TypePointer UniformConstant 273 + 275(g_tTex1di4): 274(ptr) Variable UniformConstant + 276: TypeImage 44(int) 1D sampled format:Unknown + 277: TypePointer UniformConstant 276 + 278(g_tTex1du4): 277(ptr) Variable UniformConstant + 279: TypeImage 6(float) 3D sampled format:Unknown + 280: TypePointer UniformConstant 279 + 281(g_tTex3df4): 280(ptr) Variable UniformConstant + 282: TypeImage 24(int) 3D sampled format:Unknown + 283: TypePointer UniformConstant 282 + 284(g_tTex3di4): 283(ptr) Variable UniformConstant + 285: TypeImage 44(int) 3D sampled format:Unknown + 286: TypePointer UniformConstant 285 + 287(g_tTex3du4): 286(ptr) Variable UniformConstant + 288: TypeImage 6(float) Cube sampled format:Unknown + 289: TypePointer UniformConstant 288 + 290(g_tTexcdf4): 289(ptr) Variable UniformConstant + 291: TypeImage 24(int) Cube sampled format:Unknown + 292: TypePointer UniformConstant 291 + 293(g_tTexcdi4): 292(ptr) Variable UniformConstant + 294: TypeImage 44(int) Cube sampled format:Unknown + 295: TypePointer UniformConstant 294 + 296(g_tTexcdu4): 295(ptr) Variable UniformConstant + 297: TypePointer UniformConstant 6(float) + 298(c1): 297(ptr) Variable UniformConstant + 299: TypeVector 6(float) 3 + 300: TypePointer UniformConstant 299(fvec3) + 301(c3): 300(ptr) Variable UniformConstant + 302: TypePointer UniformConstant 7(fvec4) + 303(c4): 302(ptr) Variable UniformConstant + 304: TypePointer UniformConstant 24(int) + 305(o1): 304(ptr) Variable UniformConstant + 306: TypeVector 24(int) 3 + 307: TypePointer UniformConstant 306(ivec3) + 308(o3): 307(ptr) Variable UniformConstant + 309: TypePointer UniformConstant 31(ivec4) + 310(o4): 309(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval001): 8(ptr) Variable Function + 33(txval011): 32(ptr) Variable Function + 47(txval021): 46(ptr) Variable Function + 58(txval004): 8(ptr) Variable Function + 71(txval014): 32(ptr) Variable Function + 82(txval024): 46(ptr) Variable Function + 93(txval101): 8(ptr) Variable Function + 101(txval111): 32(ptr) Variable Function + 108(txval121): 46(ptr) Variable Function + 115(txval104): 8(ptr) Variable Function + 126(txval114): 32(ptr) Variable Function + 137(txval124): 46(ptr) Variable Function + 148(txval201): 8(ptr) Variable Function + 156(txval211): 32(ptr) Variable Function + 163(txval221): 46(ptr) Variable Function + 170(txval204): 8(ptr) Variable Function + 181(txval214): 32(ptr) Variable Function + 192(txval224): 46(ptr) Variable Function + 203(txval301): 8(ptr) Variable Function + 211(txval311): 32(ptr) Variable Function + 218(txval321): 46(ptr) Variable Function + 225(txval304): 8(ptr) Variable Function + 236(txval314): 32(ptr) Variable Function + 247(txval324): 46(ptr) Variable Function + 260(psout): 259(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) + 28: 25(ivec2) Load 27(o2) + 30: 7(fvec4) ImageGather 19 23 29 Offset 28 + Store 9(txval001) 30 + 37: 34 Load 36(g_tTex2di4) + 38: 14 Load 16(g_sSamp) + 40: 39 SampledImage 37 38 + 41: 20(fvec2) Load 22(c2) + 42: 25(ivec2) Load 27(o2) + 43: 31(ivec4) ImageGather 40 41 29 Offset 42 + Store 33(txval011) 43 + 51: 48 Load 50(g_tTex2du4) + 52: 14 Load 16(g_sSamp) + 54: 53 SampledImage 51 52 + 55: 20(fvec2) Load 22(c2) + 56: 25(ivec2) Load 27(o2) + 57: 45(ivec4) ImageGather 54 55 29 Offset 56 + Store 47(txval021) 57 + 59: 10 Load 12(g_tTex2df4) + 60: 14 Load 16(g_sSamp) + 61: 18 SampledImage 59 60 + 62: 20(fvec2) Load 22(c2) + 63: 25(ivec2) Load 27(o2) + 64: 25(ivec2) Load 27(o2) + 65: 25(ivec2) Load 27(o2) + 66: 25(ivec2) Load 27(o2) + 69: 68 CompositeConstruct 63 64 65 66 + 70: 7(fvec4) ImageGather 61 62 29 ConstOffsets 69 + Store 58(txval004) 70 + 72: 34 Load 36(g_tTex2di4) + 73: 14 Load 16(g_sSamp) + 74: 39 SampledImage 72 73 + 75: 20(fvec2) Load 22(c2) + 76: 25(ivec2) Load 27(o2) + 77: 25(ivec2) Load 27(o2) + 78: 25(ivec2) Load 27(o2) + 79: 25(ivec2) Load 27(o2) + 80: 68 CompositeConstruct 76 77 78 79 + 81: 31(ivec4) ImageGather 74 75 29 ConstOffsets 80 + Store 71(txval014) 81 + 83: 48 Load 50(g_tTex2du4) + 84: 14 Load 16(g_sSamp) + 85: 53 SampledImage 83 84 + 86: 20(fvec2) Load 22(c2) + 87: 25(ivec2) Load 27(o2) + 88: 25(ivec2) Load 27(o2) + 89: 25(ivec2) Load 27(o2) + 90: 25(ivec2) Load 27(o2) + 91: 68 CompositeConstruct 87 88 89 90 + 92: 45(ivec4) ImageGather 85 86 29 ConstOffsets 91 + Store 82(txval024) 92 + 94: 10 Load 12(g_tTex2df4) + 95: 14 Load 16(g_sSamp) + 96: 18 SampledImage 94 95 + 97: 20(fvec2) Load 22(c2) + 98: 25(ivec2) Load 27(o2) + 100: 7(fvec4) ImageGather 96 97 99 Offset 98 + Store 93(txval101) 100 + 102: 34 Load 36(g_tTex2di4) + 103: 14 Load 16(g_sSamp) + 104: 39 SampledImage 102 103 + 105: 20(fvec2) Load 22(c2) + 106: 25(ivec2) Load 27(o2) + 107: 31(ivec4) ImageGather 104 105 99 Offset 106 + Store 101(txval111) 107 + 109: 48 Load 50(g_tTex2du4) + 110: 14 Load 16(g_sSamp) + 111: 53 SampledImage 109 110 + 112: 20(fvec2) Load 22(c2) + 113: 25(ivec2) Load 27(o2) + 114: 45(ivec4) ImageGather 111 112 99 Offset 113 + Store 108(txval121) 114 + 116: 10 Load 12(g_tTex2df4) + 117: 14 Load 16(g_sSamp) + 118: 18 SampledImage 116 117 + 119: 20(fvec2) Load 22(c2) + 120: 25(ivec2) Load 27(o2) + 121: 25(ivec2) Load 27(o2) + 122: 25(ivec2) Load 27(o2) + 123: 25(ivec2) Load 27(o2) + 124: 68 CompositeConstruct 120 121 122 123 + 125: 7(fvec4) ImageGather 118 119 99 ConstOffsets 124 + Store 115(txval104) 125 + 127: 34 Load 36(g_tTex2di4) + 128: 14 Load 16(g_sSamp) + 129: 39 SampledImage 127 128 + 130: 20(fvec2) Load 22(c2) + 131: 25(ivec2) Load 27(o2) + 132: 25(ivec2) Load 27(o2) + 133: 25(ivec2) Load 27(o2) + 134: 25(ivec2) Load 27(o2) + 135: 68 CompositeConstruct 131 132 133 134 + 136: 31(ivec4) ImageGather 129 130 99 ConstOffsets 135 + Store 126(txval114) 136 + 138: 48 Load 50(g_tTex2du4) + 139: 14 Load 16(g_sSamp) + 140: 53 SampledImage 138 139 + 141: 20(fvec2) Load 22(c2) + 142: 25(ivec2) Load 27(o2) + 143: 25(ivec2) Load 27(o2) + 144: 25(ivec2) Load 27(o2) + 145: 25(ivec2) Load 27(o2) + 146: 68 CompositeConstruct 142 143 144 145 + 147: 45(ivec4) ImageGather 140 141 99 ConstOffsets 146 + Store 137(txval124) 147 + 149: 10 Load 12(g_tTex2df4) + 150: 14 Load 16(g_sSamp) + 151: 18 SampledImage 149 150 + 152: 20(fvec2) Load 22(c2) + 153: 25(ivec2) Load 27(o2) + 155: 7(fvec4) ImageGather 151 152 154 Offset 153 + Store 148(txval201) 155 + 157: 34 Load 36(g_tTex2di4) + 158: 14 Load 16(g_sSamp) + 159: 39 SampledImage 157 158 + 160: 20(fvec2) Load 22(c2) + 161: 25(ivec2) Load 27(o2) + 162: 31(ivec4) ImageGather 159 160 154 Offset 161 + Store 156(txval211) 162 + 164: 48 Load 50(g_tTex2du4) + 165: 14 Load 16(g_sSamp) + 166: 53 SampledImage 164 165 + 167: 20(fvec2) Load 22(c2) + 168: 25(ivec2) Load 27(o2) + 169: 45(ivec4) ImageGather 166 167 154 Offset 168 + Store 163(txval221) 169 + 171: 10 Load 12(g_tTex2df4) + 172: 14 Load 16(g_sSamp) + 173: 18 SampledImage 171 172 + 174: 20(fvec2) Load 22(c2) + 175: 25(ivec2) Load 27(o2) + 176: 25(ivec2) Load 27(o2) + 177: 25(ivec2) Load 27(o2) + 178: 25(ivec2) Load 27(o2) + 179: 68 CompositeConstruct 175 176 177 178 + 180: 7(fvec4) ImageGather 173 174 154 ConstOffsets 179 + Store 170(txval204) 180 + 182: 34 Load 36(g_tTex2di4) + 183: 14 Load 16(g_sSamp) + 184: 39 SampledImage 182 183 + 185: 20(fvec2) Load 22(c2) + 186: 25(ivec2) Load 27(o2) + 187: 25(ivec2) Load 27(o2) + 188: 25(ivec2) Load 27(o2) + 189: 25(ivec2) Load 27(o2) + 190: 68 CompositeConstruct 186 187 188 189 + 191: 31(ivec4) ImageGather 184 185 154 ConstOffsets 190 + Store 181(txval214) 191 + 193: 48 Load 50(g_tTex2du4) + 194: 14 Load 16(g_sSamp) + 195: 53 SampledImage 193 194 + 196: 20(fvec2) Load 22(c2) + 197: 25(ivec2) Load 27(o2) + 198: 25(ivec2) Load 27(o2) + 199: 25(ivec2) Load 27(o2) + 200: 25(ivec2) Load 27(o2) + 201: 68 CompositeConstruct 197 198 199 200 + 202: 45(ivec4) ImageGather 195 196 154 ConstOffsets 201 + Store 192(txval224) 202 + 204: 10 Load 12(g_tTex2df4) + 205: 14 Load 16(g_sSamp) + 206: 18 SampledImage 204 205 + 207: 20(fvec2) Load 22(c2) + 208: 25(ivec2) Load 27(o2) + 210: 7(fvec4) ImageGather 206 207 209 Offset 208 + Store 203(txval301) 210 + 212: 34 Load 36(g_tTex2di4) + 213: 14 Load 16(g_sSamp) + 214: 39 SampledImage 212 213 + 215: 20(fvec2) Load 22(c2) + 216: 25(ivec2) Load 27(o2) + 217: 31(ivec4) ImageGather 214 215 209 Offset 216 + Store 211(txval311) 217 + 219: 48 Load 50(g_tTex2du4) + 220: 14 Load 16(g_sSamp) + 221: 53 SampledImage 219 220 + 222: 20(fvec2) Load 22(c2) + 223: 25(ivec2) Load 27(o2) + 224: 45(ivec4) ImageGather 221 222 209 Offset 223 + Store 218(txval321) 224 + 226: 10 Load 12(g_tTex2df4) + 227: 14 Load 16(g_sSamp) + 228: 18 SampledImage 226 227 + 229: 20(fvec2) Load 22(c2) + 230: 25(ivec2) Load 27(o2) + 231: 25(ivec2) Load 27(o2) + 232: 25(ivec2) Load 27(o2) + 233: 25(ivec2) Load 27(o2) + 234: 68 CompositeConstruct 230 231 232 233 + 235: 7(fvec4) ImageGather 228 229 209 ConstOffsets 234 + Store 225(txval304) 235 + 237: 34 Load 36(g_tTex2di4) + 238: 14 Load 16(g_sSamp) + 239: 39 SampledImage 237 238 + 240: 20(fvec2) Load 22(c2) + 241: 25(ivec2) Load 27(o2) + 242: 25(ivec2) Load 27(o2) + 243: 25(ivec2) Load 27(o2) + 244: 25(ivec2) Load 27(o2) + 245: 68 CompositeConstruct 241 242 243 244 + 246: 31(ivec4) ImageGather 239 240 209 ConstOffsets 245 + Store 236(txval314) 246 + 248: 48 Load 50(g_tTex2du4) + 249: 14 Load 16(g_sSamp) + 250: 53 SampledImage 248 249 + 251: 20(fvec2) Load 22(c2) + 252: 25(ivec2) Load 27(o2) + 253: 25(ivec2) Load 27(o2) + 254: 25(ivec2) Load 27(o2) + 255: 25(ivec2) Load 27(o2) + 256: 68 CompositeConstruct 252 253 254 255 + 257: 45(ivec4) ImageGather 250 251 209 ConstOffsets 256 + Store 247(txval324) 257 + 263: 8(ptr) AccessChain 260(psout) 29 + Store 263 262 + 265: 264(ptr) AccessChain 260(psout) 99 + Store 265 261 + 266:258(PS_OUTPUT) Load 260(psout) + ReturnValue 266 + FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out new file mode 100644 index 00000000..f9c28d03 --- /dev/null +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -0,0 +1,1122 @@ +hlsl.gatherRGBA.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 'txval001' (temp 4-component vector of float) +0:40 textureGatherOffset (global 4-component vector of float) +0:40 Construct combined texture-sampler (temp sampler2DArray) +0:40 'g_tTex2df4a' (uniform texture2DArray) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:40 'c3' (uniform 3-component vector of float) +0:40 'o2' (uniform 2-component vector of int) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval011' (temp 4-component vector of int) +0:41 textureGatherOffset (global 4-component vector of int) +0:41 Construct combined texture-sampler (temp isampler2DArray) +0:41 'g_tTex2di4a' (uniform itexture2DArray) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:41 'c3' (uniform 3-component vector of float) +0:41 'o2' (uniform 2-component vector of int) +0:41 Constant: +0:41 0 (const int) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval021' (temp 4-component vector of uint) +0:42 textureGatherOffset (global 4-component vector of uint) +0:42 Construct combined texture-sampler (temp usampler2DArray) +0:42 'g_tTex2du4a' (uniform utexture2DArray) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:42 'c3' (uniform 3-component vector of float) +0:42 'o2' (uniform 2-component vector of int) +0:42 Constant: +0:42 0 (const int) +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'txval004' (temp 4-component vector of float) +0:44 textureGatherOffsets (global 4-component vector of float) +0:44 Construct combined texture-sampler (temp sampler2DArray) +0:44 'g_tTex2df4a' (uniform texture2DArray) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:44 'c3' (uniform 3-component vector of float) +0:44 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 Constant: +0:44 0 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of int) +0:45 'txval014' (temp 4-component vector of int) +0:45 textureGatherOffsets (global 4-component vector of int) +0:45 Construct combined texture-sampler (temp isampler2DArray) +0:45 'g_tTex2di4a' (uniform itexture2DArray) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:45 'c3' (uniform 3-component vector of float) +0:45 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 Constant: +0:45 0 (const int) +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of uint) +0:46 'txval024' (temp 4-component vector of uint) +0:46 textureGatherOffsets (global 4-component vector of uint) +0:46 Construct combined texture-sampler (temp usampler2DArray) +0:46 'g_tTex2du4a' (uniform utexture2DArray) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:46 'c3' (uniform 3-component vector of float) +0:46 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'txval101' (temp 4-component vector of float) +0:56 textureGatherOffset (global 4-component vector of float) +0:56 Construct combined texture-sampler (temp sampler2DArray) +0:56 'g_tTex2df4a' (uniform texture2DArray) +0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:56 'c3' (uniform 3-component vector of float) +0:56 'o2' (uniform 2-component vector of int) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'txval111' (temp 4-component vector of int) +0:57 textureGatherOffset (global 4-component vector of int) +0:57 Construct combined texture-sampler (temp isampler2DArray) +0:57 'g_tTex2di4a' (uniform itexture2DArray) +0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:57 'c3' (uniform 3-component vector of float) +0:57 'o2' (uniform 2-component vector of int) +0:57 Constant: +0:57 1 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'txval121' (temp 4-component vector of uint) +0:58 textureGatherOffset (global 4-component vector of uint) +0:58 Construct combined texture-sampler (temp usampler2DArray) +0:58 'g_tTex2du4a' (uniform utexture2DArray) +0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:58 'c3' (uniform 3-component vector of float) +0:58 'o2' (uniform 2-component vector of int) +0:58 Constant: +0:58 1 (const int) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:60 'txval104' (temp 4-component vector of float) +0:60 textureGatherOffsets (global 4-component vector of float) +0:60 Construct combined texture-sampler (temp sampler2DArray) +0:60 'g_tTex2df4a' (uniform texture2DArray) +0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:60 'c3' (uniform 3-component vector of float) +0:60 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 Constant: +0:60 1 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of int) +0:61 'txval114' (temp 4-component vector of int) +0:61 textureGatherOffsets (global 4-component vector of int) +0:61 Construct combined texture-sampler (temp isampler2DArray) +0:61 'g_tTex2di4a' (uniform itexture2DArray) +0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:61 'c3' (uniform 3-component vector of float) +0:61 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of uint) +0:62 'txval124' (temp 4-component vector of uint) +0:62 textureGatherOffsets (global 4-component vector of uint) +0:62 Construct combined texture-sampler (temp usampler2DArray) +0:62 'g_tTex2du4a' (uniform utexture2DArray) +0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:62 'c3' (uniform 3-component vector of float) +0:62 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 Constant: +0:62 1 (const int) +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:72 'txval201' (temp 4-component vector of float) +0:72 textureGatherOffset (global 4-component vector of float) +0:72 Construct combined texture-sampler (temp sampler2DArray) +0:72 'g_tTex2df4a' (uniform texture2DArray) +0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:72 'c3' (uniform 3-component vector of float) +0:72 'o2' (uniform 2-component vector of int) +0:72 Constant: +0:72 2 (const int) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of int) +0:73 'txval211' (temp 4-component vector of int) +0:73 textureGatherOffset (global 4-component vector of int) +0:73 Construct combined texture-sampler (temp isampler2DArray) +0:73 'g_tTex2di4a' (uniform itexture2DArray) +0:73 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:73 'c3' (uniform 3-component vector of float) +0:73 'o2' (uniform 2-component vector of int) +0:73 Constant: +0:73 2 (const int) +0:74 Sequence +0:74 move second child to first child (temp 4-component vector of uint) +0:74 'txval221' (temp 4-component vector of uint) +0:74 textureGatherOffset (global 4-component vector of uint) +0:74 Construct combined texture-sampler (temp usampler2DArray) +0:74 'g_tTex2du4a' (uniform utexture2DArray) +0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:74 'c3' (uniform 3-component vector of float) +0:74 'o2' (uniform 2-component vector of int) +0:74 Constant: +0:74 2 (const int) +0:76 Sequence +0:76 move second child to first child (temp 4-component vector of float) +0:76 'txval204' (temp 4-component vector of float) +0:76 textureGatherOffsets (global 4-component vector of float) +0:76 Construct combined texture-sampler (temp sampler2DArray) +0:76 'g_tTex2df4a' (uniform texture2DArray) +0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:76 'c3' (uniform 3-component vector of float) +0:76 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 Constant: +0:76 2 (const int) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of int) +0:77 'txval214' (temp 4-component vector of int) +0:77 textureGatherOffsets (global 4-component vector of int) +0:77 Construct combined texture-sampler (temp isampler2DArray) +0:77 'g_tTex2di4a' (uniform itexture2DArray) +0:77 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:77 'c3' (uniform 3-component vector of float) +0:77 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 Constant: +0:77 2 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of uint) +0:78 'txval224' (temp 4-component vector of uint) +0:78 textureGatherOffsets (global 4-component vector of uint) +0:78 Construct combined texture-sampler (temp usampler2DArray) +0:78 'g_tTex2du4a' (uniform utexture2DArray) +0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:78 'c3' (uniform 3-component vector of float) +0:78 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 Constant: +0:78 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 4-component vector of float) +0:88 'txval301' (temp 4-component vector of float) +0:88 textureGatherOffset (global 4-component vector of float) +0:88 Construct combined texture-sampler (temp sampler2DArray) +0:88 'g_tTex2df4a' (uniform texture2DArray) +0:88 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:88 'c3' (uniform 3-component vector of float) +0:88 'o2' (uniform 2-component vector of int) +0:88 Constant: +0:88 3 (const int) +0:89 Sequence +0:89 move second child to first child (temp 4-component vector of int) +0:89 'txval311' (temp 4-component vector of int) +0:89 textureGatherOffset (global 4-component vector of int) +0:89 Construct combined texture-sampler (temp isampler2DArray) +0:89 'g_tTex2di4a' (uniform itexture2DArray) +0:89 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:89 'c3' (uniform 3-component vector of float) +0:89 'o2' (uniform 2-component vector of int) +0:89 Constant: +0:89 3 (const int) +0:90 Sequence +0:90 move second child to first child (temp 4-component vector of uint) +0:90 'txval321' (temp 4-component vector of uint) +0:90 textureGatherOffset (global 4-component vector of uint) +0:90 Construct combined texture-sampler (temp usampler2DArray) +0:90 'g_tTex2du4a' (uniform utexture2DArray) +0:90 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:90 'c3' (uniform 3-component vector of float) +0:90 'o2' (uniform 2-component vector of int) +0:90 Constant: +0:90 3 (const int) +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:92 'txval304' (temp 4-component vector of float) +0:92 textureGatherOffsets (global 4-component vector of float) +0:92 Construct combined texture-sampler (temp sampler2DArray) +0:92 'g_tTex2df4a' (uniform texture2DArray) +0:92 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:92 'c3' (uniform 3-component vector of float) +0:92 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 Constant: +0:92 3 (const int) +0:93 Sequence +0:93 move second child to first child (temp 4-component vector of int) +0:93 'txval314' (temp 4-component vector of int) +0:93 textureGatherOffsets (global 4-component vector of int) +0:93 Construct combined texture-sampler (temp isampler2DArray) +0:93 'g_tTex2di4a' (uniform itexture2DArray) +0:93 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:93 'c3' (uniform 3-component vector of float) +0:93 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 Constant: +0:93 3 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of uint) +0:94 'txval324' (temp 4-component vector of uint) +0:94 textureGatherOffsets (global 4-component vector of uint) +0:94 Construct combined texture-sampler (temp usampler2DArray) +0:94 'g_tTex2du4a' (uniform utexture2DArray) +0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:94 'c3' (uniform 3-component vector of float) +0:94 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 Constant: +0:94 3 (const int) +0:106 move second child to first child (temp 4-component vector of float) +0:106 Color: direct index for structure (temp 4-component vector of float) +0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:107 move second child to first child (temp float) +0:107 Depth: direct index for structure (temp float FragDepth) +0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 1.000000 +0:109 Branch: Return with expression +0:109 '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) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 'txval001' (temp 4-component vector of float) +0:40 textureGatherOffset (global 4-component vector of float) +0:40 Construct combined texture-sampler (temp sampler2DArray) +0:40 'g_tTex2df4a' (uniform texture2DArray) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:40 'c3' (uniform 3-component vector of float) +0:40 'o2' (uniform 2-component vector of int) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval011' (temp 4-component vector of int) +0:41 textureGatherOffset (global 4-component vector of int) +0:41 Construct combined texture-sampler (temp isampler2DArray) +0:41 'g_tTex2di4a' (uniform itexture2DArray) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:41 'c3' (uniform 3-component vector of float) +0:41 'o2' (uniform 2-component vector of int) +0:41 Constant: +0:41 0 (const int) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval021' (temp 4-component vector of uint) +0:42 textureGatherOffset (global 4-component vector of uint) +0:42 Construct combined texture-sampler (temp usampler2DArray) +0:42 'g_tTex2du4a' (uniform utexture2DArray) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:42 'c3' (uniform 3-component vector of float) +0:42 'o2' (uniform 2-component vector of int) +0:42 Constant: +0:42 0 (const int) +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'txval004' (temp 4-component vector of float) +0:44 textureGatherOffsets (global 4-component vector of float) +0:44 Construct combined texture-sampler (temp sampler2DArray) +0:44 'g_tTex2df4a' (uniform texture2DArray) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:44 'c3' (uniform 3-component vector of float) +0:44 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 Constant: +0:44 0 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of int) +0:45 'txval014' (temp 4-component vector of int) +0:45 textureGatherOffsets (global 4-component vector of int) +0:45 Construct combined texture-sampler (temp isampler2DArray) +0:45 'g_tTex2di4a' (uniform itexture2DArray) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:45 'c3' (uniform 3-component vector of float) +0:45 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 Constant: +0:45 0 (const int) +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of uint) +0:46 'txval024' (temp 4-component vector of uint) +0:46 textureGatherOffsets (global 4-component vector of uint) +0:46 Construct combined texture-sampler (temp usampler2DArray) +0:46 'g_tTex2du4a' (uniform utexture2DArray) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:46 'c3' (uniform 3-component vector of float) +0:46 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'txval101' (temp 4-component vector of float) +0:56 textureGatherOffset (global 4-component vector of float) +0:56 Construct combined texture-sampler (temp sampler2DArray) +0:56 'g_tTex2df4a' (uniform texture2DArray) +0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:56 'c3' (uniform 3-component vector of float) +0:56 'o2' (uniform 2-component vector of int) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'txval111' (temp 4-component vector of int) +0:57 textureGatherOffset (global 4-component vector of int) +0:57 Construct combined texture-sampler (temp isampler2DArray) +0:57 'g_tTex2di4a' (uniform itexture2DArray) +0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:57 'c3' (uniform 3-component vector of float) +0:57 'o2' (uniform 2-component vector of int) +0:57 Constant: +0:57 1 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'txval121' (temp 4-component vector of uint) +0:58 textureGatherOffset (global 4-component vector of uint) +0:58 Construct combined texture-sampler (temp usampler2DArray) +0:58 'g_tTex2du4a' (uniform utexture2DArray) +0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:58 'c3' (uniform 3-component vector of float) +0:58 'o2' (uniform 2-component vector of int) +0:58 Constant: +0:58 1 (const int) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:60 'txval104' (temp 4-component vector of float) +0:60 textureGatherOffsets (global 4-component vector of float) +0:60 Construct combined texture-sampler (temp sampler2DArray) +0:60 'g_tTex2df4a' (uniform texture2DArray) +0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:60 'c3' (uniform 3-component vector of float) +0:60 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 Constant: +0:60 1 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of int) +0:61 'txval114' (temp 4-component vector of int) +0:61 textureGatherOffsets (global 4-component vector of int) +0:61 Construct combined texture-sampler (temp isampler2DArray) +0:61 'g_tTex2di4a' (uniform itexture2DArray) +0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:61 'c3' (uniform 3-component vector of float) +0:61 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of uint) +0:62 'txval124' (temp 4-component vector of uint) +0:62 textureGatherOffsets (global 4-component vector of uint) +0:62 Construct combined texture-sampler (temp usampler2DArray) +0:62 'g_tTex2du4a' (uniform utexture2DArray) +0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:62 'c3' (uniform 3-component vector of float) +0:62 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 Constant: +0:62 1 (const int) +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:72 'txval201' (temp 4-component vector of float) +0:72 textureGatherOffset (global 4-component vector of float) +0:72 Construct combined texture-sampler (temp sampler2DArray) +0:72 'g_tTex2df4a' (uniform texture2DArray) +0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:72 'c3' (uniform 3-component vector of float) +0:72 'o2' (uniform 2-component vector of int) +0:72 Constant: +0:72 2 (const int) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of int) +0:73 'txval211' (temp 4-component vector of int) +0:73 textureGatherOffset (global 4-component vector of int) +0:73 Construct combined texture-sampler (temp isampler2DArray) +0:73 'g_tTex2di4a' (uniform itexture2DArray) +0:73 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:73 'c3' (uniform 3-component vector of float) +0:73 'o2' (uniform 2-component vector of int) +0:73 Constant: +0:73 2 (const int) +0:74 Sequence +0:74 move second child to first child (temp 4-component vector of uint) +0:74 'txval221' (temp 4-component vector of uint) +0:74 textureGatherOffset (global 4-component vector of uint) +0:74 Construct combined texture-sampler (temp usampler2DArray) +0:74 'g_tTex2du4a' (uniform utexture2DArray) +0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:74 'c3' (uniform 3-component vector of float) +0:74 'o2' (uniform 2-component vector of int) +0:74 Constant: +0:74 2 (const int) +0:76 Sequence +0:76 move second child to first child (temp 4-component vector of float) +0:76 'txval204' (temp 4-component vector of float) +0:76 textureGatherOffsets (global 4-component vector of float) +0:76 Construct combined texture-sampler (temp sampler2DArray) +0:76 'g_tTex2df4a' (uniform texture2DArray) +0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:76 'c3' (uniform 3-component vector of float) +0:76 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 Constant: +0:76 2 (const int) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of int) +0:77 'txval214' (temp 4-component vector of int) +0:77 textureGatherOffsets (global 4-component vector of int) +0:77 Construct combined texture-sampler (temp isampler2DArray) +0:77 'g_tTex2di4a' (uniform itexture2DArray) +0:77 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:77 'c3' (uniform 3-component vector of float) +0:77 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 Constant: +0:77 2 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of uint) +0:78 'txval224' (temp 4-component vector of uint) +0:78 textureGatherOffsets (global 4-component vector of uint) +0:78 Construct combined texture-sampler (temp usampler2DArray) +0:78 'g_tTex2du4a' (uniform utexture2DArray) +0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:78 'c3' (uniform 3-component vector of float) +0:78 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 Constant: +0:78 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 4-component vector of float) +0:88 'txval301' (temp 4-component vector of float) +0:88 textureGatherOffset (global 4-component vector of float) +0:88 Construct combined texture-sampler (temp sampler2DArray) +0:88 'g_tTex2df4a' (uniform texture2DArray) +0:88 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:88 'c3' (uniform 3-component vector of float) +0:88 'o2' (uniform 2-component vector of int) +0:88 Constant: +0:88 3 (const int) +0:89 Sequence +0:89 move second child to first child (temp 4-component vector of int) +0:89 'txval311' (temp 4-component vector of int) +0:89 textureGatherOffset (global 4-component vector of int) +0:89 Construct combined texture-sampler (temp isampler2DArray) +0:89 'g_tTex2di4a' (uniform itexture2DArray) +0:89 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:89 'c3' (uniform 3-component vector of float) +0:89 'o2' (uniform 2-component vector of int) +0:89 Constant: +0:89 3 (const int) +0:90 Sequence +0:90 move second child to first child (temp 4-component vector of uint) +0:90 'txval321' (temp 4-component vector of uint) +0:90 textureGatherOffset (global 4-component vector of uint) +0:90 Construct combined texture-sampler (temp usampler2DArray) +0:90 'g_tTex2du4a' (uniform utexture2DArray) +0:90 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:90 'c3' (uniform 3-component vector of float) +0:90 'o2' (uniform 2-component vector of int) +0:90 Constant: +0:90 3 (const int) +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:92 'txval304' (temp 4-component vector of float) +0:92 textureGatherOffsets (global 4-component vector of float) +0:92 Construct combined texture-sampler (temp sampler2DArray) +0:92 'g_tTex2df4a' (uniform texture2DArray) +0:92 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:92 'c3' (uniform 3-component vector of float) +0:92 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 Constant: +0:92 3 (const int) +0:93 Sequence +0:93 move second child to first child (temp 4-component vector of int) +0:93 'txval314' (temp 4-component vector of int) +0:93 textureGatherOffsets (global 4-component vector of int) +0:93 Construct combined texture-sampler (temp isampler2DArray) +0:93 'g_tTex2di4a' (uniform itexture2DArray) +0:93 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:93 'c3' (uniform 3-component vector of float) +0:93 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 Constant: +0:93 3 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of uint) +0:94 'txval324' (temp 4-component vector of uint) +0:94 textureGatherOffsets (global 4-component vector of uint) +0:94 Construct combined texture-sampler (temp usampler2DArray) +0:94 'g_tTex2du4a' (uniform utexture2DArray) +0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:94 'c3' (uniform 3-component vector of float) +0:94 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 Constant: +0:94 3 (const int) +0:106 move second child to first child (temp 4-component vector of float) +0:106 Color: direct index for structure (temp 4-component vector of float) +0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:107 move second child to first child (temp float) +0:107 Depth: direct index for structure (temp float FragDepth) +0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 1.000000 +0:109 Branch: Return with expression +0:109 '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) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 301 + + Capability Shader + Capability ImageGatherExtended + 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 "txval001" + Name 12 "g_tTex2df4a" + Name 16 "g_sSamp" + Name 22 "c3" + Name 27 "o2" + Name 33 "txval011" + Name 36 "g_tTex2di4a" + Name 47 "txval021" + Name 50 "g_tTex2du4a" + Name 58 "txval004" + Name 71 "txval014" + Name 82 "txval024" + Name 93 "txval101" + Name 101 "txval111" + Name 108 "txval121" + Name 115 "txval104" + Name 126 "txval114" + Name 137 "txval124" + Name 148 "txval201" + Name 156 "txval211" + Name 163 "txval221" + Name 170 "txval204" + Name 181 "txval214" + Name 192 "txval224" + Name 203 "txval301" + Name 211 "txval311" + Name 218 "txval321" + Name 225 "txval304" + Name 236 "txval314" + Name 247 "txval324" + Name 258 "PS_OUTPUT" + MemberName 258(PS_OUTPUT) 0 "Color" + MemberName 258(PS_OUTPUT) 1 "Depth" + Name 260 "psout" + Name 268 "g_sSamp2d" + Name 271 "g_tTex1df4a" + Name 274 "g_tTex1di4a" + Name 277 "g_tTex1du4a" + Name 280 "g_tTexcdf4a" + Name 283 "g_tTexcdi4a" + Name 286 "g_tTexcdu4a" + Name 288 "c1" + Name 291 "c2" + Name 293 "c4" + Name 295 "o1" + Name 298 "o3" + Name 300 "o4" + Decorate 12(g_tTex2df4a) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 36(g_tTex2di4a) DescriptorSet 0 + Decorate 50(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 268(g_sSamp2d) DescriptorSet 0 + Decorate 271(g_tTex1df4a) DescriptorSet 0 + Decorate 271(g_tTex1df4a) Binding 0 + Decorate 274(g_tTex1di4a) DescriptorSet 0 + Decorate 277(g_tTex1du4a) DescriptorSet 0 + Decorate 280(g_tTexcdf4a) DescriptorSet 0 + Decorate 283(g_tTexcdi4a) DescriptorSet 0 + Decorate 286(g_tTexcdu4a) 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: TypeVector 24(int) 2 + 26: TypePointer UniformConstant 25(ivec2) + 27(o2): 26(ptr) Variable UniformConstant + 29: 24(int) Constant 0 + 31: TypeVector 24(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 24(int) 2D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex2di4a): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 44: TypeInt 32 0 + 45: TypeVector 44(int) 4 + 46: TypePointer Function 45(ivec4) + 48: TypeImage 44(int) 2D array sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex2du4a): 49(ptr) Variable UniformConstant + 53: TypeSampledImage 48 + 67: 44(int) Constant 4 + 68: TypeArray 25(ivec2) 67 + 99: 24(int) Constant 1 + 154: 24(int) Constant 2 + 209: 24(int) Constant 3 + 258(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 259: TypePointer Function 258(PS_OUTPUT) + 261: 6(float) Constant 1065353216 + 262: 7(fvec4) ConstantComposite 261 261 261 261 + 264: TypePointer Function 6(float) + 268(g_sSamp2d): 15(ptr) Variable UniformConstant + 269: TypeImage 6(float) 1D array sampled format:Unknown + 270: TypePointer UniformConstant 269 +271(g_tTex1df4a): 270(ptr) Variable UniformConstant + 272: TypeImage 24(int) 1D array sampled format:Unknown + 273: TypePointer UniformConstant 272 +274(g_tTex1di4a): 273(ptr) Variable UniformConstant + 275: TypeImage 44(int) 1D array sampled format:Unknown + 276: TypePointer UniformConstant 275 +277(g_tTex1du4a): 276(ptr) Variable UniformConstant + 278: TypeImage 6(float) Cube array sampled format:Unknown + 279: TypePointer UniformConstant 278 +280(g_tTexcdf4a): 279(ptr) Variable UniformConstant + 281: TypeImage 24(int) Cube array sampled format:Unknown + 282: TypePointer UniformConstant 281 +283(g_tTexcdi4a): 282(ptr) Variable UniformConstant + 284: TypeImage 44(int) Cube array sampled format:Unknown + 285: TypePointer UniformConstant 284 +286(g_tTexcdu4a): 285(ptr) Variable UniformConstant + 287: TypePointer UniformConstant 6(float) + 288(c1): 287(ptr) Variable UniformConstant + 289: TypeVector 6(float) 2 + 290: TypePointer UniformConstant 289(fvec2) + 291(c2): 290(ptr) Variable UniformConstant + 292: TypePointer UniformConstant 7(fvec4) + 293(c4): 292(ptr) Variable UniformConstant + 294: TypePointer UniformConstant 24(int) + 295(o1): 294(ptr) Variable UniformConstant + 296: TypeVector 24(int) 3 + 297: TypePointer UniformConstant 296(ivec3) + 298(o3): 297(ptr) Variable UniformConstant + 299: TypePointer UniformConstant 31(ivec4) + 300(o4): 299(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval001): 8(ptr) Variable Function + 33(txval011): 32(ptr) Variable Function + 47(txval021): 46(ptr) Variable Function + 58(txval004): 8(ptr) Variable Function + 71(txval014): 32(ptr) Variable Function + 82(txval024): 46(ptr) Variable Function + 93(txval101): 8(ptr) Variable Function + 101(txval111): 32(ptr) Variable Function + 108(txval121): 46(ptr) Variable Function + 115(txval104): 8(ptr) Variable Function + 126(txval114): 32(ptr) Variable Function + 137(txval124): 46(ptr) Variable Function + 148(txval201): 8(ptr) Variable Function + 156(txval211): 32(ptr) Variable Function + 163(txval221): 46(ptr) Variable Function + 170(txval204): 8(ptr) Variable Function + 181(txval214): 32(ptr) Variable Function + 192(txval224): 46(ptr) Variable Function + 203(txval301): 8(ptr) Variable Function + 211(txval311): 32(ptr) Variable Function + 218(txval321): 46(ptr) Variable Function + 225(txval304): 8(ptr) Variable Function + 236(txval314): 32(ptr) Variable Function + 247(txval324): 46(ptr) Variable Function + 260(psout): 259(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) + 28: 25(ivec2) Load 27(o2) + 30: 7(fvec4) ImageGather 19 23 29 Offset 28 + Store 9(txval001) 30 + 37: 34 Load 36(g_tTex2di4a) + 38: 14 Load 16(g_sSamp) + 40: 39 SampledImage 37 38 + 41: 20(fvec3) Load 22(c3) + 42: 25(ivec2) Load 27(o2) + 43: 31(ivec4) ImageGather 40 41 29 Offset 42 + Store 33(txval011) 43 + 51: 48 Load 50(g_tTex2du4a) + 52: 14 Load 16(g_sSamp) + 54: 53 SampledImage 51 52 + 55: 20(fvec3) Load 22(c3) + 56: 25(ivec2) Load 27(o2) + 57: 45(ivec4) ImageGather 54 55 29 Offset 56 + Store 47(txval021) 57 + 59: 10 Load 12(g_tTex2df4a) + 60: 14 Load 16(g_sSamp) + 61: 18 SampledImage 59 60 + 62: 20(fvec3) Load 22(c3) + 63: 25(ivec2) Load 27(o2) + 64: 25(ivec2) Load 27(o2) + 65: 25(ivec2) Load 27(o2) + 66: 25(ivec2) Load 27(o2) + 69: 68 CompositeConstruct 63 64 65 66 + 70: 7(fvec4) ImageGather 61 62 29 ConstOffsets 69 + Store 58(txval004) 70 + 72: 34 Load 36(g_tTex2di4a) + 73: 14 Load 16(g_sSamp) + 74: 39 SampledImage 72 73 + 75: 20(fvec3) Load 22(c3) + 76: 25(ivec2) Load 27(o2) + 77: 25(ivec2) Load 27(o2) + 78: 25(ivec2) Load 27(o2) + 79: 25(ivec2) Load 27(o2) + 80: 68 CompositeConstruct 76 77 78 79 + 81: 31(ivec4) ImageGather 74 75 29 ConstOffsets 80 + Store 71(txval014) 81 + 83: 48 Load 50(g_tTex2du4a) + 84: 14 Load 16(g_sSamp) + 85: 53 SampledImage 83 84 + 86: 20(fvec3) Load 22(c3) + 87: 25(ivec2) Load 27(o2) + 88: 25(ivec2) Load 27(o2) + 89: 25(ivec2) Load 27(o2) + 90: 25(ivec2) Load 27(o2) + 91: 68 CompositeConstruct 87 88 89 90 + 92: 45(ivec4) ImageGather 85 86 29 ConstOffsets 91 + Store 82(txval024) 92 + 94: 10 Load 12(g_tTex2df4a) + 95: 14 Load 16(g_sSamp) + 96: 18 SampledImage 94 95 + 97: 20(fvec3) Load 22(c3) + 98: 25(ivec2) Load 27(o2) + 100: 7(fvec4) ImageGather 96 97 99 Offset 98 + Store 93(txval101) 100 + 102: 34 Load 36(g_tTex2di4a) + 103: 14 Load 16(g_sSamp) + 104: 39 SampledImage 102 103 + 105: 20(fvec3) Load 22(c3) + 106: 25(ivec2) Load 27(o2) + 107: 31(ivec4) ImageGather 104 105 99 Offset 106 + Store 101(txval111) 107 + 109: 48 Load 50(g_tTex2du4a) + 110: 14 Load 16(g_sSamp) + 111: 53 SampledImage 109 110 + 112: 20(fvec3) Load 22(c3) + 113: 25(ivec2) Load 27(o2) + 114: 45(ivec4) ImageGather 111 112 99 Offset 113 + Store 108(txval121) 114 + 116: 10 Load 12(g_tTex2df4a) + 117: 14 Load 16(g_sSamp) + 118: 18 SampledImage 116 117 + 119: 20(fvec3) Load 22(c3) + 120: 25(ivec2) Load 27(o2) + 121: 25(ivec2) Load 27(o2) + 122: 25(ivec2) Load 27(o2) + 123: 25(ivec2) Load 27(o2) + 124: 68 CompositeConstruct 120 121 122 123 + 125: 7(fvec4) ImageGather 118 119 99 ConstOffsets 124 + Store 115(txval104) 125 + 127: 34 Load 36(g_tTex2di4a) + 128: 14 Load 16(g_sSamp) + 129: 39 SampledImage 127 128 + 130: 20(fvec3) Load 22(c3) + 131: 25(ivec2) Load 27(o2) + 132: 25(ivec2) Load 27(o2) + 133: 25(ivec2) Load 27(o2) + 134: 25(ivec2) Load 27(o2) + 135: 68 CompositeConstruct 131 132 133 134 + 136: 31(ivec4) ImageGather 129 130 99 ConstOffsets 135 + Store 126(txval114) 136 + 138: 48 Load 50(g_tTex2du4a) + 139: 14 Load 16(g_sSamp) + 140: 53 SampledImage 138 139 + 141: 20(fvec3) Load 22(c3) + 142: 25(ivec2) Load 27(o2) + 143: 25(ivec2) Load 27(o2) + 144: 25(ivec2) Load 27(o2) + 145: 25(ivec2) Load 27(o2) + 146: 68 CompositeConstruct 142 143 144 145 + 147: 45(ivec4) ImageGather 140 141 99 ConstOffsets 146 + Store 137(txval124) 147 + 149: 10 Load 12(g_tTex2df4a) + 150: 14 Load 16(g_sSamp) + 151: 18 SampledImage 149 150 + 152: 20(fvec3) Load 22(c3) + 153: 25(ivec2) Load 27(o2) + 155: 7(fvec4) ImageGather 151 152 154 Offset 153 + Store 148(txval201) 155 + 157: 34 Load 36(g_tTex2di4a) + 158: 14 Load 16(g_sSamp) + 159: 39 SampledImage 157 158 + 160: 20(fvec3) Load 22(c3) + 161: 25(ivec2) Load 27(o2) + 162: 31(ivec4) ImageGather 159 160 154 Offset 161 + Store 156(txval211) 162 + 164: 48 Load 50(g_tTex2du4a) + 165: 14 Load 16(g_sSamp) + 166: 53 SampledImage 164 165 + 167: 20(fvec3) Load 22(c3) + 168: 25(ivec2) Load 27(o2) + 169: 45(ivec4) ImageGather 166 167 154 Offset 168 + Store 163(txval221) 169 + 171: 10 Load 12(g_tTex2df4a) + 172: 14 Load 16(g_sSamp) + 173: 18 SampledImage 171 172 + 174: 20(fvec3) Load 22(c3) + 175: 25(ivec2) Load 27(o2) + 176: 25(ivec2) Load 27(o2) + 177: 25(ivec2) Load 27(o2) + 178: 25(ivec2) Load 27(o2) + 179: 68 CompositeConstruct 175 176 177 178 + 180: 7(fvec4) ImageGather 173 174 154 ConstOffsets 179 + Store 170(txval204) 180 + 182: 34 Load 36(g_tTex2di4a) + 183: 14 Load 16(g_sSamp) + 184: 39 SampledImage 182 183 + 185: 20(fvec3) Load 22(c3) + 186: 25(ivec2) Load 27(o2) + 187: 25(ivec2) Load 27(o2) + 188: 25(ivec2) Load 27(o2) + 189: 25(ivec2) Load 27(o2) + 190: 68 CompositeConstruct 186 187 188 189 + 191: 31(ivec4) ImageGather 184 185 154 ConstOffsets 190 + Store 181(txval214) 191 + 193: 48 Load 50(g_tTex2du4a) + 194: 14 Load 16(g_sSamp) + 195: 53 SampledImage 193 194 + 196: 20(fvec3) Load 22(c3) + 197: 25(ivec2) Load 27(o2) + 198: 25(ivec2) Load 27(o2) + 199: 25(ivec2) Load 27(o2) + 200: 25(ivec2) Load 27(o2) + 201: 68 CompositeConstruct 197 198 199 200 + 202: 45(ivec4) ImageGather 195 196 154 ConstOffsets 201 + Store 192(txval224) 202 + 204: 10 Load 12(g_tTex2df4a) + 205: 14 Load 16(g_sSamp) + 206: 18 SampledImage 204 205 + 207: 20(fvec3) Load 22(c3) + 208: 25(ivec2) Load 27(o2) + 210: 7(fvec4) ImageGather 206 207 209 Offset 208 + Store 203(txval301) 210 + 212: 34 Load 36(g_tTex2di4a) + 213: 14 Load 16(g_sSamp) + 214: 39 SampledImage 212 213 + 215: 20(fvec3) Load 22(c3) + 216: 25(ivec2) Load 27(o2) + 217: 31(ivec4) ImageGather 214 215 209 Offset 216 + Store 211(txval311) 217 + 219: 48 Load 50(g_tTex2du4a) + 220: 14 Load 16(g_sSamp) + 221: 53 SampledImage 219 220 + 222: 20(fvec3) Load 22(c3) + 223: 25(ivec2) Load 27(o2) + 224: 45(ivec4) ImageGather 221 222 209 Offset 223 + Store 218(txval321) 224 + 226: 10 Load 12(g_tTex2df4a) + 227: 14 Load 16(g_sSamp) + 228: 18 SampledImage 226 227 + 229: 20(fvec3) Load 22(c3) + 230: 25(ivec2) Load 27(o2) + 231: 25(ivec2) Load 27(o2) + 232: 25(ivec2) Load 27(o2) + 233: 25(ivec2) Load 27(o2) + 234: 68 CompositeConstruct 230 231 232 233 + 235: 7(fvec4) ImageGather 228 229 209 ConstOffsets 234 + Store 225(txval304) 235 + 237: 34 Load 36(g_tTex2di4a) + 238: 14 Load 16(g_sSamp) + 239: 39 SampledImage 237 238 + 240: 20(fvec3) Load 22(c3) + 241: 25(ivec2) Load 27(o2) + 242: 25(ivec2) Load 27(o2) + 243: 25(ivec2) Load 27(o2) + 244: 25(ivec2) Load 27(o2) + 245: 68 CompositeConstruct 241 242 243 244 + 246: 31(ivec4) ImageGather 239 240 209 ConstOffsets 245 + Store 236(txval314) 246 + 248: 48 Load 50(g_tTex2du4a) + 249: 14 Load 16(g_sSamp) + 250: 53 SampledImage 248 249 + 251: 20(fvec3) Load 22(c3) + 252: 25(ivec2) Load 27(o2) + 253: 25(ivec2) Load 27(o2) + 254: 25(ivec2) Load 27(o2) + 255: 25(ivec2) Load 27(o2) + 256: 68 CompositeConstruct 252 253 254 255 + 257: 45(ivec4) ImageGather 250 251 209 ConstOffsets 256 + Store 247(txval324) 257 + 263: 8(ptr) AccessChain 260(psout) 29 + Store 263 262 + 265: 264(ptr) AccessChain 260(psout) 99 + Store 265 261 + 266:258(PS_OUTPUT) Load 260(psout) + ReturnValue 266 + FunctionEnd diff --git a/Test/hlsl.gatherRGBA.array.dx10.frag b/Test/hlsl.gatherRGBA.array.dx10.frag new file mode 100644 index 00000000..279b6d60 --- /dev/null +++ b/Test/hlsl.gatherRGBA.array.dx10.frag @@ -0,0 +1,71 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray 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; +} diff --git a/Test/hlsl.gatherRGBA.basic.dx10.frag b/Test/hlsl.gatherRGBA.basic.dx10.frag new file mode 100644 index 00000000..17fae193 --- /dev/null +++ b/Test/hlsl.gatherRGBA.basic.dx10.frag @@ -0,0 +1,77 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube 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; +} diff --git a/Test/hlsl.gatherRGBA.offset.dx10.frag b/Test/hlsl.gatherRGBA.offset.dx10.frag new file mode 100644 index 00000000..a8909b4a --- /dev/null +++ b/Test/hlsl.gatherRGBA.offset.dx10.frag @@ -0,0 +1,116 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube 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; +} diff --git a/Test/hlsl.gatherRGBA.offsetarray.dx10.frag b/Test/hlsl.gatherRGBA.offsetarray.dx10.frag new file mode 100644 index 00000000..ca32f56b --- /dev/null +++ b/Test/hlsl.gatherRGBA.offsetarray.dx10.frag @@ -0,0 +1,110 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray 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; +} diff --git a/Test/hlsl.gathercmpRGBA.array.dx10.frag b/Test/hlsl.gathercmpRGBA.array.dx10.frag new file mode 100644 index 00000000..4ed7f4b4 --- /dev/null +++ b/Test/hlsl.gathercmpRGBA.array.dx10.frag @@ -0,0 +1,70 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray 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; +} diff --git a/Test/hlsl.gathercmpRGBA.basic.dx10.frag b/Test/hlsl.gathercmpRGBA.basic.dx10.frag new file mode 100644 index 00000000..9dc16315 --- /dev/null +++ b/Test/hlsl.gathercmpRGBA.basic.dx10.frag @@ -0,0 +1,76 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube 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; +} diff --git a/Test/hlsl.gathercmpRGBA.offset.dx10.frag b/Test/hlsl.gathercmpRGBA.offset.dx10.frag new file mode 100644 index 00000000..3a6fbb74 --- /dev/null +++ b/Test/hlsl.gathercmpRGBA.offset.dx10.frag @@ -0,0 +1,115 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube 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; +} diff --git a/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag b/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag new file mode 100644 index 00000000..11131bcb --- /dev/null +++ b/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag @@ -0,0 +1,109 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray 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; +} diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index bbca9349..5166e3d5 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -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; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index f9539ecd..0d99d1ea 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -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"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index fcbe12cd..fc926d74 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -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: { diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 25e8fe8f..721da625 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -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); } //