fuse-open / fuselibs

Fuselibs is the Uno-libraries that provide the UI framework used in Fuse apps
https://npmjs.com/package/@fuse-open/fuselibs
MIT License
176 stars 72 forks source link

Possible memory leak on Partial Paths - dotnet desktop #1413

Open bwail opened 3 years ago

bwail commented 3 years ago

Bug description Partial Paths page crashes on the ManualTestingApp for dotnet image

To Reproduce On root folder of master branch fork of fuse-open/fuselibs

  1. Execute the following build commands
    npm install
    npm run build
  2. Execute the following command to run on manual testing app on dotnet npm run dotnet
  3. Click next until you get to Partial Paths screen
  4. Wait a few seconds and the following error appears image

Expected behavior The animation on screen should continue executing normaly

Desktop :

@fuse-open/fuselibs@2.0.0-beta.7 dotnet uno build dotnet Tests/ManualTests/ManualTestingApp/ManualTestingApp.unoproj --run

Uno 2.0.0-beta.10 (build 897) Windows 10 x64 e9bd6aa Copyright (C) 2018-present Fuse Open

Console logs

3: System.OutOfMemoryException: Out of memory.
   at Fuse.Elements.ElementAtlas.PinAndValidateFramebuffer(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Caching\ElementAtlas.uno:line 154
   at Fuse.Elements.ElementBatch.Draw(DrawContext dc, Float4x4 localToClipTransform, Rect scissorRectInClipSpace) in D:\Repos\fuselibs\Source\Fuse.Elements\Caching\ElementBatch.uno:line 227
   at Fuse.Elements.ElementBatcher.Draw(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Caching\ElementBatcher.uno:line 340
   at Fuse.Elements.Element.DrawNonUnderlayChildren(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Batching.uno:line 96
   at Fuse.Elements.Element.DrawWithChildren(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Batching.uno:line 113
   at Fuse.Elements.Element.CompositEffects(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Effects.uno:line 184
   at Fuse.Elements.Cache.DrawHeuristically(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Caching\Cache.uno:line 83
   at Fuse.Elements.Element.Composit(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Effects.uno:line 103
   at Fuse.Elements.Element.Draw(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Drawing.uno:line 105
   at Fuse.Controls.Panel.Draw(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Controls.Panels\Panel.Freeze.uno:line 208
   at Fuse.Elements.Element.DrawNonUnderlayChildren(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Batching.uno:line 71
   at Fuse.Elements.Element.DrawWithChildren(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Batching.uno:line 113
   at Fuse.Elements.Element.CompositEffects(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Effects.uno:line 184
   at Fuse.Elements.Cache.DrawHeuristically(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Caching\Cache.uno:line 83
   at Fuse.Elements.Element.Composit(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Effects.uno:line 103
   at Fuse.Elements.Element.Draw(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Drawing.uno:line 109
   at Fuse.Controls.Panel.Draw(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Controls.Panels\Panel.Freeze.uno:line 208
   at Fuse.Elements.Element.DrawNonUnderlayChildren(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Batching.uno:line 71
   at Fuse.Elements.Element.DrawWithChildren(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Batching.uno:line 113
   at Fuse.Elements.Element.CompositEffects(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Effects.uno:line 184
   at Fuse.Elements.Cache.DrawHeuristically(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Caching\Cache.uno:line 83
   at Fuse.Elements.Element.Composit(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Effects.uno:line 103
   at Fuse.Elements.Element.Draw(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Drawing.uno:line 109
   at Fuse.Controls.Panel.Draw(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Controls.Panels\Panel.Freeze.uno:line 208
   at Fuse.Elements.Element.DrawNonUnderlayChildren(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Batching.uno:line 71
   at Fuse.Elements.Element.DrawWithChildren(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Batching.uno:line 113
   at Fuse.Elements.Element.CompositEffects(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Effects.uno:line 184
   at Fuse.Elements.Cache.DrawHeuristically(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Caching\Cache.uno:line 83
   at Fuse.Elements.Element.Composit(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Effects.uno:line 103
   at Fuse.Elements.Element.Draw(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Elements\Element.Drawing.uno:line 109
   at Fuse.Controls.Panel.Draw(DrawContext dc) in D:\Repos\fuselibs\Source\Fuse.Controls.Panels\Panel.Freeze.uno:line 208
   at Fuse.Desktop.DesktopRootViewport.Draw() in D:\Repos\fuselibs\Source\Fuse.Desktop\DesktopRootViewport.uno:line 59