progress dialog fix

This commit is contained in:
Megamouse 2023-06-15 23:58:28 +02:00
parent 924692bf1c
commit d08fea551e
3 changed files with 6 additions and 3 deletions

View file

@ -1535,7 +1535,7 @@ void ppu_thread::cpu_task()
// Wait until the progress dialog is closed.
// We don't want to open a cell dialog while a native progress dialog is still open.
thread_ctrl::wait_on<atomic_wait::op_ne>(g_progr_ptotal, 0);
g_fxo->get<progress_dialog_server>().show_overlay_message_only = true;
g_fxo->get<progress_dialog_workaround>().show_overlay_message_only = true;
// Sadly we can't postpone initializing guest time because we need to run PPU threads
// (the farther it's postponed, the less accuracy of guest time has been lost)

View file

@ -71,7 +71,7 @@ void progress_dialog_server::operator()()
renderer->is_initialized.wait(false, atomic_wait_timeout(5 * 1000000000ull));
auto manager = g_fxo->try_get<rsx::overlays::display_manager>();
show_overlay_message = show_overlay_message_only;
show_overlay_message = g_fxo->get<progress_dialog_workaround>().show_overlay_message_only;
if (manager && !show_overlay_message)
{

View file

@ -39,7 +39,10 @@ struct progress_dialog_server
~progress_dialog_server();
static constexpr auto thread_name = "Progress Dialog Server"sv;
};
struct progress_dialog_workaround
{
// We don't want to show the native dialog during gameplay.
atomic_t<bool> show_overlay_message_only = false;
};