Optimize GPU memory usage in Editor when viewport is inactive
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user