tests/hlsl: Test the interstage interface for minimum precision types.

This commit is contained in:
Giovanni Mascellani
2025-05-20 18:28:16 +02:00
committed by Henri Verbeet
parent 752b13b111
commit 8106c5a199
Notes: Henri Verbeet 2025-06-02 21:01:51 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1525

View File

@@ -104,6 +104,111 @@ clear rtv 0 1.0 1.0 1.0 1.0
todo(msl) draw triangle strip 4 todo(msl) draw triangle strip 4
probe (0, 0) rgba(0.0, 1.0, 0.0, 1.0) probe (0, 0) rgba(0.0, 1.0, 0.0, 1.0)
[require]
shader model >= 4.0
[input layout]
0 r32g32-float SV_POSITION
0 r32g32-float TEXCOORD 0
1 r32g32-uint TEXCOORD 1
[vb 0]
-1.0 -1.0 700.0 5.0
-1.0 1.0 700.0 5.0
1.0 -1.0 700.0 5.0
1.0 1.0 700.0 5.0
[vb 1]
format r32-uint
0x7fff 2
0x7fff 2
0x7fff 2
0x7fff 2
[vertex shader]
struct vertex
{
float4 position : SV_Position;
min16float2 t0 : TEXCOORD0;
min16uint2 t1 : TEXCOORD1;
};
void main(in vertex vin, out vertex vout)
{
vout = vin;
}
[pixel shader]
uniform min16float h;
float4 main(float4 position : SV_Position, min16float2 t0 : TEXCOORD0, min16uint2 t1 : TEXCOORD1) : SV_Target
{
// Prevent float -> half -> float being optimised out by doing a half-precision operation.
return float4(t0 - min16float2(h, h), t1);
}
[test]
uniform 0 uint 0
todo(glsl | msl) draw triangle strip 4
probe (0, 0) rgba(700.0, 5.0, 32767.0, 2.0)
[input layout]
0 r32g32-float SV_POSITION
1 r32g32-sint TEXCOORD 0
[vb 0]
-1.0 -1.0
-1.0 1.0
1.0 -1.0
1.0 1.0
[vb 1]
format r32-sint
-7000 -2
-7000 -2
-7000 -2
-7000 -2
[vertex shader]
struct vertex
{
float4 position : SV_Position;
min16int2 t0 : TEXCOORD0;
};
void main(in vertex vin, out vertex vout)
{
vout = vin;
}
[pixel shader]
int4 main(float4 position : SV_Position, min16int2 t0 : TEXCOORD0) : SV_Target
{
return int4(t0, 0, 0);
}
[rtv 0]
format r32g32b32a32-sint
size (2d, 640, 480)
[test]
todo(msl) draw triangle strip 4
todo(opengl) probe (0, 0) rgbai(-7000, -2, 0, 0)
[pixel shader]
uint4 main(float4 position : SV_Position, min16int2 t0 : TEXCOORD0) : SV_Target
{
return uint4(t0, 0, 0);
}
[rtv 0]
format r32g32b32a32-uint
size (2d, 640, 480)
[test]
todo(msl) draw triangle strip 4
probe (0, 0) rgbai(-7000, -2, 0, 0)
[require] [require]
shader model >= 6.2 shader model >= 6.2
native-16-bit native-16-bit