mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
d3ba810c98
This is simply unnecessary and wastes time. As part of this, simply remove the "all" directive. Only for a couple of tests is it even potentially interesting to validate all pixels (e.g. nointerpolation.shader_test), and for those "all" is replaced with an explicit (0, 0, 640, 480) rect. In all other cases we just probe (0, 0).
176 lines
3.4 KiB
Plaintext
176 lines
3.4 KiB
Plaintext
[require]
|
|
shader model >= 4.0
|
|
|
|
[input layout]
|
|
0 r32g32b32a32 float texcoord
|
|
|
|
[vb 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]
|
|
todo(glsl) draw triangle list 3
|
|
probe (0, 0, 640, 480) 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]
|
|
todo(glsl) draw triangle list 3
|
|
probe (0, 0, 640, 480) 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]
|
|
todo(glsl) draw triangle list 3
|
|
probe (0, 0, 640, 480) 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]
|
|
todo(glsl) draw triangle list 3
|
|
probe (0, 0, 640, 480) 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]
|
|
todo(glsl) draw triangle list 3
|
|
probe (0, 0, 640, 480) 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) 4
|
|
|
|
[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);
|
|
}
|