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) |