Spécification du type de mémoire pour une ressource
Le pilote d’affichage en mode utilisateur reçoit des informations sur le type de mémoire qui doit être utilisé lorsqu’il reçoit une demande de création d’une ressource. Le type de mémoire est spécifié en tant que mémoire système ou vidéo via les énumérateurs D3DDDIPOOL_SYSTEMMEM ou D3DDDIPOOL_VIDEOMEMORY, respectivement, du membre Pool de la structure D3DDDIARG_CREATERESOURCE . En outre, le runtime Microsoft Direct3D fournit des conseils au pilote sur le type de mémoire vidéo à utiliser en spécifiant l’un des énumérateurs suivants dans le membre Pool :
D3DDDIPOOL_LOCALVIDMEM
Le runtime recommande au pilote d’utiliser la mémoire vidéo locale.
D3DDDIPOOL_NONLOCALVIDMEM
Le runtime recommande au pilote d’utiliser la mémoire vidéo non locale (par exemple, la mémoire AGP).
Le runtime fournit des conseils au pilote d’affichage en mode utilisateur pour améliorer les performances. Par exemple, le runtime peut spécifier D3DDDIPOOL_NONLOCALVIDMEM si le processeur écrit sur la surface, ce qui est effectué plus rapidement à l’aide de la mémoire vidéo non locale.
Le pilote d’affichage en mode utilisateur transmet les indicateurs au pilote d’affichage miniport via les membres pPrivateDriverData des structures D3DDDI_ALLOCATIONINFO et DXGK_ALLOCATIONINFO d’une manière spécifique au fournisseur. Le pilote miniport d’affichage indique au gestionnaire de mémoire vidéo le segment de mémoire approprié à utiliser en retournant l’identificateur du segment dans le membre HintedSegmentId de la structure DXGK_ALLOCATIONINFO à partir d’un appel à la fonction DxgkDdiCreateAllocation du pilote.
Quel que soit le type de mémoire vidéo utilisée pour créer la ressource, le pilote d’affichage en mode utilisateur ne doit pas exposer de différences sémantiques au runtime. Autrement dit, pour chaque type de mémoire vidéo, le pilote doit afficher les informations de la même manière et retourner les mêmes valeurs de retour.