display lists are only good for static stuff (thus not particle systems)
all 3 methods youve listed there are terribly slow
I prefer doing calcs on the CPU (others the GPU) but anyways
A/ calc all the vertices of the particles
B/ set that particl systems material (shader/texture etc)
C/ draw all the particles in one draw call