When is video memory and AGP used? I have a program that uses huge amount of texture but I don’t know why AGP memory is not used. I used Nvidia’s AGPmem to see the AGP memory usage. I’ve even check many opengl demo on the net and they never used agp memory too. However some directx demo do uses it. I’m puzzled as why it is not used. Do we have to explicitly allocate memory for AGP?
you can’t allocate AGPmem for textures by yourself. the OGL driver makes his own decisions, what to store where.
you can only give the driver a hint by priorizing the texture.
But, the problem is that agp memory is not used at all in my opengl program.
how do you know it ?
the openGL driver handles it’s mem for itself and does not tell you where it’s buffers are located. so how do you will know this ?
what tells your renderer string ?
something like this:
Renderer: GeForce2 MX/AGP/SSE
or tells your string that you’re in PCI mode
? in that case i would suggest to check your system confuguration especially your motherboard drivers.(check also your AGP aperture size in your BIOS setup)
if you are allready in AGP mode, you can only alloc AGP memory for VertexArrayRange memory. all other usages are hidden inside the GLdriver…
btw. if you want to have DIRECT access to your 3DHW i would suggest to use an other API, which handles 3DHW as well and is dedicated to DIRECT HW programming…
…can you guess what it’s name ? (yes, there is also an “X” in it’s name )
As AdrianD mentions, OpenGL generally does not expose different memory hierarchies to applications. Instead, you give us (drivers) your textures and we try to place them for optimal performance. In addition to AGP, we can put textures in video memory, or even in locked-down system memory. Or they could be kept in normal (pageable) system memory, where graphics hardware typically can’t get at them directly. And textures may move from one place to another depending on system issues. For example, if you have more textures than we could fit in one place, we might swap textures in and out (like a normal CPU virtual memory subsystem).
In your specific case, it is likely that we have video memory left over after allocating your color/depth buffers and that we are using that memory to hold your texture.