Optimize GPU memory usage in Editor when viewport is inactive

This commit is contained in:
Wojtek Figat
2024-06-19 15:03:38 +02:00
parent a377933884
commit 9ec23559af
4 changed files with 27 additions and 6 deletions

View File

@@ -46,9 +46,9 @@ void RenderTask::DrawAll()
for (auto task : Tasks)
{
if (task->CanDraw())
{
task->OnDraw();
}
else
task->OnIdle();
}
}
@@ -84,6 +84,10 @@ void RenderTask::OnDraw()
OnEnd(context);
}
void RenderTask::OnIdle()
{
}
void RenderTask::OnBegin(GPUContext* context)
{
Begin(this, context);
@@ -325,6 +329,9 @@ void SceneRenderTask::OnPostRender(GPUContext* context, RenderContext& renderCon
OnCollectDrawCalls(renderContextBatch, SceneRendering::PostRender);
PostRender(context, renderContext);
if (Buffers)
Buffers->ReleaseUnusedMemory();
}
Viewport SceneRenderTask::GetViewport() const
@@ -424,6 +431,14 @@ bool SceneRenderTask::CanDraw() const
return RenderTask::CanDraw();
}
void SceneRenderTask::OnIdle()
{
RenderTask::OnIdle();
if (Buffers)
Buffers->ReleaseUnusedMemory();
}
MainRenderTask::MainRenderTask(const SpawnParams& params)
: SceneRenderTask(params)
{