crazyscot / brot3

Yet Another Fractal Plotter
Other
0 stars 0 forks source link

Fullscreen GUI performance sucks #118

Open crazyscot opened 1 month ago

crazyscot commented 1 month ago

Even in a release build, we're not generally sweating all our CPU cores (at least on Linux).

Instrumentation reveals that Rust is passed tile jobs in parallel up to the number of cores when there are not many tiles, but as we get down to the tile size necessary for a full screen, only 1 job is dispatched without paralellisation. The engine is completing jobs as fast as (or fast than) JS can send them.

This is particularly noticeable when requesting a change of colourer.

Surprisingly, the pure-JS Mandelbrot set found at https://openseadragon.github.io/examples/advanced-data-model/ does not exhibit this performance suck, though it is only 1024^3 pixels in either dimension, and sets maxIterations to 100.

Suspicions:

Things I've tried:

My tentative conclusion is that we are rapidly approaching an architectural dead-end and I'm going to have to rethink for v2.0.