Figured out how to reduce shader calls, this will speed up the calculations as there will be no need to separate the float and integer draw. This gives a twofold increase, but does make it a bit more intensive on the shader though not by much
For 500000 particles
Calculate square root 707…
Make canvas size 708 for the integer part then double width to hold and calculate float component
In total shader will be called on 708 by 1416
This can be extended to make a full particle shader, where the canvas size would be the size of the number of variables times the square root of the number of particles.
So xyz would yield 707 *3 for height with 707 *2 for width. This should run on a standard low end graphics card, no problem but will likely max it out.
Note it’s still slower than a traditional particle shader which would calculate vertices and pass them to fragment, though I’m unable to say how much slower until I test it out