memoryopenglvideodisplaylist

OpenGL DisplayList using video memory


Is it possible to store the display list data on the video card memory? I want to use only video memory like Video Buffer Object(VBO) to store DisplayList. But when I try it, it always uses main memory instead of video memory. I tested on nVidia geForce 8600GTS, and GTX260.


Solution

  • Display lists are a very old feature, that dates back to OpenGL-1.0. They have been depreceated a long time ago. Anyhow you can still use them for compatibility reasons.

    The way OpenGL works, prevents display lists from being held in GPU memory only. The graphics server (as OpenGL calls it) is a purely abstract thing, and the specification warrants, that what you put in a display lists is always available. However in modern GPUs there's only a limited amount of memory, so payload data may be swapped in and out as needed.

    Effectively GPU memory is a cache for data in system RAM (the same way system RAM should be treaded as cache for storage).

    Even moreso, modern GPUs may crash, and the drivers will perform a full reset giving the user the impression everything works normal. But after the reset all the data on GPU memory must be reinitialized.

    So it is necessary for OpenGL to keep copies of every payload data in memory to support smooth operation.

    Hence it is perfectly normal for your data to show up as consuming system RAM as well. It is though very likely, that the display lists are also cached in GPU memory.