Move sampler creation from image to resource manager and cache created samplers

This commit is contained in:
Georg Hagen
2024-07-09 12:31:52 +02:00
parent d48d60441a
commit d9a22236b4
5 changed files with 49 additions and 38 deletions

View File

@@ -95,6 +95,11 @@ namespace OpenVulkano::Vulkan
toFree.clear();
recycleBuffers.clear();
descriptorSetLayoutCache.clear();
for (auto& sampler : samplerCache)
{
device.destroy(sampler.second);
}
samplerCache.clear();
shaders.clear();
cmdBuffers = nullptr;
cmdPools = nullptr;
@@ -427,4 +432,11 @@ namespace OpenVulkano::Vulkan
vkBuffer->Init(buffer, uBuffer);
return vkBuffer;
}
vk::Sampler ResourceManager::CreateSampler(const vk::SamplerCreateInfo& samplerConfig)
{
auto& sampler = samplerCache[samplerConfig];
if (!sampler) sampler = device.createSampler(samplerConfig);
return sampler;
}
}