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

This commit is contained in:
Conor McCarthy
2023-10-16 15:41:17 +10:00
committed by Alexandre Julliard
parent 3e0638148a
commit 749df8dec2
Notes: Alexandre Julliard 2023-11-06 23:18:07 +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/409
15 changed files with 256 additions and 25 deletions

View File

@@ -10,7 +10,7 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 5.0 15.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (20.0, -10.0, 75.0, 0.33333333) 1
[pixel shader]
@@ -25,7 +25,7 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 5.0 15.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (5.0, 5.0, -5.0, 3.0) 1
[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 (2.0, -2.0, 2.0, -2.0) 16
[pixel shader]
@@ -55,7 +55,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]
@@ -69,8 +69,8 @@ float4 main() : sv_target
[test]
uniform 0 float4 5.0 -42.1 4.0 45.0
uniform 4 float4 15.0 -5.0 4.1 5.0
todo(sm>=6) draw quad
probe all rgba (5.0, -2.1, 4.0, 0.0) 4
draw quad
probe all rgba (5.0, -2.1, 4.0, 0.0) 6
[require]
% Infinities are not allowed in SM1
@@ -88,5 +88,5 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 1.0 0.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1e99, 1e99, 1e99, 1e99)

View File

@@ -176,7 +176,7 @@ float4 main() : sv_target
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
todo(sm>=6) draw quad
draw quad
probe all rgba (509, 610, 711, 812)
@@ -204,7 +204,7 @@ uniform 0 float4 0.0 1.0 2.0 3.0
uniform 4 float4 4.0 5.0 6.0 7.0
uniform 8 float4 8.0 9.0 10.0 11.0
uniform 12 float4 12.0 13.0 14.0 15.0
todo(sm>=6) draw quad
draw quad
probe all rgba (12468.0, 13509.0, 14010.0, 15011.0)
@@ -326,7 +326,7 @@ float4 main() : sv_target
uniform 0 float 1.0
uniform 1 float 2.0
uniform 4 float4 5.0 6.0 7.0 8.0
todo(sm>=6) draw quad
draw quad
probe all rgba (512.0, 612.0, 712.0, 812.0)

View File

@@ -10,7 +10,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
uniform 4 float4 0.1 0.2 0.3 0.4
todo(sm>=6) draw quad
draw quad
probe all rgba (1.1, 2.2, 3.3, 4.4)
[pixel shader fail(sm<6)]

View File

@@ -12,7 +12,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1 -2 3 4
uniform 4 float4 10 100 1000 10000
todo(sm>=6) draw quad
draw quad
probe all rgba (-2300, -970, 120, 0)
@@ -29,5 +29,5 @@ float4 main() : sv_target
[test]
uniform 0 float4 1 -2 3 4
todo(sm>=6) draw quad
draw quad
probe all rgba (-20, 8, 12, 3.5)

View File

@@ -71,7 +71,7 @@ float4 main() : SV_TARGET
% Account for both the SM1 and SM4 uniform layout
uniform 0 float4 2.0 3.0 0.0 0.0
uniform 4 float4 3.0 0.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (6.0, 6.0, 6.0, 6.0)
[pixel shader]

View File

@@ -9,7 +9,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
uniform 4 float4 5.0 6.0 7.0 8.0
todo(sm>=6) draw quad
draw quad
probe all rgba (8.0, 8.0, 8.0, 8.0)

View File

@@ -12,7 +12,7 @@ float4 main() : SV_TARGET
uniform 0 float4 2.0 3.0 4.0 5.0
uniform 4 float4 0.0 -10.0 10.0 100.0
uniform 8 float4 0.0 1.0 -1.0 0.75
todo(sm>=6) draw quad
draw quad
probe all rgba (2.0, -10.0, -2.0, 76.25)
[require]

View File

@@ -1,3 +1,5 @@
% TODO: dxcompiler emits no loops for any of these test shaders.
[pixel shader]
float a;
@@ -16,7 +18,7 @@ float4 main() : sv_target
[test]
uniform 0 float 5.0
todo(sm>=6) draw quad
draw quad
probe all rgba (50.0, 50.0, 50.0, 50.0)
@@ -39,7 +41,7 @@ float4 main() : sv_target
[test]
uniform 0 float 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (20.0, 20.0, 20.0, 20.0)
[pixel shader]
@@ -68,7 +70,7 @@ float4 main() : sv_target
[test]
uniform 0 float 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (409.1, 409.1, 409.1, 409.1)
[pixel shader]
@@ -98,7 +100,7 @@ float4 main() : sv_target
[test]
uniform 0 float 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (410.1, 410.1, 410.1, 410.1)
% loop attribute by itself

View File

@@ -14,5 +14,5 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 2.5 0.3 0.2 0.7
uniform 4 float4 0.1 1.5 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (-12.43, 9.833333, 1.6, 35.0) 1

View File

@@ -202,7 +202,7 @@ float4 main() : sv_target
[test]
uniform 0 float 10.0
todo(sm>=6) draw quad
draw quad
probe (0, 0) rgba (11.0, 12.0, 13.0, 11.0)

View File

@@ -62,7 +62,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 0.5 0.0 0.0 0.0
uniform 4 float4 0.6 0.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.14, 0.14, 0.14, 0.14) 4
[pixel shader]

View File

@@ -11,5 +11,5 @@ float4 main() : SV_target
[test]
uniform 0 float4 0.0303 0.08 0.07 0.0202
todo(sm>=6) draw quad
draw quad
probe all rgba (-0.4697, -0.02, 0.57, 0.3202) 2

View File

@@ -12,5 +12,5 @@ float4 main() : SV_target
[test]
uniform 0 float4 0.0303 0.08 0.07 0.0202
todo(sm>=6) draw quad
draw quad
probe all rgba (0.5697, -0.08, -0.27, -0.4202)