diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_resource_manager.cpp | 12 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_resource_manager.h | 2 |
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 | ||
| 128 | void VKFence::Unprotect(const VKResource* resource) { | 128 | void 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 | ||
| 135 | VKFenceWatch::VKFenceWatch() = default; | 136 | VKFenceWatch::VKFenceWatch() = default; |
| @@ -141,12 +142,11 @@ VKFenceWatch::~VKFenceWatch() { | |||
| 141 | } | 142 | } |
| 142 | 143 | ||
| 143 | void VKFenceWatch::Wait() { | 144 | void 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 | ||
| 152 | void VKFenceWatch::Watch(VKFence& new_fence) { | 152 | void 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 { |