From a3f25bc7c7661f4764c9845cc184926660086f46 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Sun, 3 May 2020 16:27:16 +0300 Subject: [PATCH] rsx/interpreter: Fix DIVSQ instruction --- rpcs3/Emu/RSX/Common/Interpreter/FragmentInterpreter.glsl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/RSX/Common/Interpreter/FragmentInterpreter.glsl b/rpcs3/Emu/RSX/Common/Interpreter/FragmentInterpreter.glsl index 16a8b556ab..9b756e01f3 100644 --- a/rpcs3/Emu/RSX/Common/Interpreter/FragmentInterpreter.glsl +++ b/rpcs3/Emu/RSX/Common/Interpreter/FragmentInterpreter.glsl @@ -691,7 +691,11 @@ void main() case RSX_FP_OPCODE_DIV: vrr = s0 / s1.xxxx; break; case RSX_FP_OPCODE_DIVSQ: - vrr = s0 * inversesqrt(s1.xxxx); break; + bvr0 = bvec4(s0); + sr0 = inversesqrt(s1.x); + vr0 = s0 * sr0; + vrr = select(s0, vr0, bvr0); + break; case RSX_FP_OPCODE_REFL: vrr = reflect(s0, s1); break;