Free instance and staging buffers (fixes #166), explicit memory flags on uniform buffer creation
This commit is contained in:
parent
6f1ab815c8
commit
a704dfce1a
1 changed files with 7 additions and 1 deletions
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue