mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 18:53:28 +01:00
Workaround: Skip progress_dialog during gameplay
This commit is contained in:
parent
497fbb17a8
commit
02febd3f65
@ -964,6 +964,12 @@ void ppu_thread::cpu_task()
|
||||
}
|
||||
|
||||
ppu_initialize(), spu_cache::initialize();
|
||||
|
||||
// Wait until the progress dialog is closed.
|
||||
// We don't want to open a cell dialog while a native progress dialog is still open.
|
||||
g_progr_ptotal.wait<atomic_wait::op_ne>(0);
|
||||
g_fxo->get<progress_dialog_workaround>().skip_the_progress_dialog = true;
|
||||
|
||||
break;
|
||||
}
|
||||
case ppu_cmd::sleep:
|
||||
|
@ -420,10 +420,7 @@ void spu_cache::initialize()
|
||||
if (g_cfg.core.spu_decoder == spu_decoder_type::asmjit || g_cfg.core.spu_decoder == spu_decoder_type::llvm)
|
||||
{
|
||||
// Initialize progress dialog (wait for previous progress done)
|
||||
while (g_progr_ptotal)
|
||||
{
|
||||
g_progr_ptotal.wait<atomic_wait::op_ne>(0);
|
||||
}
|
||||
|
||||
g_progr_ptotal += ::size32(func_list);
|
||||
progr.emplace("Building SPU cache...");
|
||||
|
@ -377,7 +377,7 @@ namespace
|
||||
renderer && renderer->is_inited)
|
||||
{
|
||||
auto manager = g_fxo->try_get<rsx::overlays::display_manager>();
|
||||
skip_this_one = manager && manager->get<rsx::overlays::message_dialog>();
|
||||
skip_this_one = g_fxo->get<progress_dialog_workaround>().skip_the_progress_dialog || (manager && manager->get<rsx::overlays::message_dialog>());
|
||||
|
||||
if (manager && !skip_this_one)
|
||||
{
|
||||
|
@ -10,6 +10,14 @@
|
||||
|
||||
#include "Emu/Cell/timers.hpp"
|
||||
|
||||
struct progress_dialog_workaround
|
||||
{
|
||||
// WORKAROUND:
|
||||
// We don't want to show the native dialog during gameplay.
|
||||
// This can currently interfere with cell dialogs.
|
||||
atomic_t<bool> skip_the_progress_dialog = false;
|
||||
};
|
||||
|
||||
enum class localized_string_id;
|
||||
enum class video_renderer;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user