mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-14 01:27:00 +00:00
overlays: add ppu compile message if the progress dialog is unavailable
This commit is contained in:
parent
6d7d3fff6d
commit
2d4e02f277
@ -465,7 +465,7 @@ target_sources(rpcs3_emu PRIVATE
|
||||
RSX/Overlays/overlay_perf_metrics.cpp
|
||||
RSX/Overlays/overlay_progress_bar.cpp
|
||||
RSX/Overlays/overlay_save_dialog.cpp
|
||||
RSX/Overlays/overlay_shader_compile_notification.cpp
|
||||
RSX/Overlays/overlay_compile_notification.cpp
|
||||
RSX/Overlays/overlay_user_list_dialog.cpp
|
||||
RSX/Overlays/overlay_utils.cpp
|
||||
RSX/Overlays/overlays.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include "stdafx.h"
|
||||
#include "../Overlays/overlay_shader_compile_notification.h"
|
||||
#include "../Overlays/overlay_compile_notification.h"
|
||||
#include "../Overlays/Shaders/shader_loading_dialog_native.h"
|
||||
#include "GLGSRender.h"
|
||||
#include "GLCompute.h"
|
||||
|
45
rpcs3/Emu/RSX/Overlays/overlay_compile_notification.cpp
Normal file
45
rpcs3/Emu/RSX/Overlays/overlay_compile_notification.cpp
Normal file
@ -0,0 +1,45 @@
|
||||
#include "stdafx.h"
|
||||
#include "overlays.h"
|
||||
#include "overlay_message.h"
|
||||
#include "overlay_loading_icon.hpp"
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
namespace overlays
|
||||
{
|
||||
static std::shared_ptr<loading_icon24> s_shader_loading_icon24;
|
||||
static std::shared_ptr<loading_icon24> s_ppu_loading_icon24;
|
||||
|
||||
void show_shader_compile_notification()
|
||||
{
|
||||
if (!s_shader_loading_icon24)
|
||||
{
|
||||
// Creating the icon requires FS read, so it is important to cache it
|
||||
s_shader_loading_icon24 = std::make_shared<loading_icon24>();
|
||||
}
|
||||
|
||||
queue_message(
|
||||
localized_string_id::RSX_OVERLAYS_COMPILING_SHADERS,
|
||||
5'000'000,
|
||||
{},
|
||||
message_pin_location::bottom,
|
||||
s_shader_loading_icon24);
|
||||
}
|
||||
|
||||
void show_ppu_compile_notification()
|
||||
{
|
||||
if (!s_ppu_loading_icon24)
|
||||
{
|
||||
// Creating the icon requires FS read, so it is important to cache it
|
||||
s_ppu_loading_icon24 = std::make_shared<loading_icon24>();
|
||||
}
|
||||
|
||||
queue_message(
|
||||
localized_string_id::RSX_OVERLAYS_COMPILING_PPU_MODULES,
|
||||
5'000'000,
|
||||
{},
|
||||
message_pin_location::bottom,
|
||||
s_ppu_loading_icon24);
|
||||
}
|
||||
}
|
||||
}
|
@ -5,5 +5,6 @@ namespace rsx
|
||||
namespace overlays
|
||||
{
|
||||
void show_shader_compile_notification();
|
||||
void show_ppu_compile_notification();
|
||||
}
|
||||
}
|
@ -236,5 +236,16 @@ namespace rsx
|
||||
return false;
|
||||
}
|
||||
|
||||
void refresh_message_queue()
|
||||
{
|
||||
if (auto manager = g_fxo->try_get<rsx::overlays::display_manager>())
|
||||
{
|
||||
if (auto msg_overlay = manager->get<rsx::overlays::message>())
|
||||
{
|
||||
msg_overlay->refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace overlays
|
||||
} // namespace rsx
|
||||
|
@ -78,6 +78,7 @@ namespace rsx
|
||||
}
|
||||
|
||||
visible = true;
|
||||
refresh();
|
||||
}
|
||||
|
||||
private:
|
||||
@ -120,5 +121,7 @@ namespace rsx
|
||||
}
|
||||
}
|
||||
|
||||
void refresh_message_queue();
|
||||
|
||||
} // namespace overlays
|
||||
} // namespace rsx
|
||||
|
@ -1,28 +0,0 @@
|
||||
#include "stdafx.h"
|
||||
#include "overlays.h"
|
||||
#include "overlay_message.h"
|
||||
#include "overlay_loading_icon.hpp"
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
namespace overlays
|
||||
{
|
||||
static std::shared_ptr<loading_icon24> s_loading_icon24;
|
||||
|
||||
void show_shader_compile_notification()
|
||||
{
|
||||
if (!s_loading_icon24)
|
||||
{
|
||||
// Creating the icon requires FS read, so it is important to cache it
|
||||
s_loading_icon24 = std::make_shared<loading_icon24>();
|
||||
}
|
||||
|
||||
queue_message(
|
||||
localized_string_id::RSX_OVERLAYS_COMPILING_SHADERS,
|
||||
5'000'000,
|
||||
{},
|
||||
message_pin_location::bottom,
|
||||
s_loading_icon24);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +1,5 @@
|
||||
#include "stdafx.h"
|
||||
#include "../Overlays/overlay_animated_icon.h"
|
||||
#include "../Overlays/overlay_manager.h"
|
||||
#include "../Overlays/overlay_shader_compile_notification.h"
|
||||
#include "../Overlays/overlay_compile_notification.h"
|
||||
#include "../Overlays/Shaders/shader_loading_dialog_native.h"
|
||||
|
||||
#include "VKAsyncScheduler.h"
|
||||
|
@ -9,6 +9,7 @@ enum class localized_string_id
|
||||
RSX_OVERLAYS_TROPHY_GOLD,
|
||||
RSX_OVERLAYS_TROPHY_PLATINUM,
|
||||
RSX_OVERLAYS_COMPILING_SHADERS,
|
||||
RSX_OVERLAYS_COMPILING_PPU_MODULES,
|
||||
RSX_OVERLAYS_MSG_DIALOG_YES,
|
||||
RSX_OVERLAYS_MSG_DIALOG_NO,
|
||||
RSX_OVERLAYS_MSG_DIALOG_CANCEL,
|
||||
|
@ -4,6 +4,8 @@
|
||||
#include "Emu/RSX/RSXThread.h"
|
||||
#include "Emu/RSX/Overlays/overlay_manager.h"
|
||||
#include "Emu/RSX/Overlays/overlay_message_dialog.h"
|
||||
#include "Emu/RSX/Overlays/overlay_message.h"
|
||||
#include "Emu/RSX/Overlays/overlay_compile_notification.h"
|
||||
#include "Emu/System.h"
|
||||
|
||||
LOG_CHANNEL(sys_log, "SYS");
|
||||
@ -141,7 +143,8 @@ void progress_dialog_server::operator()()
|
||||
|
||||
if (skip_this_one)
|
||||
{
|
||||
// Do nothing
|
||||
// Show a message instead
|
||||
rsx::overlays::show_ppu_compile_notification();
|
||||
thread_ctrl::wait_for(10000);
|
||||
continue;
|
||||
}
|
||||
@ -177,6 +180,12 @@ void progress_dialog_server::operator()()
|
||||
}
|
||||
}
|
||||
|
||||
if (skip_this_one)
|
||||
{
|
||||
// Make sure to update any pending messages. PPU compilation may freeze the image.
|
||||
rsx::overlays::refresh_message_queue();
|
||||
}
|
||||
|
||||
thread_ctrl::wait_for(10000);
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_manager.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_media_list_dialog.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_osk_panel.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_shader_compile_notification.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_compile_notification.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_user_list_dialog.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_utils.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\Shaders\shader_loading_dialog.cpp" />
|
||||
@ -575,7 +575,7 @@
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_osk_panel.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_perf_metrics.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_save_dialog.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_shader_compile_notification.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_compile_notification.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_trophy_notification.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_user_list_dialog.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_utils.h" />
|
||||
|
@ -1132,7 +1132,7 @@
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_animated_icon.cpp">
|
||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_shader_compile_notification.cpp">
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_compile_notification.cpp">
|
||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_message_box.cpp">
|
||||
@ -1959,7 +1959,7 @@
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_trophy_notification.h">
|
||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_shader_compile_notification.h">
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_compile_notification.h">
|
||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\Io\GHLtar.h">
|
||||
|
@ -39,6 +39,7 @@ private:
|
||||
case localized_string_id::RSX_OVERLAYS_TROPHY_GOLD: return tr("You have earned a gold trophy.\n%0", "Trophy text").arg(std::forward<Args>(args)...);
|
||||
case localized_string_id::RSX_OVERLAYS_TROPHY_PLATINUM: return tr("You have earned a platinum trophy.\n%0", "Trophy text").arg(std::forward<Args>(args)...);
|
||||
case localized_string_id::RSX_OVERLAYS_COMPILING_SHADERS: return tr("Compiling shaders");
|
||||
case localized_string_id::RSX_OVERLAYS_COMPILING_PPU_MODULES: return tr("Compiling PPU Modules");
|
||||
case localized_string_id::RSX_OVERLAYS_MSG_DIALOG_YES: return tr("Yes", "Message Dialog");
|
||||
case localized_string_id::RSX_OVERLAYS_MSG_DIALOG_NO: return tr("No", "Message Dialog");
|
||||
case localized_string_id::RSX_OVERLAYS_MSG_DIALOG_CANCEL: return tr("Back", "Message Dialog");
|
||||
|
Loading…
x
Reference in New Issue
Block a user