mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/hlsl: Implement the frexp() intrinsic.
This commit is contained in:
committed by
Henri Verbeet
parent
ea6104cf5e
commit
d964d55b4a
Notes:
Henri Verbeet
2025-08-21 16:34:21 +02:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1000
@@ -1,4 +1,4 @@
|
||||
[pixel shader todo(sm<6)]
|
||||
[pixel shader todo(sm<4)]
|
||||
uniform float4 f;
|
||||
|
||||
float4 main() : sv_target
|
||||
@@ -10,52 +10,52 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float4 3.1415927 0.0 0.0 0.0
|
||||
todo(sm<6 | msl) draw quad
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
probe (0, 0) f32(2.0, 0.785398185, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 -3.1415927 0.0 0.0 0.0
|
||||
todo(sm<6 | msl) draw quad
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
if(sm<4) probe (0, 0) f32(2.0, -0.785398185, 0.0, 0.0)
|
||||
% Starting with shader model 4, negative inputs give positive mantissa.
|
||||
if(sm>=4) probe (0, 0) f32(2.0, 0.785398185, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 7604.123 0.0 0.0 0.0
|
||||
todo(sm<6 | msl) draw quad
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
probe (0, 0) f32(13.0, 0.92823765, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 0.00001234 0.0 0.0 0.0
|
||||
todo(sm<6 | msl) draw quad
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
probe (0, 0) f32(-16.0, 0.8087142, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 0.0 0.0 0.0 0.0
|
||||
todo(sm<6 | msl) draw quad
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
probe (0, 0) f32(0.0, 0.0, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 -0.0 0.0 0.0 0.0
|
||||
todo(sm<6 | msl) draw quad
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
probe (0, 0) f32(0.0, 0.0, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 INF 0.0 0.0 0.0
|
||||
todo(sm<6 | msl) draw quad
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
if(sm<4) probe (0, 0) f32(-NAN, -NAN, 0, 0)
|
||||
if(sm>=4) probe (0, 0) f32(129, 0.5, 0, 0)
|
||||
|
||||
uniform 0 float4 -INF 0.0 0.0 0.0
|
||||
todo(sm<6 | msl) draw quad
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
if(sm<4) probe (0, 0) f32(-NAN, -NAN, 0, 0)
|
||||
if(sm>=4) probe (0, 0) f32(129, 0.5, 0, 0)
|
||||
|
||||
uniform 0 float4 NAN 0 0 0
|
||||
todo(sm<6 | msl) draw quad
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
if(sm<4) probe (0, 0) f32(NAN, NAN, 0, 0)
|
||||
if(sm>=4) probe (0, 0) f32(129, 0.75, 0, 0)
|
||||
|
||||
% Subnormals.
|
||||
uniform 0 uint4 0x0007ffff 0 0 0
|
||||
todo(sm<6 | msl) draw quad
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
probe (0, 0) f32(0, 0, 0, 0)
|
||||
|
||||
[pixel shader todo(sm<6)]
|
||||
[pixel shader todo(sm<4)]
|
||||
float4 main() : sv_target
|
||||
{
|
||||
int arg = 7604;
|
||||
@@ -66,10 +66,10 @@ float4 main() : sv_target
|
||||
}
|
||||
|
||||
[test]
|
||||
todo(sm<6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) f32(13.0, 0.0, 0.0, 0.0)
|
||||
|
||||
[pixel shader todo(sm<6)]
|
||||
[pixel shader todo(sm<4)]
|
||||
float4 main() : sv_target
|
||||
{
|
||||
bool arg = true;
|
||||
@@ -80,11 +80,11 @@ float4 main() : sv_target
|
||||
}
|
||||
|
||||
[test]
|
||||
todo(sm<6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
if(sm<4) probe (0, 0) f32(0.0, 1.0, 0.0, 0.0)
|
||||
if(sm>=4) probe (0, 0) f32(1.0, 1.0, 0.0, 0.0)
|
||||
|
||||
[pixel shader todo(sm<6)]
|
||||
[pixel shader todo(sm<4)]
|
||||
float4 main() : sv_target
|
||||
{
|
||||
half arg = 3.141;
|
||||
@@ -95,7 +95,7 @@ float4 main() : sv_target
|
||||
}
|
||||
|
||||
[test]
|
||||
todo(sm<6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) f32(2.0, 0.785250008, 0.0, 0.0)
|
||||
|
||||
[require]
|
||||
|
Reference in New Issue
Block a user