From adcc3e9c4bcd5f56fbf47f2163e445ad1adf0ea0 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Sun, 19 Jan 2020 18:48:02 +0300 Subject: [PATCH] rsx: Optionally sync on texture read semaphore - Some games use texture semaphore for zcull sync which is rather bizzare. However, it works on realhw as the depth test happens before fragment shader completion - Due to the high performance penalty incurred by this act, this behavior is only enabled by the "strict rendering mode" option. --- rpcs3/Emu/RSX/rsx_methods.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rpcs3/Emu/RSX/rsx_methods.cpp b/rpcs3/Emu/RSX/rsx_methods.cpp index 90fdd74f36..9b16bb8f9d 100644 --- a/rpcs3/Emu/RSX/rsx_methods.cpp +++ b/rpcs3/Emu/RSX/rsx_methods.cpp @@ -219,6 +219,10 @@ namespace rsx { // Pipeline barrier seems to be equivalent to a SHADER_READ stage barrier rsx::g_dma_manager.sync(); + if (g_cfg.video.strict_rendering_mode) + { + rsx->sync(); + } // lle-gcm likes to inject system reserved semaphores, presumably for system/vsh usage // Avoid calling render to avoid any havoc(flickering) they may cause from invalid flush/write