Condividi tramite


DXGK_VIDSCHCAPS struttura (d3dkmddi.h)

La struttura DXGK_VIDSCHCAPS include flag di campo bit che identificano le funzionalità di pianificazione della GPU che possono supportare un driver miniport in modalità kernel.The DXGK_VIDSCHCAPS structure has bit-field flags thatidentifi the GPU's scheduling capabilities that a kernel-mode display miniport driver (KMD) can supportato.

Sintassi

typedef struct _DXGK_VIDSCHCAPS {
  union {
    struct {
      UINT MultiEngineAware : 1;
      UINT VSyncPowerSaveAware : 1;
      UINT PreemptionAware : 1;
      UINT NoDmaPatching : 1;
      UINT CancelCommandAware : 1;
      UINT No64BitAtomics : 1;
      UINT LowIrqlPreemptCommand : 1;
      UINT HwQueuePacketCap : 4;
      UINT NativeGpuFence : 1;
      UINT OptimizedNativeFenceSignaledInterrupt : 1;
#if ...
      UINT Reserved : 19;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 25;
#elif
      UINT Reserved : 27;
#else
      UINT Reserved : 30;
#endif
    };
    UINT Value;
  };
} DXGK_VIDSCHCAPS;

Members

MultiEngineAware

Valore UINT che specifica se il driver supporta la creazione e la distruzione di un contesto di dispositivo (tramite le funzioni DxgkDdiCreateContext e DxgkDdiDestroyContext ) e l'uso di un contesto di dispositivo (tramite le funzioni DxgkDdiPresent e DxgkDdiRender ). Se il driver non supporta la creazione del contesto, per ogni chiamata al driver che passerebbe un handle a un contesto, il sottosistema kernel della grafica Microsoft DirectX sostituisce l'handle al contesto con un handle al dispositivo.

VSyncPowerSaveAware

Valore UINT che specifica se il driver supporta la funzionalità di risparmio energia di sincronizzazione verticale.

Se VSyncPowerSaveAware è impostato su 1 (TRUE), il sistema operativo può risparmiare energia disabilitando e abilitando l'interruzione di sincronizzazione verticale che si verifica dall'utilizzo di alcune applicazioni. Se VSyncPowerSaveAware è impostato su zero (FALSE), il sistema operativo non disabilita mai l'interruzione di sincronizzazione verticale per le applicazioni che potrebbero causare l'interruzione di sincronizzazione verticale. Supportato a partire da Windows Server 2008 e Windows Vista con SP1.

PreemptionAware

Valore UINT che specifica se il driver supporta il criterio di preemption della GPU di Windows 8 e versioni successive di Windows. Con questo criterio, il sistema operativo genera sempre richieste di precedenza alla GPU prima di avviare il processo **Rilevamento timeout e ripristino (TDR). Supportato a partire da Windows 8.

Se PreemptionAware è impostato su 1 (TRUE), il driver supporta il criterio di preemption di Windows 8 e versioni successive di Windows. Si noti che se PreemptionAware è impostato su 1, il membro MultiEngineAware deve essere impostato anche su un valore pari a 1. Se PreemptionAware è impostato su 1, ma MultiEngineAware è impostato su zero, il sistema operativo arresterà il processo di inizializzazione del driver e restituirà un codice di errore.

Se PreemptionAware è impostato su zero (FALSE), il driver supporta i criteri di preemption di Windows 7. Con questo criterio, il sistema operativo potrebbe non inviare richieste di preemption mentre le operazioni a esecuzione prolungata potenzialmente vengono eseguite sulla GPU. Di conseguenza, queste richieste GPU non vengono precedute prima dell'avvio del processo TDR. Questo può causare la reimpostazione ripetuta del processo TDR che potrebbe causare un errore di arresto del sistema.

NoDmaPatching

Valore UINT che specifica se il driver disabilita il rilevamento delle perdite per i buffer DMA suddivisi in più parti. Questo rilevamento viene eseguito dopo che la funzione DxgkDdiPatch del driver viene chiamata per assegnare, o patch, indirizzi fisici a ogni parte del buffer DMA. Supportato a partire da Windows 8.

Visualizzare i dispositivi che supportano gli indirizzi virtuali possono riprogrammare un indirizzo virtuale in una nuova posizione di memoria video senza dover applicare patch al valore dell'indirizzo del buffer DMA. Per questi tipi di dispositivi di visualizzazione, il driver deve impostare NoDmaPatching su 1.

Se NoDmaPatching è impostato su 1 (TRUE), il driver disabilita il rilevamento delle perdite e il comportamento della suddivisione del buffer DMA è uguale a quello di Windows 7. Si noti che quando NoDmaPatching è impostato su 1, i membri PreemptionAware e MultiEngineAware devono essere impostati anche su 1. Se NoDmaPatching è impostato su 1, ma PreemptionAware o MultiEngineAware è impostato su zero, il sistema operativo arresterà il processo di inizializzazione del driver e restituirà un codice di errore.

Se NoDmaPatching è impostato su 0 (FALSE), il driver abilita il rilevamento delle perdite per gli indirizzi del buffer DMA con patch. Il sistema operativo esegue il rilevamento delle perdite prima di chiamare la funzione DxgkDdiPatch del driver.

CancelCommandAware

Valore UINT che specifica se il driver supporta la pulizia delle risorse interne (tramite la funzione DxgkDdiCancelCommand ) dopo la rimozione di un comando dalla coda hardware. Supportato a partire da Windows 8.

Se CancelCommandAware è impostato su 1 (TRUE), il driver supporta la pulizia delle risorse associate a un pacchetto DMA annullato. Si noti che quando CancelCommandAware è impostato su 1, il membro MultiEngineAware deve essere impostato anche su 1. Se CancelCommandAware è impostato su 1, ma MultiEngineAware è impostato su zero, il sistema operativo restituisce un codice di errore.

Se CancelCommandAware è impostato su zero (FALSE), il driver non supporta la pulizia delle risorse.

No64BitAtomics

Se No64BitAtomics è impostato su 1 (TRUE), il driver indica che la GPU è in grado di aggiornare solo i valori a 32 bit in modo atomico. In questo caso, il sistema operativo gestirà automaticamente il caso di wrapping del recinto, tuttavia verrà eseguita una restrizione che i valori di attesa e segnale in sospeso non possono essere più di UINT_MAX/2 a parte dall'ultimo valore di recinzione segnalato. Supportato a partire da Windows 10.

Se No64BitAtomics è impostato su zero (FALSE), il driver indica che la GPU è in grado di aggiornare i valori a 64 bit in modo atomico come visibile dalla CPU.

LowIrqlPreemptCommand

HwQueuePacketCap

Numero massimo di pacchetti DMA consentiti per la coda a un nodo.

NativeGpuFence

Se il sistema operativo ha abilitato la funzionalità di DXGK_FEATURE_NATIVE_FENCE , il driver può dichiarare il supporto per la funzionalità di recinzione GPU nativa durante l'inizializzazione della scheda impostando il bit NativeGpuFence su 1. Questa funzionalità viene esposta alla modalità utente tramite un bit corrispondente D3DKMT_WDDM_3_1_CAPS::NativeGpuFenceSupported . Per altre informazioni, vedere Oggetti di recinzione GPU nativa. Disponibile a partire da Windows 11, versione 22H2 (WDDM 3.1).

OptimizedNativeFenceSignaledInterrupt

Il driver imposta questo valore TRUE se, in un interruzione segnalato, la GPU può specificare in DXGKARGCB_NOTIFY_INTERRUPT_DATA::NativeFenceSignaled solo l'handle KMD dell'HWQueue in esecuzione. Per altre informazioni, vedere Oggetti di recinzione GPU nativa. Disponibile a partire da Windows 11, versione 22H2 (WDDM 3.1).

Reserved

Questo membro è riservato e deve essere impostato su zero.

Value

Un modo alternativo per accedere ai flag di campo bit nell'unione.

Requisiti

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

Vedi anche

DXGK_DRIVERCAPS

DxgkDdiCancelCommand

DxgkDdiCreateContext

DxgkDdiDestroyContext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender