From a97424d46ca763cb38ca53b983296bf2b0145dd3 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Mon, 21 Nov 2022 16:44:59 +0300 Subject: [PATCH] rsx: Fix low precision shader option --- rpcs3/Emu/RSX/Program/GLSLCommon.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/RSX/Program/GLSLCommon.cpp b/rpcs3/Emu/RSX/Program/GLSLCommon.cpp index 379b816e91..e71f5111d1 100644 --- a/rpcs3/Emu/RSX/Program/GLSLCommon.cpp +++ b/rpcs3/Emu/RSX/Program/GLSLCommon.cpp @@ -531,8 +531,9 @@ namespace glsl // 8-bit rounding/quantization { - const auto _255 = (props.supports_native_fp16) ? "f16vec4(255.)" : "vec4(255.)"; - const auto _1_over_2 = (props.supports_native_fp16) ? "f16vec4(0.5)" : "vec4(0.5)"; + const auto _16bit_outputs = (!props.fp32_outputs && props.supports_native_fp16); + const auto _255 = _16bit_outputs ? "f16vec4(255.)" : "vec4(255.)"; + const auto _1_over_2 = _16bit_outputs ? "f16vec4(0.5)" : "vec4(0.5)"; OS << "#define round_to_8bit(v4) (floor(fma(v4, " << _255 << ", " << _1_over_2 << ")) / " << _255 << ")\n\n"; }