Improving performance, but breaking vertex buffers

This commit is contained in:
Dynamitos
2020-10-30 18:45:35 +01:00
parent 84b3fa29bf
commit 41710220ec
25 changed files with 164 additions and 62 deletions
+13 -1
View File
@@ -41,7 +41,18 @@ void BasePassMeshProcessor::addMeshBatch(
descriptorSet->writeChanges();
cachedPrimitiveSets.add(descriptorSet);
}
Gfx::PRenderCommand renderCommand = graphics->createRenderCommand();
Gfx::PRenderCommand renderCommand;
if (cachedCommandBuffers.size() > 0)
{
renderCommand = cachedCommandBuffers.back();
cachedCommandBuffers.pop();
renderCommand->begin();
}
else
{
renderCommand = graphics->createRenderCommand();
renderCommand->begin();
}
renderCommand->setViewport(target);
for(uint32 i = 0; i < batch.elements.size(); ++i)
{
@@ -72,6 +83,7 @@ Array<Gfx::PRenderCommand> BasePassMeshProcessor::getRenderCommands()
void BasePassMeshProcessor::clearCommands()
{
cachedCommandBuffers = renderCommands;
renderCommands.clear();
cachedPrimitiveSets.clear();
cachedPrimitiveIndex = 0;
@@ -22,6 +22,7 @@ public:
void clearCommands();
private:
Array<Gfx::PRenderCommand> renderCommands;
Array<Gfx::PRenderCommand> cachedCommandBuffers;
Array<Gfx::PDescriptorSet> cachedPrimitiveSets;
uint32 cachedPrimitiveIndex;
Gfx::PViewport target;