Una notizia della quale in questi giorni si è parlato poco e che ha invece una portata storica è l’annuncio di NVidia che ha deciso di pubblicare il codice sorgente dei driver delle sue schede video per Linux.
Uno dei motivi che hanno frenato lo sviluppo di un ampio ventaglio di applicazioni su Linux è lo scarso supporto dei driver NVidia.
Da qualche giorno, invece, chiunque può esaminare il codice di NVidia e gli sviluppatori possono inviare correzioni e nuove funzionalità per migliorare i driver: Canonical, SUSE e Red Hat hanno accolto con grande entusiasmo la decisione della società di Jen-Hsun Huang che finalmente rende open source i suoi driver grafici per Linux.
Tanti di voi si ricorderanno della “delicata” uscita di Linus Torvalds che senza mezze misure, a giugno 2012, si riferì a NVidia come alla “peggiore azienda con cui la comunità Linux ha avuto a che fare“.
Da quelle dichiarazioni esplosive molte cose sono cambiate, fortunatamente in meglio. Finora NVidia si era limitata a rilasciare ufficialmente un driver Linux proprietario ovvero un pacchetto di file binari che gli utenti del pinguino possono utilizzare un po’ come accade in ambiente Windows.
Piuttosto noto è il driver open source Nouveau che ricalca gran parte delle funzionalità relative al rendering 3D ma che manca ad esempio di alcune caratteristiche come il supporto per il doppio monitor e per G-SYNC.
Si tratta del risultato di un’attività di reverse engineering sui driver ufficiali svolta dalla comunità: NVidia ha “tollerato” il progetto per poi offrire qualche contributo minimo.
Cosa piuttosto penalizzante, i driver Nouveau non permettono di modificare le performance della GPU: le prestazioni del driver open source non erano quindi paragonabili con quelle ottenibili usando la versione proprietaria.
Il nuovo driver open source NVidia, rilasciato sotto licenza GPL/MIT, è per ora disponibile per le schede video basate sulle architetture Turing e Ampere rappresentando un importante balzo in avanti rispetto al precedente “stato dell’arte”.
NVidia descrive il nuovo driver open source come “production-ready“: ciò significa che può essere utilizzato anche nei data center per le attività più disparate.
Cadono però tutte le limitazioni: il driver da poco svelato offre il supporto multi-monitor, il reclocking, accesso alle funzionalità di ray tracing con le librerie Vulkan, G-SYNC e così via.
Sul versante desktop si tratta di una versione alpha quindi ancora non sufficientemente matura e affidabile. Inoltre, quanto realizzato finora non è ancora integrabile direttamente a livello di kernel Linux.
Ad ogni modo NVidia garantisce il supporto a 64 bit sia sulla piattaforma x86 Intel-AMD che su ARM.
La strada è però tracciata e a questo punto, grazie al supporto della comunità, vedremo presto maturare l’integrazione e un supporto dell’offerta NVidia (a partire da RTX 20 a salire) nei sistemi operativi Linux.
Hector Martin, il principale sviluppatore di Asahi Linux, ha comunque invitato a non farsi sopraffare da facili entusiasmi: secondo Martin gran parte del codice grafico più importante non sarebbe davvero open source essendo spostato sulle schede grafiche a livello di firmware, un po’ come fa Intel con il suo Management Engine.
Il motivo potrebbe avere a che fare con i molteplici brevetti e accordi di licenza che legano NVidia e che avrebbero indotto l’azienda a optare per una “mezza misura”.
Ogni nuova versione del driver open source di NVidia, inoltre, sarà un’istantanea generata da una base di codice condivisa quindi le modifiche potrebbero non riflettersi come “commit Git” separati nel repository GitHub. Cosa significa? Che sarà piuttosto complesso per gli sviluppatori al di fuori di NVidia tenere traccia delle modifiche applicate e approfondire eventuali problemi via via rilevati.