vkd3d-shader/dxil: Implement the DXIL CAST instruction.

This commit is contained in:
Conor McCarthy
2023-11-07 13:11:51 +10:00
committed by Alexandre Julliard
parent bd77cbb33f
commit 90d178bf12
Notes: Alexandre Julliard 2023-11-10 00:09:32 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/436
9 changed files with 197 additions and 24 deletions

View File

@@ -10,7 +10,7 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 5.0 16.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (21.0, -11.0, 80.0, 0.0)
[pixel shader]
@@ -25,7 +25,7 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 5.0 16.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (5.0, 5.0, -5.0, 3.0)
[pixel shader]
@@ -40,7 +40,7 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 42.0 5.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (8.0, -8.0, -8.0, 8.0)
[pixel shader]
@@ -55,7 +55,7 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 42.0 5.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (2.0, -2.0, 2.0, -2.0)
[pixel shader]
@@ -70,7 +70,7 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 45.0 5.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (9.0, -9.0, -9.0, 9.0)
[pixel shader]
@@ -85,7 +85,7 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 45.0 5.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.0, 0.0, 0.0, 0.0)
[pixel shader]
@@ -117,5 +117,5 @@ float4 main() : sv_target
[test]
uniform 0 float4 45.0 5.0 50.0 10.0
uniform 4 float4 3.0 8.0 2.0 5.0
todo(sm>=6) draw quad
draw quad
probe all rgba (9.0, 5.0, 1.0, 3.0)

View File

@@ -20,7 +20,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 123.0 -2.0 456 0.01
todo(sm>=6) draw quad
draw quad
probe (320,240) rgba (123.0, -2.0, 456.0, 0.01)
[pixel shader]

View File

@@ -20,7 +20,7 @@ float4 main() : sv_target
[test]
uniform 0 uint4 123 0xc0000000 456 0x7fd69345
todo(sm>=6) draw quad
draw quad
probe (320,240) rgba (123.0, 3221225472.0, 456.0, 2144768896.0)
@@ -37,7 +37,7 @@ float4 main() : sv_target
uniform 0 uint4 11 12 0 0
uniform 4 uint4 13 14 0 0
uniform 8 uint4 20 21 22 23
todo(sm>=6) draw quad
draw quad
probe (320,240) rgba (13.0, 21.0, 0.0, 0.0)

View File

@@ -11,7 +11,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 -0.5 6.5 7.5 3.4
todo(sm>=6) draw quad
draw quad
probe all rgba (1912.0, 1657.0, -127.0, 867.0) 1
[pixel shader]
@@ -24,5 +24,5 @@ float4 main() : sv_target
[test]
uniform 0 float4 -0.5 6.5 7.5 3.4
todo(sm>=6) draw quad
draw quad
probe all rgba (-127.0, -127.0, -127.0, -127.0) 1

View File

@@ -18,7 +18,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 -1.9 -1.0 2.9 4.0
todo draw quad
todo(sm<6) draw quad
probe all rgba (-1.0, -1.0, 2.0, 4.0)
% As above, but cast "x" to float4 first.
@@ -89,5 +89,5 @@ float4 main() : sv_target
[test]
uniform 0 int4 -2 0 1 -3000000
todo draw quad
todo(sm<6) draw quad
probe all rgba (-1.0, 0.0, 1.0, -3000000.0)

View File

@@ -32,7 +32,7 @@ float4 main() : SV_TARGET
uniform 0 int4 2 3 4 0
uniform 4 int4 0 -10 10 1000000
uniform 8 int4 0 1 -1 1000000
todo(sm>=6) draw quad
draw quad
probe all rgba (2.0, -10.0, -2.0, 1e12)

View File

@@ -12,17 +12,17 @@ uniform 0 float4 1.0 2.0 3.0 4.0
uniform 4 float4 5.0 6.0 7.0 8.0
uniform 8 float4 9.0 10.0 11.0 12.0
uniform 12 float4 0 0 0 0
todo(sm>=6) draw quad
todo(sm>=6) probe all rgba (1.0, 2.0, 3.0, 4.0)
draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
uniform 12 float4 1 0 0 0
todo(sm>=6) draw quad
todo(sm>=6) probe all rgba (5.0, 6.0, 7.0, 8.0)
draw quad
probe all rgba (5.0, 6.0, 7.0, 8.0)
uniform 12 float4 0 1 0 0
todo(sm>=6) draw quad
todo(sm>=6) probe all rgba (5.0, 6.0, 7.0, 8.0)
draw quad
probe all rgba (5.0, 6.0, 7.0, 8.0)
uniform 12 float4 1 1 0 0
todo(sm>=6) draw quad
todo(sm>=6) probe all rgba (9.0, 10.0, 11.0, 12.0)
draw quad
probe all rgba (9.0, 10.0, 11.0, 12.0)
[pixel shader]

View File

@@ -52,5 +52,5 @@ void main(float4 position : SV_Position, float2 t0 : TEXCOORD0,
}
[test]
todo(sm>=6) draw triangle strip 4
draw triangle strip 4
probe all rgba (10.0, 8.0, 7.0, 3.0)