vkd3d-shader/msl: Implement VKD3DSIH_EXP.

This commit is contained in:
Feifan He 2024-12-02 23:53:45 +08:00 committed by Henri Verbeet
parent ac897781ba
commit 24753747a1
Notes: Henri Verbeet 2024-12-03 14:57:01 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1291
4 changed files with 13 additions and 10 deletions

View File

@ -552,6 +552,9 @@ static void msl_handle_instruction(struct msl_generator *gen, const struct vkd3d
case VKD3DSIH_IEQ:
msl_relop(gen, ins, "==");
break;
case VKD3DSIH_EXP:
msl_intrinsic(gen, ins, "exp2");
break;
case VKD3DSIH_FRC:
msl_intrinsic(gen, ins, "fract");
break;

View File

@ -8,7 +8,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 -1.0 0.0 1.0 2.0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (0.5, 1.0, 2.0, 4.0) 2
[pixel shader]
@ -21,5 +21,5 @@ float4 main() : sv_target
[test]
uniform 0 float4 -1.0 0.0 1.0 2.0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (0.36787948, 1.0, 2.7182815, 7.38905573) 2

View File

@ -10,7 +10,7 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 2.0 3.0 4.0 5.0
uniform 4 float4 0.0 -10.0 10.0 100.0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (2.0, 0.00292968750, 4096.0, 6.33825300e+030) 2
@ -28,7 +28,7 @@ if(sm<4) uniform 0 float4 2 3 4 5
if(sm<4) uniform 4 float4 0 -10 10 100
if(sm>=4) uniform 0 int4 2 3 4 5
if(sm>=4) uniform 4 int4 0 -10 10 100
todo(msl) draw quad
draw quad
probe (0, 0) rgba (2.0, 0.00292968750, 4096.0, 6.33825300e+030) 2

View File

@ -86,10 +86,10 @@ float4 main() : sv_target
[test]
uniform 0 float4 -6.28318531 -0.88137359 0.88137359 6.28318531
todo(msl) draw quad
draw quad
probe (0, 0) rgba (-267.744894, -1.0, 1.0, 267.744894) 2
uniform 0 float4 -0.0 0.0 -90.0 90.0
todo(msl) draw quad
draw quad
% mingw does not support "inf" for scanf(), but numbers beyond FLOAT_MAX consistently result in inf.
probe (0, 0) rgba (0.0, 0.0, -1.0e39, 1.0e39) 1
@ -104,10 +104,10 @@ float4 main() : sv_target
[test]
uniform 0 float4 -1.76274717 -1.3169579 1.3169579 1.76274717
todo(msl) draw quad
draw quad
probe (0, 0) rgba (3.0, 2.0, 2.0, 3.0) 2
uniform 0 float4 -0.0 0.0 -90.0 90.0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (1.0, 1.0, 1.0e39, 1.0e39) 1
@ -121,10 +121,10 @@ float4 main() : sv_target
[test]
uniform 0 float4 -1.57079633 -0.54930614 0.54930614 1.57079633
todo(msl) draw quad
draw quad
probe (0, 0) rgba (-0.91715234, -0.5, 0.5, 0.91715234) 2
uniform 0 float4 -10.0 -0.0 0.0 10.0
todo(msl) draw quad
draw quad
probe (0, 0) rgba (-1.0, 0.0, 0.0, 1.0) 1