estrutura DXGK_VIDMMCAPS (d3dkmddi.h)
A estrutura DXGK_VIDMMCAPS identifica os recursos de gerenciamento de memória de vídeo compatíveis com um driver de miniporto de exibição.
Sintaxe
typedef struct _DXGK_VIDMMCAPS {
union {
struct {
UINT OutOfOrderLock : 1;
UINT DedicatedPagingEngine : 1;
UINT PagingEngineCanSwizzle : 1;
UINT SectionBackedPrimary : 1;
UINT CrossAdapterResource : 1;
UINT VirtualAddressingSupported : 1;
UINT GpuMmuSupported : 1;
UINT IoMmuSupported : 1;
UINT ReplicateGdiContent : 1;
UINT NonCpuVisiblePrimary : 1;
UINT ParavirtualizationSupported : 1;
UINT IoMmuSecureModeSupported : 1;
UINT DisableSelfRefreshVRAMInS3 : 1;
UINT IoMmuSecureModeRequired : 1;
UINT MapAperture2Supported : 1;
UINT CrossAdapterResourceTexture : 1;
UINT CrossAdapterResourceScanout : 1;
UINT AlwaysPoweredVRAM : 1;
#if ...
UINT Reserved : 14;
#elif
UINT Reserved : 15;
#elif
UINT Reserved : 18;
#elif
UINT Reserved : 19;
#elif
UINT Reserved : 21;
#elif
UINT Reserved : 22;
#elif
UINT Reserved : 27;
#elif
UINT Reserved : 28;
#else
UINT Reserved : 31;
#endif
};
UINT Value;
};
UINT PagingNode;
} DXGK_VIDMMCAPS;
Membros
OutOfOrderLock
Especifica se o driver pode bloquear instâncias de alocação diferentes da instância mais recente. O driver normalmente define esse valor para threading DDI e balanceamento de carga se um thread DDI precisar bloquear um buffer de vértice que um thread de aplicativo havia bloqueado e descartado anteriormente. Definir esse membro é equivalente a definir o primeiro bit do membro Value de 32 bits (0x00000001).
DedicatedPagingEngine
Esse membro é reservado e deve ser definido como zero.
PagingEngineCanSwizzle
Esse membro é reservado e deve ser definido como zero.
SectionBackedPrimary
Especifica se o driver dá suporte a alocações primárias com suporte de seção. Com suporte a partir do Windows 8.
CrossAdapterResource
Especifica se o driver fornece suporte de camada 1 para copiar de e para recursos de adaptador cruzado em um sistema< híbrido. Suporte começando com Windows 8.1.
A partir do WDDM 2.4, o DXGI habilita as otimizações de apresentação híbridas atuais para o cenário mais amplo em que a renderização estiver em uma GPU e apresentando no monitor de outra GPU. Isso só será possível se ambas as GPUs derem suporte a recursos de adaptador cruzado.
As propriedades de recurso do adaptador cruzado estão listadas abaixo.
- O recurso pode ser paginado somente para o segmento de memória de GPU de abertura
- O recurso é alocado como compartilhado.
- O recurso deve ser marcado como CPU Visível.
- A alocação será criada pelo sistema operacional como uma combinação de gravação.
- O recurso tem apenas uma alocação e tem o formato linear.
- O recurso tem alinhamento de tom padrão (128 bytes). A definição de D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT é adicionada para o alinhamento de tom. O recurso deve ser criado no menor múltiplo desse alinhamento que conterá o conteúdo do recurso.
- O recurso tem um alinhamento de altura padrão (4 linhas). O D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT é adicionado. O recurso deve ser criado no menor múltiplo desse alinhamento que conterá o conteúdo do recurso.
#define D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 128
#define D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 4
- O endereço inicial da memória do recurso está alinhado a um limite de página.
- O recurso pode ser criado como uma alocação padrão do modo kernel e, posteriormente, aberto pelo UMD.
- O recurso pode ser criado pelo UMD.
A alocação entre adaptadores pode ser usada como um primário, mas o driver não obterá informações, que geralmente são fornecidas quando o primário é criado
VirtualAddressingSupported
Especifica se o driver dá suporte ao endereçamento de memória virtual. Para expressar suporte para endereçamento de memória virtual de GPU, o driver deve definir o limite VirtualAddressingSupported e as tampas GpuMmuSupported ou IoMmuSupported . GpuMmuSupported e IoMmuSupported não podem ser definidos ao mesmo tempo. Com suporte a partir do Windows 10.
GpuMmuSupported
Especifica se o adaptador dá suporte ao modelo GpuMmu . Um adaptador não pode dar suporte aos modelos GpuMmu e IoMmu em mecanismos diferentes ao mesmo tempo. Confira Modelo gpuMmu para obter mais informações. Com suporte a partir do Windows 10.
IoMmuSupported
Especifica se o adaptador dá suporte ao modelo IoMmu . Um adaptador não pode dar suporte aos modelos GpuMmu e IoMmu em mecanismos diferentes ao mesmo tempo. Confira Modelo IoMmu para obter mais informações. Com suporte a partir do Windows 10 (WDDM 2.0).
ReplicateGdiContent
Especifica se o adaptador dá suporte à replicação de conteúdo GDI. Com suporte a partir do Windows 10.
NonCpuVisiblePrimary
Indica que as alocações de GDI não precisam estar visíveis para A CPU. Com suporte a partir do Windows 10.
ParavirtualizationSupported
O KMD do host precisará definir o limite se todos os DDIs forem implementados. Com suporte a partir do Windows 10 versão 1703 (WDDM 2.2).
IoMmuSecureModeSupported
Indica que o driver dá suporte ao isolamento de GPU baseado em IOMMU. Com suporte a partir do Windows 10 versão 1803 (WDDM 2.4).
DisableSelfRefreshVRAMInS3
Desabilite o suporte para auto-atualização de VRAM no S3. Com suporte a partir do Windows 10 versão 1803.
IoMmuSecureModeRequired
Indica que o suporte a isolamento e hardware IOMMU (referenciado pelo sinalizador IommuSecureModeSupported ) é necessário ou o sistema operacional não iniciará o adaptador. Com suporte a partir do Windows 10 versão 2004 (WDDM 2.7).
MapAperture2Supported
Indica que o driver dá suporte à operação de buffer de paginação DXGK_OPERATION_MAP_APERTURE_SEGMENT2, que é necessária para remapeamento de DMA IOMMU. Com suporte a partir do WDDM versão 2.9.
CrossAdapterResourceTexture
Especifica se o driver fornece suporte à camada 2 de texturização de recursos de adaptador cruzado. Um driver que indica suporte para CrossAdapterResourceTexture também deve indicar suporte para CrossAdapterResource. Com suporte a partir do WDDM versão 2.9.
CrossAdapterResourceScanout
Especifica se o driver fornece suporte à camada 3 de verificação de recursos de adaptador cruzado. Um driver que indica suporte para CrossAdapterResourceScanout também deve indicar suporte para CrossAdapterResource e CrossAdapterResourceTexture. Com suporte a partir do WDDM versão 2.9.
O suporte à camada 3 requer que o driver seja capaz de executar os recursos de inversão com suporte, declarados pelo driver em DXGK_FLIPCAPS, para recursos de adaptador cruzado das seguintes especificações mínimas:
- Tamanho do buffer primário entre adaptadores de 1920 x 1080 ou menor
- Formato de pixel de buffer de qualquer um dos seguintes formatos DisplayScanOut com suporte:
- DXGI_FORMAT_R16G16B16A16_FLOAT
- DXGI_FORMAT_R10G10B10A2_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
- DXGI_FORMAT_B8G8R8A8_UNORM
- DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
- DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
O runtime do DXGI consultará o suporte a CrossAdapterResourceScanout do driver e, se houver suporte, a pilha de apresentação deverá ficar abaixo do caminho de cópia 1. Portanto, os drivers que declaram suporte para CrossAdapterResourceScanout também são necessários para:
- Suporte DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3.
- Dê suporte a todos os DDIs relacionados à apresentação relevantes para primárias entre adaptadores das especificações mínimas acima. Alguns exemplos são pfnCreateResource, pfnCheckMultiplaneOverlaySupport e pfnPresentMultiplaneOverlay/pfnPresent1. Consulte as especificações existentes para obter os detalhes necessários, como especificação de MPO e especificação híbrida. Consulte a seção abaixo para obter mais detalhes sobre como sair do CASO.
AlwaysPoweredVRAM
Reserved
Esse membro é reservado e deve ser definido como zero. Definir esse membro como zero é equivalente a definir os 31 bits restantes (depois de definir OutOfOrderLock) do membro Value como zeros. Observe que Reservado só estará disponível se DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7.
Value
Esse valor é usado para operar sobre os membros coletivamente.
PagingNode
O índice baseado em zero do nó a ser usado para operações de paginação. Se o driver não definir o membro do campo de bits MultiEngineAware do membro SchedulingCaps da estrutura DXGK_DRIVERCAPS , o subsistema de kernel de elementos gráficos DirectX ignorará a configuração de PagingNode. Esse membro se aplica somente ao WDDM 1.x. No WDDM 2.x, PagingNode foi movido para DXGK_PHYSICALADAPTERCAPS.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Cabeçalho | d3dkmddi.h (inclua D3dkmddi.h) |