Sinon je ne sais pas pour OpenGL mais sous DirectX/Vista, il suffit d'allouer une texture dans le pool default sans les flags "cpu writable" pour que l'OS n'alloue pas l'espace d'adressage pour le backing store. (c'était un "bug/feature" de Vista avant le premier patch sp1). Sous DirectX/XP ça dépend de la version du driver mais ça devrait être le cas pour des drivers de bonne qualité. Pour les textures managed par contre pas d'espoir (c'est l'intérêt et l'inconvénient du "managed").
Par défaut je crois que les textures opengl sont managed.. je ne sais pas si l'API est prévue pour passer outre. Si ce n'est pas le cas, la solution c'est
1- réduire ton empreinte de ton côté (si tu as une texture complète dupliquée dans tes allocations utilisateurs, c'est un gaspillage énorme, il faut allouer une petite surface de transfert à la demande). éviter les mappings de fichiers etc..
2- passer à Direct3D pour bénéficier de l'absence de backing store sur les textures non managed.
3- passer à un mode d'adressage 64 bits.
LeGreg
Partager