enso/lib/rust/code-builder
Paweł Grabarz 1578ed093a
Defer dropdown view initialization until opened and cache shaders between layers (#4046)
Fixes https://www.pivotaltracker.com/story/show/184216698

Reduced impact of node dropdown widgets on load times by deferring creation of grid views until each widget is opened. This also improves node editing time, as the dropdowns are not recreated immediately.

This approach of lazy initialization now caused a significant lag when opening the dropdown. Two major causes of the lag spike is glyph generation (msdfgen, `new_glyph`) and shader compilation (happened every time, because each dropdown has unique layer stack). To reduce the impact of that, the shader compiler now caches the shaders based on generated shader source. Glyph creation hasn't been changed and is still slow. The startup performance is now roughly where it was before introducing widgets.
2023-01-13 15:30:38 +00:00
..
src Defer dropdown view initialization until opened and cache shaders between layers (#4046) 2023-01-13 15:30:38 +00:00
Cargo.toml Switch to 2021 edition (#3173) 2021-12-01 16:06:57 +01:00