gpu: Check Vulkan device features for IsDeviceSuitable

This commit is contained in:
Ethan Lee
2024-09-27 19:39:40 -04:00
parent fb165a542b
commit 0852307b58

View File

@@ -10826,6 +10826,7 @@ static Uint8 VULKAN_INTERNAL_IsDeviceSuitable(
VkQueueFamilyProperties *queueProps; VkQueueFamilyProperties *queueProps;
bool supportsPresent; bool supportsPresent;
VkPhysicalDeviceProperties deviceProperties; VkPhysicalDeviceProperties deviceProperties;
VkPhysicalDeviceFeatures deviceFeatures;
Uint32 i; Uint32 i;
const Uint8 *devicePriority = renderer->preferLowPower ? DEVICE_PRIORITY_LOWPOWER : DEVICE_PRIORITY_HIGHPERFORMANCE; const Uint8 *devicePriority = renderer->preferLowPower ? DEVICE_PRIORITY_LOWPOWER : DEVICE_PRIORITY_HIGHPERFORMANCE;
@@ -10852,6 +10853,16 @@ static Uint8 VULKAN_INTERNAL_IsDeviceSuitable(
return 0; return 0;
} }
renderer->vkGetPhysicalDeviceFeatures(
physicalDevice,
&deviceFeatures);
if (!deviceFeatures.independentBlend ||
!deviceFeatures.imageCubeArray ||
!deviceFeatures.depthClamp ||
!deviceFeatures.shaderClipDistance) {
return 0;
}
if (!VULKAN_INTERNAL_CheckDeviceExtensions( if (!VULKAN_INTERNAL_CheckDeviceExtensions(
renderer, renderer,
physicalDevice, physicalDevice,