diff --git a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs b/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs index b7e8b45945..d3d6776efa 100644 --- a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs +++ b/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs @@ -178,12 +178,16 @@ namespace Avalonia.Rendering private void Render(Scene scene) { - _dirtyRectsDisplay.Tick(); + bool renderOverlay = DrawDirtyRects || DrawFps; + bool composite = false; - if (scene.Size != Size.Empty) + if (renderOverlay) { - RenderOverlay(scene); + _dirtyRectsDisplay.Tick(); + } + if (scene.Size != Size.Empty) + { if (scene.Generation != _lastSceneId) { _layers.Update(scene); @@ -196,6 +200,16 @@ namespace Avalonia.Rendering _lastSceneId = scene.Generation; + composite = true; + } + + if (renderOverlay) + { + RenderOverlay(scene); + RenderComposite(scene); + } + else if(composite) + { RenderComposite(scene); } }