| 
									
										
										
										
											2023-03-23 15:47:55 -03:00
										 |  |  | [pixel shader] | 
					
						
							|  |  |  | float4 main() : sv_target | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     float x[3] = {0, 2, 3}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return x[x[1] = 1]; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [test] | 
					
						
							| 
									
										
										
										
											2024-11-22 15:45:54 +08:00
										 |  |  | draw quad | 
					
						
							| 
									
										
										
										
											2024-02-10 13:16:22 -06:00
										 |  |  | probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) | 
					
						
							| 
									
										
										
										
											2023-03-23 15:47:55 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [pixel shader] | 
					
						
							|  |  |  | uint4 func(uint t) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return uint4(t + 0, t + 1, t + 2, t + 3); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | float4 main() : sv_target | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return func(10)[func(0).y]; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [test] | 
					
						
							| 
									
										
										
										
											2024-11-22 15:45:54 +08:00
										 |  |  | draw quad | 
					
						
							| 
									
										
										
										
											2024-02-10 13:16:22 -06:00
										 |  |  | probe (0, 0) rgba (11.0, 11.0, 11.0, 11.0) | 
					
						
							| 
									
										
										
										
											2023-03-23 15:47:55 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-14 19:29:24 +10:00
										 |  |  | % dxcompiler performs the first call to func() before the array index call. | 
					
						
							|  |  |  | [require] | 
					
						
							|  |  |  | shader model < 6.0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-23 15:47:55 -03:00
										 |  |  | [pixel shader] | 
					
						
							|  |  |  | float4 func(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     static uint i; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     i += 1; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return float4(0.1, 0.2, 0.3, 0.4) + i; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | float4 main() : sv_target | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return func()[func().x]; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [test] | 
					
						
							| 
									
										
										
										
											2024-11-22 15:45:54 +08:00
										 |  |  | draw quad | 
					
						
							| 
									
										
										
										
											2024-02-10 13:16:22 -06:00
										 |  |  | probe (0, 0) rgba (2.2, 2.2, 2.2, 2.2) |