summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_vulkan/vk_resource_manager.cpp12
-rw-r--r--src/video_core/renderer_vulkan/vk_resource_manager.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/src/video_core/renderer_vulkan/vk_resource_manager.cpp b/src/video_core/renderer_vulkan/vk_resource_manager.cpp
index 1678463c7..a1e117443 100644
--- a/src/video_core/renderer_vulkan/vk_resource_manager.cpp
+++ b/src/video_core/renderer_vulkan/vk_resource_manager.cpp
@@ -125,11 +125,12 @@ void VKFence::Protect(VKResource* resource) {
125 protected_resources.push_back(resource); 125 protected_resources.push_back(resource);
126} 126}
127 127
128void VKFence::Unprotect(const VKResource* resource) { 128void VKFence::Unprotect(VKResource* resource) {
129 const auto it = std::find(protected_resources.begin(), protected_resources.end(), resource); 129 const auto it = std::find(protected_resources.begin(), protected_resources.end(), resource);
130 if (it != protected_resources.end()) { 130 ASSERT(it != protected_resources.end());
131 protected_resources.erase(it); 131
132 } 132 resource->OnFenceRemoval(this);
133 protected_resources.erase(it);
133} 134}
134 135
135VKFenceWatch::VKFenceWatch() = default; 136VKFenceWatch::VKFenceWatch() = default;
@@ -141,12 +142,11 @@ VKFenceWatch::~VKFenceWatch() {
141} 142}
142 143
143void VKFenceWatch::Wait() { 144void VKFenceWatch::Wait() {
144 if (!fence) { 145 if (fence == nullptr) {
145 return; 146 return;
146 } 147 }
147 fence->Wait(); 148 fence->Wait();
148 fence->Unprotect(this); 149 fence->Unprotect(this);
149 fence = nullptr;
150} 150}
151 151
152void VKFenceWatch::Watch(VKFence& new_fence) { 152void VKFenceWatch::Watch(VKFence& new_fence) {
diff --git a/src/video_core/renderer_vulkan/vk_resource_manager.h b/src/video_core/renderer_vulkan/vk_resource_manager.h
index 5018dfa44..5bfe4cead 100644
--- a/src/video_core/renderer_vulkan/vk_resource_manager.h
+++ b/src/video_core/renderer_vulkan/vk_resource_manager.h
@@ -63,7 +63,7 @@ public:
63 void Protect(VKResource* resource); 63 void Protect(VKResource* resource);
64 64
65 /// Removes protection for a resource. 65 /// Removes protection for a resource.
66 void Unprotect(const VKResource* resource); 66 void Unprotect(VKResource* resource);
67 67
68 /// Retreives the fence. 68 /// Retreives the fence.
69 operator vk::Fence() const { 69 operator vk::Fence() const {