prepare_infill() is not very idempotent, so starting from de1c900 we're always recalculating perimeters in order to get fresh fill_surfaces.
In order to improve caching we should have PerimeterGenerator save the fill boundaries to a new fill_boundaries member, and prepare_infill() should always start from it, regenerating fill_surfaces from scratch. This will cost a few megabytes of memory, up to 15Mb for a 0.05mm layer print, however we could still run in low-memory mode and empty fill_boundaries when running from command line, or according to a Memory vs. Recalculation Speed option in preferences.
prepare_infill() is not very idempotent, so starting from de1c900 we're always recalculating perimeters in order to get fresh fill_surfaces.
In order to improve caching we should have PerimeterGenerator save the fill boundaries to a new fill_boundaries member, and prepare_infill() should always start from it, regenerating fill_surfaces from scratch. This will cost a few megabytes of memory, up to 15Mb for a 0.05mm layer print, however we could still run in low-memory mode and empty fill_boundaries when running from command line, or according to a Memory vs. Recalculation Speed option in preferences.