Prise en charge d’AGP

Microsoft DirectDraw traite la mémoire AGP (Accelerated Graphics Port) comme une sous-classe de mémoire d’affichage. Ce type de mémoire est appelé mémoire d’affichage non locale. Les termes mémoire AGP et mémoire d’affichage non locale sont synonymes du point de vue des pilotes DirectDraw et DirectDraw.

La mémoire AGP est considérée comme une sous-classe pure de mémoire d’affichage. Autrement dit, si un pilote indique qu’il prend en charge la mémoire AGP, dans la plupart des cas, il doit avoir les mêmes fonctionnalités fonctionnelles pour la mémoire d’affichage locale et non locale, bien que les différences de performances soient autorisées. L’exception est si l’indicateur DDCAPS2_NONLOCALVIDMEMCAPS est défini, auquel cas les fonctionnalités blt pour la mémoire d’affichage non locale peuvent différer de la mémoire d’affichage locale.

Par exemple, si un pilote déclare qu’il peut texturer à partir de la mémoire d’affichage, il doit être en mesure de texturer à partir de la mémoire d’affichage locale et non locale. Le blitting est traité de la même façon. Un pilote qui exporte la fonctionnalité de blt de la clé de couleur source doit être en mesure d’effectuer un blt à clé de couleur source à la fois vers et à partir de la mémoire d’affichage non locale. La seule exception à cette règle est qu’il est possible d’empêcher l’allocation de certains types de surfaces dans la mémoire d’affichage non locale. Par exemple, il est possible d’utiliser des tas pour empêcher l’allocation de surfaces de superposition dans la mémoire AGP.

Étant donné que la mémoire AGP est traitée comme une sous-classe de mémoire d’affichage, DirectDraw n’a pas d’ensemble distinct de points d’entrée de pilote d’affichage pour la mémoire AGP. Les appels de pilotes d’affichage existants sont utilisés pour les surfaces AGP et les surfaces de mémoire d’affichage locales. Un pilote compatible AGP doit case activée surfaces entrantes pour voir si elles se trouvent dans une mémoire d’affichage non locale ou locale, et prendre l’action appropriée. Les blts du système vers AGP (et vice versa) passent par la couche d’émulation DirectDraw comme d’habitude, sauf si un pilote prend en charge les blts de mémoire système pour afficher (auquel cas il doit également prendre en charge les transferts système à AGP).

Les pilotes doivent définir l’indicateur DDCAPS2_TEXMANINNONLOCALVIDMEM autant que possible, car le gestionnaire de texture Direct3D conserve son image de sauvegarde de la copie vidéo d’une surface dans la mémoire AGP (plutôt que dans la mémoire système) dans ce cas.

Le reste de cette section décrit les étapes nécessaires pour modifier votre pilote existant afin de prendre en charge la mémoire AGP à l’aide des fonctionnalités de mémoire d’affichage non locale DirectDraw.