Compartilhar via


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)

Consulte também

DXGK_DRIVERCAPS

DXGK_PHYSICALADAPTERCAPS