 fc9897d1ba
			
		
	
	
		fc9897d1ba
		
			
		
	
	
	
	
		
			
			Fix OpImageRead result type when compiling HLSL - Per the Vulkan spec, OpImageRead must return a 4-component vector always. When compiling HLSL, loads from a RWTexture of a template type with < 4 components would incorrectly generate an OpImageRead with a < 4 component result, resulting in validation errors. - This was previously fixed for OpImageFetch in commit 4425f24; this commit does the same thing for OpImageRead. - Added associated tests and expanded existing image fetch tests to check all the different types of textures, in both float and int incarnations, for completeness. - Update other HLSL tests involving OpImageRead
		
			
				
	
	
		
			686 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			686 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| hlsl.imagefetch-subvec4.comp
 | |
| Shader version: 500
 | |
| local_size = (8, 8, 8)
 | |
| 0:? Sequence
 | |
| 0:21  Function Definition: @main(vu3; ( temp void)
 | |
| 0:21    Function Parameters: 
 | |
| 0:21      'tid' ( in 3-component vector of uint)
 | |
| 0:?     Sequence
 | |
| 0:22      Sequence
 | |
| 0:22        move second child to first child ( temp float)
 | |
| 0:22          'f' ( temp float)
 | |
| 0:22          Constant:
 | |
| 0:22            0.000000
 | |
| 0:23      add second child into first child ( temp float)
 | |
| 0:23        'f' ( temp float)
 | |
| 0:23        textureFetch ( temp float)
 | |
| 0:23          'i1D' (layout( binding=0) uniform texture1D)
 | |
| 0:23          direct index ( temp uint)
 | |
| 0:23            'tid' ( in 3-component vector of uint)
 | |
| 0:23            Constant:
 | |
| 0:23              0 (const int)
 | |
| 0:23          Constant:
 | |
| 0:23            0 (const int)
 | |
| 0:24      add second child into first child ( temp float)
 | |
| 0:24        'f' ( temp float)
 | |
| 0:24        textureFetch ( temp float)
 | |
| 0:24          'i2D' (layout( binding=1) uniform texture2D)
 | |
| 0:24          vector swizzle ( temp 2-component vector of uint)
 | |
| 0:24            'tid' ( in 3-component vector of uint)
 | |
| 0:24            Sequence
 | |
| 0:24              Constant:
 | |
| 0:24                0 (const int)
 | |
| 0:24              Constant:
 | |
| 0:24                1 (const int)
 | |
| 0:24          Constant:
 | |
| 0:24            0 (const int)
 | |
| 0:25      add second child into first child ( temp float)
 | |
| 0:25        'f' ( temp float)
 | |
| 0:25        textureFetch ( temp float)
 | |
| 0:25          'i3D' (layout( binding=2) uniform texture3D)
 | |
| 0:25          'tid' ( in 3-component vector of uint)
 | |
| 0:25          Constant:
 | |
| 0:25            0 (const int)
 | |
| 0:26      add second child into first child ( temp float)
 | |
| 0:26        'f' ( temp float)
 | |
| 0:26        textureFetch ( temp float)
 | |
| 0:26          'i1DArray' (layout( binding=3) uniform texture1DArray)
 | |
| 0:26          vector swizzle ( temp 2-component vector of uint)
 | |
| 0:26            'tid' ( in 3-component vector of uint)
 | |
| 0:26            Sequence
 | |
| 0:26              Constant:
 | |
| 0:26                0 (const int)
 | |
| 0:26              Constant:
 | |
| 0:26                1 (const int)
 | |
| 0:26          Constant:
 | |
| 0:26            0 (const int)
 | |
| 0:27      add second child into first child ( temp float)
 | |
| 0:27        'f' ( temp float)
 | |
| 0:27        textureFetch ( temp float)
 | |
| 0:27          'i2DArray' (layout( binding=4) uniform texture2DArray)
 | |
| 0:27          'tid' ( in 3-component vector of uint)
 | |
| 0:27          Constant:
 | |
| 0:27            0 (const int)
 | |
| 0:28      add second child into first child ( temp float)
 | |
| 0:28        'f' ( temp float)
 | |
| 0:28        Construct float ( temp float)
 | |
| 0:?           textureFetch ( temp 4-component vector of float)
 | |
| 0:28            'i2DMS' (layout( binding=5) uniform texture2DMS)
 | |
| 0:28            Convert uint to int ( temp 2-component vector of int)
 | |
| 0:28              vector swizzle ( temp 2-component vector of uint)
 | |
| 0:28                'tid' ( in 3-component vector of uint)
 | |
| 0:28                Sequence
 | |
| 0:28                  Constant:
 | |
| 0:28                    0 (const int)
 | |
| 0:28                  Constant:
 | |
| 0:28                    1 (const int)
 | |
| 0:28            Constant:
 | |
| 0:28              1 (const int)
 | |
| 0:29      add second child into first child ( temp float)
 | |
| 0:29        'f' ( temp float)
 | |
| 0:29        Construct float ( temp float)
 | |
| 0:?           textureFetch ( temp 4-component vector of float)
 | |
| 0:29            'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
 | |
| 0:29            Convert uint to int ( temp 3-component vector of int)
 | |
| 0:29              'tid' ( in 3-component vector of uint)
 | |
| 0:29            Constant:
 | |
| 0:29              3 (const int)
 | |
| 0:31      Sequence
 | |
| 0:31        move second child to first child ( temp int)
 | |
| 0:31          'i' ( temp int)
 | |
| 0:31          Constant:
 | |
| 0:31            0 (const int)
 | |
| 0:32      add second child into first child ( temp int)
 | |
| 0:32        'i' ( temp int)
 | |
| 0:32        textureFetch ( temp int)
 | |
| 0:32          'ii1D' (layout( binding=7) uniform itexture1D)
 | |
| 0:32          direct index ( temp uint)
 | |
| 0:32            'tid' ( in 3-component vector of uint)
 | |
| 0:32            Constant:
 | |
| 0:32              0 (const int)
 | |
| 0:32          Constant:
 | |
| 0:32            0 (const int)
 | |
| 0:33      add second child into first child ( temp int)
 | |
| 0:33        'i' ( temp int)
 | |
| 0:33        textureFetch ( temp int)
 | |
| 0:33          'ii2D' (layout( binding=8) uniform itexture2D)
 | |
| 0:33          vector swizzle ( temp 2-component vector of uint)
 | |
| 0:33            'tid' ( in 3-component vector of uint)
 | |
| 0:33            Sequence
 | |
| 0:33              Constant:
 | |
| 0:33                0 (const int)
 | |
| 0:33              Constant:
 | |
| 0:33                1 (const int)
 | |
| 0:33          Constant:
 | |
| 0:33            0 (const int)
 | |
| 0:34      add second child into first child ( temp int)
 | |
| 0:34        'i' ( temp int)
 | |
| 0:34        textureFetch ( temp int)
 | |
| 0:34          'ii3D' (layout( binding=9) uniform itexture3D)
 | |
| 0:34          'tid' ( in 3-component vector of uint)
 | |
| 0:34          Constant:
 | |
| 0:34            0 (const int)
 | |
| 0:35      add second child into first child ( temp int)
 | |
| 0:35        'i' ( temp int)
 | |
| 0:35        textureFetch ( temp int)
 | |
| 0:35          'ii1DArray' (layout( binding=10) uniform itexture1DArray)
 | |
| 0:35          vector swizzle ( temp 2-component vector of uint)
 | |
| 0:35            'tid' ( in 3-component vector of uint)
 | |
| 0:35            Sequence
 | |
| 0:35              Constant:
 | |
| 0:35                0 (const int)
 | |
| 0:35              Constant:
 | |
| 0:35                1 (const int)
 | |
| 0:35          Constant:
 | |
| 0:35            0 (const int)
 | |
| 0:36      add second child into first child ( temp int)
 | |
| 0:36        'i' ( temp int)
 | |
| 0:36        textureFetch ( temp int)
 | |
| 0:36          'ii2DArray' (layout( binding=11) uniform itexture2DArray)
 | |
| 0:36          'tid' ( in 3-component vector of uint)
 | |
| 0:36          Constant:
 | |
| 0:36            0 (const int)
 | |
| 0:37      add second child into first child ( temp int)
 | |
| 0:37        'i' ( temp int)
 | |
| 0:37        Construct int ( temp int)
 | |
| 0:?           textureFetch ( temp 4-component vector of int)
 | |
| 0:37            'ii2DMS' (layout( binding=12) uniform itexture2DMS)
 | |
| 0:37            Convert uint to int ( temp 2-component vector of int)
 | |
| 0:37              vector swizzle ( temp 2-component vector of uint)
 | |
| 0:37                'tid' ( in 3-component vector of uint)
 | |
| 0:37                Sequence
 | |
| 0:37                  Constant:
 | |
| 0:37                    0 (const int)
 | |
| 0:37                  Constant:
 | |
| 0:37                    1 (const int)
 | |
| 0:37            Constant:
 | |
| 0:37              1 (const int)
 | |
| 0:38      add second child into first child ( temp int)
 | |
| 0:38        'i' ( temp int)
 | |
| 0:38        Construct int ( temp int)
 | |
| 0:?           textureFetch ( temp 4-component vector of int)
 | |
| 0:38            'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
 | |
| 0:38            Convert uint to int ( temp 3-component vector of int)
 | |
| 0:38              'tid' ( in 3-component vector of uint)
 | |
| 0:38            Constant:
 | |
| 0:38              3 (const int)
 | |
| 0:40      Sequence
 | |
| 0:40        move second child to first child ( temp float)
 | |
| 0:40          'storeTemp' ( temp float)
 | |
| 0:40          add ( temp float)
 | |
| 0:40            'f' ( temp float)
 | |
| 0:40            Convert int to float ( temp float)
 | |
| 0:40              'i' ( temp int)
 | |
| 0:40        imageStore ( temp void)
 | |
| 0:40          'OUT' (layout( binding=0 r32f) uniform image3D)
 | |
| 0:40          'tid' ( in 3-component vector of uint)
 | |
| 0:40          'storeTemp' ( temp float)
 | |
| 0:40        'storeTemp' ( temp float)
 | |
| 0:21  Function Definition: main( ( temp void)
 | |
| 0:21    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:21      move second child to first child ( temp 3-component vector of uint)
 | |
| 0:?         'tid' ( temp 3-component vector of uint)
 | |
| 0:?         'tid' ( in 3-component vector of uint GlobalInvocationID)
 | |
| 0:21      Function Call: @main(vu3; ( temp void)
 | |
| 0:?         'tid' ( temp 3-component vector of uint)
 | |
| 0:?   Linker Objects
 | |
| 0:?     'i1D' (layout( binding=0) uniform texture1D)
 | |
| 0:?     'i2D' (layout( binding=1) uniform texture2D)
 | |
| 0:?     'i3D' (layout( binding=2) uniform texture3D)
 | |
| 0:?     'i1DArray' (layout( binding=3) uniform texture1DArray)
 | |
| 0:?     'i2DArray' (layout( binding=4) uniform texture2DArray)
 | |
| 0:?     'i2DMS' (layout( binding=5) uniform texture2DMS)
 | |
| 0:?     'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
 | |
| 0:?     'ii1D' (layout( binding=7) uniform itexture1D)
 | |
| 0:?     'ii2D' (layout( binding=8) uniform itexture2D)
 | |
| 0:?     'ii3D' (layout( binding=9) uniform itexture3D)
 | |
| 0:?     'ii1DArray' (layout( binding=10) uniform itexture1DArray)
 | |
| 0:?     'ii2DArray' (layout( binding=11) uniform itexture2DArray)
 | |
| 0:?     'ii2DMS' (layout( binding=12) uniform itexture2DMS)
 | |
| 0:?     'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
 | |
| 0:?     'OUT' (layout( binding=0 r32f) uniform image3D)
 | |
| 0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)
 | |
| 
 | |
| 
 | |
| Linked compute stage:
 | |
| 
 | |
| 
 | |
| Shader version: 500
 | |
| local_size = (8, 8, 8)
 | |
| 0:? Sequence
 | |
| 0:21  Function Definition: @main(vu3; ( temp void)
 | |
| 0:21    Function Parameters: 
 | |
| 0:21      'tid' ( in 3-component vector of uint)
 | |
| 0:?     Sequence
 | |
| 0:22      Sequence
 | |
| 0:22        move second child to first child ( temp float)
 | |
| 0:22          'f' ( temp float)
 | |
| 0:22          Constant:
 | |
| 0:22            0.000000
 | |
| 0:23      add second child into first child ( temp float)
 | |
| 0:23        'f' ( temp float)
 | |
| 0:23        textureFetch ( temp float)
 | |
| 0:23          'i1D' (layout( binding=0) uniform texture1D)
 | |
| 0:23          direct index ( temp uint)
 | |
| 0:23            'tid' ( in 3-component vector of uint)
 | |
| 0:23            Constant:
 | |
| 0:23              0 (const int)
 | |
| 0:23          Constant:
 | |
| 0:23            0 (const int)
 | |
| 0:24      add second child into first child ( temp float)
 | |
| 0:24        'f' ( temp float)
 | |
| 0:24        textureFetch ( temp float)
 | |
| 0:24          'i2D' (layout( binding=1) uniform texture2D)
 | |
| 0:24          vector swizzle ( temp 2-component vector of uint)
 | |
| 0:24            'tid' ( in 3-component vector of uint)
 | |
| 0:24            Sequence
 | |
| 0:24              Constant:
 | |
| 0:24                0 (const int)
 | |
| 0:24              Constant:
 | |
| 0:24                1 (const int)
 | |
| 0:24          Constant:
 | |
| 0:24            0 (const int)
 | |
| 0:25      add second child into first child ( temp float)
 | |
| 0:25        'f' ( temp float)
 | |
| 0:25        textureFetch ( temp float)
 | |
| 0:25          'i3D' (layout( binding=2) uniform texture3D)
 | |
| 0:25          'tid' ( in 3-component vector of uint)
 | |
| 0:25          Constant:
 | |
| 0:25            0 (const int)
 | |
| 0:26      add second child into first child ( temp float)
 | |
| 0:26        'f' ( temp float)
 | |
| 0:26        textureFetch ( temp float)
 | |
| 0:26          'i1DArray' (layout( binding=3) uniform texture1DArray)
 | |
| 0:26          vector swizzle ( temp 2-component vector of uint)
 | |
| 0:26            'tid' ( in 3-component vector of uint)
 | |
| 0:26            Sequence
 | |
| 0:26              Constant:
 | |
| 0:26                0 (const int)
 | |
| 0:26              Constant:
 | |
| 0:26                1 (const int)
 | |
| 0:26          Constant:
 | |
| 0:26            0 (const int)
 | |
| 0:27      add second child into first child ( temp float)
 | |
| 0:27        'f' ( temp float)
 | |
| 0:27        textureFetch ( temp float)
 | |
| 0:27          'i2DArray' (layout( binding=4) uniform texture2DArray)
 | |
| 0:27          'tid' ( in 3-component vector of uint)
 | |
| 0:27          Constant:
 | |
| 0:27            0 (const int)
 | |
| 0:28      add second child into first child ( temp float)
 | |
| 0:28        'f' ( temp float)
 | |
| 0:28        Construct float ( temp float)
 | |
| 0:?           textureFetch ( temp 4-component vector of float)
 | |
| 0:28            'i2DMS' (layout( binding=5) uniform texture2DMS)
 | |
| 0:28            Convert uint to int ( temp 2-component vector of int)
 | |
| 0:28              vector swizzle ( temp 2-component vector of uint)
 | |
| 0:28                'tid' ( in 3-component vector of uint)
 | |
| 0:28                Sequence
 | |
| 0:28                  Constant:
 | |
| 0:28                    0 (const int)
 | |
| 0:28                  Constant:
 | |
| 0:28                    1 (const int)
 | |
| 0:28            Constant:
 | |
| 0:28              1 (const int)
 | |
| 0:29      add second child into first child ( temp float)
 | |
| 0:29        'f' ( temp float)
 | |
| 0:29        Construct float ( temp float)
 | |
| 0:?           textureFetch ( temp 4-component vector of float)
 | |
| 0:29            'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
 | |
| 0:29            Convert uint to int ( temp 3-component vector of int)
 | |
| 0:29              'tid' ( in 3-component vector of uint)
 | |
| 0:29            Constant:
 | |
| 0:29              3 (const int)
 | |
| 0:31      Sequence
 | |
| 0:31        move second child to first child ( temp int)
 | |
| 0:31          'i' ( temp int)
 | |
| 0:31          Constant:
 | |
| 0:31            0 (const int)
 | |
| 0:32      add second child into first child ( temp int)
 | |
| 0:32        'i' ( temp int)
 | |
| 0:32        textureFetch ( temp int)
 | |
| 0:32          'ii1D' (layout( binding=7) uniform itexture1D)
 | |
| 0:32          direct index ( temp uint)
 | |
| 0:32            'tid' ( in 3-component vector of uint)
 | |
| 0:32            Constant:
 | |
| 0:32              0 (const int)
 | |
| 0:32          Constant:
 | |
| 0:32            0 (const int)
 | |
| 0:33      add second child into first child ( temp int)
 | |
| 0:33        'i' ( temp int)
 | |
| 0:33        textureFetch ( temp int)
 | |
| 0:33          'ii2D' (layout( binding=8) uniform itexture2D)
 | |
| 0:33          vector swizzle ( temp 2-component vector of uint)
 | |
| 0:33            'tid' ( in 3-component vector of uint)
 | |
| 0:33            Sequence
 | |
| 0:33              Constant:
 | |
| 0:33                0 (const int)
 | |
| 0:33              Constant:
 | |
| 0:33                1 (const int)
 | |
| 0:33          Constant:
 | |
| 0:33            0 (const int)
 | |
| 0:34      add second child into first child ( temp int)
 | |
| 0:34        'i' ( temp int)
 | |
| 0:34        textureFetch ( temp int)
 | |
| 0:34          'ii3D' (layout( binding=9) uniform itexture3D)
 | |
| 0:34          'tid' ( in 3-component vector of uint)
 | |
| 0:34          Constant:
 | |
| 0:34            0 (const int)
 | |
| 0:35      add second child into first child ( temp int)
 | |
| 0:35        'i' ( temp int)
 | |
| 0:35        textureFetch ( temp int)
 | |
| 0:35          'ii1DArray' (layout( binding=10) uniform itexture1DArray)
 | |
| 0:35          vector swizzle ( temp 2-component vector of uint)
 | |
| 0:35            'tid' ( in 3-component vector of uint)
 | |
| 0:35            Sequence
 | |
| 0:35              Constant:
 | |
| 0:35                0 (const int)
 | |
| 0:35              Constant:
 | |
| 0:35                1 (const int)
 | |
| 0:35          Constant:
 | |
| 0:35            0 (const int)
 | |
| 0:36      add second child into first child ( temp int)
 | |
| 0:36        'i' ( temp int)
 | |
| 0:36        textureFetch ( temp int)
 | |
| 0:36          'ii2DArray' (layout( binding=11) uniform itexture2DArray)
 | |
| 0:36          'tid' ( in 3-component vector of uint)
 | |
| 0:36          Constant:
 | |
| 0:36            0 (const int)
 | |
| 0:37      add second child into first child ( temp int)
 | |
| 0:37        'i' ( temp int)
 | |
| 0:37        Construct int ( temp int)
 | |
| 0:?           textureFetch ( temp 4-component vector of int)
 | |
| 0:37            'ii2DMS' (layout( binding=12) uniform itexture2DMS)
 | |
| 0:37            Convert uint to int ( temp 2-component vector of int)
 | |
| 0:37              vector swizzle ( temp 2-component vector of uint)
 | |
| 0:37                'tid' ( in 3-component vector of uint)
 | |
| 0:37                Sequence
 | |
| 0:37                  Constant:
 | |
| 0:37                    0 (const int)
 | |
| 0:37                  Constant:
 | |
| 0:37                    1 (const int)
 | |
| 0:37            Constant:
 | |
| 0:37              1 (const int)
 | |
| 0:38      add second child into first child ( temp int)
 | |
| 0:38        'i' ( temp int)
 | |
| 0:38        Construct int ( temp int)
 | |
| 0:?           textureFetch ( temp 4-component vector of int)
 | |
| 0:38            'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
 | |
| 0:38            Convert uint to int ( temp 3-component vector of int)
 | |
| 0:38              'tid' ( in 3-component vector of uint)
 | |
| 0:38            Constant:
 | |
| 0:38              3 (const int)
 | |
| 0:40      Sequence
 | |
| 0:40        move second child to first child ( temp float)
 | |
| 0:40          'storeTemp' ( temp float)
 | |
| 0:40          add ( temp float)
 | |
| 0:40            'f' ( temp float)
 | |
| 0:40            Convert int to float ( temp float)
 | |
| 0:40              'i' ( temp int)
 | |
| 0:40        imageStore ( temp void)
 | |
| 0:40          'OUT' (layout( binding=0 r32f) uniform image3D)
 | |
| 0:40          'tid' ( in 3-component vector of uint)
 | |
| 0:40          'storeTemp' ( temp float)
 | |
| 0:40        'storeTemp' ( temp float)
 | |
| 0:21  Function Definition: main( ( temp void)
 | |
| 0:21    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:21      move second child to first child ( temp 3-component vector of uint)
 | |
| 0:?         'tid' ( temp 3-component vector of uint)
 | |
| 0:?         'tid' ( in 3-component vector of uint GlobalInvocationID)
 | |
| 0:21      Function Call: @main(vu3; ( temp void)
 | |
| 0:?         'tid' ( temp 3-component vector of uint)
 | |
| 0:?   Linker Objects
 | |
| 0:?     'i1D' (layout( binding=0) uniform texture1D)
 | |
| 0:?     'i2D' (layout( binding=1) uniform texture2D)
 | |
| 0:?     'i3D' (layout( binding=2) uniform texture3D)
 | |
| 0:?     'i1DArray' (layout( binding=3) uniform texture1DArray)
 | |
| 0:?     'i2DArray' (layout( binding=4) uniform texture2DArray)
 | |
| 0:?     'i2DMS' (layout( binding=5) uniform texture2DMS)
 | |
| 0:?     'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
 | |
| 0:?     'ii1D' (layout( binding=7) uniform itexture1D)
 | |
| 0:?     'ii2D' (layout( binding=8) uniform itexture2D)
 | |
| 0:?     'ii3D' (layout( binding=9) uniform itexture3D)
 | |
| 0:?     'ii1DArray' (layout( binding=10) uniform itexture1DArray)
 | |
| 0:?     'ii2DArray' (layout( binding=11) uniform itexture2DArray)
 | |
| 0:?     'ii2DMS' (layout( binding=12) uniform itexture2DMS)
 | |
| 0:?     'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
 | |
| 0:?     'OUT' (layout( binding=0 r32f) uniform image3D)
 | |
| 0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)
 | |
| 
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 8000a
 | |
| // Id's are bound by 186
 | |
| 
 | |
|                               Capability Shader
 | |
|                               Capability Sampled1D
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint GLCompute 4  "main" 181
 | |
|                               ExecutionMode 4 LocalSize 8 8 8
 | |
|                               Source HLSL 500
 | |
|                               Name 4  "main"
 | |
|                               Name 11  "@main(vu3;"
 | |
|                               Name 10  "tid"
 | |
|                               Name 15  "f"
 | |
|                               Name 19  "i1D"
 | |
|                               Name 34  "i2D"
 | |
|                               Name 45  "i3D"
 | |
|                               Name 54  "i1DArray"
 | |
|                               Name 64  "i2DArray"
 | |
|                               Name 73  "i2DMS"
 | |
|                               Name 86  "i2DMSArray"
 | |
|                               Name 97  "i"
 | |
|                               Name 100  "ii1D"
 | |
|                               Name 111  "ii2D"
 | |
|                               Name 121  "ii3D"
 | |
|                               Name 130  "ii1DArray"
 | |
|                               Name 140  "ii2DArray"
 | |
|                               Name 149  "ii2DMS"
 | |
|                               Name 160  "ii2DMSArray"
 | |
|                               Name 168  "storeTemp"
 | |
|                               Name 175  "OUT"
 | |
|                               Name 179  "tid"
 | |
|                               Name 181  "tid"
 | |
|                               Name 183  "param"
 | |
|                               Decorate 19(i1D) DescriptorSet 0
 | |
|                               Decorate 19(i1D) Binding 0
 | |
|                               Decorate 34(i2D) DescriptorSet 0
 | |
|                               Decorate 34(i2D) Binding 1
 | |
|                               Decorate 45(i3D) DescriptorSet 0
 | |
|                               Decorate 45(i3D) Binding 2
 | |
|                               Decorate 54(i1DArray) DescriptorSet 0
 | |
|                               Decorate 54(i1DArray) Binding 3
 | |
|                               Decorate 64(i2DArray) DescriptorSet 0
 | |
|                               Decorate 64(i2DArray) Binding 4
 | |
|                               Decorate 73(i2DMS) DescriptorSet 0
 | |
|                               Decorate 73(i2DMS) Binding 5
 | |
|                               Decorate 86(i2DMSArray) DescriptorSet 0
 | |
|                               Decorate 86(i2DMSArray) Binding 6
 | |
|                               Decorate 100(ii1D) DescriptorSet 0
 | |
|                               Decorate 100(ii1D) Binding 7
 | |
|                               Decorate 111(ii2D) DescriptorSet 0
 | |
|                               Decorate 111(ii2D) Binding 8
 | |
|                               Decorate 121(ii3D) DescriptorSet 0
 | |
|                               Decorate 121(ii3D) Binding 9
 | |
|                               Decorate 130(ii1DArray) DescriptorSet 0
 | |
|                               Decorate 130(ii1DArray) Binding 10
 | |
|                               Decorate 140(ii2DArray) DescriptorSet 0
 | |
|                               Decorate 140(ii2DArray) Binding 11
 | |
|                               Decorate 149(ii2DMS) DescriptorSet 0
 | |
|                               Decorate 149(ii2DMS) Binding 12
 | |
|                               Decorate 160(ii2DMSArray) DescriptorSet 0
 | |
|                               Decorate 160(ii2DMSArray) Binding 13
 | |
|                               Decorate 175(OUT) DescriptorSet 0
 | |
|                               Decorate 175(OUT) Binding 0
 | |
|                               Decorate 181(tid) BuiltIn GlobalInvocationId
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeInt 32 0
 | |
|                7:             TypeVector 6(int) 3
 | |
|                8:             TypePointer Function 7(ivec3)
 | |
|                9:             TypeFunction 2 8(ptr)
 | |
|               13:             TypeFloat 32
 | |
|               14:             TypePointer Function 13(float)
 | |
|               16:   13(float) Constant 0
 | |
|               17:             TypeImage 13(float) 1D sampled format:Unknown
 | |
|               18:             TypePointer UniformConstant 17
 | |
|          19(i1D):     18(ptr) Variable UniformConstant
 | |
|               21:      6(int) Constant 0
 | |
|               22:             TypePointer Function 6(int)
 | |
|               25:             TypeInt 32 1
 | |
|               26:     25(int) Constant 0
 | |
|               27:             TypeVector 13(float) 4
 | |
|               32:             TypeImage 13(float) 2D sampled format:Unknown
 | |
|               33:             TypePointer UniformConstant 32
 | |
|          34(i2D):     33(ptr) Variable UniformConstant
 | |
|               36:             TypeVector 6(int) 2
 | |
|               43:             TypeImage 13(float) 3D sampled format:Unknown
 | |
|               44:             TypePointer UniformConstant 43
 | |
|          45(i3D):     44(ptr) Variable UniformConstant
 | |
|               52:             TypeImage 13(float) 1D array sampled format:Unknown
 | |
|               53:             TypePointer UniformConstant 52
 | |
|     54(i1DArray):     53(ptr) Variable UniformConstant
 | |
|               62:             TypeImage 13(float) 2D array sampled format:Unknown
 | |
|               63:             TypePointer UniformConstant 62
 | |
|     64(i2DArray):     63(ptr) Variable UniformConstant
 | |
|               71:             TypeImage 13(float) 2D multi-sampled sampled format:Unknown
 | |
|               72:             TypePointer UniformConstant 71
 | |
|        73(i2DMS):     72(ptr) Variable UniformConstant
 | |
|               77:             TypeVector 25(int) 2
 | |
|               79:     25(int) Constant 1
 | |
|               84:             TypeImage 13(float) 2D array multi-sampled sampled format:Unknown
 | |
|               85:             TypePointer UniformConstant 84
 | |
|   86(i2DMSArray):     85(ptr) Variable UniformConstant
 | |
|               89:             TypeVector 25(int) 3
 | |
|               91:     25(int) Constant 3
 | |
|               96:             TypePointer Function 25(int)
 | |
|               98:             TypeImage 25(int) 1D sampled format:Unknown
 | |
|               99:             TypePointer UniformConstant 98
 | |
|        100(ii1D):     99(ptr) Variable UniformConstant
 | |
|              104:             TypeVector 25(int) 4
 | |
|              109:             TypeImage 25(int) 2D sampled format:Unknown
 | |
|              110:             TypePointer UniformConstant 109
 | |
|        111(ii2D):    110(ptr) Variable UniformConstant
 | |
|              119:             TypeImage 25(int) 3D sampled format:Unknown
 | |
|              120:             TypePointer UniformConstant 119
 | |
|        121(ii3D):    120(ptr) Variable UniformConstant
 | |
|              128:             TypeImage 25(int) 1D array sampled format:Unknown
 | |
|              129:             TypePointer UniformConstant 128
 | |
|   130(ii1DArray):    129(ptr) Variable UniformConstant
 | |
|              138:             TypeImage 25(int) 2D array sampled format:Unknown
 | |
|              139:             TypePointer UniformConstant 138
 | |
|   140(ii2DArray):    139(ptr) Variable UniformConstant
 | |
|              147:             TypeImage 25(int) 2D multi-sampled sampled format:Unknown
 | |
|              148:             TypePointer UniformConstant 147
 | |
|      149(ii2DMS):    148(ptr) Variable UniformConstant
 | |
|              158:             TypeImage 25(int) 2D array multi-sampled sampled format:Unknown
 | |
|              159:             TypePointer UniformConstant 158
 | |
| 160(ii2DMSArray):    159(ptr) Variable UniformConstant
 | |
|              173:             TypeImage 13(float) 3D nonsampled format:R32f
 | |
|              174:             TypePointer UniformConstant 173
 | |
|         175(OUT):    174(ptr) Variable UniformConstant
 | |
|              180:             TypePointer Input 7(ivec3)
 | |
|         181(tid):    180(ptr) Variable Input
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|         179(tid):      8(ptr) Variable Function
 | |
|       183(param):      8(ptr) Variable Function
 | |
|              182:    7(ivec3) Load 181(tid)
 | |
|                               Store 179(tid) 182
 | |
|              184:    7(ivec3) Load 179(tid)
 | |
|                               Store 183(param) 184
 | |
|              185:           2 FunctionCall 11(@main(vu3;) 183(param)
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
|   11(@main(vu3;):           2 Function None 9
 | |
|          10(tid):      8(ptr) FunctionParameter
 | |
|               12:             Label
 | |
|            15(f):     14(ptr) Variable Function
 | |
|            97(i):     96(ptr) Variable Function
 | |
|   168(storeTemp):     14(ptr) Variable Function
 | |
|                               Store 15(f) 16
 | |
|               20:          17 Load 19(i1D)
 | |
|               23:     22(ptr) AccessChain 10(tid) 21
 | |
|               24:      6(int) Load 23
 | |
|               28:   27(fvec4) ImageFetch 20 24 Lod 26
 | |
|               29:   13(float) CompositeExtract 28 0
 | |
|               30:   13(float) Load 15(f)
 | |
|               31:   13(float) FAdd 30 29
 | |
|                               Store 15(f) 31
 | |
|               35:          32 Load 34(i2D)
 | |
|               37:    7(ivec3) Load 10(tid)
 | |
|               38:   36(ivec2) VectorShuffle 37 37 0 1
 | |
|               39:   27(fvec4) ImageFetch 35 38 Lod 26
 | |
|               40:   13(float) CompositeExtract 39 0
 | |
|               41:   13(float) Load 15(f)
 | |
|               42:   13(float) FAdd 41 40
 | |
|                               Store 15(f) 42
 | |
|               46:          43 Load 45(i3D)
 | |
|               47:    7(ivec3) Load 10(tid)
 | |
|               48:   27(fvec4) ImageFetch 46 47 Lod 26
 | |
|               49:   13(float) CompositeExtract 48 0
 | |
|               50:   13(float) Load 15(f)
 | |
|               51:   13(float) FAdd 50 49
 | |
|                               Store 15(f) 51
 | |
|               55:          52 Load 54(i1DArray)
 | |
|               56:    7(ivec3) Load 10(tid)
 | |
|               57:   36(ivec2) VectorShuffle 56 56 0 1
 | |
|               58:   27(fvec4) ImageFetch 55 57 Lod 26
 | |
|               59:   13(float) CompositeExtract 58 0
 | |
|               60:   13(float) Load 15(f)
 | |
|               61:   13(float) FAdd 60 59
 | |
|                               Store 15(f) 61
 | |
|               65:          62 Load 64(i2DArray)
 | |
|               66:    7(ivec3) Load 10(tid)
 | |
|               67:   27(fvec4) ImageFetch 65 66 Lod 26
 | |
|               68:   13(float) CompositeExtract 67 0
 | |
|               69:   13(float) Load 15(f)
 | |
|               70:   13(float) FAdd 69 68
 | |
|                               Store 15(f) 70
 | |
|               74:          71 Load 73(i2DMS)
 | |
|               75:    7(ivec3) Load 10(tid)
 | |
|               76:   36(ivec2) VectorShuffle 75 75 0 1
 | |
|               78:   77(ivec2) Bitcast 76
 | |
|               80:   27(fvec4) ImageFetch 74 78 Sample 79
 | |
|               81:   13(float) CompositeExtract 80 0
 | |
|               82:   13(float) Load 15(f)
 | |
|               83:   13(float) FAdd 82 81
 | |
|                               Store 15(f) 83
 | |
|               87:          84 Load 86(i2DMSArray)
 | |
|               88:    7(ivec3) Load 10(tid)
 | |
|               90:   89(ivec3) Bitcast 88
 | |
|               92:   27(fvec4) ImageFetch 87 90 Sample 91
 | |
|               93:   13(float) CompositeExtract 92 0
 | |
|               94:   13(float) Load 15(f)
 | |
|               95:   13(float) FAdd 94 93
 | |
|                               Store 15(f) 95
 | |
|                               Store 97(i) 26
 | |
|              101:          98 Load 100(ii1D)
 | |
|              102:     22(ptr) AccessChain 10(tid) 21
 | |
|              103:      6(int) Load 102
 | |
|              105:  104(ivec4) ImageFetch 101 103 Lod 26
 | |
|              106:     25(int) CompositeExtract 105 0
 | |
|              107:     25(int) Load 97(i)
 | |
|              108:     25(int) IAdd 107 106
 | |
|                               Store 97(i) 108
 | |
|              112:         109 Load 111(ii2D)
 | |
|              113:    7(ivec3) Load 10(tid)
 | |
|              114:   36(ivec2) VectorShuffle 113 113 0 1
 | |
|              115:  104(ivec4) ImageFetch 112 114 Lod 26
 | |
|              116:     25(int) CompositeExtract 115 0
 | |
|              117:     25(int) Load 97(i)
 | |
|              118:     25(int) IAdd 117 116
 | |
|                               Store 97(i) 118
 | |
|              122:         119 Load 121(ii3D)
 | |
|              123:    7(ivec3) Load 10(tid)
 | |
|              124:  104(ivec4) ImageFetch 122 123 Lod 26
 | |
|              125:     25(int) CompositeExtract 124 0
 | |
|              126:     25(int) Load 97(i)
 | |
|              127:     25(int) IAdd 126 125
 | |
|                               Store 97(i) 127
 | |
|              131:         128 Load 130(ii1DArray)
 | |
|              132:    7(ivec3) Load 10(tid)
 | |
|              133:   36(ivec2) VectorShuffle 132 132 0 1
 | |
|              134:  104(ivec4) ImageFetch 131 133 Lod 26
 | |
|              135:     25(int) CompositeExtract 134 0
 | |
|              136:     25(int) Load 97(i)
 | |
|              137:     25(int) IAdd 136 135
 | |
|                               Store 97(i) 137
 | |
|              141:         138 Load 140(ii2DArray)
 | |
|              142:    7(ivec3) Load 10(tid)
 | |
|              143:  104(ivec4) ImageFetch 141 142 Lod 26
 | |
|              144:     25(int) CompositeExtract 143 0
 | |
|              145:     25(int) Load 97(i)
 | |
|              146:     25(int) IAdd 145 144
 | |
|                               Store 97(i) 146
 | |
|              150:         147 Load 149(ii2DMS)
 | |
|              151:    7(ivec3) Load 10(tid)
 | |
|              152:   36(ivec2) VectorShuffle 151 151 0 1
 | |
|              153:   77(ivec2) Bitcast 152
 | |
|              154:  104(ivec4) ImageFetch 150 153 Sample 79
 | |
|              155:     25(int) CompositeExtract 154 0
 | |
|              156:     25(int) Load 97(i)
 | |
|              157:     25(int) IAdd 156 155
 | |
|                               Store 97(i) 157
 | |
|              161:         158 Load 160(ii2DMSArray)
 | |
|              162:    7(ivec3) Load 10(tid)
 | |
|              163:   89(ivec3) Bitcast 162
 | |
|              164:  104(ivec4) ImageFetch 161 163 Sample 91
 | |
|              165:     25(int) CompositeExtract 164 0
 | |
|              166:     25(int) Load 97(i)
 | |
|              167:     25(int) IAdd 166 165
 | |
|                               Store 97(i) 167
 | |
|              169:   13(float) Load 15(f)
 | |
|              170:     25(int) Load 97(i)
 | |
|              171:   13(float) ConvertSToF 170
 | |
|              172:   13(float) FAdd 169 171
 | |
|                               Store 168(storeTemp) 172
 | |
|              176:         173 Load 175(OUT)
 | |
|              177:    7(ivec3) Load 10(tid)
 | |
|              178:   13(float) Load 168(storeTemp)
 | |
|                               ImageWrite 176 177 178
 | |
|                               Return
 | |
|                               FunctionEnd
 |