Fix vulkan validation error after #21616

See #21616
This commit is contained in:
Henrik Rydgård committed 2026-06-05 10:09:23 +02:00
1 parent f9bf58f8b0
commit 928cdea420
2 files changed
+13 -1

No files matched your search

+9 -1
View File
@@ -133,6 +133,7 @@ VkResult VulkanContext::CreateInstance(const CreateInfo &info) {
if (!IsInstanceExtensionAvailable(VK_KHR_SURFACE_EXTENSION_NAME)) {
// Cannot create a Vulkan display without VK_KHR_SURFACE_EXTENSION.
// Technically we could allow this for headless builds, but meh.
init_error_ = "Vulkan not loaded - no surface extension";
return VK_ERROR_INITIALIZATION_FAILED;
}
@@ -185,6 +186,11 @@ VkResult VulkanContext::CreateInstance(const CreateInfo &info) {
}
}
if (IsInstanceExtensionAvailable(VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME)) {
instance_extensions_enabled_.push_back(VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME);
extensionsLookup_.KHR_get_surface_capabilities2 = true;
}
// Uncomment to test GPU backend fallback
// abort();
@@ -670,9 +676,11 @@ VkResult VulkanContext::CreateDevice(int physical_device) {
}
extensionsLookup_.EXT_provoking_vertex = EnableDeviceExtension(VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, 0);
if (extensionsLookup_.KHR_get_surface_capabilities2) {
#ifdef VK_EXT_full_screen_exclusive
extensionsLookup_.EXT_full_screen_exclusive = EnableDeviceExtension(VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, 0);
extensionsLookup_.EXT_full_screen_exclusive = EnableDeviceExtension(VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, 0);
#endif
}
extensionsLookup_.KHR_present_mode_fifo_latest_ready = EnableDeviceExtension(VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME, 0);
if (!extensionsLookup_.KHR_present_mode_fifo_latest_ready) {
// Enable the EXT extension instead if available, it's equivalent (was promoted).
+4
View File
@@ -251,7 +251,11 @@ extern PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
// For fast extension-enabled checks.
struct VulkanExtensions {
// Instance extensions
bool KHR_get_surface_capabilities2;
bool EXT_debug_utils;
// Device extensions
bool KHR_maintenance1; // required for KHR_create_renderpass2
bool KHR_maintenance2;
bool KHR_maintenance3;