Core: Load custom textures after inputs has been loaded and avoid sending force texture reload during startup for dynamic textures. This ensures that custom texture loading only happens once and users don't see any weird flashes on startup

This commit is contained in:
iwubcode 2019-11-01 01:30:24 -05:00
parent fd3af4c5d3
commit 4fff04db3c
3 changed files with 9 additions and 1 deletions

View File

@ -79,6 +79,7 @@
#include "VideoCommon/AsyncRequests.h"
#include "VideoCommon/Fifo.h"
#include "VideoCommon/HiresTextures.h"
#include "VideoCommon/OnScreenDisplay.h"
#include "VideoCommon/RenderBase.h"
#include "VideoCommon/VideoBackendBase.h"
@ -542,6 +543,10 @@ static void EmuThread(std::unique_ptr<BootParameters> boot, WindowSystemInfo wsi
return;
}
// Inputs loading may have generated custom dynamic textures
// it's now ok to initialize any custom textures
HiresTexture::Update();
AudioCommon::InitSoundStream();
Common::ScopeGuard audio_guard{&AudioCommon::ShutdownSoundStream};

View File

@ -17,6 +17,7 @@
#include "Common/Logging/Log.h"
#include "Common/StringUtil.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
#include "InputCommon/ControllerEmu/ControllerEmu.h"
#include "InputCommon/ImageOperations.h"
#include "VideoCommon/RenderBase.h"
@ -259,6 +260,8 @@ void DynamicInputTextureConfiguration::GenerateTextures(const IniFile::Section*
if (!any_dirty)
return;
if (Core::GetState() == Core::State::Starting)
return;
if (!g_renderer)
return;
g_renderer->ForceReloadTextures();

View File

@ -51,7 +51,7 @@ static std::thread s_prefetcher;
void HiresTexture::Init()
{
Update();
// Note: Update is not called here so that we handle dynamic textures on startup more gracefully
}
void HiresTexture::Shutdown()