DXGK_VIDMMCAPS estrutura (d3dkmddi.h)
A estrutura DXGK_VIDMMCAPS identifica os recursos de gerenciamento de memória de vídeo compatíveis com um KMD (driver de miniporto de exibição) no modo kernel.
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.
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 . Com suporte a partir do Windows 8.1.
A partir do WDDM 2.4, o DXGI permite as otimizações atuais de apresentação híbrida 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 deem suporte a recursos de adaptador cruzado.
As propriedades de recurso do adaptador cruzado estão listadas abaixo.
- O recurso pode ser paginado somente no segmento de memória de GPU de abertura
- O recurso é alocado como compartilhado.
- O recurso deve ser marcado como CPU Visible.
- 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 é 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 do adaptador cruzado 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 de VirtualAddressingSupported e gpuMmuSupported ou IoMmuSupported. GpuMmuSupported e IoMmuSupported não podem ser definidas ao mesmo tempo. Com suporte a partir do Windows 10 (WDDM 2.0).
GpuMmuSupported
Especifica se o adaptador dá suporte ao modelo GpuMmu. Um adaptador não pode dar suporte ao GpuMmu e ao IoMmu modelos em diferentes mecanismos ao mesmo tempo. Consulte de modelo gpuMmu para obter mais informações. Com suporte a partir do Windows 10 (WDDM 2.0).
IoMmuSupported
Especifica se o adaptador dá suporte ao modelo de IoMmu. Um adaptador não pode dar suporte ao GpuMmu e ao IoMmu modelos em diferentes mecanismos ao mesmo tempo. Consulte de modelo do 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 (WDDM 2.0).
NonCpuVisiblePrimary
Indica que as alocações de GDI não são necessárias para serem visíveis à CPU. Com suporte a partir do Windows 10 (WDDM 2.0).
ParavirtualizationSupported
Indica que o KMD dá suporte de paravirtualização de GPU. O KMD do host precisará definir o limite se todos os DDIs forem implementados. Introduzido no Windows 10 versão 1703 (WDDM 2.2).
IoMmuSecureModeSupported
Indica que o driver dá suporte isolamento de GPU baseado em IOMMU. 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 de isolamento e hardware IOMMU (referenciado pelo sinalizador de 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 de remapeamento do IOMMU DMA. 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 do adaptador cruzado 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 DXGI consultará o suporte crossAdapterResourceScanout do driver e, se houver suporte, a pilha de apresentação deverá seguir o 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 as 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 de valor como zeros. Observe que Reservada estará disponível somente 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 multiengineAware membro de campo de bit do membro SchedulingCaps da estrutura DXGK_DRIVERCAPS, o subsistema de kernel de elementos gráficos DirectX ignorará a configuração de PagingNode. Esse membro aplica-se somente ao WDDM 1.x. No WDDM 2.x, PagingNode foi movido para DXGK_PHYSICALADAPTERCAPS.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Vista (WDDM 1.0) |
cabeçalho | d3dkmddi.h (inclua D3dkmddi.h) |