- pick the first device that supports our required features

This commit is contained in:
Magnus Norddahl 2019-03-08 22:53:32 +01:00
commit 389469c604
2 changed files with 13 additions and 1 deletions

View file

@ -272,6 +272,16 @@ void VulkanDevice::createSurface()
}
}
bool VulkanDevice::checkFeatures(const VkPhysicalDeviceFeatures &f)
{
return
f.samplerAnisotropy == VK_TRUE &&
f.shaderClipDistance == VK_TRUE &&
f.fragmentStoresAndAtomics == VK_TRUE &&
f.depthClamp == VK_TRUE &&
f.shaderClipDistance == VK_TRUE;
}
void VulkanDevice::selectPhysicalDevice()
{
VkResult result;
@ -293,7 +303,7 @@ void VulkanDevice::selectPhysicalDevice()
vkGetPhysicalDeviceProperties(device, &deviceProperties);
vkGetPhysicalDeviceFeatures(device, &deviceFeatures);
bool isUsableDevice = deviceProperties.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU && deviceFeatures.geometryShader && deviceFeatures.samplerAnisotropy;
bool isUsableDevice = /*deviceProperties.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU &&*/ checkFeatures(deviceFeatures);
if (!isUsableDevice)
continue;