At the moment, meshes are loaded into the OpenGL synchronously when the active layer gets changed. Altough they are cached afterwards, so this happens only the first time a layer is shown, it produces a noticeable annoying lag for larger boards.
So, either preload them in the background (possibly hard since OpenGL is single threaded...) or optimize the loading so that it does not take seconds.
This has been partially alleviated in 1ecdefa , but more effort is needed. In particular, we need to have
At the moment, meshes are loaded into the OpenGL synchronously when the active layer gets changed. Altough they are cached afterwards, so this happens only the first time a layer is shown, it produces a noticeable annoying lag for larger boards.
So, either preload them in the background (possibly hard since OpenGL is single threaded...) or optimize the loading so that it does not take seconds.
This has been partially alleviated in 1ecdefa , but more effort is needed. In particular, we need to have
prepare_X_formmethods, to make investigating speed ups easierMoveThis is probably not needed. Some analysis reveals that the reason that it takes a lot of wall time is because it clashes over the GIL with the background threads that are computing the other mesh data...setupConnectionPointsDatato a background thread too (and benchmark it!)_build_spatial_indicesAll of these things take potentially several seconds up to say 20 seconds (see many_meshes_many_vias). Moving them to an external thread would make starting up the GUI potentially much more responsive.