Per più di un anno Intel ha lavorato allo sviluppo del driver grafico del kernel Xe Linux come un moderno driver Direct Rendering Manager per Gen12 e grafica integrata/discreta più recente. Per l’hardware recente questo sostituisce l’utilizzo del driver del kernel i915 esistente. Gli sviluppatori Intel open-source continuano a lavorare verso il traguardo di poter inviare questo driver per il mainlining nel kernel Linux upstream.
Con il driver grafico del kernel Xe, gli ingegneri Intel coinvolti sono stati in grado di adottare un nuovo approccio progettuale rispetto al driver del kernel i915 che è stato creato organicamente negli ultimi due decenni. Con il driver Xe supportano solo Gen12 e versioni successive, quindi non devono preoccuparsi delle vecchie generazioni di hardware grafico Intel, possono concentrarsi sull’utilizzo delle moderne funzionalità del kernel e con la loro API dello spazio utente non hanno bisogno di preoccuparsi della retrocompatibilità con le limitazioni/sfide uAPI i915 esistenti.
Questa settimana gli ingegneri di Intel Linux hanno pubblicato il loro ultimo piano di unione per il driver Xe.
Al momento il driver Xe è considerato funzionante e con supporto”sperimentale”per Tiger Lake e successivi. Una volta eseguito l’upstream del driver nel kernel, il piano è di mantenere il supporto Gen12+ ancora in i915. Il driver Xe verrà attivato tramite il parametro del modulo force_probe mentre si può disabilitare allo stesso modo il caricamento del driver i915 per una determinata GPU. Quindi, per alcune versioni o per tutto il tempo necessario affinché il driver Xe si dimostri, gli utenti possono passare a Xe manualmente per aiutare a testare il supporto.
In effetti, il piano di unione rileva che per hardware Intel attualmente rilasciato, i915 potrebbe continuare a essere l’impostazione predefinita a tempo indeterminato:”Per evitare regressioni dello spazio utente, i915 continuerà a supportare tutte le piattaforme attuali che sono già fuori da questa protezione. Il supporto Xe sarà per sempre sperimentale e dipenderà dal utilizzo di force_probe per queste piattaforme.”
Tra gli obiettivi che gli sviluppatori di driver hanno prima di unire Xe c’è quello di sistemare le modifiche allo scheduler DRM, le modifiche alla mappatura degli indirizzi virtuali della GPU da upstream, DRM_VM_BIND, VM_BIND asincrono, integrazione del puntatore utente”userptr”e supporto VM_BIND, e gestire meglio i carichi di lavoro di elaborazione di lunga durata. Gli sviluppatori desiderano anche una migliore integrazione/condivisione del codice di visualizzazione con il driver i915 e l’infrastruttura devcoredump per segnalare gli stati di errore.
Contemporaneamente, gli ingegneri open source di Intel hanno aggiunto la compatibilità dei driver del kernel Xe ai loro driver Mesa, nonché il loro stack Compute-Runtime per OpenCL e Level Zero. Si spera che la compatibilità dei driver Intel ANV Vulkan e Iris Gallium3D/OpenGL con Xe sarà quadrata per Mesa 23.2 in modo che una volta che questo driver sarà effettivamente mainline, il supporto dello spazio utente sarà pronto e a posto.
Chi è interessato agli ultimi sforzi e piani relativi all’upstream del driver Xe può vedere il loro ultimo piano di unione. Speriamo di riuscire a vedere il driver Xe integrato nel kernel Linux, in forma sperimentale, entro la fine dell’anno solare.