HLSL: phase 2a: add r-value operator[] for RWTexture/RWBuffer
This commit adds r-value support for RW textures and buffers. Supported is: - Function in parameter conversions - conversion of rvalue use to imageLoad
This commit is contained in:
		
							parent
							
								
									e3aa654c4b
								
							
						
					
					
						commit
						6b43d274e7
					
				
							
								
								
									
										719
									
								
								Test/baseResults/hlsl.rw.bracket.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										719
									
								
								Test/baseResults/hlsl.rw.bracket.frag.out
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,719 @@ | |||||||
|  | hlsl.rw.bracket.frag | ||||||
|  | Shader version: 450 | ||||||
|  | gl_FragCoord origin is upper left | ||||||
|  | 0:? Sequence | ||||||
|  | 0:38  Function Definition: Fn1(vi4; (temp 4-component vector of int) | ||||||
|  | 0:38    Function Parameters:  | ||||||
|  | 0:38      'x' (in 4-component vector of int) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:38      Branch: Return with expression | ||||||
|  | 0:38        'x' (in 4-component vector of int) | ||||||
|  | 0:39  Function Definition: Fn1(vu4; (temp 4-component vector of uint) | ||||||
|  | 0:39    Function Parameters:  | ||||||
|  | 0:39      'x' (in 4-component vector of uint) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:39      Branch: Return with expression | ||||||
|  | 0:39        'x' (in 4-component vector of uint) | ||||||
|  | 0:40  Function Definition: Fn1(vf4; (temp 4-component vector of float) | ||||||
|  | 0:40    Function Parameters:  | ||||||
|  | 0:40      'x' (in 4-component vector of float) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:40      Branch: Return with expression | ||||||
|  | 0:40        'x' (in 4-component vector of float) | ||||||
|  | 0:42  Function Definition: Fn2(vi4; (temp void) | ||||||
|  | 0:42    Function Parameters:  | ||||||
|  | 0:42      'x' (out 4-component vector of int) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:42      move second child to first child (temp 4-component vector of int) | ||||||
|  | 0:42        'x' (out 4-component vector of int) | ||||||
|  | 0:42        Constant: | ||||||
|  | 0:42          0 (const int) | ||||||
|  | 0:42          0 (const int) | ||||||
|  | 0:42          0 (const int) | ||||||
|  | 0:42          0 (const int) | ||||||
|  | 0:43  Function Definition: Fn2(vu4; (temp void) | ||||||
|  | 0:43    Function Parameters:  | ||||||
|  | 0:43      'x' (out 4-component vector of uint) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:43      move second child to first child (temp 4-component vector of uint) | ||||||
|  | 0:43        'x' (out 4-component vector of uint) | ||||||
|  | 0:43        Constant: | ||||||
|  | 0:43          0 (const uint) | ||||||
|  | 0:43          0 (const uint) | ||||||
|  | 0:43          0 (const uint) | ||||||
|  | 0:43          0 (const uint) | ||||||
|  | 0:44  Function Definition: Fn2(vf4; (temp void) | ||||||
|  | 0:44    Function Parameters:  | ||||||
|  | 0:44      'x' (out 4-component vector of float) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:44      move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:44        'x' (out 4-component vector of float) | ||||||
|  | 0:44        Constant: | ||||||
|  | 0:44          0.000000 | ||||||
|  | 0:44          0.000000 | ||||||
|  | 0:44          0.000000 | ||||||
|  | 0:44          0.000000 | ||||||
|  | 0:47  Function Definition: main( (temp structure{temp 4-component vector of float Color}) | ||||||
|  | 0:47    Function Parameters:  | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:53      imageLoad (temp 4-component vector of float) | ||||||
|  | 0:53        'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) | ||||||
|  | 0:53        c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:53          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:53          Constant: | ||||||
|  | 0:53            0 (const uint) | ||||||
|  | 0:55      Sequence | ||||||
|  | 0:55        move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:55          'r00' (temp 4-component vector of float) | ||||||
|  | 0:55          imageLoad (temp 4-component vector of float) | ||||||
|  | 0:55            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) | ||||||
|  | 0:55            c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:55              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:55              Constant: | ||||||
|  | 0:55                0 (const uint) | ||||||
|  | 0:56      Sequence | ||||||
|  | 0:56        move second child to first child (temp 4-component vector of int) | ||||||
|  | 0:56          'r01' (temp 4-component vector of int) | ||||||
|  | 0:56          imageLoad (temp 4-component vector of int) | ||||||
|  | 0:56            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) | ||||||
|  | 0:56            c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:56              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:56              Constant: | ||||||
|  | 0:56                0 (const uint) | ||||||
|  | 0:57      Sequence | ||||||
|  | 0:57        move second child to first child (temp 4-component vector of uint) | ||||||
|  | 0:57          'r02' (temp 4-component vector of uint) | ||||||
|  | 0:57          imageLoad (temp 4-component vector of uint) | ||||||
|  | 0:57            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) | ||||||
|  | 0:57            c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:57              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:57              Constant: | ||||||
|  | 0:57                0 (const uint) | ||||||
|  | 0:60      Sequence | ||||||
|  | 0:60        move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:60          'r10' (temp 4-component vector of float) | ||||||
|  | 0:60          imageLoad (temp 4-component vector of float) | ||||||
|  | 0:60            'g_tTex2df4' (layout(rgba32f ) uniform image2D) | ||||||
|  | 0:60            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) | ||||||
|  | 0:60              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:60              Constant: | ||||||
|  | 0:60                1 (const uint) | ||||||
|  | 0:61      Sequence | ||||||
|  | 0:61        move second child to first child (temp 4-component vector of int) | ||||||
|  | 0:61          'r11' (temp 4-component vector of int) | ||||||
|  | 0:61          imageLoad (temp 4-component vector of int) | ||||||
|  | 0:61            'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) | ||||||
|  | 0:61            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) | ||||||
|  | 0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:61              Constant: | ||||||
|  | 0:61                1 (const uint) | ||||||
|  | 0:62      Sequence | ||||||
|  | 0:62        move second child to first child (temp 4-component vector of uint) | ||||||
|  | 0:62          'r12' (temp 4-component vector of uint) | ||||||
|  | 0:62          imageLoad (temp 4-component vector of uint) | ||||||
|  | 0:62            'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) | ||||||
|  | 0:62            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) | ||||||
|  | 0:62              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:62              Constant: | ||||||
|  | 0:62                1 (const uint) | ||||||
|  | 0:65      Sequence | ||||||
|  | 0:65        move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:65          'r20' (temp 4-component vector of float) | ||||||
|  | 0:65          imageLoad (temp 4-component vector of float) | ||||||
|  | 0:65            'g_tTex3df4' (layout(rgba32f ) uniform image3D) | ||||||
|  | 0:65            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) | ||||||
|  | 0:65              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:65              Constant: | ||||||
|  | 0:65                2 (const uint) | ||||||
|  | 0:66      Sequence | ||||||
|  | 0:66        move second child to first child (temp 4-component vector of int) | ||||||
|  | 0:66          'r21' (temp 4-component vector of int) | ||||||
|  | 0:66          imageLoad (temp 4-component vector of int) | ||||||
|  | 0:66            'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) | ||||||
|  | 0:66            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) | ||||||
|  | 0:66              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:66              Constant: | ||||||
|  | 0:66                2 (const uint) | ||||||
|  | 0:67      Sequence | ||||||
|  | 0:67        move second child to first child (temp 4-component vector of uint) | ||||||
|  | 0:67          'r22' (temp 4-component vector of uint) | ||||||
|  | 0:67          imageLoad (temp 4-component vector of uint) | ||||||
|  | 0:67            'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) | ||||||
|  | 0:67            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) | ||||||
|  | 0:67              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:67              Constant: | ||||||
|  | 0:67                2 (const uint) | ||||||
|  | 0:86      Function Call: Fn1(vf4; (temp 4-component vector of float) | ||||||
|  | 0:86        imageLoad (temp 4-component vector of float) | ||||||
|  | 0:86          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) | ||||||
|  | 0:86          c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:86            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:86            Constant: | ||||||
|  | 0:86              0 (const uint) | ||||||
|  | 0:87      Function Call: Fn1(vi4; (temp 4-component vector of int) | ||||||
|  | 0:87        imageLoad (temp 4-component vector of int) | ||||||
|  | 0:87          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) | ||||||
|  | 0:87          c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:87            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:87            Constant: | ||||||
|  | 0:87              0 (const uint) | ||||||
|  | 0:88      Function Call: Fn1(vu4; (temp 4-component vector of uint) | ||||||
|  | 0:88        imageLoad (temp 4-component vector of uint) | ||||||
|  | 0:88          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) | ||||||
|  | 0:88          c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:88            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:88            Constant: | ||||||
|  | 0:88              0 (const uint) | ||||||
|  | 0:111      move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:111        Color: direct index for structure (temp 4-component vector of float) | ||||||
|  | 0:111          'psout' (temp structure{temp 4-component vector of float Color}) | ||||||
|  | 0:111          Constant: | ||||||
|  | 0:111            0 (const int) | ||||||
|  | 0:111        Constant: | ||||||
|  | 0:111          1.000000 | ||||||
|  | 0:111          1.000000 | ||||||
|  | 0:111          1.000000 | ||||||
|  | 0:111          1.000000 | ||||||
|  | 0:113      Sequence | ||||||
|  | 0:113        Sequence | ||||||
|  | 0:113          move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:?             'Color' (layout(location=0 ) out 4-component vector of float) | ||||||
|  | 0:113            Color: direct index for structure (temp 4-component vector of float) | ||||||
|  | 0:113              'psout' (temp structure{temp 4-component vector of float Color}) | ||||||
|  | 0:113              Constant: | ||||||
|  | 0:113                0 (const int) | ||||||
|  | 0:113        Branch: Return | ||||||
|  | 0:?   Linker Objects | ||||||
|  | 0:?     'g_sSamp' (layout(binding=0 ) uniform sampler) | ||||||
|  | 0:?     'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) | ||||||
|  | 0:?     'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) | ||||||
|  | 0:?     'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) | ||||||
|  | 0:?     'g_tTex2df4' (layout(rgba32f ) uniform image2D) | ||||||
|  | 0:?     'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) | ||||||
|  | 0:?     'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) | ||||||
|  | 0:?     'g_tTex3df4' (layout(rgba32f ) uniform image3D) | ||||||
|  | 0:?     'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) | ||||||
|  | 0:?     'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) | ||||||
|  | 0:?     'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) | ||||||
|  | 0:?     'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) | ||||||
|  | 0:?     'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) | ||||||
|  | 0:?     'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) | ||||||
|  | 0:?     'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) | ||||||
|  | 0:?     'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) | ||||||
|  | 0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:?     'Color' (layout(location=0 ) out 4-component vector of float) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Linked fragment stage: | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Shader version: 450 | ||||||
|  | gl_FragCoord origin is upper left | ||||||
|  | 0:? Sequence | ||||||
|  | 0:38  Function Definition: Fn1(vi4; (temp 4-component vector of int) | ||||||
|  | 0:38    Function Parameters:  | ||||||
|  | 0:38      'x' (in 4-component vector of int) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:38      Branch: Return with expression | ||||||
|  | 0:38        'x' (in 4-component vector of int) | ||||||
|  | 0:39  Function Definition: Fn1(vu4; (temp 4-component vector of uint) | ||||||
|  | 0:39    Function Parameters:  | ||||||
|  | 0:39      'x' (in 4-component vector of uint) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:39      Branch: Return with expression | ||||||
|  | 0:39        'x' (in 4-component vector of uint) | ||||||
|  | 0:40  Function Definition: Fn1(vf4; (temp 4-component vector of float) | ||||||
|  | 0:40    Function Parameters:  | ||||||
|  | 0:40      'x' (in 4-component vector of float) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:40      Branch: Return with expression | ||||||
|  | 0:40        'x' (in 4-component vector of float) | ||||||
|  | 0:42  Function Definition: Fn2(vi4; (temp void) | ||||||
|  | 0:42    Function Parameters:  | ||||||
|  | 0:42      'x' (out 4-component vector of int) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:42      move second child to first child (temp 4-component vector of int) | ||||||
|  | 0:42        'x' (out 4-component vector of int) | ||||||
|  | 0:42        Constant: | ||||||
|  | 0:42          0 (const int) | ||||||
|  | 0:42          0 (const int) | ||||||
|  | 0:42          0 (const int) | ||||||
|  | 0:42          0 (const int) | ||||||
|  | 0:43  Function Definition: Fn2(vu4; (temp void) | ||||||
|  | 0:43    Function Parameters:  | ||||||
|  | 0:43      'x' (out 4-component vector of uint) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:43      move second child to first child (temp 4-component vector of uint) | ||||||
|  | 0:43        'x' (out 4-component vector of uint) | ||||||
|  | 0:43        Constant: | ||||||
|  | 0:43          0 (const uint) | ||||||
|  | 0:43          0 (const uint) | ||||||
|  | 0:43          0 (const uint) | ||||||
|  | 0:43          0 (const uint) | ||||||
|  | 0:44  Function Definition: Fn2(vf4; (temp void) | ||||||
|  | 0:44    Function Parameters:  | ||||||
|  | 0:44      'x' (out 4-component vector of float) | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:44      move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:44        'x' (out 4-component vector of float) | ||||||
|  | 0:44        Constant: | ||||||
|  | 0:44          0.000000 | ||||||
|  | 0:44          0.000000 | ||||||
|  | 0:44          0.000000 | ||||||
|  | 0:44          0.000000 | ||||||
|  | 0:47  Function Definition: main( (temp structure{temp 4-component vector of float Color}) | ||||||
|  | 0:47    Function Parameters:  | ||||||
|  | 0:?     Sequence | ||||||
|  | 0:53      imageLoad (temp 4-component vector of float) | ||||||
|  | 0:53        'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) | ||||||
|  | 0:53        c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:53          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:53          Constant: | ||||||
|  | 0:53            0 (const uint) | ||||||
|  | 0:55      Sequence | ||||||
|  | 0:55        move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:55          'r00' (temp 4-component vector of float) | ||||||
|  | 0:55          imageLoad (temp 4-component vector of float) | ||||||
|  | 0:55            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) | ||||||
|  | 0:55            c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:55              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:55              Constant: | ||||||
|  | 0:55                0 (const uint) | ||||||
|  | 0:56      Sequence | ||||||
|  | 0:56        move second child to first child (temp 4-component vector of int) | ||||||
|  | 0:56          'r01' (temp 4-component vector of int) | ||||||
|  | 0:56          imageLoad (temp 4-component vector of int) | ||||||
|  | 0:56            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) | ||||||
|  | 0:56            c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:56              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:56              Constant: | ||||||
|  | 0:56                0 (const uint) | ||||||
|  | 0:57      Sequence | ||||||
|  | 0:57        move second child to first child (temp 4-component vector of uint) | ||||||
|  | 0:57          'r02' (temp 4-component vector of uint) | ||||||
|  | 0:57          imageLoad (temp 4-component vector of uint) | ||||||
|  | 0:57            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) | ||||||
|  | 0:57            c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:57              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:57              Constant: | ||||||
|  | 0:57                0 (const uint) | ||||||
|  | 0:60      Sequence | ||||||
|  | 0:60        move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:60          'r10' (temp 4-component vector of float) | ||||||
|  | 0:60          imageLoad (temp 4-component vector of float) | ||||||
|  | 0:60            'g_tTex2df4' (layout(rgba32f ) uniform image2D) | ||||||
|  | 0:60            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) | ||||||
|  | 0:60              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:60              Constant: | ||||||
|  | 0:60                1 (const uint) | ||||||
|  | 0:61      Sequence | ||||||
|  | 0:61        move second child to first child (temp 4-component vector of int) | ||||||
|  | 0:61          'r11' (temp 4-component vector of int) | ||||||
|  | 0:61          imageLoad (temp 4-component vector of int) | ||||||
|  | 0:61            'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) | ||||||
|  | 0:61            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) | ||||||
|  | 0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:61              Constant: | ||||||
|  | 0:61                1 (const uint) | ||||||
|  | 0:62      Sequence | ||||||
|  | 0:62        move second child to first child (temp 4-component vector of uint) | ||||||
|  | 0:62          'r12' (temp 4-component vector of uint) | ||||||
|  | 0:62          imageLoad (temp 4-component vector of uint) | ||||||
|  | 0:62            'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) | ||||||
|  | 0:62            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) | ||||||
|  | 0:62              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:62              Constant: | ||||||
|  | 0:62                1 (const uint) | ||||||
|  | 0:65      Sequence | ||||||
|  | 0:65        move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:65          'r20' (temp 4-component vector of float) | ||||||
|  | 0:65          imageLoad (temp 4-component vector of float) | ||||||
|  | 0:65            'g_tTex3df4' (layout(rgba32f ) uniform image3D) | ||||||
|  | 0:65            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) | ||||||
|  | 0:65              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:65              Constant: | ||||||
|  | 0:65                2 (const uint) | ||||||
|  | 0:66      Sequence | ||||||
|  | 0:66        move second child to first child (temp 4-component vector of int) | ||||||
|  | 0:66          'r21' (temp 4-component vector of int) | ||||||
|  | 0:66          imageLoad (temp 4-component vector of int) | ||||||
|  | 0:66            'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) | ||||||
|  | 0:66            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) | ||||||
|  | 0:66              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:66              Constant: | ||||||
|  | 0:66                2 (const uint) | ||||||
|  | 0:67      Sequence | ||||||
|  | 0:67        move second child to first child (temp 4-component vector of uint) | ||||||
|  | 0:67          'r22' (temp 4-component vector of uint) | ||||||
|  | 0:67          imageLoad (temp 4-component vector of uint) | ||||||
|  | 0:67            'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) | ||||||
|  | 0:67            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) | ||||||
|  | 0:67              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:67              Constant: | ||||||
|  | 0:67                2 (const uint) | ||||||
|  | 0:86      Function Call: Fn1(vf4; (temp 4-component vector of float) | ||||||
|  | 0:86        imageLoad (temp 4-component vector of float) | ||||||
|  | 0:86          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) | ||||||
|  | 0:86          c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:86            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:86            Constant: | ||||||
|  | 0:86              0 (const uint) | ||||||
|  | 0:87      Function Call: Fn1(vi4; (temp 4-component vector of int) | ||||||
|  | 0:87        imageLoad (temp 4-component vector of int) | ||||||
|  | 0:87          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) | ||||||
|  | 0:87          c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:87            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:87            Constant: | ||||||
|  | 0:87              0 (const uint) | ||||||
|  | 0:88      Function Call: Fn1(vu4; (temp 4-component vector of uint) | ||||||
|  | 0:88        imageLoad (temp 4-component vector of uint) | ||||||
|  | 0:88          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) | ||||||
|  | 0:88          c1: direct index for structure (layout(offset=0 ) uniform int) | ||||||
|  | 0:88            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:88            Constant: | ||||||
|  | 0:88              0 (const uint) | ||||||
|  | 0:111      move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:111        Color: direct index for structure (temp 4-component vector of float) | ||||||
|  | 0:111          'psout' (temp structure{temp 4-component vector of float Color}) | ||||||
|  | 0:111          Constant: | ||||||
|  | 0:111            0 (const int) | ||||||
|  | 0:111        Constant: | ||||||
|  | 0:111          1.000000 | ||||||
|  | 0:111          1.000000 | ||||||
|  | 0:111          1.000000 | ||||||
|  | 0:111          1.000000 | ||||||
|  | 0:113      Sequence | ||||||
|  | 0:113        Sequence | ||||||
|  | 0:113          move second child to first child (temp 4-component vector of float) | ||||||
|  | 0:?             'Color' (layout(location=0 ) out 4-component vector of float) | ||||||
|  | 0:113            Color: direct index for structure (temp 4-component vector of float) | ||||||
|  | 0:113              'psout' (temp structure{temp 4-component vector of float Color}) | ||||||
|  | 0:113              Constant: | ||||||
|  | 0:113                0 (const int) | ||||||
|  | 0:113        Branch: Return | ||||||
|  | 0:?   Linker Objects | ||||||
|  | 0:?     'g_sSamp' (layout(binding=0 ) uniform sampler) | ||||||
|  | 0:?     'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) | ||||||
|  | 0:?     'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) | ||||||
|  | 0:?     'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) | ||||||
|  | 0:?     'g_tTex2df4' (layout(rgba32f ) uniform image2D) | ||||||
|  | 0:?     'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) | ||||||
|  | 0:?     'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) | ||||||
|  | 0:?     'g_tTex3df4' (layout(rgba32f ) uniform image3D) | ||||||
|  | 0:?     'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) | ||||||
|  | 0:?     'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) | ||||||
|  | 0:?     'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) | ||||||
|  | 0:?     'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) | ||||||
|  | 0:?     'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) | ||||||
|  | 0:?     'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) | ||||||
|  | 0:?     'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) | ||||||
|  | 0:?     'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) | ||||||
|  | 0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) | ||||||
|  | 0:?     'Color' (layout(location=0 ) out 4-component vector of float) | ||||||
|  | 
 | ||||||
|  | // Module Version 10000 | ||||||
|  | // Generated by (magic number): 80001 | ||||||
|  | // Id's are bound by 190 | ||||||
|  | 
 | ||||||
|  |                               Capability Shader | ||||||
|  |                               Capability Sampled1D | ||||||
|  |                1:             ExtInstImport  "GLSL.std.450" | ||||||
|  |                               MemoryModel Logical GLSL450 | ||||||
|  |                               EntryPoint Fragment 4  "main" 165 | ||||||
|  |                               ExecutionMode 4 OriginUpperLeft | ||||||
|  |                               Name 4  "main" | ||||||
|  |                               Name 11  "Fn1(vi4;" | ||||||
|  |                               Name 10  "x" | ||||||
|  |                               Name 18  "Fn1(vu4;" | ||||||
|  |                               Name 17  "x" | ||||||
|  |                               Name 25  "Fn1(vf4;" | ||||||
|  |                               Name 24  "x" | ||||||
|  |                               Name 29  "Fn2(vi4;" | ||||||
|  |                               Name 28  "x" | ||||||
|  |                               Name 33  "Fn2(vu4;" | ||||||
|  |                               Name 32  "x" | ||||||
|  |                               Name 37  "Fn2(vf4;" | ||||||
|  |                               Name 36  "x" | ||||||
|  |                               Name 56  "g_tTex1df4" | ||||||
|  |                               Name 60  "$Global" | ||||||
|  |                               MemberName 60($Global) 0  "c1" | ||||||
|  |                               MemberName 60($Global) 1  "c2" | ||||||
|  |                               MemberName 60($Global) 2  "c3" | ||||||
|  |                               MemberName 60($Global) 3  "c4" | ||||||
|  |                               MemberName 60($Global) 4  "o1" | ||||||
|  |                               MemberName 60($Global) 5  "o2" | ||||||
|  |                               MemberName 60($Global) 6  "o3" | ||||||
|  |                               MemberName 60($Global) 7  "o4" | ||||||
|  |                               Name 62  "" | ||||||
|  |                               Name 67  "r00" | ||||||
|  |                               Name 72  "r01" | ||||||
|  |                               Name 75  "g_tTex1di4" | ||||||
|  |                               Name 80  "r02" | ||||||
|  |                               Name 83  "g_tTex1du4" | ||||||
|  |                               Name 88  "r10" | ||||||
|  |                               Name 91  "g_tTex2df4" | ||||||
|  |                               Name 98  "r11" | ||||||
|  |                               Name 101  "g_tTex2di4" | ||||||
|  |                               Name 106  "r12" | ||||||
|  |                               Name 109  "g_tTex2du4" | ||||||
|  |                               Name 114  "r20" | ||||||
|  |                               Name 117  "g_tTex3df4" | ||||||
|  |                               Name 124  "r21" | ||||||
|  |                               Name 127  "g_tTex3di4" | ||||||
|  |                               Name 132  "r22" | ||||||
|  |                               Name 135  "g_tTex3du4" | ||||||
|  |                               Name 144  "param" | ||||||
|  |                               Name 150  "param" | ||||||
|  |                               Name 156  "param" | ||||||
|  |                               Name 158  "PS_OUTPUT" | ||||||
|  |                               MemberName 158(PS_OUTPUT) 0  "Color" | ||||||
|  |                               Name 160  "psout" | ||||||
|  |                               Name 165  "Color" | ||||||
|  |                               Name 171  "g_sSamp" | ||||||
|  |                               Name 174  "g_tTex1df4a" | ||||||
|  |                               Name 177  "g_tTex1di4a" | ||||||
|  |                               Name 180  "g_tTex1du4a" | ||||||
|  |                               Name 183  "g_tTex2df4a" | ||||||
|  |                               Name 186  "g_tTex2di4a" | ||||||
|  |                               Name 189  "g_tTex2du4a" | ||||||
|  |                               Decorate 56(g_tTex1df4) DescriptorSet 0 | ||||||
|  |                               Decorate 56(g_tTex1df4) Binding 0 | ||||||
|  |                               MemberDecorate 60($Global) 0 Offset 0 | ||||||
|  |                               MemberDecorate 60($Global) 1 Offset 8 | ||||||
|  |                               MemberDecorate 60($Global) 2 Offset 16 | ||||||
|  |                               MemberDecorate 60($Global) 3 Offset 32 | ||||||
|  |                               MemberDecorate 60($Global) 4 Offset 48 | ||||||
|  |                               MemberDecorate 60($Global) 5 Offset 56 | ||||||
|  |                               MemberDecorate 60($Global) 6 Offset 64 | ||||||
|  |                               MemberDecorate 60($Global) 7 Offset 80 | ||||||
|  |                               Decorate 60($Global) Block | ||||||
|  |                               Decorate 62 DescriptorSet 0 | ||||||
|  |                               Decorate 75(g_tTex1di4) DescriptorSet 0 | ||||||
|  |                               Decorate 83(g_tTex1du4) DescriptorSet 0 | ||||||
|  |                               Decorate 91(g_tTex2df4) DescriptorSet 0 | ||||||
|  |                               Decorate 101(g_tTex2di4) DescriptorSet 0 | ||||||
|  |                               Decorate 109(g_tTex2du4) DescriptorSet 0 | ||||||
|  |                               Decorate 117(g_tTex3df4) DescriptorSet 0 | ||||||
|  |                               Decorate 127(g_tTex3di4) DescriptorSet 0 | ||||||
|  |                               Decorate 135(g_tTex3du4) DescriptorSet 0 | ||||||
|  |                               Decorate 165(Color) Location 0 | ||||||
|  |                               Decorate 171(g_sSamp) DescriptorSet 0 | ||||||
|  |                               Decorate 171(g_sSamp) Binding 0 | ||||||
|  |                               Decorate 174(g_tTex1df4a) DescriptorSet 0 | ||||||
|  |                               Decorate 177(g_tTex1di4a) DescriptorSet 0 | ||||||
|  |                               Decorate 180(g_tTex1du4a) DescriptorSet 0 | ||||||
|  |                               Decorate 183(g_tTex2df4a) DescriptorSet 0 | ||||||
|  |                               Decorate 186(g_tTex2di4a) DescriptorSet 0 | ||||||
|  |                               Decorate 189(g_tTex2du4a) DescriptorSet 0 | ||||||
|  |                2:             TypeVoid | ||||||
|  |                3:             TypeFunction 2 | ||||||
|  |                6:             TypeInt 32 1 | ||||||
|  |                7:             TypeVector 6(int) 4 | ||||||
|  |                8:             TypePointer Function 7(ivec4) | ||||||
|  |                9:             TypeFunction 7(ivec4) 8(ptr) | ||||||
|  |               13:             TypeInt 32 0 | ||||||
|  |               14:             TypeVector 13(int) 4 | ||||||
|  |               15:             TypePointer Function 14(ivec4) | ||||||
|  |               16:             TypeFunction 14(ivec4) 15(ptr) | ||||||
|  |               20:             TypeFloat 32 | ||||||
|  |               21:             TypeVector 20(float) 4 | ||||||
|  |               22:             TypePointer Function 21(fvec4) | ||||||
|  |               23:             TypeFunction 21(fvec4) 22(ptr) | ||||||
|  |               27:             TypeFunction 2 8(ptr) | ||||||
|  |               31:             TypeFunction 2 15(ptr) | ||||||
|  |               35:             TypeFunction 2 22(ptr) | ||||||
|  |               48:      6(int) Constant 0 | ||||||
|  |               49:    7(ivec4) ConstantComposite 48 48 48 48 | ||||||
|  |               50:     13(int) Constant 0 | ||||||
|  |               51:   14(ivec4) ConstantComposite 50 50 50 50 | ||||||
|  |               52:   20(float) Constant 0 | ||||||
|  |               53:   21(fvec4) ConstantComposite 52 52 52 52 | ||||||
|  |               54:             TypeImage 20(float) 1D nonsampled format:Rgba32f | ||||||
|  |               55:             TypePointer UniformConstant 54 | ||||||
|  |   56(g_tTex1df4):     55(ptr) Variable UniformConstant | ||||||
|  |               58:             TypeVector 6(int) 2 | ||||||
|  |               59:             TypeVector 6(int) 3 | ||||||
|  |      60($Global):             TypeStruct 6(int) 58(ivec2) 59(ivec3) 7(ivec4) 6(int) 58(ivec2) 59(ivec3) 7(ivec4) | ||||||
|  |               61:             TypePointer Uniform 60($Global) | ||||||
|  |               62:     61(ptr) Variable Uniform | ||||||
|  |               63:             TypePointer Uniform 6(int) | ||||||
|  |               73:             TypeImage 6(int) 1D nonsampled format:Rgba32i | ||||||
|  |               74:             TypePointer UniformConstant 73 | ||||||
|  |   75(g_tTex1di4):     74(ptr) Variable UniformConstant | ||||||
|  |               81:             TypeImage 13(int) 1D nonsampled format:Rgba32ui | ||||||
|  |               82:             TypePointer UniformConstant 81 | ||||||
|  |   83(g_tTex1du4):     82(ptr) Variable UniformConstant | ||||||
|  |               89:             TypeImage 20(float) 2D nonsampled format:Rgba32f | ||||||
|  |               90:             TypePointer UniformConstant 89 | ||||||
|  |   91(g_tTex2df4):     90(ptr) Variable UniformConstant | ||||||
|  |               93:      6(int) Constant 1 | ||||||
|  |               94:             TypePointer Uniform 58(ivec2) | ||||||
|  |               99:             TypeImage 6(int) 2D nonsampled format:Rgba32i | ||||||
|  |              100:             TypePointer UniformConstant 99 | ||||||
|  |  101(g_tTex2di4):    100(ptr) Variable UniformConstant | ||||||
|  |              107:             TypeImage 13(int) 2D nonsampled format:Rgba32ui | ||||||
|  |              108:             TypePointer UniformConstant 107 | ||||||
|  |  109(g_tTex2du4):    108(ptr) Variable UniformConstant | ||||||
|  |              115:             TypeImage 20(float) 3D nonsampled format:Rgba32f | ||||||
|  |              116:             TypePointer UniformConstant 115 | ||||||
|  |  117(g_tTex3df4):    116(ptr) Variable UniformConstant | ||||||
|  |              119:      6(int) Constant 2 | ||||||
|  |              120:             TypePointer Uniform 59(ivec3) | ||||||
|  |              125:             TypeImage 6(int) 3D nonsampled format:Rgba32i | ||||||
|  |              126:             TypePointer UniformConstant 125 | ||||||
|  |  127(g_tTex3di4):    126(ptr) Variable UniformConstant | ||||||
|  |              133:             TypeImage 13(int) 3D nonsampled format:Rgba32ui | ||||||
|  |              134:             TypePointer UniformConstant 133 | ||||||
|  |  135(g_tTex3du4):    134(ptr) Variable UniformConstant | ||||||
|  |   158(PS_OUTPUT):             TypeStruct 21(fvec4) | ||||||
|  |              159:             TypePointer Function 158(PS_OUTPUT) | ||||||
|  |              161:   20(float) Constant 1065353216 | ||||||
|  |              162:   21(fvec4) ConstantComposite 161 161 161 161 | ||||||
|  |              164:             TypePointer Output 21(fvec4) | ||||||
|  |       165(Color):    164(ptr) Variable Output | ||||||
|  |              169:             TypeSampler | ||||||
|  |              170:             TypePointer UniformConstant 169 | ||||||
|  |     171(g_sSamp):    170(ptr) Variable UniformConstant | ||||||
|  |              172:             TypeImage 20(float) 1D array nonsampled format:Rgba32f | ||||||
|  |              173:             TypePointer UniformConstant 172 | ||||||
|  | 174(g_tTex1df4a):    173(ptr) Variable UniformConstant | ||||||
|  |              175:             TypeImage 6(int) 1D array nonsampled format:Rgba32i | ||||||
|  |              176:             TypePointer UniformConstant 175 | ||||||
|  | 177(g_tTex1di4a):    176(ptr) Variable UniformConstant | ||||||
|  |              178:             TypeImage 13(int) 1D array nonsampled format:Rgba32ui | ||||||
|  |              179:             TypePointer UniformConstant 178 | ||||||
|  | 180(g_tTex1du4a):    179(ptr) Variable UniformConstant | ||||||
|  |              181:             TypeImage 20(float) 2D array nonsampled format:Rgba32f | ||||||
|  |              182:             TypePointer UniformConstant 181 | ||||||
|  | 183(g_tTex2df4a):    182(ptr) Variable UniformConstant | ||||||
|  |              184:             TypeImage 6(int) 2D array nonsampled format:Rgba32i | ||||||
|  |              185:             TypePointer UniformConstant 184 | ||||||
|  | 186(g_tTex2di4a):    185(ptr) Variable UniformConstant | ||||||
|  |              187:             TypeImage 13(int) 2D array nonsampled format:Rgba32ui | ||||||
|  |              188:             TypePointer UniformConstant 187 | ||||||
|  | 189(g_tTex2du4a):    188(ptr) Variable UniformConstant | ||||||
|  |          4(main):           2 Function None 3 | ||||||
|  |                5:             Label | ||||||
|  |          67(r00):     22(ptr) Variable Function | ||||||
|  |          72(r01):      8(ptr) Variable Function | ||||||
|  |          80(r02):     15(ptr) Variable Function | ||||||
|  |          88(r10):     22(ptr) Variable Function | ||||||
|  |          98(r11):      8(ptr) Variable Function | ||||||
|  |         106(r12):     15(ptr) Variable Function | ||||||
|  |         114(r20):     22(ptr) Variable Function | ||||||
|  |         124(r21):      8(ptr) Variable Function | ||||||
|  |         132(r22):     15(ptr) Variable Function | ||||||
|  |       144(param):     22(ptr) Variable Function | ||||||
|  |       150(param):      8(ptr) Variable Function | ||||||
|  |       156(param):     15(ptr) Variable Function | ||||||
|  |       160(psout):    159(ptr) Variable Function | ||||||
|  |               57:          54 Load 56(g_tTex1df4) | ||||||
|  |               64:     63(ptr) AccessChain 62 48 | ||||||
|  |               65:      6(int) Load 64 | ||||||
|  |               66:   21(fvec4) ImageRead 57 65 | ||||||
|  |               68:          54 Load 56(g_tTex1df4) | ||||||
|  |               69:     63(ptr) AccessChain 62 48 | ||||||
|  |               70:      6(int) Load 69 | ||||||
|  |               71:   21(fvec4) ImageRead 68 70 | ||||||
|  |                               Store 67(r00) 71 | ||||||
|  |               76:          73 Load 75(g_tTex1di4) | ||||||
|  |               77:     63(ptr) AccessChain 62 48 | ||||||
|  |               78:      6(int) Load 77 | ||||||
|  |               79:    7(ivec4) ImageRead 76 78 | ||||||
|  |                               Store 72(r01) 79 | ||||||
|  |               84:          81 Load 83(g_tTex1du4) | ||||||
|  |               85:     63(ptr) AccessChain 62 48 | ||||||
|  |               86:      6(int) Load 85 | ||||||
|  |               87:   14(ivec4) ImageRead 84 86 | ||||||
|  |                               Store 80(r02) 87 | ||||||
|  |               92:          89 Load 91(g_tTex2df4) | ||||||
|  |               95:     94(ptr) AccessChain 62 93 | ||||||
|  |               96:   58(ivec2) Load 95 | ||||||
|  |               97:   21(fvec4) ImageRead 92 96 | ||||||
|  |                               Store 88(r10) 97 | ||||||
|  |              102:          99 Load 101(g_tTex2di4) | ||||||
|  |              103:     94(ptr) AccessChain 62 93 | ||||||
|  |              104:   58(ivec2) Load 103 | ||||||
|  |              105:    7(ivec4) ImageRead 102 104 | ||||||
|  |                               Store 98(r11) 105 | ||||||
|  |              110:         107 Load 109(g_tTex2du4) | ||||||
|  |              111:     94(ptr) AccessChain 62 93 | ||||||
|  |              112:   58(ivec2) Load 111 | ||||||
|  |              113:   14(ivec4) ImageRead 110 112 | ||||||
|  |                               Store 106(r12) 113 | ||||||
|  |              118:         115 Load 117(g_tTex3df4) | ||||||
|  |              121:    120(ptr) AccessChain 62 119 | ||||||
|  |              122:   59(ivec3) Load 121 | ||||||
|  |              123:   21(fvec4) ImageRead 118 122 | ||||||
|  |                               Store 114(r20) 123 | ||||||
|  |              128:         125 Load 127(g_tTex3di4) | ||||||
|  |              129:    120(ptr) AccessChain 62 119 | ||||||
|  |              130:   59(ivec3) Load 129 | ||||||
|  |              131:    7(ivec4) ImageRead 128 130 | ||||||
|  |                               Store 124(r21) 131 | ||||||
|  |              136:         133 Load 135(g_tTex3du4) | ||||||
|  |              137:    120(ptr) AccessChain 62 119 | ||||||
|  |              138:   59(ivec3) Load 137 | ||||||
|  |              139:   14(ivec4) ImageRead 136 138 | ||||||
|  |                               Store 132(r22) 139 | ||||||
|  |              140:          54 Load 56(g_tTex1df4) | ||||||
|  |              141:     63(ptr) AccessChain 62 48 | ||||||
|  |              142:      6(int) Load 141 | ||||||
|  |              143:   21(fvec4) ImageRead 140 142 | ||||||
|  |                               Store 144(param) 143 | ||||||
|  |              145:   21(fvec4) FunctionCall 25(Fn1(vf4;) 144(param) | ||||||
|  |              146:          73 Load 75(g_tTex1di4) | ||||||
|  |              147:     63(ptr) AccessChain 62 48 | ||||||
|  |              148:      6(int) Load 147 | ||||||
|  |              149:    7(ivec4) ImageRead 146 148 | ||||||
|  |                               Store 150(param) 149 | ||||||
|  |              151:    7(ivec4) FunctionCall 11(Fn1(vi4;) 150(param) | ||||||
|  |              152:          81 Load 83(g_tTex1du4) | ||||||
|  |              153:     63(ptr) AccessChain 62 48 | ||||||
|  |              154:      6(int) Load 153 | ||||||
|  |              155:   14(ivec4) ImageRead 152 154 | ||||||
|  |                               Store 156(param) 155 | ||||||
|  |              157:   14(ivec4) FunctionCall 18(Fn1(vu4;) 156(param) | ||||||
|  |              163:     22(ptr) AccessChain 160(psout) 48 | ||||||
|  |                               Store 163 162 | ||||||
|  |              166:     22(ptr) AccessChain 160(psout) 48 | ||||||
|  |              167:   21(fvec4) Load 166 | ||||||
|  |                               Store 165(Color) 167 | ||||||
|  |                               Return | ||||||
|  |                               FunctionEnd | ||||||
|  |     11(Fn1(vi4;):    7(ivec4) Function None 9 | ||||||
|  |            10(x):      8(ptr) FunctionParameter | ||||||
|  |               12:             Label | ||||||
|  |               39:    7(ivec4) Load 10(x) | ||||||
|  |                               ReturnValue 39 | ||||||
|  |                               FunctionEnd | ||||||
|  |     18(Fn1(vu4;):   14(ivec4) Function None 16 | ||||||
|  |            17(x):     15(ptr) FunctionParameter | ||||||
|  |               19:             Label | ||||||
|  |               42:   14(ivec4) Load 17(x) | ||||||
|  |                               ReturnValue 42 | ||||||
|  |                               FunctionEnd | ||||||
|  |     25(Fn1(vf4;):   21(fvec4) Function None 23 | ||||||
|  |            24(x):     22(ptr) FunctionParameter | ||||||
|  |               26:             Label | ||||||
|  |               45:   21(fvec4) Load 24(x) | ||||||
|  |                               ReturnValue 45 | ||||||
|  |                               FunctionEnd | ||||||
|  |     29(Fn2(vi4;):           2 Function None 27 | ||||||
|  |            28(x):      8(ptr) FunctionParameter | ||||||
|  |               30:             Label | ||||||
|  |                               Store 28(x) 49 | ||||||
|  |                               Return | ||||||
|  |                               FunctionEnd | ||||||
|  |     33(Fn2(vu4;):           2 Function None 31 | ||||||
|  |            32(x):     15(ptr) FunctionParameter | ||||||
|  |               34:             Label | ||||||
|  |                               Store 32(x) 51 | ||||||
|  |                               Return | ||||||
|  |                               FunctionEnd | ||||||
|  |     37(Fn2(vf4;):           2 Function None 35 | ||||||
|  |            36(x):     22(ptr) FunctionParameter | ||||||
|  |               38:             Label | ||||||
|  |                               Store 36(x) 53 | ||||||
|  |                               Return | ||||||
|  |                               FunctionEnd | ||||||
							
								
								
									
										114
									
								
								Test/hlsl.rw.bracket.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								Test/hlsl.rw.bracket.frag
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,114 @@ | |||||||
|  | SamplerState       g_sSamp : register(s0); | ||||||
|  | 
 | ||||||
|  | RWTexture1D <float4> g_tTex1df4 : register(t0); | ||||||
|  | RWTexture1D <int4>   g_tTex1di4; | ||||||
|  | RWTexture1D <uint4>  g_tTex1du4; | ||||||
|  | 
 | ||||||
|  | RWTexture2D <float4> g_tTex2df4; | ||||||
|  | RWTexture2D <int4>   g_tTex2di4; | ||||||
|  | RWTexture2D <uint4>  g_tTex2du4; | ||||||
|  | 
 | ||||||
|  | RWTexture3D <float4> g_tTex3df4; | ||||||
|  | RWTexture3D <int4>   g_tTex3di4; | ||||||
|  | RWTexture3D <uint4>  g_tTex3du4; | ||||||
|  | 
 | ||||||
|  | RWTexture1DArray <float4> g_tTex1df4a; | ||||||
|  | RWTexture1DArray <int4>   g_tTex1di4a; | ||||||
|  | RWTexture1DArray <uint4>  g_tTex1du4a; | ||||||
|  | 
 | ||||||
|  | RWTexture2DArray <float4> g_tTex2df4a; | ||||||
|  | RWTexture2DArray <int4>   g_tTex2di4a; | ||||||
|  | RWTexture2DArray <uint4>  g_tTex2du4a; | ||||||
|  | 
 | ||||||
|  | struct PS_OUTPUT | ||||||
|  | { | ||||||
|  |     float4 Color : SV_Target0; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | uniform int   c1; | ||||||
|  | uniform int2  c2; | ||||||
|  | uniform int3  c3; | ||||||
|  | uniform int4  c4; | ||||||
|  | 
 | ||||||
|  | uniform int   o1; | ||||||
|  | uniform int2  o2; | ||||||
|  | uniform int3  o3; | ||||||
|  | uniform int4  o4; | ||||||
|  | 
 | ||||||
|  | int4   Fn1(in int4 x)   { return x; } | ||||||
|  | uint4  Fn1(in uint4 x)  { return x; } | ||||||
|  | float4 Fn1(in float4 x) { return x; } | ||||||
|  | 
 | ||||||
|  | void Fn2(out int4 x)   { x = int4(0); } | ||||||
|  | void Fn2(out uint4 x)  { x = uint4(0); } | ||||||
|  | void Fn2(out float4 x) { x = float4(0); } | ||||||
|  | 
 | ||||||
|  | PS_OUTPUT main() | ||||||
|  | { | ||||||
|  |    PS_OUTPUT psout; | ||||||
|  | 
 | ||||||
|  |    // Test as R-values | ||||||
|  | 
 | ||||||
|  |    // 1D | ||||||
|  |    g_tTex1df4[c1]; | ||||||
|  |     | ||||||
|  |    float4 r00 = g_tTex1df4[c1]; | ||||||
|  |    int4   r01 = g_tTex1di4[c1]; | ||||||
|  |    uint4  r02 = g_tTex1du4[c1]; | ||||||
|  |     | ||||||
|  |    // 2D | ||||||
|  |    float4 r10 = g_tTex2df4[c2]; | ||||||
|  |    int4   r11 = g_tTex2di4[c2]; | ||||||
|  |    uint4  r12 = g_tTex2du4[c2]; | ||||||
|  |     | ||||||
|  |    // 3D | ||||||
|  |    float4 r20 = g_tTex3df4[c3]; | ||||||
|  |    int4   r21 = g_tTex3di4[c3]; | ||||||
|  |    uint4  r22 = g_tTex3du4[c3]; | ||||||
|  | 
 | ||||||
|  |    // // Test as L-values | ||||||
|  |    // // 1D | ||||||
|  |    // g_tTex1df4[c1] = float4(1,2,3,4); | ||||||
|  |    // g_tTex1di4[c1] = int4(1,2,3,4); | ||||||
|  |    // g_tTex1du4[c1] = uint4(1,2,3,4); | ||||||
|  |     | ||||||
|  |    // // 2D | ||||||
|  |    // g_tTex2df4[c2] = float4(1,2,3,4); | ||||||
|  |    // g_tTex2di4[c2] = int4(1,2,3,4); | ||||||
|  |    // g_tTex2du4[c2] = uint4(1,2,3,4); | ||||||
|  |     | ||||||
|  |    // // 3D | ||||||
|  |    // g_tTex3df4[c3] = float4(1,2,3,4); | ||||||
|  |    // g_tTex3di4[c3] = int4(1,2,3,4); | ||||||
|  |    // g_tTex3du4[c3] = uint4(1,2,3,4); | ||||||
|  | 
 | ||||||
|  |    // // Test function calling | ||||||
|  |    Fn1(g_tTex1df4[c1]);  // in | ||||||
|  |    Fn1(g_tTex1di4[c1]);  // in | ||||||
|  |    Fn1(g_tTex1du4[c1]);  // in | ||||||
|  | 
 | ||||||
|  |    // Fn2(g_tTex1df4[c1]);  // out | ||||||
|  |    // Fn2(g_tTex1di4[c1]);  // out | ||||||
|  |    // Fn2(g_tTex1du4[c1]);  // out | ||||||
|  | 
 | ||||||
|  |    // // Test increment operators | ||||||
|  |    // g_tTex1df4[c1]++; | ||||||
|  |    // g_tTex1di4[c1]++; | ||||||
|  |    // g_tTex1du4[c1]++; | ||||||
|  | 
 | ||||||
|  |    // g_tTex1df4[c1]--; | ||||||
|  |    // g_tTex1di4[c1]--; | ||||||
|  |    // g_tTex1du4[c1]--; | ||||||
|  | 
 | ||||||
|  |    // ++g_tTex1df4[c1]; | ||||||
|  |    // ++g_tTex1di4[c1]; | ||||||
|  |    // ++g_tTex1du4[c1]; | ||||||
|  | 
 | ||||||
|  |    // --g_tTex1df4[c1]; | ||||||
|  |    // --g_tTex1di4[c1]; | ||||||
|  |    // --g_tTex1du4[c1]; | ||||||
|  | 
 | ||||||
|  |    psout.Color = 1.0; | ||||||
|  | 
 | ||||||
|  |    return psout; | ||||||
|  | } | ||||||
| @ -147,6 +147,7 @@ INSTANTIATE_TEST_CASE_P( | |||||||
|         {"hlsl.pp.line.frag", "main"}, |         {"hlsl.pp.line.frag", "main"}, | ||||||
|         {"hlsl.precise.frag", "main"}, |         {"hlsl.precise.frag", "main"}, | ||||||
|         {"hlsl.promotions.frag", "main"}, |         {"hlsl.promotions.frag", "main"}, | ||||||
|  |         {"hlsl.rw.bracket.frag", "main"}, | ||||||
|         {"hlsl.sample.array.dx10.frag", "main"}, |         {"hlsl.sample.array.dx10.frag", "main"}, | ||||||
|         {"hlsl.sample.basic.dx10.frag", "main"}, |         {"hlsl.sample.basic.dx10.frag", "main"}, | ||||||
|         {"hlsl.sample.offset.dx10.frag", "main"}, |         {"hlsl.sample.offset.dx10.frag", "main"}, | ||||||
|  | |||||||
| @ -297,12 +297,40 @@ TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* s | |||||||
|     return node; |     return node; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | //
 | ||||||
|  | // Handle operator[] on any objects it applies to.  Currently:
 | ||||||
|  | //    Textures
 | ||||||
|  | //    Buffers
 | ||||||
|  | //
 | ||||||
|  | TIntermTyped* HlslParseContext::handleBracketOperator(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) | ||||||
|  | { | ||||||
|  |     // handle r-value operator[] on textures and images.  l-values will be processed later.
 | ||||||
|  |     if (base->getType().getBasicType() == EbtSampler && !base->isArray()) { | ||||||
|  |         const TSampler& sampler = base->getType().getSampler(); | ||||||
|  |         if (sampler.isImage() || sampler.isTexture()) { | ||||||
|  |             const int vecSize = 4; // TODO: handle arbitrary sizes (get from qualifier)
 | ||||||
|  |             TIntermAggregate* load = new TIntermAggregate(EOpImageLoad); | ||||||
|  | 
 | ||||||
|  |             load->setType(TType(sampler.type, EvqTemporary, vecSize)); | ||||||
|  |             load->setLoc(loc); | ||||||
|  |             load->getSequence().push_back(base); | ||||||
|  |             load->getSequence().push_back(index); | ||||||
|  |             return load; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return nullptr; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| //
 | //
 | ||||||
| // Handle seeing a base[index] dereference in the grammar.
 | // Handle seeing a base[index] dereference in the grammar.
 | ||||||
| //
 | //
 | ||||||
| TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) | TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) | ||||||
| { | { | ||||||
|     TIntermTyped* result = nullptr; |     TIntermTyped* result = handleBracketOperator(loc, base, index); | ||||||
|  | 
 | ||||||
|  |     if (result != nullptr) | ||||||
|  |         return result;  // it was handled as an operator[]
 | ||||||
| 
 | 
 | ||||||
|     bool flattened = false; |     bool flattened = false; | ||||||
|     int indexValue = 0; |     int indexValue = 0; | ||||||
| @ -425,10 +453,10 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt | |||||||
|                field == "SampleLevel") { |                field == "SampleLevel") { | ||||||
|         // If it's not a method on a sampler object, we fall through in case it is a struct member.
 |         // If it's not a method on a sampler object, we fall through in case it is a struct member.
 | ||||||
|         if (base->getType().getBasicType() == EbtSampler) { |         if (base->getType().getBasicType() == EbtSampler) { | ||||||
|             const TSampler& texType = base->getType().getSampler(); |             const TSampler& sampler = base->getType().getSampler(); | ||||||
|             if (! texType.isPureSampler()) { |             if (! sampler.isPureSampler()) { | ||||||
|                 const int vecSize = texType.isShadow() ? 1 : 4; |                 const int vecSize = sampler.isShadow() ? 1 : 4; // TODO: handle arbitrary sample return sizes
 | ||||||
|                 return intermediate.addMethod(base, TType(texType.type, EvqTemporary, vecSize), &field, loc); |                 return intermediate.addMethod(base, TType(sampler.type, EvqTemporary, vecSize), &field, loc); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @ -1261,7 +1289,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType | |||||||
|             case Esd2D:     numDims = 2; break; // W, H
 |             case Esd2D:     numDims = 2; break; // W, H
 | ||||||
|             case Esd3D:     numDims = 3; break; // W, H, D
 |             case Esd3D:     numDims = 3; break; // W, H, D
 | ||||||
|             case EsdCube:   numDims = 2; break; // W, H (cube)
 |             case EsdCube:   numDims = 2; break; // W, H (cube)
 | ||||||
|             case EsdBuffer: numDims = 1; break; // buffers
 |             case EsdBuffer: numDims = 1; break; // W (buffers)
 | ||||||
|             default: |             default: | ||||||
|                 assert(0 && "unhandled texture dimension"); |                 assert(0 && "unhandled texture dimension"); | ||||||
|             } |             } | ||||||
|  | |||||||
| @ -61,6 +61,7 @@ public: | |||||||
|     void handlePragma(const TSourceLoc&, const TVector<TString>&); |     void handlePragma(const TSourceLoc&, const TVector<TString>&); | ||||||
|     TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol,  const TString* string); |     TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol,  const TString* string); | ||||||
|     TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); |     TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); | ||||||
|  |     TIntermTyped* handleBracketOperator(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); | ||||||
|     void checkIndex(const TSourceLoc&, const TType&, int& index); |     void checkIndex(const TSourceLoc&, const TType&, int& index); | ||||||
| 
 | 
 | ||||||
|     TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); |     TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 steve-lunarg
						steve-lunarg