Multithreaded device preparation

I ve noticed, that preparation of device is somtimes singlethread and with higher resolution builds it takes lot of time. Would be possible to also make it fully multithreaded? In this case it took cca 15 minutes, untill it started to use all CPUs.

Some of the flow-based devices (such as restructure, create water) have an inherent single-threaded processing stage due to the algorithms in use. Although they are reasonably quick devices, because of that limitation they can definitely become bottlenecks at higher resolutions.

I do plan to improve this eventually, but a parallel implementation that performs well in all circumstances is actually quite hard – I have an experimental parallel variant that didn’t get up to speed in time for Alpine Lakes release.

Thanks, thats good news. Create water is something, which no other terrain tool has and it was main reason, why I decided to use WM even this time. Currently average number of threads use during longer build is under 1/2 - I had 14.34 (of 32 during) 10 minutes build, so there is definitelly same space for improvement.

I ve also noticed big slow down in 16k builds. 2k cca 20 seconds, 4k cca 1,9 minutes, 8k 10 minutes, which is ± expected, but 16k took 2 hours. I have 64GB of ram, so disk swapping was minimal (cca 5x during build) and I have Nvme 5GB/sec SSD drive, so it took no time at all. Peak memory usage was always under 64GB. So why is there so big slowdown? Most problematic was create water device (there is one in the scene), it took cca 60-70 percent of build time (in 2k cca 10 percent). Other devices scale in cca power of 2, so as expected. it looks like create water behaves in different way.