mercoledì, maggio 31, 2006

Opengl e Windows Vista: verso la luce.

Come noto opengl.org il 6 agosto 2005 pubblicò una notizia volta a minare il futuro della nota libreria grafica. L'articolo poi confermato da Ati, nVIDIA ed altre fonti riferiva le intenzioni di Microsoft per l'ormai imminente nascituro Windows Vista: portare OpenGL in emulazione su un sottostrato DirectX-based. I cambiamenti giungono insieme alla nuova tecnologia su cui si basa il layer grafico di windows Vista, Aeroglass. In questo modo non solo OpenGL è rallentata artificialmente fino al 50%, ma viene anche congelata alla ormai obsoleta Vanilla version 1.4, senza possibilità di aggiornamenti. La libreria cross platform, giunta ormai da tempo alla versione 2.0, è attualmente il modo più flessibile per svilupparre software portabile con funzioni di rendering sempre più avanzate. In breve permette di scrivere applicazioni facilmente ricompilabili per windows, linux, palmari, telefonini etc.. La "minaccia" ruotava attorno al fatto che da quanto trapelato Microsoft negava la possibilità anche futura di fornire informazioni per scrivere nuovi driver specifici rendendo impossibile l'interfacciamento diretto con la GPU. Evidentemente questa scelta appariva molto più legata alla diffusione delle applicazioni DirectX che a particolari motivazioni tecniche.

Poco tempo fa un Kam Vedbrat, uno sviluppatore di Windows Vista ha chiarito la questione:
OpenGL può essere usato in 3 modi:
- In primo luogo tramite MSOGL, un’implementazione Microsoft ferma ad OpenGL 1.4, che usa Direct3D
- In secondo luogo tramite i driver di Windows XP. Questi ultimi creano dei problemi con il nuovo gestore di finestre DWM (Desktop Windows Manager). Questo è uno dei motivi per cui in Vista viene di disabilitato il gestore quando un’applicazione che fa uso di OpenGL si serve di un ICD.
- Infine nel terzo modo, OpenGL potrà essere usato senza rinunciare al DWM) grazie ad API fornite da Microsoft e a driver di terze parti.

Il 23 maggio scorso, nVIDIA ha rilasciato la prima release pubblica di ICD per Windows Vista Beta 2. Pare sia una versione per prove di compatibilità e portabilità, dunque le prestazioni potrebbero a parità di hardware essere inferiori rispetto quelle di windows XP. Attualmente alcune applicazioni potrebbero non lavorare correttamente per la nuova architettura nella gestione delle finestre:
- Le applicazioni che usano sia il rendering GDI che il rendering OpenGL in una finestra unica verranno visualizzate non correttamente.
- Le applicazioni che renderizzano direttamente nel front buffer senza chiamare mai Flush() o Finish() potrebbero non mostrare i pixel sullo schermo.
- L'accelerazione OpenGL è disabilitata quando le funzioni di dualview sono attivate.
Poco male, senz'altro un inizio più che soddisfacente, è già stato chiarito che le limitazioni legate al sistema operativo saranno ovviamente corrette e le prestazioni saranno migliorate nelle future releases. Ora non resta altro che aspettare fiduciosi.