From c8e5c1762d7e4ef3806f47f8b47cd45f34156f18 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 9 Sep 2020 09:51:16 +0100 Subject: [PATCH 1/3] budget surfaces. --- src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs b/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs index 27b29c6e1e..ed9b06cc97 100644 --- a/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs +++ b/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs @@ -51,7 +51,7 @@ namespace Avalonia.Skia { var imageInfo = MakeImageInfo(width, height, format); if (gpu != null) - return SKSurface.Create(gpu, false, imageInfo); + return SKSurface.Create(gpu, true, imageInfo); return SKSurface.Create(imageInfo); } From ff0a6f0518570169c3e9363afdb4e49421c8feb6 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 9 Sep 2020 10:36:52 +0100 Subject: [PATCH 2/3] dispose old layer before creating new one. --- src/Avalonia.Visuals/Rendering/RenderLayer.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Visuals/Rendering/RenderLayer.cs b/src/Avalonia.Visuals/Rendering/RenderLayer.cs index d6676e25ff..ddf5f4e5cf 100644 --- a/src/Avalonia.Visuals/Rendering/RenderLayer.cs +++ b/src/Avalonia.Visuals/Rendering/RenderLayer.cs @@ -30,12 +30,13 @@ namespace Avalonia.Rendering { if (Size != size || Scaling != scaling) { + Bitmap.Dispose(); var resized = RefCountable.Create(drawingContext.CreateLayer(size)); using (var context = resized.Item.CreateDrawingContext(null)) { context.Clear(Colors.Transparent); - Bitmap.Dispose(); + Bitmap = resized; Scaling = scaling; Size = size; From a8100d9df53a7159a7aa6aa8ae48b959e726928e Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 9 Sep 2020 10:59:04 +0100 Subject: [PATCH 3/3] Revert "budget surfaces." This reverts commit c8e5c1762d7e4ef3806f47f8b47cd45f34156f18. --- src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs b/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs index ed9b06cc97..27b29c6e1e 100644 --- a/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs +++ b/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs @@ -51,7 +51,7 @@ namespace Avalonia.Skia { var imageInfo = MakeImageInfo(width, height, format); if (gpu != null) - return SKSurface.Create(gpu, true, imageInfo); + return SKSurface.Create(gpu, false, imageInfo); return SKSurface.Create(imageInfo); }