Suporte a AGP

O Microsoft DirectDraw trata a memória da AGP (Porta Gráfica Acelerada) como uma subclasse de memória de exibição. Esse tipo de memória é conhecido como memória de exibição não local. Os termos memória AGP e memória de exibição não local são sinônimos da perspectiva dos drivers DirectDraw e DirectDraw.

A memória AGP é considerada uma subclasse pura de memória de exibição. Ou seja, se um driver indicar que dá suporte à memória AGP, na maioria dos casos ele deverá ter os mesmos recursos funcionais para memória de exibição local e não local, embora diferenças de desempenho sejam permitidas. A exceção será se o sinalizador DDCAPS2_NONLOCALVIDMEMCAPS estiver definido, nesse caso, os recursos blt para memória de exibição não local poderão ser diferentes da memória de exibição local.

Por exemplo, se um driver afirma que pode textura da memória de exibição, ele deve ser capaz de textura da memória de exibição local e não local. A blitting é tratada da mesma forma. Um driver que exporta a funcionalidade blt da chave de cor de origem deve ser capaz de fazer um blt com chave de cor de origem para e da memória de exibição não local. A única exceção a essa regra é que é possível impedir que determinados tipos de superfície sejam alocados na memória de exibição não local. Por exemplo, é possível usar heaps para impedir que superfícies de sobreposição sejam alocadas na memória AGP.

Como a memória AGP é tratada como uma subclasse de memória de exibição, o DirectDraw não tem um conjunto separado de pontos de entrada do driver de exibição para memória AGP. As chamadas de driver de exibição existentes são usadas para superfícies AGP e superfícies de memória de exibição local. Um driver compatível com AGP deve marcar superfícies de entrada para ver se elas estão na memória de exibição não local ou local e tomar a ação apropriada. Blts do sistema para o AGP (e vice-versa) passam pela camada de emulação directDraw normalmente, a menos que um driver dê suporte a blts de memória do sistema para exibição (nesse caso, ele também deve dar suporte a transferências de sistema para AGP).

Os drivers devem definir o sinalizador DDCAPS2_TEXMANINNONLOCALVIDMEM o máximo possível porque o gerenciador de texturas Direct3D mantém sua imagem de suporte da cópia de memória de vídeo de uma superfície na memória AGP (em vez da memória do sistema) quando esse for o caso.

O restante desta seção discute as etapas necessárias para modificar o driver existente para dar suporte à memória AGP usando recursos de memória de exibição não local do DirectDraw.