mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-01-21 16:10:47 +01:00
vk: always explicitly release memory
This commit is contained in:
parent
ea28a6c13e
commit
a130642ddf
|
|
@ -3,7 +3,6 @@
|
|||
#include <rx/FileLock.hpp>
|
||||
#include <rx/MemoryTable.hpp>
|
||||
#include <rx/die.hpp>
|
||||
#include <rx/format.hpp>
|
||||
#include <rx/print.hpp>
|
||||
|
||||
#include <cstddef>
|
||||
|
|
@ -173,6 +172,12 @@ public:
|
|||
mDeviceMemory = nullptr;
|
||||
}
|
||||
|
||||
VkDeviceMemory release() {
|
||||
auto result = mDeviceMemory;
|
||||
mDeviceMemory = nullptr;
|
||||
return result;
|
||||
}
|
||||
|
||||
DeviceMemory &operator=(DeviceMemory &&other) noexcept {
|
||||
std::swap(mDeviceMemory, other.mDeviceMemory);
|
||||
std::swap(mSize, other.mSize);
|
||||
|
|
@ -388,7 +393,10 @@ class MemoryResource {
|
|||
|
||||
public:
|
||||
MemoryResource() = default;
|
||||
~MemoryResource() { clear(); }
|
||||
~MemoryResource() {
|
||||
clear();
|
||||
mMemory.release();
|
||||
}
|
||||
|
||||
using NativeHandle = DeviceMemory::NativeHandle;
|
||||
|
||||
|
|
@ -459,7 +467,7 @@ public:
|
|||
if ((requirements.memoryTypeBits & (1 << mMemory.getMemoryTypeIndex())) ==
|
||||
0) {
|
||||
rx::die("unexpected requirements for {} memory, {}", debugName,
|
||||
requirements);
|
||||
requirements.memoryTypeBits);
|
||||
}
|
||||
|
||||
std::lock_guard lock(mMtx);
|
||||
|
|
|
|||
Loading…
Reference in a new issue