The VRAM is either the RAM on the GFX card or a section of system memory shared/dedicated to video (usually both).
Your graphics don't all have to fit in this little section of memory (in fact, they usually don't). You get better performance if all your textures fit into this small space, but it's not a show stopper if it doesn't fit.
Modern graphics APIs (DirectX, OpenGL) manage this memory for you. A very simplistic way to think about this memory is like a holding area for images being drawn to the screen (and the screen itself). It typically works like a one-way street (with a couple exceptions).
The Graphics API will hold the texture in system memory (or in the dedicated system memory) and upload a copy to the graphics card when you want to draw an image. When the memory on the GFX gets low, the API will tell the card to delete the copies to make room for a new texture. The graphics API optimizes this process as best that it can (how often is this texture drawn? How long ago was it last drawn? etc...)
This is why texture atlases are a great way to increase performance (and reduce memory usage). Packing a lot of images onto a single texture will reduce the BUS traffic.
There are certain types of images that HAVE to reside on the GFX card. Things like the front buffer, back buffer and render targets. You can lock and read images from GFX memory, but it's usually slow. It's better to think of the GFX BUS as a one-way street.
The real kicker is that the Graphics API will manage all of this for you. You simply need to check and make sure that the surface isn't lost or use a API with managed memory pools. With the exception of Render Targets, it's been 15 years since I had to worry about surfaces getting lost or trashed.
At this day and age, you shouldn't really even worry about handling graphics routines. There are a lot of casual game engines that even manage that for you. Really, you should find an engine that let's you specify a image file to draw and gives you functions to draw it.
**************
Edit: I see you're using construct which uses DX9. DX9 has memory pool management so you should NOT have to worry about it.
You don't really have to worry about other programs fighting for memory. Fullscreen apps usually run a little faster because of reduced GDI drawing, but newer versions of windows (Vista+) use hardware accelerated drawing.


Reply With Quote




