vkd3d-shader/msl: Implement VKD3DSIH_IMUL.

This commit is contained in:
Henri Verbeet
2025-05-23 15:23:10 +02:00
parent a2eb3324d4
commit a570932b82
Notes: Henri Verbeet 2025-06-10 18:06:32 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1554
6 changed files with 51 additions and 17 deletions

View File

@@ -83,16 +83,16 @@ float4 main() : SV_TARGET
[test]
uniform 0 float 0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (21.0, 1.0, 24.0, 0.0)
uniform 0 float 1
todo(msl) draw quad
draw quad
probe (0, 0) rgba (22.0, 0.0, 23.0, 1.0)
uniform 0 float 2
todo(msl) draw quad
draw quad
probe (0, 0) rgba (23.0, 1.0, 22.0, 0.0)
uniform 0 float 3
todo(msl) draw quad
draw quad
probe (0, 0) rgba (24.0, 0.0, 21.0, 1.0)
@@ -154,12 +154,12 @@ float4 main() : sv_target
if(sm<4) uniform 0 float 3
if(sm<4) uniform 4 float 1
if(sm>=4) uniform 0 float4 3 1 0 0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (7, 7, 7, 7)
if(sm<4) uniform 0 float 5
if(sm<4) uniform 4 float 0
if(sm>=4) uniform 0 float4 5 0 0 0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (10, 10, 10, 10)
@@ -192,13 +192,13 @@ if(sm<4) uniform 0 float 2
if(sm<4) uniform 4 float 1
if(sm<4) uniform 8 float -1
if(sm>=4) uniform 0 float4 2 1 -1 0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (30, 31, 32, 33)
if(sm<4) uniform 0 float 1
if(sm<4) uniform 4 float 0
if(sm<4) uniform 8 float 1
if(sm>=4) uniform 0 float4 1 0 1 0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (70, 71, 72, 73)
@@ -220,12 +220,12 @@ float4 main() : sv_target
if(sm<4) uniform 0 float 11
if(sm<4) uniform 4 float 12
if(sm>=4) uniform 0 float4 11 12 0 0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (5, 5, 5, 5)
if(sm<4) uniform 0 float 13
if(sm<4) uniform 4 float 10
if(sm>=4) uniform 0 float4 13 10 0 0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (9, 9, 9, 9)
[pixel shader]
@@ -244,7 +244,7 @@ uniform 8 float4 -1.0 -2.0 -3.0 -4.0
uniform 12 float4 -5.0 -6.0 -7.0 -8.0
if(sm<4) uniform 16 float4 1 0 0 0
if(sm>=4) uniform 16 int4 1 0 0 0
todo(msl) draw quad
draw quad
probe (0, 0) rgba(-1.0, -5.0, 2.0, 6.0)
% SM1 doesn't support relative addressing if it is used in a l-value.