vulkan: Do not modify pCreateInfo in CreateDevice

pull/917/head
FlightlessMango 1 year ago
parent 302ceaa3e6
commit 8450291777

@ -1749,11 +1749,10 @@ static VkResult overlay_CreateDevice(
chain_info->u.pLayerInfo = chain_info->u.pLayerInfo->pNext;
VkPhysicalDeviceFeatures device_features = {};
VkDeviceCreateInfo device_info = *pCreateInfo;
std::vector<const char*> enabled_extensions(device_info.ppEnabledExtensionNames,
device_info.ppEnabledExtensionNames +
device_info.enabledExtensionCount);
std::vector<const char*> enabled_extensions(pCreateInfo->ppEnabledExtensionNames,
pCreateInfo->ppEnabledExtensionNames +
pCreateInfo->enabledExtensionCount);
uint32_t extension_count;
instance_data->vtable.EnumerateDeviceExtensionProperties(physicalDevice, nullptr, &extension_count, nullptr);
@ -1781,15 +1780,7 @@ static VkResult overlay_CreateDevice(
FOUND:;
}
device_info.enabledExtensionCount = enabled_extensions.size();
device_info.ppEnabledExtensionNames = enabled_extensions.data();
if (pCreateInfo->pEnabledFeatures)
device_features = *(pCreateInfo->pEnabledFeatures);
device_info.pEnabledFeatures = &device_features;
VkResult result = fpCreateDevice(physicalDevice, &device_info, pAllocator, pDevice);
VkResult result = fpCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
if (result != VK_SUCCESS) return result;
struct device_data *device_data = new_device_data(*pDevice, instance_data);

Loading…
Cancel
Save