Cette rubrique est propre à la XBOX One.
Types de données pouvant résider dans l’ESRAM
- L’ESRAM de la XBOX One est une mémoire dédiée à haute bande passante (duplex) de 32 Mo.
- L’ESRAM est destinée à stocker les cibles de rendu et de profondeur, les cartes d’ombres, les lightmaps et d’autres ressources à haute bande passante.
- Des paramètres de création de ressources permettent de spécifier la résidence en ESRAM.
- L’ESRAM permet de stocker des mémoires tampons et des textures 1D, 2D et 3D.
- L’ESRAM prend en charge uniquement les usages par défaut et immuables. Le CPU n’a pas accès à l’ESRAM.
- Les chaînes de permutation ne peuvent pas être stockées dans l’ESRAM.
Gestionnaire ESRAM
Le choix des données à stocker dans l’ESRAM est important. Vous devez stocker dans l’ESRAM les données auxquelles vous accédez le plus fréquemment, et ces données changeront probablement au fil de la progression de votre jeu, par exemple lors des transitions entre niveaux. Il est donc conseillé d’implémenter un gestionnaire de mémoire ESRAM. Il n’existe pas de gestionnaire ESRAM prédéfini ; vous devrez créer votre propre gestionnaire ESRAM pour votre projet et l’adapter à vos besoins spécifiques. Un gestionnaire ESRAM fonctionne de manière similaire à un gestionnaire de mémoire traditionnel. Le gestionnaire ESRAM doit au minimum assurer les fonctions suivantes : allouer de la mémoire, charger et décharger des données depuis la DRAM, et libérer la mémoire qui n’est plus nécessaire. Vous trouverez ci-dessous des exemples de types de données et de fonctions courants que votre gestionnaire ESRAM est susceptible d’utiliser.- Classe ESRAMAllocation : une allocation dans l’ESRAM
- Classe ESRAMResource : une ressource allouée dans l’ESRAM
- Classe ESRAMTexture : une texture allouée dans l’ESRAM
- Classe ESRAMBuffer : une mémoire tampon allouée dans l’ESRAM
- Classe FreeSpace : une zone d’espace libre dans l’ESRAM
- ESRAMManager::Allocate : alloue de la mémoire dans l’ESRAM en recherchant le premier espace adapté
- ESRAMManager::Free : libère de la mémoire dans l’ESRAM
- ESRAMManager::InsertGPUWait : indique au GPU d’attendre une opération DMA impliquant la ressource
- ESRAMManager::Create : crée une mémoire tampon dans l’ESRAM sans contenu initial
- ESRAMManager::Prefetch : prélit des données à partir d’une mémoire tampon DRAM
- ESRAMManager::Writeback : copie une mémoire tampon ESRAM dans la DRAM
- ESRAMManager::Discard : marque une ressource ESRAM comme n’étant plus utilisée, afin que sa mémoire puisse être récupérée
- ESRAMManager::GarbageCollect : libère la mémoire appartenant aux ressources abandonnées
