Allow devices without logicop to still work

This commit is contained in:
emiyl 2026-04-18 20:24:46 +01:00
parent d68eb4712d
commit fdc5460577

View File

@ -614,12 +614,21 @@ VulkanRenderer::VulkanRenderer()
std::set<int> uniqueQueueFamilies = { m_indices.graphicsFamily, m_indices.presentFamily };
std::vector<VkDeviceQueueCreateInfo> queueCreateInfos = CreateQueueCreateInfos(uniqueQueueFamilies);
VkPhysicalDeviceFeatures deviceFeatures = {};
VkPhysicalDeviceFeatures2 deviceFeatures2 = {};
deviceFeatures2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
vkGetPhysicalDeviceFeatures2(m_physicalDevice, &deviceFeatures2);
deviceFeatures.independentBlend = VK_TRUE;
deviceFeatures.samplerAnisotropy = VK_TRUE;
deviceFeatures.imageCubeArray = VK_TRUE;
//moltenVK supports logicOp via private api
deviceFeatures.logicOp = VK_TRUE;
deviceFeatures.logicOp = deviceFeatures2.features.logicOp;
if (!deviceFeatures.logicOp) {
cemuLog_log(LogType::Force, "LogicOp not supported by the driver, some rendering issues might occur");
#if BOOST_OS_MACOS
cemuLog_log(LogType::Force, "Install the privateapi variant of MoltenVK to get logicOp support on macOS");
#endif
}
#if !BOOST_OS_MACOS
deviceFeatures.geometryShader = VK_TRUE;
#endif