OGRE-Next  3.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::GpuPageOutStrategy Namespace Reference

Enumerations

enum  GpuPageOutStrategy { SaveToSystemRam , Discard , AlwaysKeepSystemRamCopy }
 When a resource is no longer resident, we need to know what to do with the resource CPU side. More...
 

Enumeration Type Documentation

◆ GpuPageOutStrategy

When a resource is no longer resident, we need to know what to do with the resource CPU side.

Enumerator
SaveToSystemRam 

When the resource is no longer resident, we copy its contents from GPU back to system RAM and then release the GPU memory.

This means the data will be ready for quickly moving it back to GPU if needed.

Discard 

When the resource is no longer resident, we just throw the GPU data.

If the data is required again, it will be read from storage; which can be slow. Use this if you know you won't be using this resource for a long time after it's discarded (i.e. data that belongs to a specific level)

AlwaysKeepSystemRamCopy 

Always keep a copy on system RAM, even when resident.

This makes for fast reading from CPU. Not all resources allow this option (e.g. RTT & UAV textures)

Warning: This flag has a few drawbacks for Textures. The metadata won't be ready earlier (i.e. it won't be available until the data is available). The metadata cache can't be used. Some calls such as TextureGpu::copyTo require syncing back from GPU to CPU. This is made async, but if you queue more than one copyTo call, it can stall.