mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-02 13:01:27 +12:00
Moved Gamemode Init out of performance critical code and placed in its own files to try and get more performance
This commit is contained in:
parent
cd8acc9771
commit
7f37a66c9d
5 changed files with 38 additions and 22 deletions
|
@ -63,13 +63,6 @@
|
|||
#include "llvm/Config/llvm-config.h"
|
||||
#endif
|
||||
|
||||
// GameMode Inclusion
|
||||
#ifdef GAMEMODE_AVAILABLE
|
||||
#pragma GCC diagnostic ignored "-Wold-style-cast"
|
||||
#endif
|
||||
extern "C" {
|
||||
#include "3rdparty/feralinteractive/feralinteractive/lib/gamemode_client.h"
|
||||
}
|
||||
|
||||
LOG_CHANNEL(sys_log, "SYS");
|
||||
|
||||
|
@ -994,12 +987,6 @@ void Emulator::SetContinuousMode(bool continuous_mode)
|
|||
|
||||
game_boot_result Emulator::Load(const std::string& title_id, bool is_disc_patch, usz recursion_count)
|
||||
{
|
||||
if (g_cfg.misc.enable_gamemode) {
|
||||
u8 s_gamemode_start = gamemode_request_start();
|
||||
if(s_gamemode_start < 0 ) {
|
||||
fprintf(stderr, "gamemode start request failed: %s\n", gamemode_error_string());
|
||||
}
|
||||
}
|
||||
|
||||
if (recursion_count == 0 && m_restrict_emu_state_change)
|
||||
{
|
||||
|
@ -3067,13 +3054,6 @@ extern bool try_lock_spu_threads_in_a_state_compatible_with_savestates(bool reve
|
|||
void Emulator::Kill(bool allow_autoexit, bool savestate, savestate_stage* save_stage)
|
||||
{
|
||||
|
||||
if (g_cfg.misc.enable_gamemode) {
|
||||
u8 s_gamemode_end = gamemode_request_end();
|
||||
if(s_gamemode_end < 0 ) {
|
||||
fprintf(stderr, "gamemode exit request failed: %s\n", gamemode_error_string());
|
||||
}
|
||||
}
|
||||
|
||||
static const auto make_ptr = [](auto ptr)
|
||||
{
|
||||
return std::shared_ptr<std::remove_pointer_t<decltype(ptr)>>(ptr);
|
||||
|
|
|
@ -480,4 +480,3 @@ extern Emulator Emu;
|
|||
extern bool g_use_rtm;
|
||||
extern u64 g_rtm_tx_limit1;
|
||||
extern u64 g_rtm_tx_limit2;
|
||||
extern b8 g_FERAL_GAMEMODE_ON;
|
||||
|
|
34
rpcs3/enable_gamemode.cpp
Normal file
34
rpcs3/enable_gamemode.cpp
Normal file
|
@ -0,0 +1,34 @@
|
|||
#include "enable_gamemode.h"
|
||||
|
||||
#ifdef GAMEMODE_AVAILABLE
|
||||
#pragma GCC diagnostic ignored "-Wold-style-cast"
|
||||
#endif
|
||||
extern "C" {
|
||||
#include "3rdparty/feralinteractive/feralinteractive/lib/gamemode_client.h"
|
||||
}
|
||||
|
||||
// Checks if Gamemode is supported on system
|
||||
bool gamemode_supported()
|
||||
{
|
||||
#if defined(GAMEMODE_AVAILABLE)
|
||||
return true
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
// Enables GameMode
|
||||
// Returns -2 if Gamemode isn't supported.
|
||||
// Returns the value of gamemode_request_start() otherwise.
|
||||
// This is either 0 or -1 depending on whether gamemode was successfully enabled or not respectively.
|
||||
int enable_gamemode(bool enabled) {
|
||||
if (!gamemode_supported()) {
|
||||
return -2;
|
||||
}
|
||||
|
||||
// Enable Gamemode
|
||||
if (enabled) {
|
||||
u8 s_gamemode_start = gamemode_request_start();
|
||||
return s_gamemode_start;
|
||||
}
|
||||
}
|
4
rpcs3/enable_gamemode.h
Normal file
4
rpcs3/enable_gamemode.h
Normal file
|
@ -0,0 +1,4 @@
|
|||
#pragma once
|
||||
|
||||
bool gamemode_supported();
|
||||
int enable_gamemode(bool enabled);
|
|
@ -1315,7 +1315,6 @@ int run_rpcs3(int argc, char** argv)
|
|||
Emu.Quit(true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// run event loop (maybe only needed for the gui application)
|
||||
return app->exec();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue