mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-02 12:56:05 +00:00
v_cubeid_f32, v_cubesc_f32, v_cubetc_f32 and v_cubema_f32 refused any output modifier with "VOP3 source modifiers are not implemented"; PPSA11386 stops there on v_cubeid_f32 v, v, -v, -v div:2. On RDNA2 (gfx1036), over 2048 inputs in every combination of IEEE mode, the four f32 denormal values and f16/f64 denormals flushed or kept, with round to nearest even, the four instructions apply mul:2, mul:4 and div:2 whenever IEEE mode is off, also with f32 output denormals kept, where v_mul_f32_e64 in the same kernels ignores them, and ignore them with IEEE mode on. Where applied, the result is the existing bit-level f32 output modifier result, and clamp is applied after it. The decoder accepts the modifier on the four instructions. floatCube applies the shared f32 scaling, now scaleF32Result, in those modes and writes with the modifier cleared, so clamp is still applied after it. With IEEE mode on the signaling NaN quieting applies and the modifier is ignored; with it off the quieting does nothing and the modifier is applied. agc_driver_vop3_cube_clamp checks each instruction with each modifier against tables captured on gfx1036. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Fnrk5Dazjb2tLooVSpdRQq