From 53457262d414fdc0d4ea218313facc435ba7a9ec Mon Sep 17 00:00:00 2001 From: kd-11 Date: Sun, 5 Sep 2021 15:22:03 +0300 Subject: [PATCH] rsx: Implement ZPASS results scaling for precise stats --- rpcs3/Emu/RSX/RSXThread.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index b5eb716f33..659a25fca1 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -3374,12 +3374,21 @@ namespace rsx { ensure(sink); + auto scale_result = [](u32 value) + { + const auto scale = rsx::get_resolution_scale_percent(); + const auto result = static_cast(value * 10000) / (scale * scale); + return std::max(1u, result); + }; + switch (type) { case CELL_GCM_ZPASS_PIXEL_CNT: - if (!g_cfg.video.precise_zpass_count) + if (value) { - value = value ? u16{ umax } : 0; + value = (g_cfg.video.precise_zpass_count) ? + scale_result(value) : + u16{ umax }; } break; case CELL_GCM_ZCULL_STATS3: