I found a bug in the Particle GPU in the latest release (2023.12120)
After leaving the project running for about a day, certain indexes of the 2D texture array will be skipped.
This applies to both the build in leafs, as a custom texture array. It is size depended on which exact instance(s) will be skipped, for the leafs it would be the fourth one (red) (array of 5 elements). On a slightly bigger array more indexes will be skipped. I’m using an array of 8 feathers, where at least half of the textures will not be used.
Once the issue is active, placing a new instance of the particle gpu will have this issue as well.
Restarting the project resolves the issue, but it will reintroduce itself after a certain time, which seems to be about 8-10 hours / a day.
Currently restarting each day for me is fine, as it’s only semi-permanent install running for a week, but I can imagine that this can be a critical issue for permanant installations.
I ran a test for the last 23 hours and was able to see that the values used for the texture index are not well distributed after longer amounts of time.
This seems to be an issue with the hash function in the shader that indirectly uses absTime.seconds
Now trying a different Hash function to see if that provides a better randomization over time:
You can replace the current hash function in line 181 of the shader glslmulti1_comput in particleGpu. Will know if this actually solves something in another 24 hours…
Thanks for getting back on this so quickly!
Today is our final showday (ISE) so I won’t be able to test it out.
But it has been very interseting investgating this, hope this resolves it, and indeed a bummer it takes 24 hours to replicate.