egui
egui copied to clipboard
Optimization opportunities (tracking issue)
There is a lot of room for improvements to the CPU usage of egui. Here are some things worth investigating:
- [x] Try different hash algorithms for
Id,FontCacheand others. - [x] Precompute vertices for circles and rounded corners in
epaint::Tessellatorconstructor (https://github.com/emilk/egui/pull/1547) - [x] Paint small filled circles using textured rects (by adding a few low-radius circles to the font atlas) (https://github.com/emilk/egui/pull/1616)
- [ ] Run egui with a proper profiler and see what pops up
- Try https://github.com/mstange/perfrecord
- https://github.com/emilk/egui/issues/1098
- [ ] Optimize size of
egui::Response(use bitfields?) - [ ]
eframe/native: runApp::updateand the rendering in different threads - [ ] Output a single veretex buffer and index buffer instead of
Vec<ClippedPrimitive>
Any PR should come with a benchmark.
I added integration with the puffin profiler in https://github.com/emilk/egui/pull/1483 to make it easier to a get a rough overview of app performance.
This could be updated to link to #3862 and #1485, which have PRs in progress.