Avoid retrying renderer init if we know the error was not transient

This commit is contained in:
Cameron Gutman
2025-02-18 19:02:12 -06:00
parent 351aaa6759
commit fd70865026
13 changed files with 116 additions and 32 deletions
@@ -167,6 +167,7 @@ bool PlVkRenderer::chooseVulkanDevice(PDECODER_PARAMETERS params, bool hdrOutput
if (physicalDeviceCount == 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"No Vulkan devices found!");
m_InitFailureReason = InitFailureReason::NoSoftwareSupport;
return false;
}
@@ -367,6 +368,7 @@ bool PlVkRenderer::initialize(PDECODER_PARAMETERS params)
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_Vulkan_GetInstanceExtensions() #1 failed: %s",
SDL_GetError());
m_InitFailureReason = InitFailureReason::NoSoftwareSupport;
return false;
}
@@ -375,6 +377,7 @@ bool PlVkRenderer::initialize(PDECODER_PARAMETERS params)
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_Vulkan_GetInstanceExtensions() #2 failed: %s",
SDL_GetError());
m_InitFailureReason = InitFailureReason::NoSoftwareSupport;
return false;
}
@@ -390,6 +393,7 @@ bool PlVkRenderer::initialize(PDECODER_PARAMETERS params)
if (m_PlVkInstance == nullptr) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"pl_vk_inst_create() failed");
m_InitFailureReason = InitFailureReason::NoSoftwareSupport;
return false;
}
@@ -407,6 +411,7 @@ bool PlVkRenderer::initialize(PDECODER_PARAMETERS params)
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
"SDL_Vulkan_CreateSurface() failed: %s",
SDL_GetError());
m_InitFailureReason = InitFailureReason::NoSoftwareSupport;
return false;
}