My game have about 1.3GB compiled atlases. Whe program start and I see then engine uploaded this huge atlases in memory and then(i think i right understand) sended it in video memory and free RAM.
My question - load all in RAM and then sent it in video memory neccessarry or it can load one atlas send it in video memory and free ram, load second, send and free and etc
Defold uses OpenGL and the OpenGL driver will ultimately manage graphics memory.
What the Defold engine does is loading the texture and register it with OpenGL.
Then, OpenGL will handle where the texture resides and will if needed upload to texture memory (if the graphics memory is dedicated GPU memory).
The short answer is: Textures are loaded when a resource such as a sprite, spine, model, tilemap etc. references them. Those resides in collections, so you should load and unload collection proxies when you need them (this can be done asynchronously). This is good practice for any game development. Only keep in memory what needs to be there at any given time.
Also, you should use use hardware texture compression formats where you can (PVRTC, ETC1…). 1.3GB is a lot of texture memory. PVRTC is 1:8 GPU memory compression ratio, so 1.3GB would consume 162MB.
We will also support DXT1 and DXT5 for desktop and HTML5 in a not too distant future.