Vertex Arrays and Display Lists

is there any performance advantage in using the Vertex Array mechanism (Commands like ‘glDrawElements()’ for example) within Display Lists?


??? I don’t think so, the DL are compiled in the card in the ‘best’ way possible (depends on driver or cards).

I you have a doubt, measure for your case. If there is any difference, it will probably be very small.

If you compile a vertexarray into a displaylist, you won’t gain anything, cause the immediate vertex values will be stored in that DL just as if you would have called them via glVertex commands.

Is this possible at all? Don’t you need to assure that the vertex array stays in memory all the time the display list exists? I think it should be possible as a display list simply stores gl commands, so why not those that manage vertex arrays, but it sounds like a method to get rid of the advantages of display lists (speed), as the display list stays in graphics card memory, but the vertex array data has to be sent there from system memory every frame. Really sounds like a weird idea.

No, the VAs Vertexdata will be directly compiled into the DL, so after you have compiled the DL you can delete the memory where the VA’s vertexdata is stored.
So using a VA in a DL won’t gain you anything and isn’t different at all than using immediate vertexcalls like glVertex3f in the DL.