2D GDI per Windows XP attraverso Windows 7, in dettaglio, continua

Abbiamo creato un benchmark e confrontato 15 schede grafiche per analizzare i problemi.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Windows Vista: CPU anziché GPU, e buffering anziché consegna diretta

Come spiegato nel primo articolo, Vista ha introdotto un path completamente nuovo per gestire i dati grafici nel sistema operativo. Usando la GDI, tutte le versioni di Windows (fino a XP incluso) amministravano il disegno 2D attraverso output da win32k.sys per gestire i contenuti in finestra sullo schermo.

In Vista, il DWM (dynamic window manager) si è preso questo ruolo. Di conseguenza, Vista usa solo le Direct3D per amministrare le finestre. Ogni finestra, per ogni applicazione, è stata scritta per immagazzinare texture come una texture map 3D sulla scheda video. Questa è un'evoluzione funzionale per le moderne schede grafiche, ma significa anche che la GDI non può più leggere o scrivere questi dati. In questa situazione, la catena di comunicazione sembra essersi rotta.

A questo punto, entra in gioco il doppio buffering dei contenuti in finestra di cui abbiamo scritto nella Parte 1 di questo articolo.

png

Che cosa succede esattamente? Osservate le frecce rosse nel diagramma precedente. Al posto di un driver grafico unificato (in XP è chiamato DDI Display Driver) c'è il nuovo CDD (Canonical Display Driver). Questo modulo è indipendente dalle schede video in Windows Vista.

Finché il contenuto in attesa della finestra viene memorizzato come una texture map nella RAM della scheda grafica, ogni finestra deve anche essere memorizzata in un buffer equivalente nella RAM di sistema.

Dopo che è stato convertito in una texture map 3D nella RAM della scheda video, il rendering più recente di ogni finestra viene trasformato in una bitmap nel buffer della RAM di sistema. DWM amministra completamente tutte le finestre e sposta i loro contenuti usando Direct3D. DMW, inoltre, integra dati riguardanti le porzioni di ogni finestra che devono essere rese visibili a schermo, in modo che qualsiasi regione in una finestra che venga oscurata o mostrata, possa essere ridisegnata (osservate la freccia blu nella figura precedente). In questo momento DWM copia i contenuti della RAM di sistema in quella video, effettuando il redering della finestra con Direct3D. Le applicazioni non hanno più bisogno di ridisegnare la finestra (in contrasto con il metodo di funzionamento di Windows XP).

L'approccio summenzionato disabilita effettivamente l'accelerazione hardware 2D, portando una riduzione prestazionale significativa rispetto a Windows XP. Ciò si manifesta più chiaramente con la ben documentata tendenza di Vista di trascinare la grafica 2D e consumare più RAM.