Condividi tramite


Fornire transizioni di stato senza problemi in WDDM 1.2 e versioni successive

A partire da Windows 8, diverse funzionalità consentono di ridurre al minimo o eliminare il lampeggiare e lo sfarfallio dello schermo durante il processo di avvio, durante le transizioni da stati di alimentazione inferiori e durante le transizioni verso il controllo del sistema operativo negli aggiornamenti del driver o nelle verifiche dei bug di sistema. Inoltre, il firmware di sistema nei computer Windows 8 e versioni successive deve rilevare la risoluzione nativa e la tempistica del pannello di visualizzazione integrato al momento dell'accensione e consegnare queste informazioni al sistema operativo. Windows Display Driver Model (WDDM) 1.2 e versioni successive devono supportare questo comportamento nei driver miniport di visualizzazione.

Versione minima di WDDM 1,2
Versione minima di Windows 8
Implementazione del driver—Grafica completa e solo visualizzazione Obbligatorio
Requisiti e test WHCK

System.Client.Firmware.UEFI.GOP.Display

Device.Graphics... PnpStopStartSupport

Device.Graphics... DisplayOutputControl

Transizione dal firmware al sistema operativo

Tutti i sistemi Windows 8 destinati agli SKU client devono supportare il protocollo UEFI (Unified Extensible Firmware Interface) Graphics Output Protocol (GOP). Durante la fase di avvio, GOP imposta la tempistica nativa e la risoluzione nativa nel pannello di visualizzazione integrato del sistema. Quando il sistema operativo è pronto per assumere la proprietà dello schermo, il GOP trasferisce un frame buffer che può essere utilizzato per visualizzare sullo schermo. In questo momento il sistema operativo non tenta di reimpostare i tempi di visualizzazione o la risoluzione, ma usa semplicemente il buffer dei fotogrammi fornito, eliminando così un flash dello schermo.

Requisiti di certificazione hardware

Per informazioni sui requisiti che i dispositivi hardware devono soddisfare quando implementano questa funzionalità, vedere la documentazione WHCK pertinente su System.Client.Firmware.UEFI.GOP.Display.

Transizione dal sistema operativo al driver

Quando il sistema operativo passa la proprietà dello schermo al driver WDDM dopo un avvio, avvia un avvio plug and play (PnP) del dispositivo chiamando la funzione DxgkDdiStartDevice . In alternativa, dopo la ripresa dall'ibernazione il sistema operativo avvia il dispositivo chiamando la funzione DxgkDdiSetPowerState con il parametro DeviceUid impostato su DISPLAY_ADAPTER_HW_ID (definito in Video.h). In questo momento lo schermo viene in genere vuoto (viene visualizzato come nero) mentre il driver di grafica WDDM assume il controllo.

Il driver può chiamare la funzione DxgkCbAcquirePostDisplayOwnership (disponibile a partire da Windows 8) per eseguire una query sul sistema operativo per ottenere lo stato esatto del buffer dei fotogrammi corrente e la modalità di visualizzazione impostata dal firmware e dal caricatore di avvio. Con le informazioni nella struttura DXGK_DISPLAY_INFORMATION recuperata da questa funzione, è possibile che il driver mantenga attivo il controller di visualizzazione e non causi una nuova sincronizzazione del monitor. Poiché il driver include anche informazioni dettagliate sul frame buffer, è possibile ottenere una transizione più fluida.

Altre informazioni sull'avvio PnP sono disponibili in Plug and Play (PnP) in WDDM 1.2 e versioni successive.

Transizione dal driver al sistema operativo

Il sistema operativo può richiedere un arresto PnP del dispositivo di visualizzazione chiamando la funzione DxgkDdiStopDevice . In questo momento lo schermo viene in genere vuoto (viene visualizzato come nero) mentre il sistema operativo assume il controllo dello schermo. Il sistema operativo può chiamare la funzione DxgkDdiStopDeviceAndReleasePostDisplayOwnership (disponibile a partire da Windows 8) che richiede al driver WDDM di configurare un buffer di frame configurato per il trasferimento su schermo. Il sistema operativo può effettuare il rendering in questo buffer di frame mentre ha il controllo dello schermo, rendendo possibile eseguire una transizione senza problemi.

Altre informazioni sull'arresto PnP, inclusi gli scenari aggiuntivi, sono disponibili in Plug and Play (PnP) in WDDM 1.2 e versioni successive.

Requisiti di certificazione hardware

Per ulteriori informazioni su questo handoff, consultare la documentazione pertinente di WHCK su Device.Graphics...PnpStopStartSupport.

Transizione al sistema operativo senza disabilitare il driver

A volte il sistema operativo riscontra un errore irreversibile e deve emettere un controllo dei bug di sistema. In questo caso, ci sono alcuni casi in cui il sistema operativo deve assumere il controllo dello schermo, ma non ha la possibilità di arrestare il driver WDDM. I driver WDDM 1.2 e versioni successive sono necessari per implementare le funzioni DxgkDdiSystemDisplayEnable e DxgkDdiSystemDisplayWrite , che consentono al sistema operativo di passare facilmente a uno stato in cui può visualizzare la schermata di errore mantenendo l'interfaccia grafica a una risoluzione elevata e una profondità di colore. Questa transizione elimina un'esperienza utente sgradevole.

Requisiti di certificazione hardware

Per informazioni sui requisiti che i dispositivi hardware devono soddisfare quando implementano questa funzionalità, vedere la documentazione WHCK pertinente su Device.Graphics... DisplayOutputControl.

Modifiche alla modalità firmware di Windows 8

Queste sono le modifiche apportate alla modalità di visualizzazione del firmware prima che il controllo venga trasferito al sistema operativo.

Driver WDDM 1.2 e versioni successive (DXGKDDI_INTERFACE_VERSION>= DXGKDDI_INTERFACE_VERSION_WIN8)
Per eliminare ulteriormente i flash di visualizzazione, a partire da Windows 8, le richieste di modifica della modalità Int10 non vengono chiamate sul firmware per i driver WDDM 1.2 e versioni successive.

Inoltre, se si verifica una modifica della modalità mentre il monitor è spento, il sistema operativo chiama la funzione DxgkDdiCommitVidPn una sola volta, con il parametro pCommitVidPnArg impostato sul valore che avrebbe se il monitor fosse acceso e il membro PathPoweredOff di pCommitVidPnArg->Flags impostato su TRUE.

Driver WDDM 1.0 e 1.1 (DXGKDDI_INTERFACE_VERSION<DXGKDDI_INTERFACE_VERSION_WIN8)
Per i driver WDDM 1.0 e 1.1 in esecuzione in Windows 8, durante il processo di avvio o quando si riprende dall'ibernazione, vengono effettuate chiamate alla modalità Int10 VGA 0x12 che impostano la risoluzione dello schermo sulla risoluzione nativa del monitor. Prima di Windows 8, una chiamata alla modalità VGA Int10 0x12 impostava la risoluzione dello schermo a 640 x 480 pixel, a 16 bit per pixel, senza un cursore lampeggiante, per visualizzare l'immagine della schermata iniziale del sistema operativo.

Tuttavia, per i driver WDDM 1.0 e 1.1 che indicano che non supportano la modalità ad alta risoluzione, a partire da Windows 8 un avvio in modalità VGA 0x12 imposta la risoluzione dello schermo su 640 x 480 pixel, a 16 bit per pixel, senza cursore lampeggiante. Quando il sistema riprende dall'ibernazione, la risoluzione dello schermo verrà comunque impostata sulla risoluzione nativa del monitor.

Inoltre, se si verifica una modifica della modalità mentre il monitor è spento, il sistema operativo chiama la funzione DxgkDdiCommitVidPn come descritto in precedenza per i driver WDDM 1.2, e inoltre chiama DxgkDdiCommitVidPn una seconda volta con una rete di visualizzazione vuota (VidPN) in pCommitVidPnArg->hFunctionalVidPn, e nessuno dei valori flag impostati in pCommitVidPnArg->Flags.

Questa sequenza di chiamata in due parti si verifica anche quando il sistema riprende dopo l'ibernazione e la generazione della sincronizzazione del monitor deve rimanere abilitata. In questo caso il driver non deve eseguire alcuna azione quando riceve la seconda chiamata a DxgkDdiCommitVidPn.