Free instance and staging buffers (fixes #166), explicit memory flags on uniform buffer creation

This commit is contained in:
saschawillems 2016-05-30 21:08:09 +02:00
parent 6f1ab815c8
commit a704dfce1a

View file

@ -100,6 +100,8 @@ public:
vkDestroyPipeline(device, pipelines.solid, nullptr); vkDestroyPipeline(device, pipelines.solid, nullptr);
vkDestroyPipelineLayout(device, pipelineLayout, nullptr); vkDestroyPipelineLayout(device, pipelineLayout, nullptr);
vkDestroyDescriptorSetLayout(device, descriptorSetLayout, nullptr); vkDestroyDescriptorSetLayout(device, descriptorSetLayout, nullptr);
vkDestroyBuffer(device, instanceBuffer.buffer, nullptr);
vkFreeMemory(device, instanceBuffer.memory, nullptr);
vkMeshLoader::freeMeshBufferResources(device, &meshes.example); vkMeshLoader::freeMeshBufferResources(device, &meshes.example);
vkTools::destroyUniformData(device, &uniformData.vsScene); vkTools::destroyUniformData(device, &uniformData.vsScene);
textureLoader->destroyTexture(textures.colorMap); textureLoader->destroyTexture(textures.colorMap);
@ -524,12 +526,17 @@ public:
instanceBuffer.descriptor.range = instanceBuffer.size; instanceBuffer.descriptor.range = instanceBuffer.size;
instanceBuffer.descriptor.buffer = instanceBuffer.buffer; instanceBuffer.descriptor.buffer = instanceBuffer.buffer;
instanceBuffer.descriptor.offset = 0; instanceBuffer.descriptor.offset = 0;
// Destroy staging resources
vkDestroyBuffer(device, stagingBuffer.buffer, nullptr);
vkFreeMemory(device, stagingBuffer.memory, nullptr);
} }
void prepareUniformBuffers() void prepareUniformBuffers()
{ {
createBuffer( createBuffer(
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
sizeof(uboVS), sizeof(uboVS),
nullptr, nullptr,
&uniformData.vsScene.buffer, &uniformData.vsScene.buffer,
@ -586,7 +593,6 @@ public:
draw(); draw();
if (!paused) if (!paused)
{ {
vkDeviceWaitIdle(device);
updateUniformBuffer(false); updateUniformBuffer(false);
} }
} }