Performance gain with AGP and large textures


I am working on a project that has a large amount of large textures. It has become clear that some optimization is needed in this area. Before starting however I wanted to get a better understanding of AGP’s role in improving performance. I understand that using AGP allows you to use main memory for textures. I have a couple of questions though.

  1. Is there still a performance hit if the texture is in main memory (accessible via AGP) rather than on the card?
    2)If you set your AGP aperture at 64MB is this how much extra memory you have to work with?

  2. Can this area be swapped out, so you could end up with a texture that has been swapped to disk?
    4)Is there any good documentation explaing this.

  3. Is AGP 2x support dependent on OpenGL drivers?

  4. Is there a ball park texure limit to shoot for based on Card Memory and AGP aperture size to avoid textures becoming non-resident.

Thanks for any and all help.


  1. Yes, there is since the whole texture has to be transferred to the videomemory before rendering, alt. rendered directly from system memory which is usually slower than the videomemory.
  2. The AGP aperture size is the total video memory addressable. Don’t know if the video cards own memory is included in this, but I guess it is. So it set some sort of limit.
  3. Yes.
  4. Probably, don’t know any however.
  5. Yes, the driver can set the AGP speed. Some of nVidias drivers set AGP 1x for Athlon users due to compatibility issues with older Athlon chipsets.
  6. Try to use max as much textures as videomemory-framebuffer memory. I also recommend using texturecompression if available, which both lowers the memory usage and reduces memory bandwidth need hence increasing performance. It is also usable to set texture priorities for each texture.


Thanks for your help. Your post raised a couple of more questions though. Well one question really… Texture compression sounds usefull, is this an OpenGL extension? can you point me towards any documentation on this?

Thanks again for your help

There is an extension called GL_ARB_texture_compression. You can find the spec @ . It’s ARB extension number 12.

[This message has been edited by Bob (edited 05-22-2000).]


Thanks for the info.

I read through the compressed texture extension and I’m a bit leary of using it as the code/application needs to run on a large array of platforms/cards. Do you have a feel for how prevelant the extension is? You got me thinking though, so I wandered through some of the other extensions and came acrros the Palatted_texture extension. This seems like it fit my needs as well. Ever worked with this extension?

Thanks againg for the help.


I have any experience for using large texture, I don’t think well that using the compressed texture extension or AGP memory.
I have used Virtual Texture Technoly of OxygenGVX1 board from 3Dlabs Inc., upload texture data to system as 256MB in application using glTexImage. Another, OxygenGVX1 support the Palatted_texture extension too(1,2,4,8bit). You can download some document from 3Dlabs web site about Virtual Texture etc.