@@ -108,7 +108,7 @@ static void ClearRunningGame();
108
108
static void DestroySystem ();
109
109
static std::string GetMediaPathFromSaveState (const char * path);
110
110
static bool DoState (StateWrapper& sw, GPUTexture** host_texture, bool update_display, bool is_memory_state);
111
- static bool CreateGPU (GPURenderer renderer, bool is_switching);
111
+ static bool CreateGPU (GPURenderer renderer, bool is_switching, Error* error );
112
112
static bool SaveUndoLoadState ();
113
113
static void WarnAboutUnsafeSettings ();
114
114
static void LogUnsafeSettingsToConsole (const SmallStringBase& messages);
@@ -126,7 +126,7 @@ static void DoRewind();
126
126
static void SaveRunaheadState ();
127
127
static bool DoRunahead ();
128
128
129
- static bool Initialize (bool force_software_renderer);
129
+ static bool Initialize (bool force_software_renderer, Error* error );
130
130
static bool FastForwardToFirstFrame ();
131
131
132
132
static bool UpdateGameSettingsLayer ();
@@ -938,10 +938,11 @@ bool System::RecreateGPU(GPURenderer renderer, bool force_recreate_device, bool
938
938
Host::ReleaseGPUDevice ();
939
939
}
940
940
941
- if (!CreateGPU (renderer, true ))
941
+ Error error;
942
+ if (!CreateGPU (renderer, true , &error))
942
943
{
943
944
if (!IsStartupCancelled ())
944
- Host::ReportErrorAsync (" Error" , " Failed to recreate GPU. " );
945
+ Host::ReportErrorAsync (" Error" , error. GetDescription () );
945
946
946
947
DestroySystem ();
947
948
return false ;
@@ -1474,7 +1475,7 @@ bool System::BootSystem(SystemBootParameters parameters, Error* error)
1474
1475
}
1475
1476
1476
1477
// Component setup.
1477
- if (!Initialize (parameters.force_software_renderer ))
1478
+ if (!Initialize (parameters.force_software_renderer , error ))
1478
1479
{
1479
1480
s_state = State::Shutdown;
1480
1481
ClearRunningGame ();
@@ -1579,7 +1580,7 @@ bool System::BootSystem(SystemBootParameters parameters, Error* error)
1579
1580
return true ;
1580
1581
}
1581
1582
1582
- bool System::Initialize (bool force_software_renderer)
1583
+ bool System::Initialize (bool force_software_renderer, Error* error )
1583
1584
{
1584
1585
g_ticks_per_second = ScaleTicksToOverclock (MASTER_CLOCK);
1585
1586
s_max_slice_ticks = ScaleTicksToOverclock (MASTER_CLOCK / 10 );
@@ -1636,7 +1637,7 @@ bool System::Initialize(bool force_software_renderer)
1636
1637
1637
1638
CPU::CodeCache::Initialize ();
1638
1639
1639
- if (!CreateGPU (force_software_renderer ? GPURenderer::Software : g_settings.gpu_renderer , false ))
1640
+ if (!CreateGPU (force_software_renderer ? GPURenderer::Software : g_settings.gpu_renderer , false , error ))
1640
1641
{
1641
1642
Bus::Shutdown ();
1642
1643
CPU::Shutdown ();
@@ -2076,7 +2077,7 @@ void System::RecreateSystem()
2076
2077
PauseSystem (true );
2077
2078
}
2078
2079
2079
- bool System::CreateGPU (GPURenderer renderer, bool is_switching)
2080
+ bool System::CreateGPU (GPURenderer renderer, bool is_switching, Error* error )
2080
2081
{
2081
2082
const RenderAPI api = Settings::GetRenderAPIForRenderer (renderer);
2082
2083
@@ -2085,13 +2086,13 @@ bool System::CreateGPU(GPURenderer renderer, bool is_switching)
2085
2086
{
2086
2087
if (g_gpu_device)
2087
2088
{
2088
- Log_WarningPrintf (" Recreating GPU device, expecting %s got %s " , GPUDevice::RenderAPIToString (api),
2089
- GPUDevice::RenderAPIToString (g_gpu_device->GetRenderAPI ()));
2089
+ Log_WarningFmt (" Recreating GPU device, expecting {} got {} " , GPUDevice::RenderAPIToString (api),
2090
+ GPUDevice::RenderAPIToString (g_gpu_device->GetRenderAPI ()));
2090
2091
PostProcessing::Shutdown ();
2091
2092
}
2092
2093
2093
2094
Host::ReleaseGPUDevice ();
2094
- if (!Host::CreateGPUDevice (api))
2095
+ if (!Host::CreateGPUDevice (api, error ))
2095
2096
{
2096
2097
Host::ReleaseRenderWindow ();
2097
2098
return false ;
@@ -2108,16 +2109,16 @@ bool System::CreateGPU(GPURenderer renderer, bool is_switching)
2108
2109
2109
2110
if (!g_gpu)
2110
2111
{
2111
- Log_ErrorPrintf (" Failed to initialize %s renderer, falling back to software renderer" ,
2112
- Settings::GetRendererName (renderer));
2112
+ Log_ErrorFmt (" Failed to initialize {} renderer, falling back to software renderer" ,
2113
+ Settings::GetRendererName (renderer));
2113
2114
Host::AddFormattedOSDMessage (
2114
2115
30 .0f , TRANSLATE (" OSDMessage" , " Failed to initialize %s renderer, falling back to software renderer." ),
2115
2116
Settings::GetRendererName (renderer));
2116
2117
g_gpu.reset ();
2117
2118
g_gpu = GPU::CreateSoftwareRenderer ();
2118
2119
if (!g_gpu)
2119
2120
{
2120
- Log_ErrorPrintf (" Failed to create fallback software renderer." );
2121
+ Log_ErrorPrint (" Failed to create fallback software renderer." );
2121
2122
if (!s_keep_gpu_device_on_shutdown)
2122
2123
{
2123
2124
PostProcessing::Shutdown ();
0 commit comments