aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/vulkan_common/vulkan_wrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/vulkan_common/vulkan_wrapper.cpp')
-rw-r--r--src/video_core/vulkan_common/vulkan_wrapper.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp
index c703abe40e..40136c3fbf 100644
--- a/src/video_core/vulkan_common/vulkan_wrapper.cpp
+++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp
@@ -11,6 +11,7 @@
#include <vector>
#include "common/common_types.h"
+#include "common/settings.h"
#include "common/logging/log.h"
#include "video_core/vulkan_common/vk_enum_string_helper.h"
#include "video_core/vulkan_common/vma.h"
@@ -309,7 +310,10 @@ const char* Exception::what() const noexcept {
}
void Destroy(VkInstance instance, const InstanceDispatch& dld) noexcept {
- dld.vkDestroyInstance(instance, nullptr);
+ // FIXME: A double free occurs here if RAII is enabled.
+ if (!Settings::values.enable_raii.GetValue()) {
+ dld.vkDestroyInstance(instance, nullptr);
+ }
}
void Destroy(VkDevice device, const InstanceDispatch& dld) noexcept {
@@ -412,7 +416,10 @@ void Destroy(VkInstance instance, VkDebugReportCallbackEXT handle,
}
void Destroy(VkInstance instance, VkSurfaceKHR handle, const InstanceDispatch& dld) noexcept {
- dld.vkDestroySurfaceKHR(instance, handle, nullptr);
+ // FIXME: A double free occurs here if RAII is enabled.
+ if (!Settings::values.enable_raii.GetValue()) {
+ dld.vkDestroySurfaceKHR(instance, handle, nullptr);
+ }
}
VkResult Free(VkDevice device, VkDescriptorPool handle, Span<VkDescriptorSet> sets,