diff --git a/rpcs3/Emu/RSX/GSRender.cpp b/rpcs3/Emu/RSX/GSRender.cpp index 04a250a636..883d4d6ced 100644 --- a/rpcs3/Emu/RSX/GSRender.cpp +++ b/rpcs3/Emu/RSX/GSRender.cpp @@ -25,14 +25,6 @@ GSRender::~GSRender() } } -void GSRender::on_init_rsx() -{ - if (m_frame) - { - m_frame->show(); - } -} - void GSRender::on_init_thread() { if (m_frame) diff --git a/rpcs3/Emu/RSX/GSRender.h b/rpcs3/Emu/RSX/GSRender.h index dce4a5f6dd..53322369e4 100644 --- a/rpcs3/Emu/RSX/GSRender.h +++ b/rpcs3/Emu/RSX/GSRender.h @@ -26,7 +26,6 @@ public: GSRender(); ~GSRender() override; - void on_init_rsx() override; void on_init_thread() override; void on_exit() override; diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index a176858f0a..1eedfbda1e 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -2039,7 +2039,6 @@ namespace rsx std::memset(display_buffers, 0, sizeof(display_buffers)); - on_init_rsx(); m_rsx_thread_exiting = false; } diff --git a/rpcs3/Emu/RSX/RSXThread.h b/rpcs3/Emu/RSX/RSXThread.h index 6ee26d31e7..63d86713e7 100644 --- a/rpcs3/Emu/RSX/RSXThread.h +++ b/rpcs3/Emu/RSX/RSXThread.h @@ -809,7 +809,6 @@ namespace rsx virtual void end(); virtual void execute_nop_draw(); - virtual void on_init_rsx() = 0; virtual void on_init_thread() = 0; virtual void on_frame_end(u32 buffer, bool forced = false); virtual void flip(const display_flip_info_t& info) = 0; diff --git a/rpcs3/rpcs3qt/gs_frame.cpp b/rpcs3/rpcs3qt/gs_frame.cpp index 784f147c10..aeb1109e8c 100644 --- a/rpcs3/rpcs3qt/gs_frame.cpp +++ b/rpcs3/rpcs3qt/gs_frame.cpp @@ -301,7 +301,7 @@ bool gs_frame::shown() void gs_frame::hide() { - Emu.CallAfter([this]() {QWindow::hide(); }); + Emu.CallAfter([this]() { QWindow::hide(); }); } void gs_frame::show() @@ -399,6 +399,14 @@ void gs_frame::flip(draw_context_t, bool /*skip_frame*/) { static Timer fps_t; + if (!m_flip_showed_frame) + { + // Show on first flip + m_flip_showed_frame = true; + show(); + fps_t.Start(); + } + ++m_frames; if (fps_t.GetElapsedTimeInSec() >= 0.5) diff --git a/rpcs3/rpcs3qt/gs_frame.h b/rpcs3/rpcs3qt/gs_frame.h index 9aff3cd3a8..7cdb469bb1 100644 --- a/rpcs3/rpcs3qt/gs_frame.h +++ b/rpcs3/rpcs3qt/gs_frame.h @@ -45,6 +45,7 @@ private: bool m_show_mouse_in_fullscreen = false; bool m_hide_mouse_after_idletime = false; u32 m_hide_mouse_idletime = 2000; // ms + bool m_flip_showed_frame = false; public: gs_frame(const QRect& geometry, const QIcon& appIcon, const std::shared_ptr& gui_settings);