mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-29 22:20:48 +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_perf_metrics.cpp
|
||||||
RSX/Overlays/overlay_progress_bar.cpp
|
RSX/Overlays/overlay_progress_bar.cpp
|
||||||
RSX/Overlays/overlay_save_dialog.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_user_list_dialog.cpp
|
||||||
RSX/Overlays/overlay_utils.cpp
|
RSX/Overlays/overlay_utils.cpp
|
||||||
RSX/Overlays/overlays.cpp
|
RSX/Overlays/overlays.cpp
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "stdafx.h"
|
#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 "../Overlays/Shaders/shader_loading_dialog_native.h"
|
||||||
#include "GLGSRender.h"
|
#include "GLGSRender.h"
|
||||||
#include "GLCompute.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
|
namespace overlays
|
||||||
{
|
{
|
||||||
void show_shader_compile_notification();
|
void show_shader_compile_notification();
|
||||||
|
void show_ppu_compile_notification();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -236,5 +236,16 @@ namespace rsx
|
|||||||
return false;
|
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 overlays
|
||||||
} // namespace rsx
|
} // namespace rsx
|
||||||
|
@ -78,6 +78,7 @@ namespace rsx
|
|||||||
}
|
}
|
||||||
|
|
||||||
visible = true;
|
visible = true;
|
||||||
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -120,5 +121,7 @@ namespace rsx
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void refresh_message_queue();
|
||||||
|
|
||||||
} // namespace overlays
|
} // namespace overlays
|
||||||
} // namespace rsx
|
} // 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 "stdafx.h"
|
||||||
#include "../Overlays/overlay_animated_icon.h"
|
#include "../Overlays/overlay_compile_notification.h"
|
||||||
#include "../Overlays/overlay_manager.h"
|
|
||||||
#include "../Overlays/overlay_shader_compile_notification.h"
|
|
||||||
#include "../Overlays/Shaders/shader_loading_dialog_native.h"
|
#include "../Overlays/Shaders/shader_loading_dialog_native.h"
|
||||||
|
|
||||||
#include "VKAsyncScheduler.h"
|
#include "VKAsyncScheduler.h"
|
||||||
|
@ -9,6 +9,7 @@ enum class localized_string_id
|
|||||||
RSX_OVERLAYS_TROPHY_GOLD,
|
RSX_OVERLAYS_TROPHY_GOLD,
|
||||||
RSX_OVERLAYS_TROPHY_PLATINUM,
|
RSX_OVERLAYS_TROPHY_PLATINUM,
|
||||||
RSX_OVERLAYS_COMPILING_SHADERS,
|
RSX_OVERLAYS_COMPILING_SHADERS,
|
||||||
|
RSX_OVERLAYS_COMPILING_PPU_MODULES,
|
||||||
RSX_OVERLAYS_MSG_DIALOG_YES,
|
RSX_OVERLAYS_MSG_DIALOG_YES,
|
||||||
RSX_OVERLAYS_MSG_DIALOG_NO,
|
RSX_OVERLAYS_MSG_DIALOG_NO,
|
||||||
RSX_OVERLAYS_MSG_DIALOG_CANCEL,
|
RSX_OVERLAYS_MSG_DIALOG_CANCEL,
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
#include "Emu/RSX/RSXThread.h"
|
#include "Emu/RSX/RSXThread.h"
|
||||||
#include "Emu/RSX/Overlays/overlay_manager.h"
|
#include "Emu/RSX/Overlays/overlay_manager.h"
|
||||||
#include "Emu/RSX/Overlays/overlay_message_dialog.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"
|
#include "Emu/System.h"
|
||||||
|
|
||||||
LOG_CHANNEL(sys_log, "SYS");
|
LOG_CHANNEL(sys_log, "SYS");
|
||||||
@ -141,7 +143,8 @@ void progress_dialog_server::operator()()
|
|||||||
|
|
||||||
if (skip_this_one)
|
if (skip_this_one)
|
||||||
{
|
{
|
||||||
// Do nothing
|
// Show a message instead
|
||||||
|
rsx::overlays::show_ppu_compile_notification();
|
||||||
thread_ctrl::wait_for(10000);
|
thread_ctrl::wait_for(10000);
|
||||||
continue;
|
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);
|
thread_ctrl::wait_for(10000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@
|
|||||||
<ClCompile Include="Emu\RSX\Overlays\overlay_manager.cpp" />
|
<ClCompile Include="Emu\RSX\Overlays\overlay_manager.cpp" />
|
||||||
<ClCompile Include="Emu\RSX\Overlays\overlay_media_list_dialog.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_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_user_list_dialog.cpp" />
|
||||||
<ClCompile Include="Emu\RSX\Overlays\overlay_utils.cpp" />
|
<ClCompile Include="Emu\RSX\Overlays\overlay_utils.cpp" />
|
||||||
<ClCompile Include="Emu\RSX\Overlays\Shaders\shader_loading_dialog.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_osk_panel.h" />
|
||||||
<ClInclude Include="Emu\RSX\Overlays\overlay_perf_metrics.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_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_trophy_notification.h" />
|
||||||
<ClInclude Include="Emu\RSX\Overlays\overlay_user_list_dialog.h" />
|
<ClInclude Include="Emu\RSX\Overlays\overlay_user_list_dialog.h" />
|
||||||
<ClInclude Include="Emu\RSX\Overlays\overlay_utils.h" />
|
<ClInclude Include="Emu\RSX\Overlays\overlay_utils.h" />
|
||||||
|
@ -1132,7 +1132,7 @@
|
|||||||
<ClCompile Include="Emu\RSX\Overlays\overlay_animated_icon.cpp">
|
<ClCompile Include="Emu\RSX\Overlays\overlay_animated_icon.cpp">
|
||||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||||
</ClCompile>
|
</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>
|
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_message_box.cpp">
|
<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">
|
<ClInclude Include="Emu\RSX\Overlays\overlay_trophy_notification.h">
|
||||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||||
</ClInclude>
|
</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>
|
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="Emu\Io\GHLtar.h">
|
<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_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_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_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_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_NO: return tr("No", "Message Dialog");
|
||||||
case localized_string_id::RSX_OVERLAYS_MSG_DIALOG_CANCEL: return tr("Back", "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