From c3c73c7e2475f893ae3069520e289f718f8b86c6 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Tue, 30 Jan 2024 02:06:08 +0300 Subject: [PATCH] rsx: Allow native UI render even when we have pending draw calls if FIFO queue is empty. --- rpcs3/Emu/RSX/GL/GLGSRender.cpp | 3 ++- rpcs3/Emu/RSX/VK/VKGSRender.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index 739a422eee..515f10cf5a 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -1070,7 +1070,8 @@ void GLGSRender::do_local_task(rsx::FIFO::state state) if (m_overlay_manager) { - if (!in_begin_end && async_flip_requested & flip_request::native_ui && !is_stopped()) + const auto should_ignore = in_begin_end && state != rsx::FIFO::state::empty; + if ((async_flip_requested & flip_request::native_ui) && !should_ignore && !is_stopped()) { rsx::display_flip_info_t info{}; info.buffer = current_display_buffer; diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index 70edf8175d..5332c07f13 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -1968,7 +1968,8 @@ void VKGSRender::do_local_task(rsx::FIFO::state state) if (m_overlay_manager) { - if (!in_begin_end && async_flip_requested & flip_request::native_ui && !is_stopped()) + const auto should_ignore = in_begin_end && state != rsx::FIFO::state::empty; + if ((async_flip_requested & flip_request::native_ui) && !should_ignore && !is_stopped()) { flush_command_queue(true); rsx::display_flip_info_t info{};