Replies: 1 comment
-
Thanks again for your detailed report. You're poking at the right issue :). I believe the other renderers (Qt, Skia) have caching going on to avoid re-doing the tessellation. Plus I guess the elements rendered here, likely border rectangles, are drawn using a dedicated code path perhaps, while with FemtoVG it's the general path renderer. There's a path cache in FemtoVG as well, but it's dependent on the global transformation. So once you start moving a Rectangle it starts falling apart (due to resize or scrolling). As you point out in femtovg/femtovg#186, perhaps there's a way to also make the function itself faster in FemtoVG - but I don't know that code path well enough to make that call :( |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
When testing my GTK app I found that a lot of time app spend in different libraries like librsvg, pango etc.
I wanted to check how much time spend app with slint frontend and I found that most of ther time, slint spends in femtovg tesselate_bezier function.
App is compiled with release profile
Is this really needed to call it so much time? - it is executed few times per second
This is not really problem for me, since app works quite smooth on my PC(but I use old i7 processor), so maybe performance problems may be visible on slower computers
simplescreenrecorder-2023-12-08_20.12.37.mp4
With software renderer I see that CPU usage is distributed in several functions and I don't see anything similar to femotvg function
simplescreenrecorder-2023-12-08_20.24.13.mp4
With skia also I don't see similar thing
simplescreenrecorder-2023-12-08_20.35.13.mp4
When counting only app code, this function takes ~50% of time
Also reported to femtovg/femtovg#186
Beta Was this translation helpful? Give feedback.
All reactions