Reuse allocated descriptor sets (#3002)

This commit is contained in:
Adrian Cojocaru
2024-11-12 22:19:20 +02:00
committed by GitHub
parent c613731e3d
commit b30397005c
11 changed files with 128 additions and 22 deletions

View File

@@ -41,11 +41,20 @@ void UniformBuffer::update(const void* data, std::size_t size_) {
const std::shared_ptr<gfx::UniformBuffer>& UniformBufferArray::set(const size_t id,
std::shared_ptr<gfx::UniformBuffer> uniformBuffer) {
if (id >= uniformBufferVector.size()) {
return nullref;
}
if (uniformBufferVector[id] == uniformBuffer) {
return uniformBufferVector[id];
}
if (descriptorSet) {
descriptorSet->markDirty();
}
return gfx::UniformBufferArray::set(id, uniformBuffer);
uniformBufferVector[id] = std::move(uniformBuffer);
return uniformBufferVector[id];
}
void UniformBufferArray::createOrUpdate(