Performance in UI rendering vs Fidget's opengl renderer
I ported my Figuro UI project to use Boxy instead of Fidget's OpenGL renderer. The shadow stuff is really awesome.
Everything went smoothly feature wise, however the performance is substantially lower. Rough benchmark show that the Boxy renderer is about 20% (no shadow, no masking) to 70% slower (shadows, clipping) than Fidget's OpenGL backend.
That's surprising to me given how similar they seem.
GPU memory usage also tends to be quite a bit higher. A full screen app runs ~800 mb on my M3 Macbook with Fidget's renderer, but shoots up to 1200+ mb with Boxy. Initial load also takes 2-3 seconds with Boxy vs visually instant for the old renderer.
Basic profiling shows that the Boxy code spends way more time doing masking but also general rendering as well. There's now obvious functions that are slower as it seems a bit spread out over a bunch.
I'm not sure if y'all are working on Boxy anymore, but I figured I'd post about it here. I appreciate all the libraries y'all have made.
Aside from just noting the performance, I was wondering if there's any tips or tricks. Something dumb I'm doing.
Boxy is more complex, it can handle more stuff, so it does some things in a more general way.