Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
More vulkan shutdown fixes
  • Loading branch information
hrydgard committed May 7, 2017
1 parent ff6fcc9 commit d4e1fc8
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 12 deletions.
14 changes: 14 additions & 0 deletions Common/Vulkan/VulkanMemory.cpp
Expand Up @@ -27,6 +27,10 @@ VulkanPushBuffer::VulkanPushBuffer(VulkanContext *vulkan, size_t size) : device_
assert(res);
}

VulkanPushBuffer::~VulkanPushBuffer() {
assert(buffers_.empty());
}

bool VulkanPushBuffer::AddBuffer() {
BufInfo info;

Expand Down Expand Up @@ -63,6 +67,15 @@ bool VulkanPushBuffer::AddBuffer() {
return true;
}

void VulkanPushBuffer::Destroy(VulkanContext *vulkan) {
for (BufInfo &info : buffers_) {
vulkan->Delete().QueueDeleteBuffer(info.buffer);
vulkan->Delete().QueueDeleteDeviceMemory(info.deviceMemory);
}

buffers_.clear();
}

void VulkanPushBuffer::NextBuffer(size_t minSize) {
// First, unmap the current memory.
Unmap();
Expand Down Expand Up @@ -254,6 +267,7 @@ void VulkanDeviceAllocator::Free(VkDeviceMemory deviceMemory, size_t offset) {

// Okay, now enqueue. It's valid.
FreeInfo *info = new FreeInfo(this, deviceMemory, offset);
// Dispatches a call to ExecuteFree on the next delete round.
vulkan_->Delete().QueueCallback(&DispatchFree, info);
}

Expand Down
14 changes: 2 additions & 12 deletions Common/Vulkan/VulkanMemory.h
Expand Up @@ -23,19 +23,9 @@ class VulkanPushBuffer {

public:
VulkanPushBuffer(VulkanContext *vulkan, size_t size);
~VulkanPushBuffer();

~VulkanPushBuffer() {
assert(buffers_.empty());
}

void Destroy(VulkanContext *vulkan) {
for (BufInfo &info : buffers_) {
vulkan->Delete().QueueDeleteBuffer(info.buffer);
vulkan->Delete().QueueDeleteDeviceMemory(info.deviceMemory);
}

buffers_.clear();
}
void Destroy(VulkanContext *vulkan);

void Reset() { offset_ = 0; }

Expand Down
1 change: 1 addition & 0 deletions GPU/Vulkan/GPU_Vulkan.cpp
Expand Up @@ -162,6 +162,7 @@ GPU_Vulkan::~GPU_Vulkan() {
delete textureCacheVulkan_;
delete pipelineManager_;
delete shaderManagerVulkan_;
delete framebufferManagerVulkan_;
}

void GPU_Vulkan::CheckGPUFeatures() {
Expand Down

0 comments on commit d4e1fc8

Please sign in to comment.