PDA

View Full Version : Max memory for OGL with 320M?



paratras
03-29-2011, 05:07 PM
Do you know if the 256MB of shared memory that the 320M-based laptops (like the Macbook Air) allocate will grow if you try to allocate a lot of textures?

Supposing your machine has 4GB of RAM, how much of that memory can you use for OpenGL? Can you allocate 1GB of textures? More? Less? Or maybe the 256MB is a fixed amount that won't grow?

Thanks!

Groovounet
03-30-2011, 03:08 AM
If it is said 256MB so that's your maximum.

Memory is not like tomatoes, it doesn't grow :p

paratras
03-30-2011, 06:48 AM
Thanks a lot for your reply. Another question, even more important for me than the first one: If the 320M runs out of memory because I try to allocate more textures than fit on 256MB, will it do "swapping" from the shared memory to the rest of system memory, or will it fail to allocate more than 256MB of textures?

(Don't forget that the 320M doesn't have dedicated memory, but shared memory... is not a dedicated GPU, but an integrated GPU that shares its memory with the system RAM)

McLeary
03-30-2011, 09:47 AM
I've heard somewhere that even GPU using shared memory it is only able to address a fixed amount of memory. It's a driver feature for performance.

At least using CUDA on 320M, if one try to allocate more the 256MB it crashes the application.

paratras
03-30-2011, 10:07 AM
At least using CUDA on 320M, if one try to allocate more the 256MB it crashes the application.
I hope that's not the case with textures! (I hope it will successfully swap textures with the rest of the system memory) Does anybody have experiencies with big textures on shared memory GPUs?

arekkusu
03-30-2011, 10:52 AM
If your application is 64-bit, and you have 500GB of free disk space, then you should be able to allocate about 500GB of textures before allocations fail.

The "VRAM" limit is really about the amount of resources you can have bound simultaneously for a single draw.

Groovounet
03-30-2011, 11:08 AM
With OpenGL we won't be able to allocate a single buffer or a single texture with a size higher than 256MB... In practice it's actually less than 256MB.

The drivers will use the main memory but this may (quite probably actually) reduce software performance.