From a704dfce1a45a035e7c29c389d25b10c58775e1a Mon Sep 17 00:00:00 2001 From: saschawillems Date: Mon, 30 May 2016 21:08:09 +0200 Subject: [PATCH] Free instance and staging buffers (fixes #166), explicit memory flags on uniform buffer creation --- instancing/instancing.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/instancing/instancing.cpp b/instancing/instancing.cpp index 7c747d9e..4ca7d916 100644 --- a/instancing/instancing.cpp +++ b/instancing/instancing.cpp @@ -100,6 +100,8 @@ public: vkDestroyPipeline(device, pipelines.solid, nullptr); vkDestroyPipelineLayout(device, pipelineLayout, nullptr); vkDestroyDescriptorSetLayout(device, descriptorSetLayout, nullptr); + vkDestroyBuffer(device, instanceBuffer.buffer, nullptr); + vkFreeMemory(device, instanceBuffer.memory, nullptr); vkMeshLoader::freeMeshBufferResources(device, &meshes.example); vkTools::destroyUniformData(device, &uniformData.vsScene); textureLoader->destroyTexture(textures.colorMap); @@ -524,12 +526,17 @@ public: instanceBuffer.descriptor.range = instanceBuffer.size; instanceBuffer.descriptor.buffer = instanceBuffer.buffer; instanceBuffer.descriptor.offset = 0; + + // Destroy staging resources + vkDestroyBuffer(device, stagingBuffer.buffer, nullptr); + vkFreeMemory(device, stagingBuffer.memory, nullptr); } void prepareUniformBuffers() { createBuffer( VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, sizeof(uboVS), nullptr, &uniformData.vsScene.buffer, @@ -586,7 +593,6 @@ public: draw(); if (!paused) { - vkDeviceWaitIdle(device); updateUniformBuffer(false); } }