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

This commit is contained in:
Conor McCarthy
2023-11-09 13:43:34 +10:00
committed by Alexandre Julliard
parent 130e7bdf0f
commit 3c4631a4d4
Notes: Alexandre Julliard 2023-11-15 22:58:28 +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/459
8 changed files with 98 additions and 20 deletions

View File

@@ -11,10 +11,10 @@ float4 main() : sv_target
[test]
uniform 0 float4 0.0 0.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.9, 0.8, 0.7, 0.6)
uniform 0 float4 0.1 0.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.1, 0.2, 0.3, 0.4)
[pixel shader]
@@ -43,7 +43,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 0.0 0.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.9, 0.8, 0.7, 0.6)
[pixel shader fail(sm<6)]

View File

@@ -63,5 +63,5 @@ shader model >= 6.0
[test]
uniform 0 float4 0.0 1.5 1.5 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1010101.0, 11110000.0, 1101001.0, 0.0)

View File

@@ -22,7 +22,7 @@ float4 main(float tex : texcoord) : sv_target
}
[test]
todo(sm>=6) draw quad
draw quad
probe ( 0, 0, 159, 480) rgba (10.0, 35.0, 0.0, 0.0)
probe (161, 0, 479, 480) rgba (10.0, 38.0, 0.0, 0.0)
probe (481, 0, 640, 480) rgba ( 5.0, 10.0, 0.0, 0.0)

View File

@@ -38,10 +38,10 @@ float4 main() : sv_target
[test]
uniform 0 float 0.2
todo(sm>=6) draw quad
draw quad
probe all rgba (0.1, 0.2, 0.3, 0.4)
uniform 0 float 0.8
todo(sm>=6) draw quad
draw quad
probe all rgba (0.5, 0.6, 0.7, 0.8)
[pixel shader]
@@ -65,10 +65,10 @@ void main(out float4 ret : sv_target)
[test]
uniform 0 float 0.2
todo(sm>=6) draw quad
draw quad
probe all rgba (0.3, 0.4, 0.5, 0.6)
uniform 0 float 0.8
todo(sm>=6) draw quad
draw quad
probe all rgba (0.1, 0.2, 0.3, 0.4)
[pixel shader]
@@ -211,10 +211,10 @@ void main(out float4 ret : sv_target)
[test]
uniform 0 float 0.2
todo(sm>=6) draw quad
draw quad
probe all rgba (0.2, 0.2, 0.2, 0.2)
uniform 0 float 0.8
todo(sm>=6) draw quad
draw quad
probe all rgba (0.5, 0.5, 0.5, 0.5)
[pixel shader]

View File

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

View File

@@ -19,13 +19,13 @@ float4 main() : sv_target
[test]
uniform 0 uint4 3 0 0 0
todo(sm>=6) draw quad
draw quad
probe all rgba (5.0, 5.0, 5.0, 5.0)
uniform 0 uint4 1 0 0 0
todo(sm>=6) draw quad
draw quad
probe all rgba (4.0, 4.0, 4.0, 4.0)
uniform 0 uint4 0 0 0 0
todo(sm>=6) draw quad
draw quad
probe all rgba (3.0, 3.0, 3.0, 3.0)
% falling through is only supported for empty case statements
@@ -49,13 +49,13 @@ float4 main() : sv_target
[test]
uniform 0 uint4 2 0 0 0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
uniform 0 uint4 1 0 0 0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.1, 2.0, 3.0, 4.0)
uniform 0 uint4 0 0 0 0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.1, 2.0, 3.0, 4.0)
% case value evaluation

View File

@@ -29,7 +29,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.1 3.0 4.0 5.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.1, 2.0, 0.0, 0.0)
[pixel shader]
@@ -42,11 +42,26 @@ float4 main() : sv_target
return float4(f1, f2, f3, 0.0);
}
[require]
shader model < 6.0
[test]
uniform 0 float4 1.0 0.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.5, 0.6, 0.7, 0.0)
[require]
shader model >= 6.0
[test]
uniform 0 float4 1.0 0.0 0.0 0.0
draw quad
probe all rgba (0.5, 0.2, 0.7, 0.0)
[require]
% reset requirements
[pixel shader fail(sm>=6)]
float4 x, y, z;