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)

Confira também

DXGK_DRIVERCAPS

DXGK_PHYSICALADAPTERCAPS