| 
									
										
										
										
											2022-04-06 16:05:37 -05:00
										 |  |  | [require] | 
					
						
							|  |  |  | shader model >= 4.0 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-24 16:11:17 -03:00
										 |  |  | [srv 0] | 
					
						
							|  |  |  | size (2d, 2, 2) | 
					
						
							| 
									
										
										
										
											2021-10-03 19:19:08 -05:00
										 |  |  | 0.1 0.2 0.3 0.4     0.5 0.7 0.6 0.8 | 
					
						
							|  |  |  | 0.6 0.5 0.2 0.1     0.8 0.0 0.7 1.0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [pixel shader] | 
					
						
							|  |  |  | Texture2D t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | float4 main(float4 pos : sv_position) : sv_target | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return t.Load(int3(pos.xy, 0)); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [test] | 
					
						
							| 
									
										
										
										
											2024-01-25 13:28:46 +10:00
										 |  |  | draw quad | 
					
						
							| 
									
										
										
										
											2022-04-18 08:33:58 +02:00
										 |  |  | probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) | 
					
						
							|  |  |  | probe (1, 0) rgba (0.5, 0.7, 0.6, 0.8) | 
					
						
							|  |  |  | probe (0, 1) rgba (0.6, 0.5, 0.2, 0.1) | 
					
						
							|  |  |  | probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0) | 
					
						
							| 
									
										
										
										
											2021-08-12 18:26:53 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | [pixel shader] | 
					
						
							|  |  |  | Texture2D t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | float4 main(float4 pos : sv_position) : sv_target | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return t[pos.yx]; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [test] | 
					
						
							| 
									
										
										
										
											2024-01-25 13:28:46 +10:00
										 |  |  | draw quad | 
					
						
							| 
									
										
										
										
											2021-08-12 18:26:53 -05:00
										 |  |  | probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) | 
					
						
							|  |  |  | probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1) | 
					
						
							|  |  |  | probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8) | 
					
						
							|  |  |  | probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0) | 
					
						
							| 
									
										
										
										
											2023-04-27 10:15:36 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | [pixel shader] | 
					
						
							| 
									
										
										
										
											2023-06-28 11:28:49 +02:00
										 |  |  | static const int size = 2; | 
					
						
							|  |  |  | Texture2DMS<float4, size - 1> t; | 
					
						
							| 
									
										
										
										
											2023-04-27 10:15:36 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | float4 main(float4 pos : sv_position) : sv_target | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return t.Load(pos.yx, 0); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [test] | 
					
						
							| 
									
										
										
										
											2024-01-25 13:28:46 +10:00
										 |  |  | draw quad | 
					
						
							| 
									
										
										
										
											2023-04-27 10:15:36 +02:00
										 |  |  | probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) | 
					
						
							|  |  |  | probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1) | 
					
						
							|  |  |  | probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8) | 
					
						
							|  |  |  | probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0) | 
					
						
							| 
									
										
										
										
											2023-12-13 12:14:39 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | % The sample count only matters for the external definition in SM4-5; | 
					
						
							|  |  |  | % internally it doesn't, you can even avoid it | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [require] | 
					
						
							|  |  |  | shader model >= 4.0 | 
					
						
							|  |  |  | shader model < 6.0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [pixel shader] | 
					
						
							|  |  |  | static const int size = 2; | 
					
						
							|  |  |  | Texture2DMS<float4, size - 1> t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | float4 main(float4 pos : sv_position) : sv_target | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Texture2DMS<float4, 4> s = t; | 
					
						
							|  |  |  |     return s.Load(pos.yx, 0); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [test] | 
					
						
							|  |  |  | draw quad | 
					
						
							|  |  |  | probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) | 
					
						
							|  |  |  | probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1) | 
					
						
							|  |  |  | probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8) | 
					
						
							|  |  |  | probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [pixel shader todo] | 
					
						
							|  |  |  | static const int size = 2; | 
					
						
							|  |  |  | Texture2DMS<float4, size - 1> t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | float4 main(float4 pos : sv_position) : sv_target | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Texture2DMS<float4> s = t; | 
					
						
							|  |  |  |     return s.Load(pos.yx, 0); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [test] | 
					
						
							|  |  |  | todo draw quad | 
					
						
							|  |  |  | probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) | 
					
						
							|  |  |  | probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1) | 
					
						
							|  |  |  | probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8) | 
					
						
							|  |  |  | probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % SM6 is stricter instead | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [require] | 
					
						
							|  |  |  | shader model >= 6.0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [pixel shader fail] | 
					
						
							|  |  |  | static const int size = 2; | 
					
						
							|  |  |  | Texture2DMS<float4, size - 1> t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | float4 main(float4 pos : sv_position) : sv_target | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Texture2DMS<float4, 4> s = t; | 
					
						
							|  |  |  |     return s.Load(pos.yx, 0); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [pixel shader fail] | 
					
						
							|  |  |  | static const int size = 2; | 
					
						
							|  |  |  | Texture2DMS<float4, size - 1> t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | float4 main(float4 pos : sv_position) : sv_target | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Texture2DMS<float4> s = t; | 
					
						
							|  |  |  |     return s.Load(pos.yx, 0); | 
					
						
							|  |  |  | } |