I can’t fathom it either. It proved quite a distraction from other things I should be doing; it was nearly 3am by the time I made my post last night, by which time I was starting to doubt the validity of my judgement… I haven’t been totally rigorous but I can’t see a major flaw in my methodology, and now jezek2 seems to be finding the same.
I was running 10,000 particles in some of my tests, 30,000 in others. Either is enough to make particles easily the most expensive thing in the app; framerates around 30fps (much faster with particles off).
Interesting point about the pipeline… I’ve been planning to make some changes to the way my rendering works that would make implementing something along the lines of jezek2s suggestion very easy.
At some point, I might do my particle animation on the GPU instead… that really should be faster. Also, I’ve certainly seen big gains going away from immediate mode in other parts of the program.