From 88a85024e2735b46575f6744e62f5b21a6449736 Mon Sep 17 00:00:00 2001 From: Conor McCarthy Date: Fri, 21 Feb 2025 13:11:28 +1000 Subject: [PATCH] tests/hlsl: Test casts to 16-bit float. --- tests/hlsl/cast-to-half.shader_test | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/hlsl/cast-to-half.shader_test b/tests/hlsl/cast-to-half.shader_test index 4df5f6ab..a6846c08 100644 --- a/tests/hlsl/cast-to-half.shader_test +++ b/tests/hlsl/cast-to-half.shader_test @@ -35,3 +35,32 @@ float4 main() : sv_target [test] draw quad probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5) + +[require] +shader model >= 6.2 +native-16-bit + +[pixel shader] +uniform float4 f; + +float4 main() : sv_target +{ + half4 h = f; + return h * half4(2.0, 2.0, 0.5, 0.5); +} + +[test] +uniform 0 float4 65536.0 32768.0 65536.0 32768.0 +draw quad +% The shader runner doesn't support floating-point special literals like "inf", +% but numbers beyond FLOAT_MAX consistently result in inf. +probe (0, 0) rgba(1.0e39, 1.0e39, 1.0e39, 16384.0) +uniform 0 float4 -65536.0 -32768.0 -65536.0 -32768.0 +draw quad +probe (0, 0) rgba(-1.0e39, -1.0e39, -1.0e39, -16384.0) +uniform 0 float4 0.000062 5.0e-8 0.000062 5.0e-8 +draw quad +probe (0, 0) rgba(0.00012397766, 1.1920929e-7, 0.000030994415, 0.0) 1 +uniform 0 float4 -0.000062 -5.0e-8 -0.000062 -5.0e-8 +draw quad +probe (0, 0) rgba(-0.00012397766, -1.1920929e-7, -0.000030994415, 0.0) 1