diff --git a/src/vulkan/runtime/vk_device.c b/src/vulkan/runtime/vk_device.c index 3c0db44e24a..edb8cc34277 100644 --- a/src/vulkan/runtime/vk_device.c +++ b/src/vulkan/runtime/vk_device.c @@ -93,6 +93,29 @@ collect_enabled_features(struct vk_device *device, break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: { + const VkPhysicalDeviceImageRobustnessFeatures *features = (void *)ext; + if (features->robustImageAccess) + device->enabled_features.robustImageAccess = true; + break; + } + + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: { + const VkPhysicalDeviceRobustness2FeaturesEXT *features = (void *)ext; + if (features->robustBufferAccess2) + device->enabled_features.robustBufferAccess2 = true; + if (features->robustImageAccess2) + device->enabled_features.robustImageAccess2 = true; + break; + } + + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: { + const VkPhysicalDeviceVulkan13Features *features = (void *)ext; + if (features->robustImageAccess) + device->enabled_features.robustImageAccess = true; + break; + } + default: /* Don't warn */ break; diff --git a/src/vulkan/runtime/vk_device.h b/src/vulkan/runtime/vk_device.h index b8fdc14abc6..afbb4af8917 100644 --- a/src/vulkan/runtime/vk_device.h +++ b/src/vulkan/runtime/vk_device.h @@ -106,6 +106,9 @@ struct vk_device { struct { bool robustBufferAccess; + bool robustBufferAccess2; + bool robustImageAccess; + bool robustImageAccess2; } enabled_features; /** Device-level dispatch table */