Especificando o tipo de memória para um recurso
O driver de exibição do modo de usuário recebe informações sobre o tipo de memória que deve ser usado quando recebe uma solicitação para criar um recurso. O tipo de memória é especificado como memória de sistema ou vídeo por meio dos enumeradores D3DDDIPOOL_SYSTEMMEM ou D3DDDIPOOL_VIDEOMEMORY, respectivamente, do membro pool da estrutura D3DDDIARG_CREATERESOURCE . Além disso, o runtime do Microsoft Direct3D fornece dicas ao driver sobre o tipo de memória de vídeo a ser usado especificando um dos seguintes enumeradores no membro pool :
D3DDDIPOOL_LOCALVIDMEM
O runtime recomenda que o driver use memória de vídeo local.
D3DDDIPOOL_NONLOCALVIDMEM
O runtime recomenda que o driver use memória de vídeo não local (por exemplo, memória AGP).
O runtime fornece dicas para o driver de exibição do modo de usuário para melhorar o desempenho. Por exemplo, o runtime pode especificar D3DDDIPOOL_NONLOCALVIDMEM se a CPU gravar na superfície, o que é executado mais rapidamente usando memória de vídeo não local.
O driver de exibição do modo de usuário passa as dicas para o driver de miniporto de exibição por meio dos membros pPrivateDriverData das estruturas D3DDDI_ALLOCATIONINFO e DXGK_ALLOCATIONINFO de maneira específica do fornecedor. O driver de miniporto de exibição indica ao gerenciador de memória de vídeo o segmento de memória apropriado a ser usado retornando o identificador do segmento no membro HintedSegmentId da estrutura DXGK_ALLOCATIONINFO de uma chamada para a função DxgkDdiCreateAllocation do driver.
Independentemente do tipo de memória de vídeo usado para criar o recurso, o driver de exibição do modo de usuário não deve expor nenhuma diferença semântica ao runtime. Ou seja, para cada tipo de memória de vídeo, o driver deve renderizar informações de forma idêntica e deve retornar os mesmos valores retornados.