Mentre l’inizio del Nouveau appena parlato ad atterrare sul supporto open source della GeForce RTX 30″Ampere”è entusiasmante, come accennato, ci sono ancora ostacoli da superare per avere buone prestazioni dei driver NVIDIA open source sulle moderne GPU. Una notizia altrettanto entusiasmante è che Nouveau ha iniziato ad adattare parte del proprio codice in una libreria autonoma in modo che possa essere utilizzata in futuro da altri nuovi driver.
Negli ultimi giorni sono iniziati i lavori per ristrutturare il codice del driver Nouveau Mesa attorno alla generazione del codice in modo che possa vivere in una libreria autonoma.
Questo è semplicemente riassunto in questo momento da David Airlie di Red Hat come:”Questo sposta semplicemente la build del codegen in una libreria separata, questo è solo un lavoro di preparazione per un futuro in cui un altro driver vuole riutilizzare questo codice.questo non è perfetto per collegarsi a un driver vulkan, ma farlo richiede un intervento chirurgico più approfondito.”
Fondamentalmente questo sforzo attuale sta spostando la generazione del codice del driver in una libreria autonoma all’interno di Mesa in modo che possa essere facilmente riutilizzata da altro codice futuro al di fuori di Nouveau Gallium3D. Tra gli usi più probabili con questa libreria standalone ci sono:
-Lavorare su un driver Nouveau Vulkan condividendo la generazione del codice del compilatore shader tra i driver… Oltre alle prestazioni, la mancanza di un driver NVIDIA Vulkan open source è stata una delle i grandi punti dolenti per lo sforzo Nouveau nel 2022 con la maggior parte dei giochi Linux in modo nativo o tramite Steam Play in grado di utilizzare l’API Vulkan.
-Al lavoro su un nuovo driver Mesa per utilizzare il driver del kernel open source di NVIDIA di recente. Anche questo è molto probabile. Fondamentalmente con tutte le interfacce del kernel modificate quando si confronta il driver Nouveau DRM/KMS con il nuovo driver del kernel di NVIDIA su cui hanno lavorato, potrebbe essere più semplice iniziare da una lavagna più pulita/trasformare il codice del driver Nouveau in un nuovo driver separato che esplicitamente prende di mira quel nuovo driver del kernel. Questo nuovo driver sarebbe anche in grado di concentrarsi solo sulle GPU Turing più recenti e oltre supportate da quel driver del kernel ed eliminare tutto il supporto vecchio/legacy e altri cruft che si sono accumulati all’interno del codice Nouveau Mesa nel corso degli anni.
O molto probabilmente, entrambi gli scenari.
Come indicato nei precedenti articoli sull’open source di NVIDIA, se NVIDIA vuole inserire il suo nuovo driver del kernel open source nel kernel Linux a monte, avrà bisogno di un driver dello spazio utente open source che esercita tutte le interfacce del kernel esposte… Poiché è improbabile che NVIDIA crei l’open source dei propri driver closed-source OpenGL o Vulkan, tramite gli ingegneri NVIDIA e i loro partner Red Hat dovrebbero trovare l’utilizzo del driver Mesa di questo nuovo driver del kernel–o adattando il loro codice Nouveau Gallium3D esistente per supportare quel driver del kernel o, a giudicare da questa ristrutturazione del codice Mesa, potrebbe presentarsi sotto forma di un nuovo driver Mesa.
In ogni caso la modifica in attesa per spostare Nouveau’s la generazione di codice in una libreria standalone è solo un piccolo passo iniziale dello sforzo molto più grande di portare qualsiasi nuovo driver NVIDIA open source all’interno di Mesa. Allo stato attuale, quel codice in sospeso non ha un impatto immediato sugli utenti finali. Almeno sta succedendo e Red Hat continua a collaborare con NVIDIA in questo sforzo pluriennale di driver open source.
Nel frattempo, quando si tratta del driver del kernel DRM/KMS a monte di Nouveau, non c’è stato alcun lavoro importante su cui riferire negli ultimi tempi. Molto probabilmente vedremo quel driver ristagnare ulteriormente e rimanere in circolazione per coloro che utilizzano GPU pre-Turing che desiderano utilizzare il driver open source… Ricordiamo però che questo driver è davvero pratico e performante solo per GeForce GTX 600/700 GPU”Kepler”e hardware GTX 750″Maxwell1″in cui è possibile ottenere il re-clocking per raggiungere gli stati di prestazioni più elevati. Gli ingegneri di Red Hat sono i principali contributori al driver del kernel Nouveau negli ultimi anni e se concentrano tutte le loro risorse su questo moderno driver del kernel open-source NVIDIA, non aspettatevi che si verifichino molte attività di codice future per quell’open-source driver del kernel di origine, decodificato.
Rimani sintonizzato su Phoronix mentre questo moderno sforzo di driver open source NVIDIA si evolve: è probabile che ci vorranno ancora alcuni mesi prima che il driver del kernel open source NVIDIA possa essere un candidato per il mainlining nel kernel.