struttura DXGK_VIDMMCAPS (d3dkmddi.h)

La struttura DXGK_VIDMMCAPS identifica le funzionalità di gestione della memoria video supportate da un driver miniport di visualizzazione.

Sintassi

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;

Members

OutOfOrderLock

Specifica se il driver può bloccare le istanze di allocazione diverse dall'istanza più recente. Il driver imposta in genere questo valore per il threading DDI e il bilanciamento del carico se un thread DDI deve bloccare un buffer dei vertici che un thread dell'applicazione aveva precedentemente bloccato ed eliminato. L'impostazione di questo membro equivale all'impostazione del primo bit del membro Value a 32 bit (0x00000001).

DedicatedPagingEngine

Questo membro è riservato e deve essere impostato su zero.

PagingEngineCanSwizzle

Questo membro è riservato e deve essere impostato su zero.

SectionBackedPrimary

Specifica se il driver supporta le allocazioni primarie supportate da sezioni. Supportato a partire da Windows 8.

CrossAdapterResource

Specifica se il driver fornisce il supporto di livello 1 per la copia da e verso le risorse tra schede in un sistema< ibrido. Supportato a partire da Windows 8.1.

A partire da WDDM 2.4, DXGI abilita le attuali ottimizzazioni di presentazione ibride per lo scenario più ampio ovunque il rendering si trovi su una GPU e presenti sul monitor di un'altra GPU. Ciò è possibile solo se entrambe le GPU supportano le risorse tra schede.

Di seguito sono elencate le proprietà delle risorse tra adattatori.

  • La risorsa può essere inserita in un paging solo nel segmento di memoria GPU di apertura
  • La risorsa viene allocata come condivisa.
  • La risorsa deve essere contrassegnata come CPU Visible.
  • L'allocazione verrà creata dal sistema operativo come combinato in scrittura.
  • La risorsa ha una sola allocazione e ha il formato lineare.
  • La risorsa ha un allineamento del passo standard (128 byte). La definizione D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT viene aggiunta per l'allineamento del passo. La risorsa deve essere creata al multiplo più piccolo di questo allineamento che conterrà il contenuto della risorsa.
  • La risorsa ha un allineamento di altezza standard (4 righe). Viene aggiunto il D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT. La risorsa deve essere creata al multiplo più piccolo di questo allineamento che conterrà il contenuto della risorsa.
#define D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 128

#define D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 4
  • L'indirizzo iniziale della memoria della risorsa è allineato a un limite di pagina.
  • La risorsa potrebbe essere creata come allocazione standard dalla modalità kernel e successivamente aperta dalla messaggistica unificata.
  • La risorsa potrebbe essere creata dall'UMD.

L'allocazione tra schede può essere usata come primaria, ma il driver non otterrà informazioni, che in genere viene fornito quando viene creato il database primario

VirtualAddressingSupported

Specifica se il driver supporta l'indirizzamento della memoria virtuale. Per esprimere il supporto per l'indirizzamento della memoria virtuale GPU, il driver deve impostare i limiti VirtualAddressingSupported e GpuMmuSupported o IoMmuSupported . GpuMmuSupported e IoMmuSupported non possono essere impostati contemporaneamente. Supportato a partire da Windows 10.

GpuMmuSupported

Specifica se l'adattatore supporta il modello GpuMmu . Un adattatore non può supportare contemporaneamente i modelli GpuMmu e IoMmu su motori diversi. Per altre informazioni, vedere Modello GpuMmu . Supportato a partire da Windows 10.

IoMmuSupported

Specifica se l'adattatore supporta il modello IoMmu . Un adattatore non può supportare contemporaneamente i modelli GpuMmu e IoMmu su motori diversi. Per altre informazioni, vedere Modello IoMmu . Supportato a partire da Windows 10 (WDDM 2.0).

ReplicateGdiContent

Specifica se l'adattatore supporta la replica del contenuto GDI. Supportato a partire da Windows 10.

NonCpuVisiblePrimary

Indica che le allocazioni GDI non devono essere visibili alla CPU. Supportato a partire da Windows 10.

ParavirtualizationSupported

Il kmD host deve impostare il limite se vengono implementate tutte le DDI. Supportato a partire da Windows 10 versione 1703 (WDDM 2.2).

IoMmuSecureModeSupported

Indica che il driver supporta l'isolamento GPU basato su IOMMU. Supportato a partire da Windows 10 versione 1803 (WDDM 2.4).

DisableSelfRefreshVRAMInS3

Disabilitare il supporto per l'aggiornamento automatico VRAM in S3. Supportato a partire da Windows 10 versione 1803.

IoMmuSecureModeRequired

Indica che il supporto hardware e isolamento di IOMMU (indicato dal flag IommuSecureModeSupported ) è obbligatorio o il sistema operativo non avvierà altrimenti la scheda. Supportato a partire da Windows 10 versione 2004 (WDDM 2.7).

MapAperture2Supported

Indica che il driver supporta l'operazione del buffer di paging DXGK_OPERATION_MAP_APERTURE_SEGMENT2 , necessaria per il mapping di DMA IOMMU. Supportato a partire da WDDM versione 2.9.

CrossAdapterResourceTexture

Specifica se il driver fornisce il supporto di livello 2 per il texturing dalle risorse tra adattatori. Un driver che indica il supporto per CrossAdapterResourceTexture deve indicare anche il supporto per CrossAdapterResource. Supportato a partire da WDDM versione 2.9.

CrossAdapterResourceScanout

Specifica se il driver fornisce il supporto di livello 3 per l'analisi delle risorse tra schede. Un driver che indica il supporto per CrossAdapterResourceScanout deve indicare anche il supporto per CrossAdapterResource e CrossAdapterResourceTexture. Supportato a partire da WDDM versione 2.9.

Il supporto di livello 3 richiede che il driver sia in grado di eseguire le funzionalità di capovolgimento supportate, dichiarate dal driver in DXGK_FLIPCAPS, per le risorse tra adattatori delle specifiche minime seguenti:

  • Dimensioni del buffer primario tra adattatori pari a 1920 x 1080 o inferiori
  • Formato pixel del buffer di uno dei formati DisplayScanOut supportati seguenti:
    • 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

Il runtime DXGI eseguirà una query per il supporto CrossAdapterResourceScanout del driver e, se supportato, lo stack di presentazioni scenderà verso il basso nel percorso di copia 1. Pertanto, anche i driver che dichiarano il supporto per CrossAdapterResourceScanout sono necessari per:

  • Supporto DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3.
  • Supportare tutte le DDI correlate alla presentazione pertinenti per le primarie tra schede delle specifiche minime precedenti. Alcuni esempi sono pfnCreateResource, pfnCheckMultiplaneOverlaySupport e pfnPresentMultiplaneOverlay/pfnPresent1. Fare riferimento alle specifiche esistenti per i dettagli necessari, ad esempio la specifica MPO e la specifica ibrida. Per altri dettagli sull'uscita da CASO, vedere la sezione seguente.

AlwaysPoweredVRAM

Reserved

Questo membro è riservato e deve essere impostato su zero. L'impostazione di questo membro su zero equivale all'impostazione dei restanti 31 bit (dopo aver impostato OutOfOrderLock) del membro Value su zeri. Si noti che Reserved è disponibile solo se DXGKDDI_INTERFACE_VERSION DXGKDDI_INTERFACE_VERSION_WIN7 < .

Value

Questo valore viene usato per operare collettivamente sui membri.

PagingNode

Indice in base zero del nodo da usare per le operazioni di paging. Se il driver non imposta il membro del campo bit MultiEngineAware del membro SchedulingCaps della struttura DXGK_DRIVERCAPS , il sottosistema del kernel grafico DirectX ignora l'impostazione di PagingNode. Questo membro si applica solo a WDDM 1.x. In WDDM 2.x PagingNode è stato spostato in DXGK_PHYSICALADAPTERCAPS.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Intestazione d3dkmddi.h (include D3dkmddi.h)

Vedi anche

DXGK_DRIVERCAPS

DXGK_PHYSICALADAPTERCAPS