sharpemu/tests
kuba a02e8636ef [SpirvTranslator] Follow guest NaN and saturation rules for float ops
v_min_f32 and v_max_f32 return the other operand when one of them is NaN, and
v_cvt_u32_f32 and v_cvt_i32_f32 saturate an out-of-range value to the target
type's limit and turn NaN into zero. The GLSL FMin and FMax instructions and
SPIR-V's ConvertFToU and ConvertFToS all leave those cases undefined, so a
host driver is free to hand back the NaN or an arbitrary integer, and Metal's
fast math does return the NaN.

The minimum and maximum now select the other operand when either side is NaN,
and the two conversions clamp at the type's limits and return zero for NaN.
NaN is tested on the value's bits rather than with an ordered comparison, so
fast math cannot assume the test away.

Device tests cover this and the wave-wide maximum that Unreal's motion blur
computes with DPP row_shr, v_permlanex16_b32 and v_readlane_b32 across a
64-lane wave.
2026-09-29 23:19:26 +02:00
..
SharpEmu.Libs.Tests [SpirvTranslator] Follow guest NaN and saturation rules for float ops 2026-09-29 23:19:26 +02:00
SharpEmu.ShaderCompiler.Metal.Tests Amd fix opcode nid filecache wave32 (#903) 2026-09-24 15:00:42 +03:00
SharpEmu.ShaderCompiler.Tests test(shader): cover SAshrI64 translation (#914) 2026-09-28 02:59:51 +03:00
SharpEmu.SourceGenerators.Tests feat(hle): prefer loaded guest exports for selected registrations (#844) 2026-08-25 22:32:57 +02:00