Merge pull request #2 from KhronosGroup/master
Integrating Master into dankbaker fork
This commit is contained in:
		
						commit
						c0962f1e90
					
				
							
								
								
									
										884
									
								
								Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										884
									
								
								Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,884 @@
 | 
			
		||||
hlsl.gatherRGBA.array.dx10.frag
 | 
			
		||||
Shader version: 450
 | 
			
		||||
gl_FragCoord origin is upper left
 | 
			
		||||
0:? Sequence
 | 
			
		||||
0:72  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:28    Function Parameters: 
 | 
			
		||||
0:?     Sequence
 | 
			
		||||
0:33      Sequence
 | 
			
		||||
0:33        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:33          'txval00' (temp 4-component vector of float)
 | 
			
		||||
0:33          textureGather (global 4-component vector of float)
 | 
			
		||||
0:33            Construct combined texture-sampler (temp sampler2DArray)
 | 
			
		||||
0:33              'g_tTex2df4a' (uniform texture2DArray)
 | 
			
		||||
0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:33            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:33            Constant:
 | 
			
		||||
0:33              0 (const int)
 | 
			
		||||
0:34      Sequence
 | 
			
		||||
0:34        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:34          'txval01' (temp 4-component vector of int)
 | 
			
		||||
0:34          textureGather (global 4-component vector of int)
 | 
			
		||||
0:34            Construct combined texture-sampler (temp isampler2DArray)
 | 
			
		||||
0:34              'g_tTex2di4a' (uniform itexture2DArray)
 | 
			
		||||
0:34              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:34            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:34            Constant:
 | 
			
		||||
0:34              0 (const int)
 | 
			
		||||
0:35      Sequence
 | 
			
		||||
0:35        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:35          'txval02' (temp 4-component vector of uint)
 | 
			
		||||
0:35          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:35            Construct combined texture-sampler (temp usampler2DArray)
 | 
			
		||||
0:35              'g_tTex2du4a' (uniform utexture2DArray)
 | 
			
		||||
0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:35            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:35            Constant:
 | 
			
		||||
0:35              0 (const int)
 | 
			
		||||
0:37      Sequence
 | 
			
		||||
0:37        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:37          'txval10' (temp 4-component vector of float)
 | 
			
		||||
0:37          textureGather (global 4-component vector of float)
 | 
			
		||||
0:37            Construct combined texture-sampler (temp sampler2DArray)
 | 
			
		||||
0:37              'g_tTex2df4a' (uniform texture2DArray)
 | 
			
		||||
0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:37            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:37            Constant:
 | 
			
		||||
0:37              1 (const int)
 | 
			
		||||
0:38      Sequence
 | 
			
		||||
0:38        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:38          'txval11' (temp 4-component vector of int)
 | 
			
		||||
0:38          textureGather (global 4-component vector of int)
 | 
			
		||||
0:38            Construct combined texture-sampler (temp isampler2DArray)
 | 
			
		||||
0:38              'g_tTex2di4a' (uniform itexture2DArray)
 | 
			
		||||
0:38              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:38            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:38            Constant:
 | 
			
		||||
0:38              1 (const int)
 | 
			
		||||
0:39      Sequence
 | 
			
		||||
0:39        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:39          'txval12' (temp 4-component vector of uint)
 | 
			
		||||
0:39          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:39            Construct combined texture-sampler (temp usampler2DArray)
 | 
			
		||||
0:39              'g_tTex2du4a' (uniform utexture2DArray)
 | 
			
		||||
0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:39            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:39            Constant:
 | 
			
		||||
0:39              1 (const int)
 | 
			
		||||
0:41      Sequence
 | 
			
		||||
0:41        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:41          'txval20' (temp 4-component vector of float)
 | 
			
		||||
0:41          textureGather (global 4-component vector of float)
 | 
			
		||||
0:41            Construct combined texture-sampler (temp sampler2DArray)
 | 
			
		||||
0:41              'g_tTex2df4a' (uniform texture2DArray)
 | 
			
		||||
0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:41            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:41            Constant:
 | 
			
		||||
0:41              2 (const int)
 | 
			
		||||
0:42      Sequence
 | 
			
		||||
0:42        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:42          'txval21' (temp 4-component vector of int)
 | 
			
		||||
0:42          textureGather (global 4-component vector of int)
 | 
			
		||||
0:42            Construct combined texture-sampler (temp isampler2DArray)
 | 
			
		||||
0:42              'g_tTex2di4a' (uniform itexture2DArray)
 | 
			
		||||
0:42              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:42            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:42            Constant:
 | 
			
		||||
0:42              2 (const int)
 | 
			
		||||
0:43      Sequence
 | 
			
		||||
0:43        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:43          'txval22' (temp 4-component vector of uint)
 | 
			
		||||
0:43          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:43            Construct combined texture-sampler (temp usampler2DArray)
 | 
			
		||||
0:43              'g_tTex2du4a' (uniform utexture2DArray)
 | 
			
		||||
0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:43            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:43            Constant:
 | 
			
		||||
0:43              2 (const int)
 | 
			
		||||
0:45      Sequence
 | 
			
		||||
0:45        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:45          'txval30' (temp 4-component vector of float)
 | 
			
		||||
0:45          textureGather (global 4-component vector of float)
 | 
			
		||||
0:45            Construct combined texture-sampler (temp sampler2DArray)
 | 
			
		||||
0:45              'g_tTex2df4a' (uniform texture2DArray)
 | 
			
		||||
0:45              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:45            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:45            Constant:
 | 
			
		||||
0:45              3 (const int)
 | 
			
		||||
0:46      Sequence
 | 
			
		||||
0:46        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:46          'txval31' (temp 4-component vector of int)
 | 
			
		||||
0:46          textureGather (global 4-component vector of int)
 | 
			
		||||
0:46            Construct combined texture-sampler (temp isampler2DArray)
 | 
			
		||||
0:46              'g_tTex2di4a' (uniform itexture2DArray)
 | 
			
		||||
0:46              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:46            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:46            Constant:
 | 
			
		||||
0:46              3 (const int)
 | 
			
		||||
0:47      Sequence
 | 
			
		||||
0:47        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:47          'txval32' (temp 4-component vector of uint)
 | 
			
		||||
0:47          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:47            Construct combined texture-sampler (temp usampler2DArray)
 | 
			
		||||
0:47              'g_tTex2du4a' (uniform utexture2DArray)
 | 
			
		||||
0:47              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:47            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:47            Constant:
 | 
			
		||||
0:47              3 (const int)
 | 
			
		||||
0:51      Sequence
 | 
			
		||||
0:51        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:51          'txval40' (temp 4-component vector of float)
 | 
			
		||||
0:51          textureGather (global 4-component vector of float)
 | 
			
		||||
0:51            Construct combined texture-sampler (temp samplerCubeArray)
 | 
			
		||||
0:51              'g_tTexcdf4a' (uniform textureCubeArray)
 | 
			
		||||
0:51              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:51            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:51            Constant:
 | 
			
		||||
0:51              0 (const int)
 | 
			
		||||
0:52      Sequence
 | 
			
		||||
0:52        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:52          'txval41' (temp 4-component vector of int)
 | 
			
		||||
0:52          textureGather (global 4-component vector of int)
 | 
			
		||||
0:52            Construct combined texture-sampler (temp isamplerCubeArray)
 | 
			
		||||
0:52              'g_tTexcdi4a' (uniform itextureCubeArray)
 | 
			
		||||
0:52              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:52            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:52            Constant:
 | 
			
		||||
0:52              0 (const int)
 | 
			
		||||
0:53      Sequence
 | 
			
		||||
0:53        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:53          'txval42' (temp 4-component vector of uint)
 | 
			
		||||
0:53          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:53            Construct combined texture-sampler (temp usamplerCubeArray)
 | 
			
		||||
0:53              'g_tTexcdu4a' (uniform utextureCubeArray)
 | 
			
		||||
0:53              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:53            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:53            Constant:
 | 
			
		||||
0:53              0 (const int)
 | 
			
		||||
0:55      Sequence
 | 
			
		||||
0:55        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:55          'txval50' (temp 4-component vector of float)
 | 
			
		||||
0:55          textureGather (global 4-component vector of float)
 | 
			
		||||
0:55            Construct combined texture-sampler (temp samplerCubeArray)
 | 
			
		||||
0:55              'g_tTexcdf4a' (uniform textureCubeArray)
 | 
			
		||||
0:55              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:55            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:55            Constant:
 | 
			
		||||
0:55              1 (const int)
 | 
			
		||||
0:56      Sequence
 | 
			
		||||
0:56        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:56          'txval51' (temp 4-component vector of int)
 | 
			
		||||
0:56          textureGather (global 4-component vector of int)
 | 
			
		||||
0:56            Construct combined texture-sampler (temp isamplerCubeArray)
 | 
			
		||||
0:56              'g_tTexcdi4a' (uniform itextureCubeArray)
 | 
			
		||||
0:56              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:56            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:56            Constant:
 | 
			
		||||
0:56              1 (const int)
 | 
			
		||||
0:57      Sequence
 | 
			
		||||
0:57        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:57          'txval52' (temp 4-component vector of uint)
 | 
			
		||||
0:57          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:57            Construct combined texture-sampler (temp usamplerCubeArray)
 | 
			
		||||
0:57              'g_tTexcdu4a' (uniform utextureCubeArray)
 | 
			
		||||
0:57              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:57            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:57            Constant:
 | 
			
		||||
0:57              1 (const int)
 | 
			
		||||
0:59      Sequence
 | 
			
		||||
0:59        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:59          'txval60' (temp 4-component vector of float)
 | 
			
		||||
0:59          textureGather (global 4-component vector of float)
 | 
			
		||||
0:59            Construct combined texture-sampler (temp samplerCubeArray)
 | 
			
		||||
0:59              'g_tTexcdf4a' (uniform textureCubeArray)
 | 
			
		||||
0:59              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:59            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:59            Constant:
 | 
			
		||||
0:59              2 (const int)
 | 
			
		||||
0:60      Sequence
 | 
			
		||||
0:60        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:60          'txval61' (temp 4-component vector of int)
 | 
			
		||||
0:60          textureGather (global 4-component vector of int)
 | 
			
		||||
0:60            Construct combined texture-sampler (temp isamplerCubeArray)
 | 
			
		||||
0:60              'g_tTexcdi4a' (uniform itextureCubeArray)
 | 
			
		||||
0:60              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:60            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:60            Constant:
 | 
			
		||||
0:60              2 (const int)
 | 
			
		||||
0:61      Sequence
 | 
			
		||||
0:61        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:61          'txval62' (temp 4-component vector of uint)
 | 
			
		||||
0:61          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:61            Construct combined texture-sampler (temp usamplerCubeArray)
 | 
			
		||||
0:61              'g_tTexcdu4a' (uniform utextureCubeArray)
 | 
			
		||||
0:61              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:61            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:61            Constant:
 | 
			
		||||
0:61              2 (const int)
 | 
			
		||||
0:63      Sequence
 | 
			
		||||
0:63        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:63          'txval70' (temp 4-component vector of float)
 | 
			
		||||
0:63          textureGather (global 4-component vector of float)
 | 
			
		||||
0:63            Construct combined texture-sampler (temp samplerCubeArray)
 | 
			
		||||
0:63              'g_tTexcdf4a' (uniform textureCubeArray)
 | 
			
		||||
0:63              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:63            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:63            Constant:
 | 
			
		||||
0:63              3 (const int)
 | 
			
		||||
0:64      Sequence
 | 
			
		||||
0:64        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:64          'txval71' (temp 4-component vector of int)
 | 
			
		||||
0:64          textureGather (global 4-component vector of int)
 | 
			
		||||
0:64            Construct combined texture-sampler (temp isamplerCubeArray)
 | 
			
		||||
0:64              'g_tTexcdi4a' (uniform itextureCubeArray)
 | 
			
		||||
0:64              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:64            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:64            Constant:
 | 
			
		||||
0:64              3 (const int)
 | 
			
		||||
0:65      Sequence
 | 
			
		||||
0:65        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:65          'txval72' (temp 4-component vector of uint)
 | 
			
		||||
0:65          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:65            Construct combined texture-sampler (temp usamplerCubeArray)
 | 
			
		||||
0:65              'g_tTexcdu4a' (uniform utextureCubeArray)
 | 
			
		||||
0:65              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:65            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:65            Constant:
 | 
			
		||||
0:65              3 (const int)
 | 
			
		||||
0:67      move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:67        Color: direct index for structure (temp 4-component vector of float)
 | 
			
		||||
0:67          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:67          Constant:
 | 
			
		||||
0:67            0 (const int)
 | 
			
		||||
0:67        Constant:
 | 
			
		||||
0:67          1.000000
 | 
			
		||||
0:67          1.000000
 | 
			
		||||
0:67          1.000000
 | 
			
		||||
0:67          1.000000
 | 
			
		||||
0:68      move second child to first child (temp float)
 | 
			
		||||
0:68        Depth: direct index for structure (temp float FragDepth)
 | 
			
		||||
0:68          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:68          Constant:
 | 
			
		||||
0:68            1 (const int)
 | 
			
		||||
0:68        Constant:
 | 
			
		||||
0:68          1.000000
 | 
			
		||||
0:70      Branch: Return with expression
 | 
			
		||||
0:70        'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:?   Linker Objects
 | 
			
		||||
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:?     'g_sSamp2d' (uniform sampler)
 | 
			
		||||
0:?     'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
 | 
			
		||||
0:?     'g_tTex1di4a' (uniform itexture1DArray)
 | 
			
		||||
0:?     'g_tTex1du4a' (uniform utexture1DArray)
 | 
			
		||||
0:?     'g_tTex2df4a' (uniform texture2DArray)
 | 
			
		||||
0:?     'g_tTex2di4a' (uniform itexture2DArray)
 | 
			
		||||
0:?     'g_tTex2du4a' (uniform utexture2DArray)
 | 
			
		||||
0:?     'g_tTexcdf4a' (uniform textureCubeArray)
 | 
			
		||||
0:?     'g_tTexcdi4a' (uniform itextureCubeArray)
 | 
			
		||||
0:?     'g_tTexcdu4a' (uniform utextureCubeArray)
 | 
			
		||||
0:?     'c1' (uniform float)
 | 
			
		||||
0:?     'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:?     'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:?     'c4' (uniform 4-component vector of float)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Shader version: 450
 | 
			
		||||
gl_FragCoord origin is upper left
 | 
			
		||||
0:? Sequence
 | 
			
		||||
0:72  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:28    Function Parameters: 
 | 
			
		||||
0:?     Sequence
 | 
			
		||||
0:33      Sequence
 | 
			
		||||
0:33        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:33          'txval00' (temp 4-component vector of float)
 | 
			
		||||
0:33          textureGather (global 4-component vector of float)
 | 
			
		||||
0:33            Construct combined texture-sampler (temp sampler2DArray)
 | 
			
		||||
0:33              'g_tTex2df4a' (uniform texture2DArray)
 | 
			
		||||
0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:33            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:33            Constant:
 | 
			
		||||
0:33              0 (const int)
 | 
			
		||||
0:34      Sequence
 | 
			
		||||
0:34        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:34          'txval01' (temp 4-component vector of int)
 | 
			
		||||
0:34          textureGather (global 4-component vector of int)
 | 
			
		||||
0:34            Construct combined texture-sampler (temp isampler2DArray)
 | 
			
		||||
0:34              'g_tTex2di4a' (uniform itexture2DArray)
 | 
			
		||||
0:34              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:34            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:34            Constant:
 | 
			
		||||
0:34              0 (const int)
 | 
			
		||||
0:35      Sequence
 | 
			
		||||
0:35        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:35          'txval02' (temp 4-component vector of uint)
 | 
			
		||||
0:35          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:35            Construct combined texture-sampler (temp usampler2DArray)
 | 
			
		||||
0:35              'g_tTex2du4a' (uniform utexture2DArray)
 | 
			
		||||
0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:35            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:35            Constant:
 | 
			
		||||
0:35              0 (const int)
 | 
			
		||||
0:37      Sequence
 | 
			
		||||
0:37        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:37          'txval10' (temp 4-component vector of float)
 | 
			
		||||
0:37          textureGather (global 4-component vector of float)
 | 
			
		||||
0:37            Construct combined texture-sampler (temp sampler2DArray)
 | 
			
		||||
0:37              'g_tTex2df4a' (uniform texture2DArray)
 | 
			
		||||
0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:37            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:37            Constant:
 | 
			
		||||
0:37              1 (const int)
 | 
			
		||||
0:38      Sequence
 | 
			
		||||
0:38        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:38          'txval11' (temp 4-component vector of int)
 | 
			
		||||
0:38          textureGather (global 4-component vector of int)
 | 
			
		||||
0:38            Construct combined texture-sampler (temp isampler2DArray)
 | 
			
		||||
0:38              'g_tTex2di4a' (uniform itexture2DArray)
 | 
			
		||||
0:38              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:38            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:38            Constant:
 | 
			
		||||
0:38              1 (const int)
 | 
			
		||||
0:39      Sequence
 | 
			
		||||
0:39        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:39          'txval12' (temp 4-component vector of uint)
 | 
			
		||||
0:39          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:39            Construct combined texture-sampler (temp usampler2DArray)
 | 
			
		||||
0:39              'g_tTex2du4a' (uniform utexture2DArray)
 | 
			
		||||
0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:39            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:39            Constant:
 | 
			
		||||
0:39              1 (const int)
 | 
			
		||||
0:41      Sequence
 | 
			
		||||
0:41        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:41          'txval20' (temp 4-component vector of float)
 | 
			
		||||
0:41          textureGather (global 4-component vector of float)
 | 
			
		||||
0:41            Construct combined texture-sampler (temp sampler2DArray)
 | 
			
		||||
0:41              'g_tTex2df4a' (uniform texture2DArray)
 | 
			
		||||
0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:41            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:41            Constant:
 | 
			
		||||
0:41              2 (const int)
 | 
			
		||||
0:42      Sequence
 | 
			
		||||
0:42        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:42          'txval21' (temp 4-component vector of int)
 | 
			
		||||
0:42          textureGather (global 4-component vector of int)
 | 
			
		||||
0:42            Construct combined texture-sampler (temp isampler2DArray)
 | 
			
		||||
0:42              'g_tTex2di4a' (uniform itexture2DArray)
 | 
			
		||||
0:42              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:42            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:42            Constant:
 | 
			
		||||
0:42              2 (const int)
 | 
			
		||||
0:43      Sequence
 | 
			
		||||
0:43        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:43          'txval22' (temp 4-component vector of uint)
 | 
			
		||||
0:43          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:43            Construct combined texture-sampler (temp usampler2DArray)
 | 
			
		||||
0:43              'g_tTex2du4a' (uniform utexture2DArray)
 | 
			
		||||
0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:43            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:43            Constant:
 | 
			
		||||
0:43              2 (const int)
 | 
			
		||||
0:45      Sequence
 | 
			
		||||
0:45        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:45          'txval30' (temp 4-component vector of float)
 | 
			
		||||
0:45          textureGather (global 4-component vector of float)
 | 
			
		||||
0:45            Construct combined texture-sampler (temp sampler2DArray)
 | 
			
		||||
0:45              'g_tTex2df4a' (uniform texture2DArray)
 | 
			
		||||
0:45              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:45            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:45            Constant:
 | 
			
		||||
0:45              3 (const int)
 | 
			
		||||
0:46      Sequence
 | 
			
		||||
0:46        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:46          'txval31' (temp 4-component vector of int)
 | 
			
		||||
0:46          textureGather (global 4-component vector of int)
 | 
			
		||||
0:46            Construct combined texture-sampler (temp isampler2DArray)
 | 
			
		||||
0:46              'g_tTex2di4a' (uniform itexture2DArray)
 | 
			
		||||
0:46              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:46            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:46            Constant:
 | 
			
		||||
0:46              3 (const int)
 | 
			
		||||
0:47      Sequence
 | 
			
		||||
0:47        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:47          'txval32' (temp 4-component vector of uint)
 | 
			
		||||
0:47          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:47            Construct combined texture-sampler (temp usampler2DArray)
 | 
			
		||||
0:47              'g_tTex2du4a' (uniform utexture2DArray)
 | 
			
		||||
0:47              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:47            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:47            Constant:
 | 
			
		||||
0:47              3 (const int)
 | 
			
		||||
0:51      Sequence
 | 
			
		||||
0:51        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:51          'txval40' (temp 4-component vector of float)
 | 
			
		||||
0:51          textureGather (global 4-component vector of float)
 | 
			
		||||
0:51            Construct combined texture-sampler (temp samplerCubeArray)
 | 
			
		||||
0:51              'g_tTexcdf4a' (uniform textureCubeArray)
 | 
			
		||||
0:51              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:51            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:51            Constant:
 | 
			
		||||
0:51              0 (const int)
 | 
			
		||||
0:52      Sequence
 | 
			
		||||
0:52        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:52          'txval41' (temp 4-component vector of int)
 | 
			
		||||
0:52          textureGather (global 4-component vector of int)
 | 
			
		||||
0:52            Construct combined texture-sampler (temp isamplerCubeArray)
 | 
			
		||||
0:52              'g_tTexcdi4a' (uniform itextureCubeArray)
 | 
			
		||||
0:52              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:52            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:52            Constant:
 | 
			
		||||
0:52              0 (const int)
 | 
			
		||||
0:53      Sequence
 | 
			
		||||
0:53        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:53          'txval42' (temp 4-component vector of uint)
 | 
			
		||||
0:53          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:53            Construct combined texture-sampler (temp usamplerCubeArray)
 | 
			
		||||
0:53              'g_tTexcdu4a' (uniform utextureCubeArray)
 | 
			
		||||
0:53              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:53            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:53            Constant:
 | 
			
		||||
0:53              0 (const int)
 | 
			
		||||
0:55      Sequence
 | 
			
		||||
0:55        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:55          'txval50' (temp 4-component vector of float)
 | 
			
		||||
0:55          textureGather (global 4-component vector of float)
 | 
			
		||||
0:55            Construct combined texture-sampler (temp samplerCubeArray)
 | 
			
		||||
0:55              'g_tTexcdf4a' (uniform textureCubeArray)
 | 
			
		||||
0:55              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:55            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:55            Constant:
 | 
			
		||||
0:55              1 (const int)
 | 
			
		||||
0:56      Sequence
 | 
			
		||||
0:56        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:56          'txval51' (temp 4-component vector of int)
 | 
			
		||||
0:56          textureGather (global 4-component vector of int)
 | 
			
		||||
0:56            Construct combined texture-sampler (temp isamplerCubeArray)
 | 
			
		||||
0:56              'g_tTexcdi4a' (uniform itextureCubeArray)
 | 
			
		||||
0:56              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:56            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:56            Constant:
 | 
			
		||||
0:56              1 (const int)
 | 
			
		||||
0:57      Sequence
 | 
			
		||||
0:57        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:57          'txval52' (temp 4-component vector of uint)
 | 
			
		||||
0:57          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:57            Construct combined texture-sampler (temp usamplerCubeArray)
 | 
			
		||||
0:57              'g_tTexcdu4a' (uniform utextureCubeArray)
 | 
			
		||||
0:57              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:57            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:57            Constant:
 | 
			
		||||
0:57              1 (const int)
 | 
			
		||||
0:59      Sequence
 | 
			
		||||
0:59        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:59          'txval60' (temp 4-component vector of float)
 | 
			
		||||
0:59          textureGather (global 4-component vector of float)
 | 
			
		||||
0:59            Construct combined texture-sampler (temp samplerCubeArray)
 | 
			
		||||
0:59              'g_tTexcdf4a' (uniform textureCubeArray)
 | 
			
		||||
0:59              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:59            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:59            Constant:
 | 
			
		||||
0:59              2 (const int)
 | 
			
		||||
0:60      Sequence
 | 
			
		||||
0:60        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:60          'txval61' (temp 4-component vector of int)
 | 
			
		||||
0:60          textureGather (global 4-component vector of int)
 | 
			
		||||
0:60            Construct combined texture-sampler (temp isamplerCubeArray)
 | 
			
		||||
0:60              'g_tTexcdi4a' (uniform itextureCubeArray)
 | 
			
		||||
0:60              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:60            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:60            Constant:
 | 
			
		||||
0:60              2 (const int)
 | 
			
		||||
0:61      Sequence
 | 
			
		||||
0:61        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:61          'txval62' (temp 4-component vector of uint)
 | 
			
		||||
0:61          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:61            Construct combined texture-sampler (temp usamplerCubeArray)
 | 
			
		||||
0:61              'g_tTexcdu4a' (uniform utextureCubeArray)
 | 
			
		||||
0:61              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:61            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:61            Constant:
 | 
			
		||||
0:61              2 (const int)
 | 
			
		||||
0:63      Sequence
 | 
			
		||||
0:63        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:63          'txval70' (temp 4-component vector of float)
 | 
			
		||||
0:63          textureGather (global 4-component vector of float)
 | 
			
		||||
0:63            Construct combined texture-sampler (temp samplerCubeArray)
 | 
			
		||||
0:63              'g_tTexcdf4a' (uniform textureCubeArray)
 | 
			
		||||
0:63              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:63            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:63            Constant:
 | 
			
		||||
0:63              3 (const int)
 | 
			
		||||
0:64      Sequence
 | 
			
		||||
0:64        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:64          'txval71' (temp 4-component vector of int)
 | 
			
		||||
0:64          textureGather (global 4-component vector of int)
 | 
			
		||||
0:64            Construct combined texture-sampler (temp isamplerCubeArray)
 | 
			
		||||
0:64              'g_tTexcdi4a' (uniform itextureCubeArray)
 | 
			
		||||
0:64              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:64            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:64            Constant:
 | 
			
		||||
0:64              3 (const int)
 | 
			
		||||
0:65      Sequence
 | 
			
		||||
0:65        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:65          'txval72' (temp 4-component vector of uint)
 | 
			
		||||
0:65          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:65            Construct combined texture-sampler (temp usamplerCubeArray)
 | 
			
		||||
0:65              'g_tTexcdu4a' (uniform utextureCubeArray)
 | 
			
		||||
0:65              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:65            'c4' (uniform 4-component vector of float)
 | 
			
		||||
0:65            Constant:
 | 
			
		||||
0:65              3 (const int)
 | 
			
		||||
0:67      move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:67        Color: direct index for structure (temp 4-component vector of float)
 | 
			
		||||
0:67          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:67          Constant:
 | 
			
		||||
0:67            0 (const int)
 | 
			
		||||
0:67        Constant:
 | 
			
		||||
0:67          1.000000
 | 
			
		||||
0:67          1.000000
 | 
			
		||||
0:67          1.000000
 | 
			
		||||
0:67          1.000000
 | 
			
		||||
0:68      move second child to first child (temp float)
 | 
			
		||||
0:68        Depth: direct index for structure (temp float FragDepth)
 | 
			
		||||
0:68          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:68          Constant:
 | 
			
		||||
0:68            1 (const int)
 | 
			
		||||
0:68        Constant:
 | 
			
		||||
0:68          1.000000
 | 
			
		||||
0:70      Branch: Return with expression
 | 
			
		||||
0:70        'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:?   Linker Objects
 | 
			
		||||
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:?     'g_sSamp2d' (uniform sampler)
 | 
			
		||||
0:?     'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
 | 
			
		||||
0:?     'g_tTex1di4a' (uniform itexture1DArray)
 | 
			
		||||
0:?     'g_tTex1du4a' (uniform utexture1DArray)
 | 
			
		||||
0:?     'g_tTex2df4a' (uniform texture2DArray)
 | 
			
		||||
0:?     'g_tTex2di4a' (uniform itexture2DArray)
 | 
			
		||||
0:?     'g_tTex2du4a' (uniform utexture2DArray)
 | 
			
		||||
0:?     'g_tTexcdf4a' (uniform textureCubeArray)
 | 
			
		||||
0:?     'g_tTexcdi4a' (uniform itextureCubeArray)
 | 
			
		||||
0:?     'g_tTexcdu4a' (uniform utextureCubeArray)
 | 
			
		||||
0:?     'c1' (uniform float)
 | 
			
		||||
0:?     'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:?     'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:?     'c4' (uniform 4-component vector of float)
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 220
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
                              Capability Sampled1D
 | 
			
		||||
                              Capability SampledCubeArray
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main"
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Source HLSL 450
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 9  "txval00"
 | 
			
		||||
                              Name 12  "g_tTex2df4a"
 | 
			
		||||
                              Name 16  "g_sSamp"
 | 
			
		||||
                              Name 22  "c3"
 | 
			
		||||
                              Name 29  "txval01"
 | 
			
		||||
                              Name 32  "g_tTex2di4a"
 | 
			
		||||
                              Name 42  "txval02"
 | 
			
		||||
                              Name 45  "g_tTex2du4a"
 | 
			
		||||
                              Name 52  "txval10"
 | 
			
		||||
                              Name 59  "txval11"
 | 
			
		||||
                              Name 65  "txval12"
 | 
			
		||||
                              Name 71  "txval20"
 | 
			
		||||
                              Name 78  "txval21"
 | 
			
		||||
                              Name 84  "txval22"
 | 
			
		||||
                              Name 90  "txval30"
 | 
			
		||||
                              Name 97  "txval31"
 | 
			
		||||
                              Name 103  "txval32"
 | 
			
		||||
                              Name 109  "txval40"
 | 
			
		||||
                              Name 112  "g_tTexcdf4a"
 | 
			
		||||
                              Name 118  "c4"
 | 
			
		||||
                              Name 121  "txval41"
 | 
			
		||||
                              Name 124  "g_tTexcdi4a"
 | 
			
		||||
                              Name 131  "txval42"
 | 
			
		||||
                              Name 134  "g_tTexcdu4a"
 | 
			
		||||
                              Name 141  "txval50"
 | 
			
		||||
                              Name 147  "txval51"
 | 
			
		||||
                              Name 153  "txval52"
 | 
			
		||||
                              Name 159  "txval60"
 | 
			
		||||
                              Name 165  "txval61"
 | 
			
		||||
                              Name 171  "txval62"
 | 
			
		||||
                              Name 177  "txval70"
 | 
			
		||||
                              Name 183  "txval71"
 | 
			
		||||
                              Name 189  "txval72"
 | 
			
		||||
                              Name 195  "PS_OUTPUT"
 | 
			
		||||
                              MemberName 195(PS_OUTPUT) 0  "Color"
 | 
			
		||||
                              MemberName 195(PS_OUTPUT) 1  "Depth"
 | 
			
		||||
                              Name 197  "psout"
 | 
			
		||||
                              Name 205  "g_sSamp2d"
 | 
			
		||||
                              Name 208  "g_tTex1df4a"
 | 
			
		||||
                              Name 211  "g_tTex1di4a"
 | 
			
		||||
                              Name 214  "g_tTex1du4a"
 | 
			
		||||
                              Name 216  "c1"
 | 
			
		||||
                              Name 219  "c2"
 | 
			
		||||
                              Decorate 12(g_tTex2df4a) DescriptorSet 0
 | 
			
		||||
                              Decorate 16(g_sSamp) DescriptorSet 0
 | 
			
		||||
                              Decorate 16(g_sSamp) Binding 0
 | 
			
		||||
                              Decorate 32(g_tTex2di4a) DescriptorSet 0
 | 
			
		||||
                              Decorate 45(g_tTex2du4a) DescriptorSet 0
 | 
			
		||||
                              Decorate 112(g_tTexcdf4a) DescriptorSet 0
 | 
			
		||||
                              Decorate 124(g_tTexcdi4a) DescriptorSet 0
 | 
			
		||||
                              Decorate 134(g_tTexcdu4a) DescriptorSet 0
 | 
			
		||||
                              MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth
 | 
			
		||||
                              Decorate 205(g_sSamp2d) DescriptorSet 0
 | 
			
		||||
                              Decorate 208(g_tTex1df4a) DescriptorSet 0
 | 
			
		||||
                              Decorate 208(g_tTex1df4a) Binding 0
 | 
			
		||||
                              Decorate 211(g_tTex1di4a) DescriptorSet 0
 | 
			
		||||
                              Decorate 214(g_tTex1du4a) DescriptorSet 0
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeFloat 32
 | 
			
		||||
               7:             TypeVector 6(float) 4
 | 
			
		||||
               8:             TypePointer Function 7(fvec4)
 | 
			
		||||
              10:             TypeImage 6(float) 2D array sampled format:Unknown
 | 
			
		||||
              11:             TypePointer UniformConstant 10
 | 
			
		||||
 12(g_tTex2df4a):     11(ptr) Variable UniformConstant
 | 
			
		||||
              14:             TypeSampler
 | 
			
		||||
              15:             TypePointer UniformConstant 14
 | 
			
		||||
     16(g_sSamp):     15(ptr) Variable UniformConstant
 | 
			
		||||
              18:             TypeSampledImage 10
 | 
			
		||||
              20:             TypeVector 6(float) 3
 | 
			
		||||
              21:             TypePointer UniformConstant 20(fvec3)
 | 
			
		||||
          22(c3):     21(ptr) Variable UniformConstant
 | 
			
		||||
              24:             TypeInt 32 1
 | 
			
		||||
              25:     24(int) Constant 0
 | 
			
		||||
              27:             TypeVector 24(int) 4
 | 
			
		||||
              28:             TypePointer Function 27(ivec4)
 | 
			
		||||
              30:             TypeImage 24(int) 2D array sampled format:Unknown
 | 
			
		||||
              31:             TypePointer UniformConstant 30
 | 
			
		||||
 32(g_tTex2di4a):     31(ptr) Variable UniformConstant
 | 
			
		||||
              35:             TypeSampledImage 30
 | 
			
		||||
              39:             TypeInt 32 0
 | 
			
		||||
              40:             TypeVector 39(int) 4
 | 
			
		||||
              41:             TypePointer Function 40(ivec4)
 | 
			
		||||
              43:             TypeImage 39(int) 2D array sampled format:Unknown
 | 
			
		||||
              44:             TypePointer UniformConstant 43
 | 
			
		||||
 45(g_tTex2du4a):     44(ptr) Variable UniformConstant
 | 
			
		||||
              48:             TypeSampledImage 43
 | 
			
		||||
              57:     24(int) Constant 1
 | 
			
		||||
              76:     24(int) Constant 2
 | 
			
		||||
              95:     24(int) Constant 3
 | 
			
		||||
             110:             TypeImage 6(float) Cube array sampled format:Unknown
 | 
			
		||||
             111:             TypePointer UniformConstant 110
 | 
			
		||||
112(g_tTexcdf4a):    111(ptr) Variable UniformConstant
 | 
			
		||||
             115:             TypeSampledImage 110
 | 
			
		||||
             117:             TypePointer UniformConstant 7(fvec4)
 | 
			
		||||
         118(c4):    117(ptr) Variable UniformConstant
 | 
			
		||||
             122:             TypeImage 24(int) Cube array sampled format:Unknown
 | 
			
		||||
             123:             TypePointer UniformConstant 122
 | 
			
		||||
124(g_tTexcdi4a):    123(ptr) Variable UniformConstant
 | 
			
		||||
             127:             TypeSampledImage 122
 | 
			
		||||
             132:             TypeImage 39(int) Cube array sampled format:Unknown
 | 
			
		||||
             133:             TypePointer UniformConstant 132
 | 
			
		||||
134(g_tTexcdu4a):    133(ptr) Variable UniformConstant
 | 
			
		||||
             137:             TypeSampledImage 132
 | 
			
		||||
  195(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float)
 | 
			
		||||
             196:             TypePointer Function 195(PS_OUTPUT)
 | 
			
		||||
             198:    6(float) Constant 1065353216
 | 
			
		||||
             199:    7(fvec4) ConstantComposite 198 198 198 198
 | 
			
		||||
             201:             TypePointer Function 6(float)
 | 
			
		||||
  205(g_sSamp2d):     15(ptr) Variable UniformConstant
 | 
			
		||||
             206:             TypeImage 6(float) 1D array sampled format:Unknown
 | 
			
		||||
             207:             TypePointer UniformConstant 206
 | 
			
		||||
208(g_tTex1df4a):    207(ptr) Variable UniformConstant
 | 
			
		||||
             209:             TypeImage 24(int) 1D array sampled format:Unknown
 | 
			
		||||
             210:             TypePointer UniformConstant 209
 | 
			
		||||
211(g_tTex1di4a):    210(ptr) Variable UniformConstant
 | 
			
		||||
             212:             TypeImage 39(int) 1D array sampled format:Unknown
 | 
			
		||||
             213:             TypePointer UniformConstant 212
 | 
			
		||||
214(g_tTex1du4a):    213(ptr) Variable UniformConstant
 | 
			
		||||
             215:             TypePointer UniformConstant 6(float)
 | 
			
		||||
         216(c1):    215(ptr) Variable UniformConstant
 | 
			
		||||
             217:             TypeVector 6(float) 2
 | 
			
		||||
             218:             TypePointer UniformConstant 217(fvec2)
 | 
			
		||||
         219(c2):    218(ptr) Variable UniformConstant
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
      9(txval00):      8(ptr) Variable Function
 | 
			
		||||
     29(txval01):     28(ptr) Variable Function
 | 
			
		||||
     42(txval02):     41(ptr) Variable Function
 | 
			
		||||
     52(txval10):      8(ptr) Variable Function
 | 
			
		||||
     59(txval11):     28(ptr) Variable Function
 | 
			
		||||
     65(txval12):     41(ptr) Variable Function
 | 
			
		||||
     71(txval20):      8(ptr) Variable Function
 | 
			
		||||
     78(txval21):     28(ptr) Variable Function
 | 
			
		||||
     84(txval22):     41(ptr) Variable Function
 | 
			
		||||
     90(txval30):      8(ptr) Variable Function
 | 
			
		||||
     97(txval31):     28(ptr) Variable Function
 | 
			
		||||
    103(txval32):     41(ptr) Variable Function
 | 
			
		||||
    109(txval40):      8(ptr) Variable Function
 | 
			
		||||
    121(txval41):     28(ptr) Variable Function
 | 
			
		||||
    131(txval42):     41(ptr) Variable Function
 | 
			
		||||
    141(txval50):      8(ptr) Variable Function
 | 
			
		||||
    147(txval51):     28(ptr) Variable Function
 | 
			
		||||
    153(txval52):     41(ptr) Variable Function
 | 
			
		||||
    159(txval60):      8(ptr) Variable Function
 | 
			
		||||
    165(txval61):     28(ptr) Variable Function
 | 
			
		||||
    171(txval62):     41(ptr) Variable Function
 | 
			
		||||
    177(txval70):      8(ptr) Variable Function
 | 
			
		||||
    183(txval71):     28(ptr) Variable Function
 | 
			
		||||
    189(txval72):     41(ptr) Variable Function
 | 
			
		||||
      197(psout):    196(ptr) Variable Function
 | 
			
		||||
              13:          10 Load 12(g_tTex2df4a)
 | 
			
		||||
              17:          14 Load 16(g_sSamp)
 | 
			
		||||
              19:          18 SampledImage 13 17
 | 
			
		||||
              23:   20(fvec3) Load 22(c3)
 | 
			
		||||
              26:    7(fvec4) ImageGather 19 23 25
 | 
			
		||||
                              Store 9(txval00) 26
 | 
			
		||||
              33:          30 Load 32(g_tTex2di4a)
 | 
			
		||||
              34:          14 Load 16(g_sSamp)
 | 
			
		||||
              36:          35 SampledImage 33 34
 | 
			
		||||
              37:   20(fvec3) Load 22(c3)
 | 
			
		||||
              38:   27(ivec4) ImageGather 36 37 25
 | 
			
		||||
                              Store 29(txval01) 38
 | 
			
		||||
              46:          43 Load 45(g_tTex2du4a)
 | 
			
		||||
              47:          14 Load 16(g_sSamp)
 | 
			
		||||
              49:          48 SampledImage 46 47
 | 
			
		||||
              50:   20(fvec3) Load 22(c3)
 | 
			
		||||
              51:   40(ivec4) ImageGather 49 50 25
 | 
			
		||||
                              Store 42(txval02) 51
 | 
			
		||||
              53:          10 Load 12(g_tTex2df4a)
 | 
			
		||||
              54:          14 Load 16(g_sSamp)
 | 
			
		||||
              55:          18 SampledImage 53 54
 | 
			
		||||
              56:   20(fvec3) Load 22(c3)
 | 
			
		||||
              58:    7(fvec4) ImageGather 55 56 57
 | 
			
		||||
                              Store 52(txval10) 58
 | 
			
		||||
              60:          30 Load 32(g_tTex2di4a)
 | 
			
		||||
              61:          14 Load 16(g_sSamp)
 | 
			
		||||
              62:          35 SampledImage 60 61
 | 
			
		||||
              63:   20(fvec3) Load 22(c3)
 | 
			
		||||
              64:   27(ivec4) ImageGather 62 63 57
 | 
			
		||||
                              Store 59(txval11) 64
 | 
			
		||||
              66:          43 Load 45(g_tTex2du4a)
 | 
			
		||||
              67:          14 Load 16(g_sSamp)
 | 
			
		||||
              68:          48 SampledImage 66 67
 | 
			
		||||
              69:   20(fvec3) Load 22(c3)
 | 
			
		||||
              70:   40(ivec4) ImageGather 68 69 57
 | 
			
		||||
                              Store 65(txval12) 70
 | 
			
		||||
              72:          10 Load 12(g_tTex2df4a)
 | 
			
		||||
              73:          14 Load 16(g_sSamp)
 | 
			
		||||
              74:          18 SampledImage 72 73
 | 
			
		||||
              75:   20(fvec3) Load 22(c3)
 | 
			
		||||
              77:    7(fvec4) ImageGather 74 75 76
 | 
			
		||||
                              Store 71(txval20) 77
 | 
			
		||||
              79:          30 Load 32(g_tTex2di4a)
 | 
			
		||||
              80:          14 Load 16(g_sSamp)
 | 
			
		||||
              81:          35 SampledImage 79 80
 | 
			
		||||
              82:   20(fvec3) Load 22(c3)
 | 
			
		||||
              83:   27(ivec4) ImageGather 81 82 76
 | 
			
		||||
                              Store 78(txval21) 83
 | 
			
		||||
              85:          43 Load 45(g_tTex2du4a)
 | 
			
		||||
              86:          14 Load 16(g_sSamp)
 | 
			
		||||
              87:          48 SampledImage 85 86
 | 
			
		||||
              88:   20(fvec3) Load 22(c3)
 | 
			
		||||
              89:   40(ivec4) ImageGather 87 88 76
 | 
			
		||||
                              Store 84(txval22) 89
 | 
			
		||||
              91:          10 Load 12(g_tTex2df4a)
 | 
			
		||||
              92:          14 Load 16(g_sSamp)
 | 
			
		||||
              93:          18 SampledImage 91 92
 | 
			
		||||
              94:   20(fvec3) Load 22(c3)
 | 
			
		||||
              96:    7(fvec4) ImageGather 93 94 95
 | 
			
		||||
                              Store 90(txval30) 96
 | 
			
		||||
              98:          30 Load 32(g_tTex2di4a)
 | 
			
		||||
              99:          14 Load 16(g_sSamp)
 | 
			
		||||
             100:          35 SampledImage 98 99
 | 
			
		||||
             101:   20(fvec3) Load 22(c3)
 | 
			
		||||
             102:   27(ivec4) ImageGather 100 101 95
 | 
			
		||||
                              Store 97(txval31) 102
 | 
			
		||||
             104:          43 Load 45(g_tTex2du4a)
 | 
			
		||||
             105:          14 Load 16(g_sSamp)
 | 
			
		||||
             106:          48 SampledImage 104 105
 | 
			
		||||
             107:   20(fvec3) Load 22(c3)
 | 
			
		||||
             108:   40(ivec4) ImageGather 106 107 95
 | 
			
		||||
                              Store 103(txval32) 108
 | 
			
		||||
             113:         110 Load 112(g_tTexcdf4a)
 | 
			
		||||
             114:          14 Load 16(g_sSamp)
 | 
			
		||||
             116:         115 SampledImage 113 114
 | 
			
		||||
             119:    7(fvec4) Load 118(c4)
 | 
			
		||||
             120:    7(fvec4) ImageGather 116 119 25
 | 
			
		||||
                              Store 109(txval40) 120
 | 
			
		||||
             125:         122 Load 124(g_tTexcdi4a)
 | 
			
		||||
             126:          14 Load 16(g_sSamp)
 | 
			
		||||
             128:         127 SampledImage 125 126
 | 
			
		||||
             129:    7(fvec4) Load 118(c4)
 | 
			
		||||
             130:   27(ivec4) ImageGather 128 129 25
 | 
			
		||||
                              Store 121(txval41) 130
 | 
			
		||||
             135:         132 Load 134(g_tTexcdu4a)
 | 
			
		||||
             136:          14 Load 16(g_sSamp)
 | 
			
		||||
             138:         137 SampledImage 135 136
 | 
			
		||||
             139:    7(fvec4) Load 118(c4)
 | 
			
		||||
             140:   40(ivec4) ImageGather 138 139 25
 | 
			
		||||
                              Store 131(txval42) 140
 | 
			
		||||
             142:         110 Load 112(g_tTexcdf4a)
 | 
			
		||||
             143:          14 Load 16(g_sSamp)
 | 
			
		||||
             144:         115 SampledImage 142 143
 | 
			
		||||
             145:    7(fvec4) Load 118(c4)
 | 
			
		||||
             146:    7(fvec4) ImageGather 144 145 57
 | 
			
		||||
                              Store 141(txval50) 146
 | 
			
		||||
             148:         122 Load 124(g_tTexcdi4a)
 | 
			
		||||
             149:          14 Load 16(g_sSamp)
 | 
			
		||||
             150:         127 SampledImage 148 149
 | 
			
		||||
             151:    7(fvec4) Load 118(c4)
 | 
			
		||||
             152:   27(ivec4) ImageGather 150 151 57
 | 
			
		||||
                              Store 147(txval51) 152
 | 
			
		||||
             154:         132 Load 134(g_tTexcdu4a)
 | 
			
		||||
             155:          14 Load 16(g_sSamp)
 | 
			
		||||
             156:         137 SampledImage 154 155
 | 
			
		||||
             157:    7(fvec4) Load 118(c4)
 | 
			
		||||
             158:   40(ivec4) ImageGather 156 157 57
 | 
			
		||||
                              Store 153(txval52) 158
 | 
			
		||||
             160:         110 Load 112(g_tTexcdf4a)
 | 
			
		||||
             161:          14 Load 16(g_sSamp)
 | 
			
		||||
             162:         115 SampledImage 160 161
 | 
			
		||||
             163:    7(fvec4) Load 118(c4)
 | 
			
		||||
             164:    7(fvec4) ImageGather 162 163 76
 | 
			
		||||
                              Store 159(txval60) 164
 | 
			
		||||
             166:         122 Load 124(g_tTexcdi4a)
 | 
			
		||||
             167:          14 Load 16(g_sSamp)
 | 
			
		||||
             168:         127 SampledImage 166 167
 | 
			
		||||
             169:    7(fvec4) Load 118(c4)
 | 
			
		||||
             170:   27(ivec4) ImageGather 168 169 76
 | 
			
		||||
                              Store 165(txval61) 170
 | 
			
		||||
             172:         132 Load 134(g_tTexcdu4a)
 | 
			
		||||
             173:          14 Load 16(g_sSamp)
 | 
			
		||||
             174:         137 SampledImage 172 173
 | 
			
		||||
             175:    7(fvec4) Load 118(c4)
 | 
			
		||||
             176:   40(ivec4) ImageGather 174 175 76
 | 
			
		||||
                              Store 171(txval62) 176
 | 
			
		||||
             178:         110 Load 112(g_tTexcdf4a)
 | 
			
		||||
             179:          14 Load 16(g_sSamp)
 | 
			
		||||
             180:         115 SampledImage 178 179
 | 
			
		||||
             181:    7(fvec4) Load 118(c4)
 | 
			
		||||
             182:    7(fvec4) ImageGather 180 181 95
 | 
			
		||||
                              Store 177(txval70) 182
 | 
			
		||||
             184:         122 Load 124(g_tTexcdi4a)
 | 
			
		||||
             185:          14 Load 16(g_sSamp)
 | 
			
		||||
             186:         127 SampledImage 184 185
 | 
			
		||||
             187:    7(fvec4) Load 118(c4)
 | 
			
		||||
             188:   27(ivec4) ImageGather 186 187 95
 | 
			
		||||
                              Store 183(txval71) 188
 | 
			
		||||
             190:         132 Load 134(g_tTexcdu4a)
 | 
			
		||||
             191:          14 Load 16(g_sSamp)
 | 
			
		||||
             192:         137 SampledImage 190 191
 | 
			
		||||
             193:    7(fvec4) Load 118(c4)
 | 
			
		||||
             194:   40(ivec4) ImageGather 192 193 95
 | 
			
		||||
                              Store 189(txval72) 194
 | 
			
		||||
             200:      8(ptr) AccessChain 197(psout) 25
 | 
			
		||||
                              Store 200 199
 | 
			
		||||
             202:    201(ptr) AccessChain 197(psout) 57
 | 
			
		||||
                              Store 202 198
 | 
			
		||||
             203:195(PS_OUTPUT) Load 197(psout)
 | 
			
		||||
                              ReturnValue 203
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										910
									
								
								Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										910
									
								
								Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,910 @@
 | 
			
		||||
hlsl.gatherRGBA.basic.dx10.frag
 | 
			
		||||
Shader version: 450
 | 
			
		||||
gl_FragCoord origin is upper left
 | 
			
		||||
0:? Sequence
 | 
			
		||||
0:78  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:34    Function Parameters: 
 | 
			
		||||
0:?     Sequence
 | 
			
		||||
0:39      Sequence
 | 
			
		||||
0:39        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:39          'txval00' (temp 4-component vector of float)
 | 
			
		||||
0:39          textureGather (global 4-component vector of float)
 | 
			
		||||
0:39            Construct combined texture-sampler (temp sampler2D)
 | 
			
		||||
0:39              'g_tTex2df4' (uniform texture2D)
 | 
			
		||||
0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:39            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:39            Constant:
 | 
			
		||||
0:39              0 (const int)
 | 
			
		||||
0:40      Sequence
 | 
			
		||||
0:40        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:40          'txval01' (temp 4-component vector of int)
 | 
			
		||||
0:40          textureGather (global 4-component vector of int)
 | 
			
		||||
0:40            Construct combined texture-sampler (temp isampler2D)
 | 
			
		||||
0:40              'g_tTex2di4' (uniform itexture2D)
 | 
			
		||||
0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:40            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:40            Constant:
 | 
			
		||||
0:40              0 (const int)
 | 
			
		||||
0:41      Sequence
 | 
			
		||||
0:41        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:41          'txval02' (temp 4-component vector of uint)
 | 
			
		||||
0:41          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:41            Construct combined texture-sampler (temp usampler2D)
 | 
			
		||||
0:41              'g_tTex2du4' (uniform utexture2D)
 | 
			
		||||
0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:41            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:41            Constant:
 | 
			
		||||
0:41              0 (const int)
 | 
			
		||||
0:43      Sequence
 | 
			
		||||
0:43        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:43          'txval10' (temp 4-component vector of float)
 | 
			
		||||
0:43          textureGather (global 4-component vector of float)
 | 
			
		||||
0:43            Construct combined texture-sampler (temp sampler2D)
 | 
			
		||||
0:43              'g_tTex2df4' (uniform texture2D)
 | 
			
		||||
0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:43            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:43            Constant:
 | 
			
		||||
0:43              1 (const int)
 | 
			
		||||
0:44      Sequence
 | 
			
		||||
0:44        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:44          'txval11' (temp 4-component vector of int)
 | 
			
		||||
0:44          textureGather (global 4-component vector of int)
 | 
			
		||||
0:44            Construct combined texture-sampler (temp isampler2D)
 | 
			
		||||
0:44              'g_tTex2di4' (uniform itexture2D)
 | 
			
		||||
0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:44            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:44            Constant:
 | 
			
		||||
0:44              1 (const int)
 | 
			
		||||
0:45      Sequence
 | 
			
		||||
0:45        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:45          'txval12' (temp 4-component vector of uint)
 | 
			
		||||
0:45          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:45            Construct combined texture-sampler (temp usampler2D)
 | 
			
		||||
0:45              'g_tTex2du4' (uniform utexture2D)
 | 
			
		||||
0:45              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:45            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:45            Constant:
 | 
			
		||||
0:45              1 (const int)
 | 
			
		||||
0:47      Sequence
 | 
			
		||||
0:47        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:47          'txval20' (temp 4-component vector of float)
 | 
			
		||||
0:47          textureGather (global 4-component vector of float)
 | 
			
		||||
0:47            Construct combined texture-sampler (temp sampler2D)
 | 
			
		||||
0:47              'g_tTex2df4' (uniform texture2D)
 | 
			
		||||
0:47              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:47            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:47            Constant:
 | 
			
		||||
0:47              2 (const int)
 | 
			
		||||
0:48      Sequence
 | 
			
		||||
0:48        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:48          'txval21' (temp 4-component vector of int)
 | 
			
		||||
0:48          textureGather (global 4-component vector of int)
 | 
			
		||||
0:48            Construct combined texture-sampler (temp isampler2D)
 | 
			
		||||
0:48              'g_tTex2di4' (uniform itexture2D)
 | 
			
		||||
0:48              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:48            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:48            Constant:
 | 
			
		||||
0:48              2 (const int)
 | 
			
		||||
0:49      Sequence
 | 
			
		||||
0:49        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:49          'txval22' (temp 4-component vector of uint)
 | 
			
		||||
0:49          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:49            Construct combined texture-sampler (temp usampler2D)
 | 
			
		||||
0:49              'g_tTex2du4' (uniform utexture2D)
 | 
			
		||||
0:49              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:49            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:49            Constant:
 | 
			
		||||
0:49              2 (const int)
 | 
			
		||||
0:51      Sequence
 | 
			
		||||
0:51        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:51          'txval30' (temp 4-component vector of float)
 | 
			
		||||
0:51          textureGather (global 4-component vector of float)
 | 
			
		||||
0:51            Construct combined texture-sampler (temp sampler2D)
 | 
			
		||||
0:51              'g_tTex2df4' (uniform texture2D)
 | 
			
		||||
0:51              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:51            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:51            Constant:
 | 
			
		||||
0:51              3 (const int)
 | 
			
		||||
0:52      Sequence
 | 
			
		||||
0:52        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:52          'txval31' (temp 4-component vector of int)
 | 
			
		||||
0:52          textureGather (global 4-component vector of int)
 | 
			
		||||
0:52            Construct combined texture-sampler (temp isampler2D)
 | 
			
		||||
0:52              'g_tTex2di4' (uniform itexture2D)
 | 
			
		||||
0:52              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:52            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:52            Constant:
 | 
			
		||||
0:52              3 (const int)
 | 
			
		||||
0:53      Sequence
 | 
			
		||||
0:53        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:53          'txval32' (temp 4-component vector of uint)
 | 
			
		||||
0:53          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:53            Construct combined texture-sampler (temp usampler2D)
 | 
			
		||||
0:53              'g_tTex2du4' (uniform utexture2D)
 | 
			
		||||
0:53              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:53            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:53            Constant:
 | 
			
		||||
0:53              3 (const int)
 | 
			
		||||
0:57      Sequence
 | 
			
		||||
0:57        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:57          'txval40' (temp 4-component vector of float)
 | 
			
		||||
0:57          textureGather (global 4-component vector of float)
 | 
			
		||||
0:57            Construct combined texture-sampler (temp samplerCube)
 | 
			
		||||
0:57              'g_tTexcdf4' (uniform textureCube)
 | 
			
		||||
0:57              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:57            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:57            Constant:
 | 
			
		||||
0:57              0 (const int)
 | 
			
		||||
0:58      Sequence
 | 
			
		||||
0:58        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:58          'txval41' (temp 4-component vector of int)
 | 
			
		||||
0:58          textureGather (global 4-component vector of int)
 | 
			
		||||
0:58            Construct combined texture-sampler (temp isamplerCube)
 | 
			
		||||
0:58              'g_tTexcdi4' (uniform itextureCube)
 | 
			
		||||
0:58              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:58            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:58            Constant:
 | 
			
		||||
0:58              0 (const int)
 | 
			
		||||
0:59      Sequence
 | 
			
		||||
0:59        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:59          'txval42' (temp 4-component vector of uint)
 | 
			
		||||
0:59          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:59            Construct combined texture-sampler (temp usamplerCube)
 | 
			
		||||
0:59              'g_tTexcdu4' (uniform utextureCube)
 | 
			
		||||
0:59              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:59            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:59            Constant:
 | 
			
		||||
0:59              0 (const int)
 | 
			
		||||
0:61      Sequence
 | 
			
		||||
0:61        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:61          'txval50' (temp 4-component vector of float)
 | 
			
		||||
0:61          textureGather (global 4-component vector of float)
 | 
			
		||||
0:61            Construct combined texture-sampler (temp samplerCube)
 | 
			
		||||
0:61              'g_tTexcdf4' (uniform textureCube)
 | 
			
		||||
0:61              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:61            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:61            Constant:
 | 
			
		||||
0:61              1 (const int)
 | 
			
		||||
0:62      Sequence
 | 
			
		||||
0:62        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:62          'txval51' (temp 4-component vector of int)
 | 
			
		||||
0:62          textureGather (global 4-component vector of int)
 | 
			
		||||
0:62            Construct combined texture-sampler (temp isamplerCube)
 | 
			
		||||
0:62              'g_tTexcdi4' (uniform itextureCube)
 | 
			
		||||
0:62              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:62            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:62            Constant:
 | 
			
		||||
0:62              1 (const int)
 | 
			
		||||
0:63      Sequence
 | 
			
		||||
0:63        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:63          'txval52' (temp 4-component vector of uint)
 | 
			
		||||
0:63          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:63            Construct combined texture-sampler (temp usamplerCube)
 | 
			
		||||
0:63              'g_tTexcdu4' (uniform utextureCube)
 | 
			
		||||
0:63              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:63            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:63            Constant:
 | 
			
		||||
0:63              1 (const int)
 | 
			
		||||
0:65      Sequence
 | 
			
		||||
0:65        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:65          'txval60' (temp 4-component vector of float)
 | 
			
		||||
0:65          textureGather (global 4-component vector of float)
 | 
			
		||||
0:65            Construct combined texture-sampler (temp samplerCube)
 | 
			
		||||
0:65              'g_tTexcdf4' (uniform textureCube)
 | 
			
		||||
0:65              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:65            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:65            Constant:
 | 
			
		||||
0:65              2 (const int)
 | 
			
		||||
0:66      Sequence
 | 
			
		||||
0:66        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:66          'txval61' (temp 4-component vector of int)
 | 
			
		||||
0:66          textureGather (global 4-component vector of int)
 | 
			
		||||
0:66            Construct combined texture-sampler (temp isamplerCube)
 | 
			
		||||
0:66              'g_tTexcdi4' (uniform itextureCube)
 | 
			
		||||
0:66              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:66            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:66            Constant:
 | 
			
		||||
0:66              2 (const int)
 | 
			
		||||
0:67      Sequence
 | 
			
		||||
0:67        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:67          'txval62' (temp 4-component vector of uint)
 | 
			
		||||
0:67          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:67            Construct combined texture-sampler (temp usamplerCube)
 | 
			
		||||
0:67              'g_tTexcdu4' (uniform utextureCube)
 | 
			
		||||
0:67              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:67            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:67            Constant:
 | 
			
		||||
0:67              2 (const int)
 | 
			
		||||
0:69      Sequence
 | 
			
		||||
0:69        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:69          'txval70' (temp 4-component vector of float)
 | 
			
		||||
0:69          textureGather (global 4-component vector of float)
 | 
			
		||||
0:69            Construct combined texture-sampler (temp samplerCube)
 | 
			
		||||
0:69              'g_tTexcdf4' (uniform textureCube)
 | 
			
		||||
0:69              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:69            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:69            Constant:
 | 
			
		||||
0:69              3 (const int)
 | 
			
		||||
0:70      Sequence
 | 
			
		||||
0:70        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:70          'txval71' (temp 4-component vector of int)
 | 
			
		||||
0:70          textureGather (global 4-component vector of int)
 | 
			
		||||
0:70            Construct combined texture-sampler (temp isamplerCube)
 | 
			
		||||
0:70              'g_tTexcdi4' (uniform itextureCube)
 | 
			
		||||
0:70              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:70            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:70            Constant:
 | 
			
		||||
0:70              3 (const int)
 | 
			
		||||
0:71      Sequence
 | 
			
		||||
0:71        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:71          'txval72' (temp 4-component vector of uint)
 | 
			
		||||
0:71          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:71            Construct combined texture-sampler (temp usamplerCube)
 | 
			
		||||
0:71              'g_tTexcdu4' (uniform utextureCube)
 | 
			
		||||
0:71              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:71            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:71            Constant:
 | 
			
		||||
0:71              3 (const int)
 | 
			
		||||
0:73      move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:73        Color: direct index for structure (temp 4-component vector of float)
 | 
			
		||||
0:73          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:73          Constant:
 | 
			
		||||
0:73            0 (const int)
 | 
			
		||||
0:73        Constant:
 | 
			
		||||
0:73          1.000000
 | 
			
		||||
0:73          1.000000
 | 
			
		||||
0:73          1.000000
 | 
			
		||||
0:73          1.000000
 | 
			
		||||
0:74      move second child to first child (temp float)
 | 
			
		||||
0:74        Depth: direct index for structure (temp float FragDepth)
 | 
			
		||||
0:74          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:74          Constant:
 | 
			
		||||
0:74            1 (const int)
 | 
			
		||||
0:74        Constant:
 | 
			
		||||
0:74          1.000000
 | 
			
		||||
0:76      Branch: Return with expression
 | 
			
		||||
0:76        'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:?   Linker Objects
 | 
			
		||||
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:?     'g_sSamp2d' (uniform sampler)
 | 
			
		||||
0:?     'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
 | 
			
		||||
0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 | 
			
		||||
0:?     'g_tTex1di4' (uniform itexture1D)
 | 
			
		||||
0:?     'g_tTex1du4' (uniform utexture1D)
 | 
			
		||||
0:?     'g_tTex2df4' (uniform texture2D)
 | 
			
		||||
0:?     'g_tTex2di4' (uniform itexture2D)
 | 
			
		||||
0:?     'g_tTex2du4' (uniform utexture2D)
 | 
			
		||||
0:?     'g_tTex3df4' (uniform texture3D)
 | 
			
		||||
0:?     'g_tTex3di4' (uniform itexture3D)
 | 
			
		||||
0:?     'g_tTex3du4' (uniform utexture3D)
 | 
			
		||||
0:?     'g_tTexcdf4' (uniform textureCube)
 | 
			
		||||
0:?     'g_tTexcdi4' (uniform itextureCube)
 | 
			
		||||
0:?     'g_tTexcdu4' (uniform utextureCube)
 | 
			
		||||
0:?     'c1' (uniform float)
 | 
			
		||||
0:?     'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:?     'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:?     'c4' (uniform 4-component vector of float)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Shader version: 450
 | 
			
		||||
gl_FragCoord origin is upper left
 | 
			
		||||
0:? Sequence
 | 
			
		||||
0:78  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:34    Function Parameters: 
 | 
			
		||||
0:?     Sequence
 | 
			
		||||
0:39      Sequence
 | 
			
		||||
0:39        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:39          'txval00' (temp 4-component vector of float)
 | 
			
		||||
0:39          textureGather (global 4-component vector of float)
 | 
			
		||||
0:39            Construct combined texture-sampler (temp sampler2D)
 | 
			
		||||
0:39              'g_tTex2df4' (uniform texture2D)
 | 
			
		||||
0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:39            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:39            Constant:
 | 
			
		||||
0:39              0 (const int)
 | 
			
		||||
0:40      Sequence
 | 
			
		||||
0:40        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:40          'txval01' (temp 4-component vector of int)
 | 
			
		||||
0:40          textureGather (global 4-component vector of int)
 | 
			
		||||
0:40            Construct combined texture-sampler (temp isampler2D)
 | 
			
		||||
0:40              'g_tTex2di4' (uniform itexture2D)
 | 
			
		||||
0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:40            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:40            Constant:
 | 
			
		||||
0:40              0 (const int)
 | 
			
		||||
0:41      Sequence
 | 
			
		||||
0:41        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:41          'txval02' (temp 4-component vector of uint)
 | 
			
		||||
0:41          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:41            Construct combined texture-sampler (temp usampler2D)
 | 
			
		||||
0:41              'g_tTex2du4' (uniform utexture2D)
 | 
			
		||||
0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:41            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:41            Constant:
 | 
			
		||||
0:41              0 (const int)
 | 
			
		||||
0:43      Sequence
 | 
			
		||||
0:43        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:43          'txval10' (temp 4-component vector of float)
 | 
			
		||||
0:43          textureGather (global 4-component vector of float)
 | 
			
		||||
0:43            Construct combined texture-sampler (temp sampler2D)
 | 
			
		||||
0:43              'g_tTex2df4' (uniform texture2D)
 | 
			
		||||
0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:43            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:43            Constant:
 | 
			
		||||
0:43              1 (const int)
 | 
			
		||||
0:44      Sequence
 | 
			
		||||
0:44        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:44          'txval11' (temp 4-component vector of int)
 | 
			
		||||
0:44          textureGather (global 4-component vector of int)
 | 
			
		||||
0:44            Construct combined texture-sampler (temp isampler2D)
 | 
			
		||||
0:44              'g_tTex2di4' (uniform itexture2D)
 | 
			
		||||
0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:44            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:44            Constant:
 | 
			
		||||
0:44              1 (const int)
 | 
			
		||||
0:45      Sequence
 | 
			
		||||
0:45        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:45          'txval12' (temp 4-component vector of uint)
 | 
			
		||||
0:45          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:45            Construct combined texture-sampler (temp usampler2D)
 | 
			
		||||
0:45              'g_tTex2du4' (uniform utexture2D)
 | 
			
		||||
0:45              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:45            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:45            Constant:
 | 
			
		||||
0:45              1 (const int)
 | 
			
		||||
0:47      Sequence
 | 
			
		||||
0:47        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:47          'txval20' (temp 4-component vector of float)
 | 
			
		||||
0:47          textureGather (global 4-component vector of float)
 | 
			
		||||
0:47            Construct combined texture-sampler (temp sampler2D)
 | 
			
		||||
0:47              'g_tTex2df4' (uniform texture2D)
 | 
			
		||||
0:47              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:47            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:47            Constant:
 | 
			
		||||
0:47              2 (const int)
 | 
			
		||||
0:48      Sequence
 | 
			
		||||
0:48        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:48          'txval21' (temp 4-component vector of int)
 | 
			
		||||
0:48          textureGather (global 4-component vector of int)
 | 
			
		||||
0:48            Construct combined texture-sampler (temp isampler2D)
 | 
			
		||||
0:48              'g_tTex2di4' (uniform itexture2D)
 | 
			
		||||
0:48              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:48            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:48            Constant:
 | 
			
		||||
0:48              2 (const int)
 | 
			
		||||
0:49      Sequence
 | 
			
		||||
0:49        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:49          'txval22' (temp 4-component vector of uint)
 | 
			
		||||
0:49          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:49            Construct combined texture-sampler (temp usampler2D)
 | 
			
		||||
0:49              'g_tTex2du4' (uniform utexture2D)
 | 
			
		||||
0:49              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:49            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:49            Constant:
 | 
			
		||||
0:49              2 (const int)
 | 
			
		||||
0:51      Sequence
 | 
			
		||||
0:51        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:51          'txval30' (temp 4-component vector of float)
 | 
			
		||||
0:51          textureGather (global 4-component vector of float)
 | 
			
		||||
0:51            Construct combined texture-sampler (temp sampler2D)
 | 
			
		||||
0:51              'g_tTex2df4' (uniform texture2D)
 | 
			
		||||
0:51              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:51            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:51            Constant:
 | 
			
		||||
0:51              3 (const int)
 | 
			
		||||
0:52      Sequence
 | 
			
		||||
0:52        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:52          'txval31' (temp 4-component vector of int)
 | 
			
		||||
0:52          textureGather (global 4-component vector of int)
 | 
			
		||||
0:52            Construct combined texture-sampler (temp isampler2D)
 | 
			
		||||
0:52              'g_tTex2di4' (uniform itexture2D)
 | 
			
		||||
0:52              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:52            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:52            Constant:
 | 
			
		||||
0:52              3 (const int)
 | 
			
		||||
0:53      Sequence
 | 
			
		||||
0:53        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:53          'txval32' (temp 4-component vector of uint)
 | 
			
		||||
0:53          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:53            Construct combined texture-sampler (temp usampler2D)
 | 
			
		||||
0:53              'g_tTex2du4' (uniform utexture2D)
 | 
			
		||||
0:53              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:53            'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:53            Constant:
 | 
			
		||||
0:53              3 (const int)
 | 
			
		||||
0:57      Sequence
 | 
			
		||||
0:57        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:57          'txval40' (temp 4-component vector of float)
 | 
			
		||||
0:57          textureGather (global 4-component vector of float)
 | 
			
		||||
0:57            Construct combined texture-sampler (temp samplerCube)
 | 
			
		||||
0:57              'g_tTexcdf4' (uniform textureCube)
 | 
			
		||||
0:57              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:57            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:57            Constant:
 | 
			
		||||
0:57              0 (const int)
 | 
			
		||||
0:58      Sequence
 | 
			
		||||
0:58        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:58          'txval41' (temp 4-component vector of int)
 | 
			
		||||
0:58          textureGather (global 4-component vector of int)
 | 
			
		||||
0:58            Construct combined texture-sampler (temp isamplerCube)
 | 
			
		||||
0:58              'g_tTexcdi4' (uniform itextureCube)
 | 
			
		||||
0:58              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:58            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:58            Constant:
 | 
			
		||||
0:58              0 (const int)
 | 
			
		||||
0:59      Sequence
 | 
			
		||||
0:59        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:59          'txval42' (temp 4-component vector of uint)
 | 
			
		||||
0:59          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:59            Construct combined texture-sampler (temp usamplerCube)
 | 
			
		||||
0:59              'g_tTexcdu4' (uniform utextureCube)
 | 
			
		||||
0:59              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:59            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:59            Constant:
 | 
			
		||||
0:59              0 (const int)
 | 
			
		||||
0:61      Sequence
 | 
			
		||||
0:61        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:61          'txval50' (temp 4-component vector of float)
 | 
			
		||||
0:61          textureGather (global 4-component vector of float)
 | 
			
		||||
0:61            Construct combined texture-sampler (temp samplerCube)
 | 
			
		||||
0:61              'g_tTexcdf4' (uniform textureCube)
 | 
			
		||||
0:61              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:61            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:61            Constant:
 | 
			
		||||
0:61              1 (const int)
 | 
			
		||||
0:62      Sequence
 | 
			
		||||
0:62        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:62          'txval51' (temp 4-component vector of int)
 | 
			
		||||
0:62          textureGather (global 4-component vector of int)
 | 
			
		||||
0:62            Construct combined texture-sampler (temp isamplerCube)
 | 
			
		||||
0:62              'g_tTexcdi4' (uniform itextureCube)
 | 
			
		||||
0:62              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:62            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:62            Constant:
 | 
			
		||||
0:62              1 (const int)
 | 
			
		||||
0:63      Sequence
 | 
			
		||||
0:63        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:63          'txval52' (temp 4-component vector of uint)
 | 
			
		||||
0:63          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:63            Construct combined texture-sampler (temp usamplerCube)
 | 
			
		||||
0:63              'g_tTexcdu4' (uniform utextureCube)
 | 
			
		||||
0:63              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:63            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:63            Constant:
 | 
			
		||||
0:63              1 (const int)
 | 
			
		||||
0:65      Sequence
 | 
			
		||||
0:65        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:65          'txval60' (temp 4-component vector of float)
 | 
			
		||||
0:65          textureGather (global 4-component vector of float)
 | 
			
		||||
0:65            Construct combined texture-sampler (temp samplerCube)
 | 
			
		||||
0:65              'g_tTexcdf4' (uniform textureCube)
 | 
			
		||||
0:65              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:65            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:65            Constant:
 | 
			
		||||
0:65              2 (const int)
 | 
			
		||||
0:66      Sequence
 | 
			
		||||
0:66        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:66          'txval61' (temp 4-component vector of int)
 | 
			
		||||
0:66          textureGather (global 4-component vector of int)
 | 
			
		||||
0:66            Construct combined texture-sampler (temp isamplerCube)
 | 
			
		||||
0:66              'g_tTexcdi4' (uniform itextureCube)
 | 
			
		||||
0:66              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:66            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:66            Constant:
 | 
			
		||||
0:66              2 (const int)
 | 
			
		||||
0:67      Sequence
 | 
			
		||||
0:67        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:67          'txval62' (temp 4-component vector of uint)
 | 
			
		||||
0:67          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:67            Construct combined texture-sampler (temp usamplerCube)
 | 
			
		||||
0:67              'g_tTexcdu4' (uniform utextureCube)
 | 
			
		||||
0:67              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:67            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:67            Constant:
 | 
			
		||||
0:67              2 (const int)
 | 
			
		||||
0:69      Sequence
 | 
			
		||||
0:69        move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:69          'txval70' (temp 4-component vector of float)
 | 
			
		||||
0:69          textureGather (global 4-component vector of float)
 | 
			
		||||
0:69            Construct combined texture-sampler (temp samplerCube)
 | 
			
		||||
0:69              'g_tTexcdf4' (uniform textureCube)
 | 
			
		||||
0:69              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:69            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:69            Constant:
 | 
			
		||||
0:69              3 (const int)
 | 
			
		||||
0:70      Sequence
 | 
			
		||||
0:70        move second child to first child (temp 4-component vector of int)
 | 
			
		||||
0:70          'txval71' (temp 4-component vector of int)
 | 
			
		||||
0:70          textureGather (global 4-component vector of int)
 | 
			
		||||
0:70            Construct combined texture-sampler (temp isamplerCube)
 | 
			
		||||
0:70              'g_tTexcdi4' (uniform itextureCube)
 | 
			
		||||
0:70              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:70            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:70            Constant:
 | 
			
		||||
0:70              3 (const int)
 | 
			
		||||
0:71      Sequence
 | 
			
		||||
0:71        move second child to first child (temp 4-component vector of uint)
 | 
			
		||||
0:71          'txval72' (temp 4-component vector of uint)
 | 
			
		||||
0:71          textureGather (global 4-component vector of uint)
 | 
			
		||||
0:71            Construct combined texture-sampler (temp usamplerCube)
 | 
			
		||||
0:71              'g_tTexcdu4' (uniform utextureCube)
 | 
			
		||||
0:71              'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:71            'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:71            Constant:
 | 
			
		||||
0:71              3 (const int)
 | 
			
		||||
0:73      move second child to first child (temp 4-component vector of float)
 | 
			
		||||
0:73        Color: direct index for structure (temp 4-component vector of float)
 | 
			
		||||
0:73          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:73          Constant:
 | 
			
		||||
0:73            0 (const int)
 | 
			
		||||
0:73        Constant:
 | 
			
		||||
0:73          1.000000
 | 
			
		||||
0:73          1.000000
 | 
			
		||||
0:73          1.000000
 | 
			
		||||
0:73          1.000000
 | 
			
		||||
0:74      move second child to first child (temp float)
 | 
			
		||||
0:74        Depth: direct index for structure (temp float FragDepth)
 | 
			
		||||
0:74          'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:74          Constant:
 | 
			
		||||
0:74            1 (const int)
 | 
			
		||||
0:74        Constant:
 | 
			
		||||
0:74          1.000000
 | 
			
		||||
0:76      Branch: Return with expression
 | 
			
		||||
0:76        'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 | 
			
		||||
0:?   Linker Objects
 | 
			
		||||
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
 | 
			
		||||
0:?     'g_sSamp2d' (uniform sampler)
 | 
			
		||||
0:?     'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
 | 
			
		||||
0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 | 
			
		||||
0:?     'g_tTex1di4' (uniform itexture1D)
 | 
			
		||||
0:?     'g_tTex1du4' (uniform utexture1D)
 | 
			
		||||
0:?     'g_tTex2df4' (uniform texture2D)
 | 
			
		||||
0:?     'g_tTex2di4' (uniform itexture2D)
 | 
			
		||||
0:?     'g_tTex2du4' (uniform utexture2D)
 | 
			
		||||
0:?     'g_tTex3df4' (uniform texture3D)
 | 
			
		||||
0:?     'g_tTex3di4' (uniform itexture3D)
 | 
			
		||||
0:?     'g_tTex3du4' (uniform utexture3D)
 | 
			
		||||
0:?     'g_tTexcdf4' (uniform textureCube)
 | 
			
		||||
0:?     'g_tTexcdi4' (uniform itextureCube)
 | 
			
		||||
0:?     'g_tTexcdu4' (uniform utextureCube)
 | 
			
		||||
0:?     'c1' (uniform float)
 | 
			
		||||
0:?     'c2' (uniform 2-component vector of float)
 | 
			
		||||
0:?     'c3' (uniform 3-component vector of float)
 | 
			
		||||
0:?     'c4' (uniform 4-component vector of float)
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 230
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
                              Capability Sampled1D
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main"
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Source HLSL 450
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 9  "txval00"
 | 
			
		||||
                              Name 12  "g_tTex2df4"
 | 
			
		||||
                              Name 16  "g_sSamp"
 | 
			
		||||
                              Name 22  "c2"
 | 
			
		||||
                              Name 29  "txval01"
 | 
			
		||||
                              Name 32  "g_tTex2di4"
 | 
			
		||||
                              Name 42  "txval02"
 | 
			
		||||
                              Name 45  "g_tTex2du4"
 | 
			
		||||
                              Name 52  "txval10"
 | 
			
		||||
                              Name 59  "txval11"
 | 
			
		||||
                              Name 65  "txval12"
 | 
			
		||||
                              Name 71  "txval20"
 | 
			
		||||
                              Name 78  "txval21"
 | 
			
		||||
                              Name 84  "txval22"
 | 
			
		||||
                              Name 90  "txval30"
 | 
			
		||||
                              Name 97  "txval31"
 | 
			
		||||
                              Name 103  "txval32"
 | 
			
		||||
                              Name 109  "txval40"
 | 
			
		||||
                              Name 112  "g_tTexcdf4"
 | 
			
		||||
                              Name 119  "c3"
 | 
			
		||||
                              Name 122  "txval41"
 | 
			
		||||
                              Name 125  "g_tTexcdi4"
 | 
			
		||||
                              Name 132  "txval42"
 | 
			
		||||
                              Name 135  "g_tTexcdu4"
 | 
			
		||||
                              Name 142  "txval50"
 | 
			
		||||
                              Name 148  "txval51"
 | 
			
		||||
                              Name 154  "txval52"
 | 
			
		||||
                              Name 160  "txval60"
 | 
			
		||||
                              Name 166  "txval61"
 | 
			
		||||
                              Name 172  "txval62"
 | 
			
		||||
                              Name 178  "txval70"
 | 
			
		||||
                              Name 184  "txval71"
 | 
			
		||||
                              Name 190  "txval72"
 | 
			
		||||
                              Name 196  "PS_OUTPUT"
 | 
			
		||||
                              MemberName 196(PS_OUTPUT) 0  "Color"
 | 
			
		||||
                              MemberName 196(PS_OUTPUT) 1  "Depth"
 | 
			
		||||
                              Name 198  "psout"
 | 
			
		||||
                              Name 206  "g_sSamp2d"
 | 
			
		||||
                              Name 209  "g_tTex1df4a"
 | 
			
		||||
                              Name 210  "g_tTex1df4"
 | 
			
		||||
                              Name 213  "g_tTex1di4"
 | 
			
		||||
                              Name 216  "g_tTex1du4"
 | 
			
		||||
                              Name 219  "g_tTex3df4"
 | 
			
		||||
                              Name 222  "g_tTex3di4"
 | 
			
		||||
                              Name 225  "g_tTex3du4"
 | 
			
		||||
                              Name 227  "c1"
 | 
			
		||||
                              Name 229  "c4"
 | 
			
		||||
                              Decorate 12(g_tTex2df4) DescriptorSet 0
 | 
			
		||||
                              Decorate 16(g_sSamp) DescriptorSet 0
 | 
			
		||||
                              Decorate 16(g_sSamp) Binding 0
 | 
			
		||||
                              Decorate 32(g_tTex2di4) DescriptorSet 0
 | 
			
		||||
                              Decorate 45(g_tTex2du4) DescriptorSet 0
 | 
			
		||||
                              Decorate 112(g_tTexcdf4) DescriptorSet 0
 | 
			
		||||
                              Decorate 125(g_tTexcdi4) DescriptorSet 0
 | 
			
		||||
                              Decorate 135(g_tTexcdu4) DescriptorSet 0
 | 
			
		||||
                              MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth
 | 
			
		||||
                              Decorate 206(g_sSamp2d) DescriptorSet 0
 | 
			
		||||
                              Decorate 209(g_tTex1df4a) DescriptorSet 0
 | 
			
		||||
                              Decorate 209(g_tTex1df4a) Binding 1
 | 
			
		||||
                              Decorate 210(g_tTex1df4) DescriptorSet 0
 | 
			
		||||
                              Decorate 210(g_tTex1df4) Binding 0
 | 
			
		||||
                              Decorate 213(g_tTex1di4) DescriptorSet 0
 | 
			
		||||
                              Decorate 216(g_tTex1du4) DescriptorSet 0
 | 
			
		||||
                              Decorate 219(g_tTex3df4) DescriptorSet 0
 | 
			
		||||
                              Decorate 222(g_tTex3di4) DescriptorSet 0
 | 
			
		||||
                              Decorate 225(g_tTex3du4) DescriptorSet 0
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeFloat 32
 | 
			
		||||
               7:             TypeVector 6(float) 4
 | 
			
		||||
               8:             TypePointer Function 7(fvec4)
 | 
			
		||||
              10:             TypeImage 6(float) 2D sampled format:Unknown
 | 
			
		||||
              11:             TypePointer UniformConstant 10
 | 
			
		||||
  12(g_tTex2df4):     11(ptr) Variable UniformConstant
 | 
			
		||||
              14:             TypeSampler
 | 
			
		||||
              15:             TypePointer UniformConstant 14
 | 
			
		||||
     16(g_sSamp):     15(ptr) Variable UniformConstant
 | 
			
		||||
              18:             TypeSampledImage 10
 | 
			
		||||
              20:             TypeVector 6(float) 2
 | 
			
		||||
              21:             TypePointer UniformConstant 20(fvec2)
 | 
			
		||||
          22(c2):     21(ptr) Variable UniformConstant
 | 
			
		||||
              24:             TypeInt 32 1
 | 
			
		||||
              25:     24(int) Constant 0
 | 
			
		||||
              27:             TypeVector 24(int) 4
 | 
			
		||||
              28:             TypePointer Function 27(ivec4)
 | 
			
		||||
              30:             TypeImage 24(int) 2D sampled format:Unknown
 | 
			
		||||
              31:             TypePointer UniformConstant 30
 | 
			
		||||
  32(g_tTex2di4):     31(ptr) Variable UniformConstant
 | 
			
		||||
              35:             TypeSampledImage 30
 | 
			
		||||
              39:             TypeInt 32 0
 | 
			
		||||
              40:             TypeVector 39(int) 4
 | 
			
		||||
              41:             TypePointer Function 40(ivec4)
 | 
			
		||||
              43:             TypeImage 39(int) 2D sampled format:Unknown
 | 
			
		||||
              44:             TypePointer UniformConstant 43
 | 
			
		||||
  45(g_tTex2du4):     44(ptr) Variable UniformConstant
 | 
			
		||||
              48:             TypeSampledImage 43
 | 
			
		||||
              57:     24(int) Constant 1
 | 
			
		||||
              76:     24(int) Constant 2
 | 
			
		||||
              95:     24(int) Constant 3
 | 
			
		||||
             110:             TypeImage 6(float) Cube sampled format:Unknown
 | 
			
		||||
             111:             TypePointer UniformConstant 110
 | 
			
		||||
 112(g_tTexcdf4):    111(ptr) Variable UniformConstant
 | 
			
		||||
             115:             TypeSampledImage 110
 | 
			
		||||
             117:             TypeVector 6(float) 3
 | 
			
		||||
             118:             TypePointer UniformConstant 117(fvec3)
 | 
			
		||||
         119(c3):    118(ptr) Variable UniformConstant
 | 
			
		||||
             123:             TypeImage 24(int) Cube sampled format:Unknown
 | 
			
		||||
             124:             TypePointer UniformConstant 123
 | 
			
		||||
 125(g_tTexcdi4):    124(ptr) Variable UniformConstant
 | 
			
		||||
             128:             TypeSampledImage 123
 | 
			
		||||
             133:             TypeImage 39(int) Cube sampled format:Unknown
 | 
			
		||||
             134:             TypePointer UniformConstant 133
 | 
			
		||||
 135(g_tTexcdu4):    134(ptr) Variable UniformConstant
 | 
			
		||||
             138:             TypeSampledImage 133
 | 
			
		||||
  196(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float)
 | 
			
		||||
             197:             TypePointer Function 196(PS_OUTPUT)
 | 
			
		||||
             199:    6(float) Constant 1065353216
 | 
			
		||||
             200:    7(fvec4) ConstantComposite 199 199 199 199
 | 
			
		||||
             202:             TypePointer Function 6(float)
 | 
			
		||||
  206(g_sSamp2d):     15(ptr) Variable UniformConstant
 | 
			
		||||
             207:             TypeImage 6(float) 1D sampled format:Unknown
 | 
			
		||||
             208:             TypePointer UniformConstant 207
 | 
			
		||||
209(g_tTex1df4a):    208(ptr) Variable UniformConstant
 | 
			
		||||
 210(g_tTex1df4):    208(ptr) Variable UniformConstant
 | 
			
		||||
             211:             TypeImage 24(int) 1D sampled format:Unknown
 | 
			
		||||
             212:             TypePointer UniformConstant 211
 | 
			
		||||
 213(g_tTex1di4):    212(ptr) Variable UniformConstant
 | 
			
		||||
             214:             TypeImage 39(int) 1D sampled format:Unknown
 | 
			
		||||
             215:             TypePointer UniformConstant 214
 | 
			
		||||
 216(g_tTex1du4):    215(ptr) Variable UniformConstant
 | 
			
		||||
             217:             TypeImage 6(float) 3D sampled format:Unknown
 | 
			
		||||
             218:             TypePointer UniformConstant 217
 | 
			
		||||
 219(g_tTex3df4):    218(ptr) Variable UniformConstant
 | 
			
		||||
             220:             TypeImage 24(int) 3D sampled format:Unknown
 | 
			
		||||
             221:             TypePointer UniformConstant 220
 | 
			
		||||
 222(g_tTex3di4):    221(ptr) Variable UniformConstant
 | 
			
		||||
             223:             TypeImage 39(int) 3D sampled format:Unknown
 | 
			
		||||
             224:             TypePointer UniformConstant 223
 | 
			
		||||
 225(g_tTex3du4):    224(ptr) Variable UniformConstant
 | 
			
		||||
             226:             TypePointer UniformConstant 6(float)
 | 
			
		||||
         227(c1):    226(ptr) Variable UniformConstant
 | 
			
		||||
             228:             TypePointer UniformConstant 7(fvec4)
 | 
			
		||||
         229(c4):    228(ptr) Variable UniformConstant
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
      9(txval00):      8(ptr) Variable Function
 | 
			
		||||
     29(txval01):     28(ptr) Variable Function
 | 
			
		||||
     42(txval02):     41(ptr) Variable Function
 | 
			
		||||
     52(txval10):      8(ptr) Variable Function
 | 
			
		||||
     59(txval11):     28(ptr) Variable Function
 | 
			
		||||
     65(txval12):     41(ptr) Variable Function
 | 
			
		||||
     71(txval20):      8(ptr) Variable Function
 | 
			
		||||
     78(txval21):     28(ptr) Variable Function
 | 
			
		||||
     84(txval22):     41(ptr) Variable Function
 | 
			
		||||
     90(txval30):      8(ptr) Variable Function
 | 
			
		||||
     97(txval31):     28(ptr) Variable Function
 | 
			
		||||
    103(txval32):     41(ptr) Variable Function
 | 
			
		||||
    109(txval40):      8(ptr) Variable Function
 | 
			
		||||
    122(txval41):     28(ptr) Variable Function
 | 
			
		||||
    132(txval42):     41(ptr) Variable Function
 | 
			
		||||
    142(txval50):      8(ptr) Variable Function
 | 
			
		||||
    148(txval51):     28(ptr) Variable Function
 | 
			
		||||
    154(txval52):     41(ptr) Variable Function
 | 
			
		||||
    160(txval60):      8(ptr) Variable Function
 | 
			
		||||
    166(txval61):     28(ptr) Variable Function
 | 
			
		||||
    172(txval62):     41(ptr) Variable Function
 | 
			
		||||
    178(txval70):      8(ptr) Variable Function
 | 
			
		||||
    184(txval71):     28(ptr) Variable Function
 | 
			
		||||
    190(txval72):     41(ptr) Variable Function
 | 
			
		||||
      198(psout):    197(ptr) Variable Function
 | 
			
		||||
              13:          10 Load 12(g_tTex2df4)
 | 
			
		||||
              17:          14 Load 16(g_sSamp)
 | 
			
		||||
              19:          18 SampledImage 13 17
 | 
			
		||||
              23:   20(fvec2) Load 22(c2)
 | 
			
		||||
              26:    7(fvec4) ImageGather 19 23 25
 | 
			
		||||
                              Store 9(txval00) 26
 | 
			
		||||
              33:          30 Load 32(g_tTex2di4)
 | 
			
		||||
              34:          14 Load 16(g_sSamp)
 | 
			
		||||
              36:          35 SampledImage 33 34
 | 
			
		||||
              37:   20(fvec2) Load 22(c2)
 | 
			
		||||
              38:   27(ivec4) ImageGather 36 37 25
 | 
			
		||||
                              Store 29(txval01) 38
 | 
			
		||||
              46:          43 Load 45(g_tTex2du4)
 | 
			
		||||
              47:          14 Load 16(g_sSamp)
 | 
			
		||||
              49:          48 SampledImage 46 47
 | 
			
		||||
              50:   20(fvec2) Load 22(c2)
 | 
			
		||||
              51:   40(ivec4) ImageGather 49 50 25
 | 
			
		||||
                              Store 42(txval02) 51
 | 
			
		||||
              53:          10 Load 12(g_tTex2df4)
 | 
			
		||||
              54:          14 Load 16(g_sSamp)
 | 
			
		||||
              55:          18 SampledImage 53 54
 | 
			
		||||
              56:   20(fvec2) Load 22(c2)
 | 
			
		||||
              58:    7(fvec4) ImageGather 55 56 57
 | 
			
		||||
                              Store 52(txval10) 58
 | 
			
		||||
              60:          30 Load 32(g_tTex2di4)
 | 
			
		||||
              61:          14 Load 16(g_sSamp)
 | 
			
		||||
              62:          35 SampledImage 60 61
 | 
			
		||||
              63:   20(fvec2) Load 22(c2)
 | 
			
		||||
              64:   27(ivec4) ImageGather 62 63 57
 | 
			
		||||
                              Store 59(txval11) 64
 | 
			
		||||
              66:          43 Load 45(g_tTex2du4)
 | 
			
		||||
              67:          14 Load 16(g_sSamp)
 | 
			
		||||
              68:          48 SampledImage 66 67
 | 
			
		||||
              69:   20(fvec2) Load 22(c2)
 | 
			
		||||
              70:   40(ivec4) ImageGather 68 69 57
 | 
			
		||||
                              Store 65(txval12) 70
 | 
			
		||||
              72:          10 Load 12(g_tTex2df4)
 | 
			
		||||
              73:          14 Load 16(g_sSamp)
 | 
			
		||||
              74:          18 SampledImage 72 73
 | 
			
		||||
              75:   20(fvec2) Load 22(c2)
 | 
			
		||||
              77:    7(fvec4) ImageGather 74 75 76
 | 
			
		||||
                              Store 71(txval20) 77
 | 
			
		||||
              79:          30 Load 32(g_tTex2di4)
 | 
			
		||||
              80:          14 Load 16(g_sSamp)
 | 
			
		||||
              81:          35 SampledImage 79 80
 | 
			
		||||
              82:   20(fvec2) Load 22(c2)
 | 
			
		||||
              83:   27(ivec4) ImageGather 81 82 76
 | 
			
		||||
                              Store 78(txval21) 83
 | 
			
		||||
              85:          43 Load 45(g_tTex2du4)
 | 
			
		||||
              86:          14 Load 16(g_sSamp)
 | 
			
		||||
              87:          48 SampledImage 85 86
 | 
			
		||||
              88:   20(fvec2) Load 22(c2)
 | 
			
		||||
              89:   40(ivec4) ImageGather 87 88 76
 | 
			
		||||
                              Store 84(txval22) 89
 | 
			
		||||
              91:          10 Load 12(g_tTex2df4)
 | 
			
		||||
              92:          14 Load 16(g_sSamp)
 | 
			
		||||
              93:          18 SampledImage 91 92
 | 
			
		||||
              94:   20(fvec2) Load 22(c2)
 | 
			
		||||
              96:    7(fvec4) ImageGather 93 94 95
 | 
			
		||||
                              Store 90(txval30) 96
 | 
			
		||||
              98:          30 Load 32(g_tTex2di4)
 | 
			
		||||
              99:          14 Load 16(g_sSamp)
 | 
			
		||||
             100:          35 SampledImage 98 99
 | 
			
		||||
             101:   20(fvec2) Load 22(c2)
 | 
			
		||||
             102:   27(ivec4) ImageGather 100 101 95
 | 
			
		||||
                              Store 97(txval31) 102
 | 
			
		||||
             104:          43 Load 45(g_tTex2du4)
 | 
			
		||||
             105:          14 Load 16(g_sSamp)
 | 
			
		||||
             106:          48 SampledImage 104 105
 | 
			
		||||
             107:   20(fvec2) Load 22(c2)
 | 
			
		||||
             108:   40(ivec4) ImageGather 106 107 95
 | 
			
		||||
                              Store 103(txval32) 108
 | 
			
		||||
             113:         110 Load 112(g_tTexcdf4)
 | 
			
		||||
             114:          14 Load 16(g_sSamp)
 | 
			
		||||
             116:         115 SampledImage 113 114
 | 
			
		||||
             120:  117(fvec3) Load 119(c3)
 | 
			
		||||
             121:    7(fvec4) ImageGather 116 120 25
 | 
			
		||||
                              Store 109(txval40) 121
 | 
			
		||||
             126:         123 Load 125(g_tTexcdi4)
 | 
			
		||||
             127:          14 Load 16(g_sSamp)
 | 
			
		||||
             129:         128 SampledImage 126 127
 | 
			
		||||
             130:  117(fvec3) Load 119(c3)
 | 
			
		||||
             131:   27(ivec4) ImageGather 129 130 25
 | 
			
		||||
                              Store 122(txval41) 131
 | 
			
		||||
             136:         133 Load 135(g_tTexcdu4)
 | 
			
		||||
             137:          14 Load 16(g_sSamp)
 | 
			
		||||
             139:         138 SampledImage 136 137
 | 
			
		||||
             140:  117(fvec3) Load 119(c3)
 | 
			
		||||
             141:   40(ivec4) ImageGather 139 140 25
 | 
			
		||||
                              Store 132(txval42) 141
 | 
			
		||||
             143:         110 Load 112(g_tTexcdf4)
 | 
			
		||||
             144:          14 Load 16(g_sSamp)
 | 
			
		||||
             145:         115 SampledImage 143 144
 | 
			
		||||
             146:  117(fvec3) Load 119(c3)
 | 
			
		||||
             147:    7(fvec4) ImageGather 145 146 57
 | 
			
		||||
                              Store 142(txval50) 147
 | 
			
		||||
             149:         123 Load 125(g_tTexcdi4)
 | 
			
		||||
             150:          14 Load 16(g_sSamp)
 | 
			
		||||
             151:         128 SampledImage 149 150
 | 
			
		||||
             152:  117(fvec3) Load 119(c3)
 | 
			
		||||
             153:   27(ivec4) ImageGather 151 152 57
 | 
			
		||||
                              Store 148(txval51) 153
 | 
			
		||||
             155:         133 Load 135(g_tTexcdu4)
 | 
			
		||||
             156:          14 Load 16(g_sSamp)
 | 
			
		||||
             157:         138 SampledImage 155 156
 | 
			
		||||
             158:  117(fvec3) Load 119(c3)
 | 
			
		||||
             159:   40(ivec4) ImageGather 157 158 57
 | 
			
		||||
                              Store 154(txval52) 159
 | 
			
		||||
             161:         110 Load 112(g_tTexcdf4)
 | 
			
		||||
             162:          14 Load 16(g_sSamp)
 | 
			
		||||
             163:         115 SampledImage 161 162
 | 
			
		||||
             164:  117(fvec3) Load 119(c3)
 | 
			
		||||
             165:    7(fvec4) ImageGather 163 164 76
 | 
			
		||||
                              Store 160(txval60) 165
 | 
			
		||||
             167:         123 Load 125(g_tTexcdi4)
 | 
			
		||||
             168:          14 Load 16(g_sSamp)
 | 
			
		||||
             169:         128 SampledImage 167 168
 | 
			
		||||
             170:  117(fvec3) Load 119(c3)
 | 
			
		||||
             171:   27(ivec4) ImageGather 169 170 76
 | 
			
		||||
                              Store 166(txval61) 171
 | 
			
		||||
             173:         133 Load 135(g_tTexcdu4)
 | 
			
		||||
             174:          14 Load 16(g_sSamp)
 | 
			
		||||
             175:         138 SampledImage 173 174
 | 
			
		||||
             176:  117(fvec3) Load 119(c3)
 | 
			
		||||
             177:   40(ivec4) ImageGather 175 176 76
 | 
			
		||||
                              Store 172(txval62) 177
 | 
			
		||||
             179:         110 Load 112(g_tTexcdf4)
 | 
			
		||||
             180:          14 Load 16(g_sSamp)
 | 
			
		||||
             181:         115 SampledImage 179 180
 | 
			
		||||
             182:  117(fvec3) Load 119(c3)
 | 
			
		||||
             183:    7(fvec4) ImageGather 181 182 95
 | 
			
		||||
                              Store 178(txval70) 183
 | 
			
		||||
             185:         123 Load 125(g_tTexcdi4)
 | 
			
		||||
             186:          14 Load 16(g_sSamp)
 | 
			
		||||
             187:         128 SampledImage 185 186
 | 
			
		||||
             188:  117(fvec3) Load 119(c3)
 | 
			
		||||
             189:   27(ivec4) ImageGather 187 188 95
 | 
			
		||||
                              Store 184(txval71) 189
 | 
			
		||||
             191:         133 Load 135(g_tTexcdu4)
 | 
			
		||||
             192:          14 Load 16(g_sSamp)
 | 
			
		||||
             193:         138 SampledImage 191 192
 | 
			
		||||
             194:  117(fvec3) Load 119(c3)
 | 
			
		||||
             195:   40(ivec4) ImageGather 193 194 95
 | 
			
		||||
                              Store 190(txval72) 195
 | 
			
		||||
             201:      8(ptr) AccessChain 198(psout) 25
 | 
			
		||||
                              Store 201 200
 | 
			
		||||
             203:    202(ptr) AccessChain 198(psout) 57
 | 
			
		||||
                              Store 203 199
 | 
			
		||||
             204:196(PS_OUTPUT) Load 198(psout)
 | 
			
		||||
                              ReturnValue 204
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										1148
									
								
								Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1148
									
								
								Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1122
									
								
								Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1122
									
								
								Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -19,5 +19,12 @@ int main(){
 | 
			
		||||
  gl_Position = vec4(1);
 | 
			
		||||
  gl_Position = vec4(1, 2);
 | 
			
		||||
  gl_Position = vec4(fn(3));
 | 
			
		||||
  []. ++ --
 | 
			
		||||
  + - * % / - ! ~
 | 
			
		||||
  << >> < > <= >=
 | 
			
		||||
  == !=
 | 
			
		||||
  & ^ | && ^^ || ? :
 | 
			
		||||
  += -= *= /= %= <<= >>= &= |= ^=
 | 
			
		||||
  1.2 2E10 5u - 5 lf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										71
									
								
								Test/hlsl.gatherRGBA.array.dx10.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								Test/hlsl.gatherRGBA.array.dx10.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,71 @@
 | 
			
		||||
SamplerState       g_sSamp : register(s0);
 | 
			
		||||
uniform sampler2D          g_sSamp2d;
 | 
			
		||||
 | 
			
		||||
uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
 | 
			
		||||
Texture1DArray <int4>   g_tTex1di4a;
 | 
			
		||||
Texture1DArray <uint4>  g_tTex1du4a;
 | 
			
		||||
 | 
			
		||||
Texture2DArray <float4> g_tTex2df4a;
 | 
			
		||||
Texture2DArray <int4>   g_tTex2di4a;
 | 
			
		||||
Texture2DArray <uint4>  g_tTex2du4a;
 | 
			
		||||
 | 
			
		||||
TextureCubeArray <float4> g_tTexcdf4a;
 | 
			
		||||
TextureCubeArray <int4>   g_tTexcdi4a;
 | 
			
		||||
TextureCubeArray <uint4>  g_tTexcdu4a;
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
uniform float  c1;
 | 
			
		||||
uniform float2 c2;
 | 
			
		||||
uniform float3 c3;
 | 
			
		||||
uniform float4 c4;
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   // no 1D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval00 = g_tTex2df4a . GatherRed(g_sSamp, c3);
 | 
			
		||||
   int4   txval01 = g_tTex2di4a . GatherRed(g_sSamp, c3);
 | 
			
		||||
   uint4  txval02 = g_tTex2du4a . GatherRed(g_sSamp, c3);
 | 
			
		||||
 | 
			
		||||
   float4 txval10 = g_tTex2df4a . GatherGreen(g_sSamp, c3);
 | 
			
		||||
   int4   txval11 = g_tTex2di4a . GatherGreen(g_sSamp, c3);
 | 
			
		||||
   uint4  txval12 = g_tTex2du4a . GatherGreen(g_sSamp, c3);
 | 
			
		||||
 | 
			
		||||
   float4 txval20 = g_tTex2df4a . GatherBlue(g_sSamp, c3);
 | 
			
		||||
   int4   txval21 = g_tTex2di4a . GatherBlue(g_sSamp, c3);
 | 
			
		||||
   uint4  txval22 = g_tTex2du4a . GatherBlue(g_sSamp, c3);
 | 
			
		||||
 | 
			
		||||
   float4 txval30 = g_tTex2df4a . GatherAlpha(g_sSamp, c3);
 | 
			
		||||
   int4   txval31 = g_tTex2di4a . GatherAlpha(g_sSamp, c3);
 | 
			
		||||
   uint4  txval32 = g_tTex2du4a . GatherAlpha(g_sSamp, c3);
 | 
			
		||||
 | 
			
		||||
   // no 3D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval40 = g_tTexcdf4a . GatherRed(g_sSamp, c4);
 | 
			
		||||
   int4   txval41 = g_tTexcdi4a . GatherRed(g_sSamp, c4);
 | 
			
		||||
   uint4  txval42 = g_tTexcdu4a . GatherRed(g_sSamp, c4);
 | 
			
		||||
 | 
			
		||||
   float4 txval50 = g_tTexcdf4a . GatherGreen(g_sSamp, c4);
 | 
			
		||||
   int4   txval51 = g_tTexcdi4a . GatherGreen(g_sSamp, c4);
 | 
			
		||||
   uint4  txval52 = g_tTexcdu4a . GatherGreen(g_sSamp, c4);
 | 
			
		||||
 | 
			
		||||
   float4 txval60 = g_tTexcdf4a . GatherBlue(g_sSamp, c4);
 | 
			
		||||
   int4   txval61 = g_tTexcdi4a . GatherBlue(g_sSamp, c4);
 | 
			
		||||
   uint4  txval62 = g_tTexcdu4a . GatherBlue(g_sSamp, c4);
 | 
			
		||||
 | 
			
		||||
   float4 txval70 = g_tTexcdf4a . GatherAlpha(g_sSamp, c4);
 | 
			
		||||
   int4   txval71 = g_tTexcdi4a . GatherAlpha(g_sSamp, c4);
 | 
			
		||||
   uint4  txval72 = g_tTexcdu4a . GatherAlpha(g_sSamp, c4);
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										77
									
								
								Test/hlsl.gatherRGBA.basic.dx10.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								Test/hlsl.gatherRGBA.basic.dx10.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,77 @@
 | 
			
		||||
SamplerState       g_sSamp : register(s0);
 | 
			
		||||
uniform sampler2D          g_sSamp2d;
 | 
			
		||||
 | 
			
		||||
Texture1D          g_tTex1df4a : register(t1);
 | 
			
		||||
 | 
			
		||||
uniform Texture1D <float4> g_tTex1df4 : register(t0);
 | 
			
		||||
Texture1D <int4>   g_tTex1di4;
 | 
			
		||||
Texture1D <uint4>  g_tTex1du4;
 | 
			
		||||
 | 
			
		||||
Texture2D <float4> g_tTex2df4;
 | 
			
		||||
Texture2D <int4>   g_tTex2di4;
 | 
			
		||||
Texture2D <uint4>  g_tTex2du4;
 | 
			
		||||
 | 
			
		||||
Texture3D <float4> g_tTex3df4;
 | 
			
		||||
Texture3D <int4>   g_tTex3di4;
 | 
			
		||||
Texture3D <uint4>  g_tTex3du4;
 | 
			
		||||
 | 
			
		||||
TextureCube <float4> g_tTexcdf4;
 | 
			
		||||
TextureCube <int4>   g_tTexcdi4;
 | 
			
		||||
TextureCube <uint4>  g_tTexcdu4;
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
uniform float  c1;
 | 
			
		||||
uniform float2 c2;
 | 
			
		||||
uniform float3 c3;
 | 
			
		||||
uniform float4 c4;
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   // no 1D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval00 = g_tTex2df4 . GatherRed(g_sSamp, c2);
 | 
			
		||||
   int4   txval01 = g_tTex2di4 . GatherRed(g_sSamp, c2);
 | 
			
		||||
   uint4  txval02 = g_tTex2du4 . GatherRed(g_sSamp, c2);
 | 
			
		||||
 | 
			
		||||
   float4 txval10 = g_tTex2df4 . GatherGreen(g_sSamp, c2);
 | 
			
		||||
   int4   txval11 = g_tTex2di4 . GatherGreen(g_sSamp, c2);
 | 
			
		||||
   uint4  txval12 = g_tTex2du4 . GatherGreen(g_sSamp, c2);
 | 
			
		||||
 | 
			
		||||
   float4 txval20 = g_tTex2df4 . GatherBlue(g_sSamp, c2);
 | 
			
		||||
   int4   txval21 = g_tTex2di4 . GatherBlue(g_sSamp, c2);
 | 
			
		||||
   uint4  txval22 = g_tTex2du4 . GatherBlue(g_sSamp, c2);
 | 
			
		||||
 | 
			
		||||
   float4 txval30 = g_tTex2df4 . GatherAlpha(g_sSamp, c2);
 | 
			
		||||
   int4   txval31 = g_tTex2di4 . GatherAlpha(g_sSamp, c2);
 | 
			
		||||
   uint4  txval32 = g_tTex2du4 . GatherAlpha(g_sSamp, c2);
 | 
			
		||||
 | 
			
		||||
   // no 3D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval40 = g_tTexcdf4 . GatherRed(g_sSamp, c3);
 | 
			
		||||
   int4   txval41 = g_tTexcdi4 . GatherRed(g_sSamp, c3);
 | 
			
		||||
   uint4  txval42 = g_tTexcdu4 . GatherRed(g_sSamp, c3);
 | 
			
		||||
 | 
			
		||||
   float4 txval50 = g_tTexcdf4 . GatherGreen(g_sSamp, c3);
 | 
			
		||||
   int4   txval51 = g_tTexcdi4 . GatherGreen(g_sSamp, c3);
 | 
			
		||||
   uint4  txval52 = g_tTexcdu4 . GatherGreen(g_sSamp, c3);
 | 
			
		||||
 | 
			
		||||
   float4 txval60 = g_tTexcdf4 . GatherBlue(g_sSamp, c3);
 | 
			
		||||
   int4   txval61 = g_tTexcdi4 . GatherBlue(g_sSamp, c3);
 | 
			
		||||
   uint4  txval62 = g_tTexcdu4 . GatherBlue(g_sSamp, c3);
 | 
			
		||||
 | 
			
		||||
   float4 txval70 = g_tTexcdf4 . GatherAlpha(g_sSamp, c3);
 | 
			
		||||
   int4   txval71 = g_tTexcdi4 . GatherAlpha(g_sSamp, c3);
 | 
			
		||||
   uint4  txval72 = g_tTexcdu4 . GatherAlpha(g_sSamp, c3);
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										116
									
								
								Test/hlsl.gatherRGBA.offset.dx10.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								Test/hlsl.gatherRGBA.offset.dx10.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,116 @@
 | 
			
		||||
SamplerState       g_sSamp : register(s0);
 | 
			
		||||
uniform sampler2D          g_sSamp2d;
 | 
			
		||||
 | 
			
		||||
Texture1D          g_tTex1df4a : register(t1);
 | 
			
		||||
 | 
			
		||||
uniform Texture1D <float4> g_tTex1df4 : register(t0);
 | 
			
		||||
Texture1D <int4>   g_tTex1di4;
 | 
			
		||||
Texture1D <uint4>  g_tTex1du4;
 | 
			
		||||
 | 
			
		||||
Texture2D <float4> g_tTex2df4;
 | 
			
		||||
Texture2D <int4>   g_tTex2di4;
 | 
			
		||||
Texture2D <uint4>  g_tTex2du4;
 | 
			
		||||
 | 
			
		||||
Texture3D <float4> g_tTex3df4;
 | 
			
		||||
Texture3D <int4>   g_tTex3di4;
 | 
			
		||||
Texture3D <uint4>  g_tTex3du4;
 | 
			
		||||
 | 
			
		||||
TextureCube <float4> g_tTexcdf4;
 | 
			
		||||
TextureCube <int4>   g_tTexcdi4;
 | 
			
		||||
TextureCube <uint4>  g_tTexcdu4;
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
uniform float  c1;
 | 
			
		||||
uniform float2 c2;
 | 
			
		||||
uniform float3 c3;
 | 
			
		||||
uniform float4 c4;
 | 
			
		||||
 | 
			
		||||
uniform int  o1;
 | 
			
		||||
uniform int2 o2;
 | 
			
		||||
uniform int3 o3;
 | 
			
		||||
uniform int4 o4;
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   uint status;
 | 
			
		||||
 | 
			
		||||
   // no 1D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval001 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2);
 | 
			
		||||
   int4   txval011 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2);
 | 
			
		||||
   uint4  txval021 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval004 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval014 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval024 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
   
 | 
			
		||||
   // float4 txval00s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, status);
 | 
			
		||||
   // int4   txval01s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, status);
 | 
			
		||||
   // uint4  txval02s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval004s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval014s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval024s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval101 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2);
 | 
			
		||||
   int4   txval111 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2);
 | 
			
		||||
   uint4  txval121 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval10s = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, status);
 | 
			
		||||
   // int4   txval11s = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, status);
 | 
			
		||||
   // uint4  txval12s = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval201 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2);
 | 
			
		||||
   int4   txval211 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2);
 | 
			
		||||
   uint4  txval221 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval204 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval214 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval224 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval204s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval214s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval224s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval20s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, status);
 | 
			
		||||
   // int4   txval21s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, status);
 | 
			
		||||
   // uint4  txval22s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval301 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2);
 | 
			
		||||
   int4   txval311 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2);
 | 
			
		||||
   uint4  txval321 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval304 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval314 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval324 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval304s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval314s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval324s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval30s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, status);
 | 
			
		||||
   // int4   txval31s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, status);
 | 
			
		||||
   // uint4  txval32s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // no 3D gathers with offset
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										110
									
								
								Test/hlsl.gatherRGBA.offsetarray.dx10.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								Test/hlsl.gatherRGBA.offsetarray.dx10.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,110 @@
 | 
			
		||||
SamplerState       g_sSamp : register(s0);
 | 
			
		||||
uniform sampler2D          g_sSamp2d;
 | 
			
		||||
 | 
			
		||||
uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
 | 
			
		||||
Texture1DArray <int4>   g_tTex1di4a;
 | 
			
		||||
Texture1DArray <uint4>  g_tTex1du4a;
 | 
			
		||||
 | 
			
		||||
Texture2DArray <float4> g_tTex2df4a;
 | 
			
		||||
Texture2DArray <int4>   g_tTex2di4a;
 | 
			
		||||
Texture2DArray <uint4>  g_tTex2du4a;
 | 
			
		||||
 | 
			
		||||
TextureCubeArray <float4> g_tTexcdf4a;
 | 
			
		||||
TextureCubeArray <int4>   g_tTexcdi4a;
 | 
			
		||||
TextureCubeArray <uint4>  g_tTexcdu4a;
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
uniform float  c1;
 | 
			
		||||
uniform float2 c2;
 | 
			
		||||
uniform float3 c3;
 | 
			
		||||
uniform float4 c4;
 | 
			
		||||
 | 
			
		||||
uniform int  o1;
 | 
			
		||||
uniform int2 o2;
 | 
			
		||||
uniform int3 o3;
 | 
			
		||||
uniform int4 o4;
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   uint status;
 | 
			
		||||
 | 
			
		||||
   // no 1D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval001 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2);
 | 
			
		||||
   int4   txval011 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2);
 | 
			
		||||
   uint4  txval021 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval004 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval014 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval024 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
   
 | 
			
		||||
   // float4 txval00s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, status);
 | 
			
		||||
   // int4   txval01s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, status);
 | 
			
		||||
   // uint4  txval02s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval004s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval014s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval024s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval101 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2);
 | 
			
		||||
   int4   txval111 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2);
 | 
			
		||||
   uint4  txval121 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval10s = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, status);
 | 
			
		||||
   // int4   txval11s = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, status);
 | 
			
		||||
   // uint4  txval12s = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval201 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2);
 | 
			
		||||
   int4   txval211 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2);
 | 
			
		||||
   uint4  txval221 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval204 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval214 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval224 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval204s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval214s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval224s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval20s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, status);
 | 
			
		||||
   // int4   txval21s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, status);
 | 
			
		||||
   // uint4  txval22s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval301 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2);
 | 
			
		||||
   int4   txval311 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2);
 | 
			
		||||
   uint4  txval321 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval304 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval314 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval324 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval304s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval314s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval324s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval30s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, status);
 | 
			
		||||
   // int4   txval31s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, status);
 | 
			
		||||
   // uint4  txval32s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, status);
 | 
			
		||||
 | 
			
		||||
   // no 3D gathers with offset
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										70
									
								
								Test/hlsl.gathercmpRGBA.array.dx10.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								Test/hlsl.gathercmpRGBA.array.dx10.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,70 @@
 | 
			
		||||
SamplerComparisonState  g_sSampCmp : register(s0);
 | 
			
		||||
 | 
			
		||||
uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
 | 
			
		||||
Texture1DArray <int4>   g_tTex1di4a;
 | 
			
		||||
Texture1DArray <uint4>  g_tTex1du4a;
 | 
			
		||||
 | 
			
		||||
Texture2DArray <float4> g_tTex2df4a;
 | 
			
		||||
Texture2DArray <int4>   g_tTex2di4a;
 | 
			
		||||
Texture2DArray <uint4>  g_tTex2du4a;
 | 
			
		||||
 | 
			
		||||
TextureCubeArray <float4> g_tTexcdf4a;
 | 
			
		||||
TextureCubeArray <int4>   g_tTexcdi4a;
 | 
			
		||||
TextureCubeArray <uint4>  g_tTexcdu4a;
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
uniform float  c1;
 | 
			
		||||
uniform float2 c2;
 | 
			
		||||
uniform float3 c3;
 | 
			
		||||
uniform float4 c4;
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   // no 1D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval00 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, .75);
 | 
			
		||||
   int4   txval01 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, .75);
 | 
			
		||||
   uint4  txval02 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, .75);
 | 
			
		||||
 | 
			
		||||
   float4 txval10 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, .75);
 | 
			
		||||
   int4   txval11 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, .75);
 | 
			
		||||
   uint4  txval12 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, .75);
 | 
			
		||||
 | 
			
		||||
   float4 txval20 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, .75);
 | 
			
		||||
   int4   txval21 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, .75);
 | 
			
		||||
   uint4  txval22 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, .75);
 | 
			
		||||
 | 
			
		||||
   float4 txval30 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, .75);
 | 
			
		||||
   int4   txval31 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, .75);
 | 
			
		||||
   uint4  txval32 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, .75);
 | 
			
		||||
 | 
			
		||||
   // no 3D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval40 = g_tTexcdf4a . GatherCmpRed(g_sSampCmp, c4, .75);
 | 
			
		||||
   int4   txval41 = g_tTexcdi4a . GatherCmpRed(g_sSampCmp, c4, .75);
 | 
			
		||||
   uint4  txval42 = g_tTexcdu4a . GatherCmpRed(g_sSampCmp, c4, .75);
 | 
			
		||||
 | 
			
		||||
   float4 txval50 = g_tTexcdf4a . GatherCmpGreen(g_sSampCmp, c4, .75);
 | 
			
		||||
   int4   txval51 = g_tTexcdi4a . GatherCmpGreen(g_sSampCmp, c4, .75);
 | 
			
		||||
   uint4  txval52 = g_tTexcdu4a . GatherCmpGreen(g_sSampCmp, c4, .75);
 | 
			
		||||
 | 
			
		||||
   float4 txval60 = g_tTexcdf4a . GatherCmpBlue(g_sSampCmp, c4, .75);
 | 
			
		||||
   int4   txval61 = g_tTexcdi4a . GatherCmpBlue(g_sSampCmp, c4, .75);
 | 
			
		||||
   uint4  txval62 = g_tTexcdu4a . GatherCmpBlue(g_sSampCmp, c4, .75);
 | 
			
		||||
 | 
			
		||||
   float4 txval70 = g_tTexcdf4a . GatherCmpAlpha(g_sSampCmp, c4, .75);
 | 
			
		||||
   int4   txval71 = g_tTexcdi4a . GatherCmpAlpha(g_sSampCmp, c4, .75);
 | 
			
		||||
   uint4  txval72 = g_tTexcdu4a . GatherCmpAlpha(g_sSampCmp, c4, .75);
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										76
									
								
								Test/hlsl.gathercmpRGBA.basic.dx10.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								Test/hlsl.gathercmpRGBA.basic.dx10.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,76 @@
 | 
			
		||||
SamplerComparisonState     g_sSampCmp : register(s0);
 | 
			
		||||
 | 
			
		||||
Texture1D          g_tTex1df4a : register(t1);
 | 
			
		||||
 | 
			
		||||
uniform Texture1D <float4> g_tTex1df4 : register(t0);
 | 
			
		||||
Texture1D <int4>   g_tTex1di4;
 | 
			
		||||
Texture1D <uint4>  g_tTex1du4;
 | 
			
		||||
 | 
			
		||||
Texture2D <float4> g_tTex2df4;
 | 
			
		||||
Texture2D <int4>   g_tTex2di4;
 | 
			
		||||
Texture2D <uint4>  g_tTex2du4;
 | 
			
		||||
 | 
			
		||||
Texture3D <float4> g_tTex3df4;
 | 
			
		||||
Texture3D <int4>   g_tTex3di4;
 | 
			
		||||
Texture3D <uint4>  g_tTex3du4;
 | 
			
		||||
 | 
			
		||||
TextureCube <float4> g_tTexcdf4;
 | 
			
		||||
TextureCube <int4>   g_tTexcdi4;
 | 
			
		||||
TextureCube <uint4>  g_tTexcdu4;
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
uniform float  c1;
 | 
			
		||||
uniform float2 c2;
 | 
			
		||||
uniform float3 c3;
 | 
			
		||||
uniform float4 c4;
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   // no 1D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval00 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75);
 | 
			
		||||
   int4   txval01 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75);
 | 
			
		||||
   uint4  txval02 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75);
 | 
			
		||||
 | 
			
		||||
   float4 txval10 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75);
 | 
			
		||||
   int4   txval11 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75);
 | 
			
		||||
   uint4  txval12 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75);
 | 
			
		||||
 | 
			
		||||
   float4 txval20 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75);
 | 
			
		||||
   int4   txval21 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75);
 | 
			
		||||
   uint4  txval22 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75);
 | 
			
		||||
 | 
			
		||||
   float4 txval30 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75);
 | 
			
		||||
   int4   txval31 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75);
 | 
			
		||||
   uint4  txval32 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75);
 | 
			
		||||
 | 
			
		||||
   // no 3D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval40 = g_tTexcdf4 . GatherCmpRed(g_sSampCmp, c3, 0.75);
 | 
			
		||||
   int4   txval41 = g_tTexcdi4 . GatherCmpRed(g_sSampCmp, c3, 0.75);
 | 
			
		||||
   uint4  txval42 = g_tTexcdu4 . GatherCmpRed(g_sSampCmp, c3, 0.75);
 | 
			
		||||
 | 
			
		||||
   float4 txval50 = g_tTexcdf4 . GatherCmpGreen(g_sSampCmp, c3, 0.75);
 | 
			
		||||
   int4   txval51 = g_tTexcdi4 . GatherCmpGreen(g_sSampCmp, c3, 0.75);
 | 
			
		||||
   uint4  txval52 = g_tTexcdu4 . GatherCmpGreen(g_sSampCmp, c3, 0.75);
 | 
			
		||||
 | 
			
		||||
   float4 txval60 = g_tTexcdf4 . GatherCmpBlue(g_sSampCmp, c3, 0.75);
 | 
			
		||||
   int4   txval61 = g_tTexcdi4 . GatherCmpBlue(g_sSampCmp, c3, 0.75);
 | 
			
		||||
   uint4  txval62 = g_tTexcdu4 . GatherCmpBlue(g_sSampCmp, c3, 0.75);
 | 
			
		||||
 | 
			
		||||
   float4 txval70 = g_tTexcdf4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75);
 | 
			
		||||
   int4   txval71 = g_tTexcdi4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75);
 | 
			
		||||
   uint4  txval72 = g_tTexcdu4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75);
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										115
									
								
								Test/hlsl.gathercmpRGBA.offset.dx10.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								Test/hlsl.gathercmpRGBA.offset.dx10.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,115 @@
 | 
			
		||||
SamplerComparisonState g_sSampCmp : register(s0);
 | 
			
		||||
 | 
			
		||||
Texture1D          g_tTex1df4a : register(t1);
 | 
			
		||||
 | 
			
		||||
uniform Texture1D <float4> g_tTex1df4 : register(t0);
 | 
			
		||||
Texture1D <int4>   g_tTex1di4;
 | 
			
		||||
Texture1D <uint4>  g_tTex1du4;
 | 
			
		||||
 | 
			
		||||
Texture2D <float4> g_tTex2df4;
 | 
			
		||||
Texture2D <int4>   g_tTex2di4;
 | 
			
		||||
Texture2D <uint4>  g_tTex2du4;
 | 
			
		||||
 | 
			
		||||
Texture3D <float4> g_tTex3df4;
 | 
			
		||||
Texture3D <int4>   g_tTex3di4;
 | 
			
		||||
Texture3D <uint4>  g_tTex3du4;
 | 
			
		||||
 | 
			
		||||
TextureCube <float4> g_tTexcdf4;
 | 
			
		||||
TextureCube <int4>   g_tTexcdi4;
 | 
			
		||||
TextureCube <uint4>  g_tTexcdu4;
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
uniform float  c1;
 | 
			
		||||
uniform float2 c2;
 | 
			
		||||
uniform float3 c3;
 | 
			
		||||
uniform float4 c4;
 | 
			
		||||
 | 
			
		||||
uniform int  o1;
 | 
			
		||||
uniform int2 o2;
 | 
			
		||||
uniform int3 o3;
 | 
			
		||||
uniform int4 o4;
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   uint status;
 | 
			
		||||
 | 
			
		||||
   // no 1D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval001 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
   int4   txval011 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
   uint4  txval021 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval004 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval014 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval024 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   
 | 
			
		||||
   // float4 txval00s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
   // int4   txval01s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
   // uint4  txval02s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval004s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval014s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval024s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval101 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
   int4   txval111 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
   uint4  txval121 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval10s = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
   // int4   txval11s = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
   // uint4  txval12s = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval201 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
   int4   txval211 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
   uint4  txval221 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval204 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval214 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval224 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval204s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval214s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval224s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval20s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
   // int4   txval21s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
   // uint4  txval22s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval301 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
   int4   txval311 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
   uint4  txval321 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval304 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval314 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval324 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval304s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval314s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval324s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval30s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
   // int4   txval31s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
   // uint4  txval32s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status);
 | 
			
		||||
 | 
			
		||||
   // no 3D gathers with offset
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										109
									
								
								Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,109 @@
 | 
			
		||||
SamplerComparisonState g_sSampCmp : register(s0);
 | 
			
		||||
 | 
			
		||||
uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
 | 
			
		||||
Texture1DArray <int4>   g_tTex1di4a;
 | 
			
		||||
Texture1DArray <uint4>  g_tTex1du4a;
 | 
			
		||||
 | 
			
		||||
Texture2DArray <float4> g_tTex2df4a;
 | 
			
		||||
Texture2DArray <int4>   g_tTex2di4a;
 | 
			
		||||
Texture2DArray <uint4>  g_tTex2du4a;
 | 
			
		||||
 | 
			
		||||
TextureCubeArray <float4> g_tTexcdf4a;
 | 
			
		||||
TextureCubeArray <int4>   g_tTexcdi4a;
 | 
			
		||||
TextureCubeArray <uint4>  g_tTexcdu4a;
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
uniform float  c1;
 | 
			
		||||
uniform float2 c2;
 | 
			
		||||
uniform float3 c3;
 | 
			
		||||
uniform float4 c4;
 | 
			
		||||
 | 
			
		||||
uniform int  o1;
 | 
			
		||||
uniform int2 o2;
 | 
			
		||||
uniform int3 o3;
 | 
			
		||||
uniform int4 o4;
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   uint status;
 | 
			
		||||
 | 
			
		||||
   // no 1D gathers
 | 
			
		||||
 | 
			
		||||
   float4 txval001 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
   int4   txval011 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
   uint4  txval021 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval004 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval014 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval024 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   
 | 
			
		||||
   // float4 txval00s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
   // int4   txval01s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
   // uint4  txval02s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval004s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval014s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval024s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval101 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
   int4   txval111 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
   uint4  txval121 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval10s = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
   // int4   txval11s = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
   // uint4  txval12s = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval201 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
   int4   txval211 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
   uint4  txval221 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval204 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval214 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval224 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval204s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval214s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval224s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval20s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
   // int4   txval21s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
   // uint4  txval22s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
 | 
			
		||||
   float4 txval301 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
   int4   txval311 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
   uint4  txval321 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2);
 | 
			
		||||
 | 
			
		||||
   float4 txval304 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   int4   txval314 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
   uint4  txval324 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
 | 
			
		||||
 | 
			
		||||
   // float4 txval304s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // int4   txval314s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
   // uint4  txval324s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
 | 
			
		||||
 | 
			
		||||
   // float4 txval30s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
   // int4   txval31s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
   // uint4  txval32s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status);
 | 
			
		||||
 | 
			
		||||
   // no 3D gathers with offset
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
@ -19,4 +19,11 @@ int main() {
 | 
			
		||||
  gl_Position = vec4(Z);
 | 
			
		||||
  gl_Position = vec4(F);
 | 
			
		||||
  gl_Position = vec4(fn(3));
 | 
			
		||||
  [] . ++ --
 | 
			
		||||
  + - * % / - ! ~
 | 
			
		||||
  << >> < > <= >=
 | 
			
		||||
  == !=
 | 
			
		||||
  & ^ | && ^^ || ? :
 | 
			
		||||
  += -= *= /= %= <<= >>= &= |= ^=
 | 
			
		||||
  1.2 2E10 5u -5lf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
 | 
			
		||||
@ -2,5 +2,5 @@
 | 
			
		||||
// For the version, it uses the latest git tag followed by the number of commits.
 | 
			
		||||
// For the date, it uses the current date (when then script is run).
 | 
			
		||||
 | 
			
		||||
#define GLSLANG_REVISION "SPIRV99.1377"
 | 
			
		||||
#define GLSLANG_DATE "02-Aug-2016"
 | 
			
		||||
#define GLSLANG_REVISION "SPIRV99.1383"
 | 
			
		||||
#define GLSLANG_DATE "04-Aug-2016"
 | 
			
		||||
 | 
			
		||||
@ -98,6 +98,32 @@ const struct {
 | 
			
		||||
    int val;
 | 
			
		||||
    const char* str;
 | 
			
		||||
} tokens[] = {
 | 
			
		||||
 | 
			
		||||
    { PpAtomAdd,            "+=" },
 | 
			
		||||
    { PpAtomSub,            "-=" },
 | 
			
		||||
    { PpAtomMul,            "*=" },
 | 
			
		||||
    { PpAtomDiv,            "/=" },
 | 
			
		||||
    { PpAtomMod,            "%=" },
 | 
			
		||||
    { PpAtomRight,          ">>" },
 | 
			
		||||
    { PpAtomLeft,           "<<" },
 | 
			
		||||
    { PpAtomAnd,            "&&" },
 | 
			
		||||
    { PpAtomOr,             "||" },
 | 
			
		||||
    { PpAtomXor,            "^^" },
 | 
			
		||||
 | 
			
		||||
    { PpAtomRightAssign,    ">>=" },
 | 
			
		||||
    { PpAtomLeftAssign,     "<<=" },
 | 
			
		||||
    { PpAtomAndAssign,      "&=" },
 | 
			
		||||
    { PpAtomOrAssign,       "|=" },
 | 
			
		||||
    { PpAtomXorAssign,      "^=" },
 | 
			
		||||
 | 
			
		||||
    { PpAtomEQ,             "==" },
 | 
			
		||||
    { PpAtomNE,             "!=" },
 | 
			
		||||
    { PpAtomGE,             ">=" },
 | 
			
		||||
    { PpAtomLE,             "<=" },
 | 
			
		||||
 | 
			
		||||
    { PpAtomDecrement,      "--" },
 | 
			
		||||
    { PpAtomIncrement,      "++" },
 | 
			
		||||
 | 
			
		||||
    { PpAtomDefine,         "define" },
 | 
			
		||||
    { PpAtomDefined,        "defined" },
 | 
			
		||||
    { PpAtomUndef,          "undef" },
 | 
			
		||||
@ -122,7 +148,6 @@ const struct {
 | 
			
		||||
    { PpAtomVersionMacro,    "__VERSION__" },
 | 
			
		||||
 | 
			
		||||
    { PpAtomInclude,         "include" },
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // end anonymous namespace
 | 
			
		||||
 | 
			
		||||
@ -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"},
 | 
			
		||||
 | 
			
		||||
@ -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:
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
@ -101,13 +101,30 @@ 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
 | 
			
		||||
 | 
			
		||||
        // no offset on cube or cube array gathers
 | 
			
		||||
        if (dim0 == 4) {
 | 
			
		||||
            if ((isGather && numArgs > 3) || (isGatherCmp && numArgs > 4))
 | 
			
		||||
                return true;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Reject invalid Loads
 | 
			
		||||
    if (name == "Load" && dim0 == 4)
 | 
			
		||||
@ -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
 | 
			
		||||
@ -714,6 +730,57 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
 | 
			
		||||
        { "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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user