diff --git a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp index f6e67462b..7b291662e 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp @@ -2919,6 +2919,7 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi if(existing) { existing->bufferDeviceAddress = VK_TRUE; + existing->bufferDeviceAddressCaptureReplay = VK_TRUE; } else { @@ -2932,8 +2933,7 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi if(!existingKHR && !existingEXT) { // don't add a new VkPhysicalDeviceVulkan12Features to the pNext chain because if we do - // we - // have to remove any components etc. Instead just add the individual + // we have to remove any components etc. Instead just add the individual // VkPhysicalDeviceBufferDeviceAddressFeaturesKHR bufAddrKHRFeatures.bufferDeviceAddress = VK_TRUE; bufAddrKHRFeatures.bufferDeviceAddressMultiDevice = VK_FALSE; @@ -2961,6 +2961,7 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi { // if so, make sure the feature is enabled existing->bufferDeviceAddress = VK_TRUE; + existing->bufferDeviceAddressCaptureReplay = VK_TRUE; } else { @@ -2998,6 +2999,7 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi { // if so, make sure the feature is enabled existing->bufferDeviceAddress = VK_TRUE; + existing->bufferDeviceAddressCaptureReplay = VK_TRUE; } else { @@ -3019,30 +3021,6 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi } } - { - VkPhysicalDeviceVulkan12Features *enabledFeaturesVK12 = - (VkPhysicalDeviceVulkan12Features *)FindNextStruct( - &createInfo, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES); - VkPhysicalDeviceBufferDeviceAddressFeatures *bufferAddressFeaturesCoreKHR = - (VkPhysicalDeviceBufferDeviceAddressFeatures *)FindNextStruct( - &createInfo, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES); - VkPhysicalDeviceBufferDeviceAddressFeaturesEXT *bufferAddressFeaturesEXT = - (VkPhysicalDeviceBufferDeviceAddressFeaturesEXT *)FindNextStruct( - &createInfo, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT); - - // turn on bufferDeviceAddressCaptureReplay if available, so that a capture that uses it is - // safe - // to replay. Enabling this without using it is fine. - if(enabledFeaturesVK12 && enabledFeaturesVK12->bufferDeviceAddress) - enabledFeaturesVK12->bufferDeviceAddressCaptureReplay = VK_TRUE; - - if(bufferAddressFeaturesCoreKHR) - bufferAddressFeaturesCoreKHR->bufferDeviceAddressCaptureReplay = VK_TRUE; - - if(bufferAddressFeaturesEXT) - bufferAddressFeaturesEXT->bufferDeviceAddressCaptureReplay = VK_TRUE; - } - rdcarray layerArray(Layers.size()); for(size_t i = 0; i < Layers.size(); i++) layerArray[i] = Layers[i].c_str();