mirror of
				https://gitlab.winehq.org/wine/vkd3d.git
				synced 2025-09-12 18:50:22 -07:00 
			
		
		
		
	
		
			
				
	
	
		
			176 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			176 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| [require]
 | |
| shader model >= 4.0
 | |
| 
 | |
| [input layout]
 | |
| 0 r32g32b32a32 float texcoord
 | |
| 
 | |
| [vertex buffer 0]
 | |
| 0.0 1.0 0.0 1.0
 | |
| 1.0 0.0 0.0 1.0
 | |
| 0.0 0.0 1.0 1.0
 | |
| 
 | |
| [vertex shader]
 | |
| void main(uint id : sv_vertexid, nointerpolation inout float4 t : texcoord, out float4 pos : sv_position)
 | |
| {
 | |
|     float2 coords = float2((id << 1) & 2, id & 2);
 | |
|     pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1);
 | |
| }
 | |
| 
 | |
| [pixel shader]
 | |
| float4 main(nointerpolation float4 t : texcoord) : sv_target
 | |
| {
 | |
|     return t;
 | |
| }
 | |
| 
 | |
| [test]
 | |
| draw triangle list 3
 | |
| probe all rgba (0.0, 1.0, 0.0, 1.0)
 | |
| 
 | |
| [vertex shader]
 | |
| struct ps_input
 | |
| {
 | |
|     nointerpolation float4 t : texcoord;
 | |
| };
 | |
| 
 | |
| void main(uint id : sv_vertexid, inout ps_input input, out float4 pos : sv_position)
 | |
| {
 | |
|     float2 coords = float2((id << 1) & 2, id & 2);
 | |
|     pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1);
 | |
| }
 | |
| 
 | |
| [pixel shader]
 | |
| struct ps_input
 | |
| {
 | |
|     nointerpolation float4 t : texcoord;
 | |
| };
 | |
| 
 | |
| float4 main(ps_input input) : sv_target
 | |
| {
 | |
|     return input.t;
 | |
| }
 | |
| 
 | |
| [test]
 | |
| draw triangle list 3
 | |
| probe all rgba (0.0, 1.0, 0.0, 1.0)
 | |
| 
 | |
| [vertex shader]
 | |
| struct ps_input
 | |
| {
 | |
|     nointerpolation float4 t : texcoord;
 | |
| };
 | |
| 
 | |
| void main(uint id : sv_vertexid, inout ps_input input, out float4 pos : sv_position)
 | |
| {
 | |
|     float2 coords = float2((id << 1) & 2, id & 2);
 | |
|     pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1);
 | |
| }
 | |
| 
 | |
| [pixel shader]
 | |
| struct ps_input
 | |
| {
 | |
|     float4 t : texcoord;
 | |
| };
 | |
| 
 | |
| float4 main(nointerpolation ps_input input) : sv_target
 | |
| {
 | |
|     return input.t;
 | |
| }
 | |
| 
 | |
| [test]
 | |
| draw triangle list 3
 | |
| probe all rgba (0.0, 1.0, 0.0, 1.0)
 | |
| 
 | |
| [vertex shader]
 | |
| struct ps_input
 | |
| {
 | |
|     nointerpolation float4 t : texcoord;
 | |
| };
 | |
| 
 | |
| void main(uint id : sv_vertexid, inout ps_input input, out float4 pos : sv_position)
 | |
| {
 | |
|     float2 coords = float2((id << 1) & 2, id & 2);
 | |
|     pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1);
 | |
| }
 | |
| 
 | |
| [pixel shader]
 | |
| struct ps_input
 | |
| {
 | |
|     nointerpolation float4 t : texcoord;
 | |
| };
 | |
| 
 | |
| float4 main(centroid ps_input input) : sv_target
 | |
| {
 | |
|     return input.t;
 | |
| }
 | |
| 
 | |
| [test]
 | |
| draw triangle list 3
 | |
| probe all rgba (0.0, 1.0, 0.0, 1.0)
 | |
| 
 | |
| [vertex shader]
 | |
| struct ps_input
 | |
| {
 | |
|     nointerpolation float4 t : texcoord;
 | |
| };
 | |
| 
 | |
| void main(uint id : sv_vertexid, inout ps_input input, out float4 pos : sv_position)
 | |
| {
 | |
|     float2 coords = float2((id << 1) & 2, id & 2);
 | |
|     pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1);
 | |
| }
 | |
| 
 | |
| [pixel shader]
 | |
| struct ps_input
 | |
| {
 | |
|     centroid float4 t : texcoord;
 | |
| };
 | |
| 
 | |
| float4 main(nointerpolation ps_input input) : sv_target
 | |
| {
 | |
|     return input.t;
 | |
| }
 | |
| 
 | |
| [require]
 | |
| shader model >= 4.0
 | |
| shader model < 6.0
 | |
| 
 | |
| [test]
 | |
| draw triangle list 3
 | |
| probe all rgba (0.0, 1.0, 0.0, 1.0)
 | |
| 
 | |
| % Centroid for SM 6.
 | |
| [require]
 | |
| shader model >= 6.0
 | |
| 
 | |
| [test]
 | |
| draw triangle list 3
 | |
| probe (320,240) rgba (0.250390589, 0.499088615, 0.250520796, 1.0) 1
 | |
| 
 | |
| [require]
 | |
| shader model >= 4.0
 | |
| 
 | |
| 
 | |
| [vertex shader fail todo]
 | |
| struct ps_input
 | |
| {
 | |
|     nointerpolation centroid float4 t : texcoord;
 | |
| };
 | |
| 
 | |
| void main(uint id : sv_vertexid, inout ps_input input, out float4 pos : sv_position)
 | |
| {
 | |
|     float2 coords = float2((id << 1) & 2, id & 2);
 | |
|     pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1);
 | |
| }
 | |
| 
 | |
| [vertex shader]
 | |
| struct ps_input
 | |
| {
 | |
|     nointerpolation float4 t : texcoord;
 | |
| };
 | |
| 
 | |
| void main(uint id : sv_vertexid, inout centroid ps_input input, out float4 pos : sv_position)
 | |
| {
 | |
|     float2 coords = float2((id << 1) & 2, id & 2);
 | |
|     pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1);
 | |
| }
 |