Good day to you all,
I would like to present my (64-bit) build of the Powder Toy.
The primary feature is that the simulation is actually done in parallel by exploiting a particular trick of how parts interract. This allows the game to have >30 fps when the screen is fully filled with materials.
It is also built with AVX (with SSE available too) to possibly offer more speed. There are certain problems with complicated circuits and water equalisation doesn't work but it is a big step up.
The build is available on my github:
https://github.com/Nessphoro/ParallelPowderToy
To play just get the build folder.
Currently only Windows is supported, but it should be really easy to compile for Linux and other platforms as it uses OMP and not any particular threading library.
The AVX one doesn't run at all for me, and the SSE2 one runs at 30 fps. Is it supposed to have any improvement on older computers? Mine is fairly old, so that might be the problem.
Yeah, AVX is only supported on newer machines.
The multi-threading starts to make a difference if you have a lot of parts, for me it runs a bit slower when I start TPT because of the overhead, but performance doesn't drop significantly when I add a lot of parts.
Indeed I have noticed numerical instabilities in certain simulations, but I'm sure they can be reduced by using different cell pools dimensions. Electricity is interesting as well, I was thinking of updating sparks seperatly, and serialy, to at least try and mitigate those issues somewhat.
EDIT: Fixed electronics. All of your examples now work.