I already got a good single-theaded implementation, back in March, read further into the thread. It's four posts after the link, same page, same thread. And it's hardly "extremely slow", someone toward the current end of the thread said that two passes instead of one (same exact total arithmetic, mind you) is a reasonable cost for fixing the physics, and I agree.BenSeidel wrote:In one of ColonelWill's streams Rseding said that he wanted to tackle the fluid mechanics because it is currently linear time, and he believed that there was no reason for it to be that way. The comment that you have linked would be about that particular implementation, as it requires two sweeps of memory so it would be extremely slow. If anyone can get a good single-threaded implementation for fluid mechanics, he can. So it does not appear to be off the table yet.Aru wrote:But, rseding has no intention of fixing it from what I can tell.
Besides, I detailed how to optimize long pipelines in one pass, cutting out the second, without the second pass. There was also the other two separate ideas I gave, one about optimizing off-screen pipes, which would technically alter the physics, but potentially in a way no one would notice, and would potentially cut the fluid physics cost down to a small fraction of what it is, the other about freezing isolated pipes after they settle.
And depending on how smart the compiler and the CPU are, simply fixing the physics opens up the possibility of parallelization, for which there is a slight chance that there could be some parallel action even without having to explicitly code it. I hope rseding really reads and considers all of this stuff, I know it will work.
I did as much of the work as I could without being able to see the code, because I really want to see this fixed.