Negli ultimi anni il mondo del gaming su Linux ha ricevuto un notevole impulso grazie a Valve, tuttavia le prestazioni garantite non sarebbero ancora paragonabili a quelle che si ottengono sulle piattaforme concorrenti. Ciò dipende dalla qualità dei driver sviluppati dalle varie case produttrici di schede video ma, in parte, anche da come le distribuzioni gestiscono i titoli; bisognerebbe dunque chiamare in causa le OpenGL/GLX e Xorg. Ad approfondire questa tematica è stato di recente il developer di KDE Martin Gräßlin.
A suo parere il problema più rilevante nel rapporto tra Linux e gaming riguarderebbe il compositor, quel componente dell'interfaccia che gestisce la posizione delle finestre. Per il developer nel sistema del Pinguino i giochi e i programmi non posso accedere in modo diretto e semplice alla GPU, questo a causa di Xorg che renderebbe il tutto meno facile da implementare e gestire per gli sviluppatori dei videogames.
In sostanza, su altre piattaforme si potrebbe essere sicuri che tutte le risorse di una GPU vengano sfruttate dal gioco, mentre su Linux questo non sembrerebbe essere possibile. Per Gräßlin con Xorg i giochi dovrebbero affrontare i seguenti passaggi per essere visualizzati dall'utente:
Game renders through OpenGL/GLX> X-Server notifies Compositor through XDamage extension > Compositor schedules a repaint for changed area > Compositor uses the XComposite extension to get a pixmap for the Game window > Compositor binds pixmap to an OpenGL texture > Compositor renders the texture using OpenGL/GLX to the composite overlay window > X server presents the rendered image from the Compositor through kernel mode settings.
I vari passaggi previsti da Xorg e il compositor creerebbero dei grossi ritardi nelle richieste di risorse con dei rallentamenti evidenti e un impatto sul vsync e sulle performance. Esisterebbero poi dei workaround che però non risolverebbero il problema di base ovvero la struttura di Xorg.
"In my opinion this is the wrong solution to the problem, because the Compositor is still running, it still gets damage events (from possibly other windows) and might start to composite the scene at any time again (e.g. a notification pops up as a override-redirect window)."
Il developer avrebbe adottato una soluzione più drastica su Kwin/Plasma, il progetto di cui si occupa principalmente, cioè bloccare il compositing. Un workaround studiato in modo specifico per i videogiochi ma non è adatto per altri utilizzi, infatti questa opzione è normalmente disattivata su Plasma. La situazione nel futuro display server di Linux, Wayland, sembrerebbe essere invece più rosea per via del numero inferiore di passaggi:
Game renders through OpenGL/EGL > Compositor gets notified through wl_surface damage > Compositor directly presents the wl_buffer through KMS as it knows there is nothing else to see
Gräßlin starebbe lavorando in modo che anche Kwin diventi pienamente compatibile con questa procedura. Tuttavia l'ambiente ideale dovrebbe essere un sistema simile a quello presente nella console di Sony, questo perché sulle distribuzioni sono sempre attivi programmi che richiedono risorse in condivisione alla GPU, non permettendo ai giochi di sfruttare al massimo la scheda video dell'utente.
Cosa è possibile fare per cambiare l'attuale stato di cose? Probabilmente bisognerebbe cambiare l'approccio del gaming su Linux, rimuovendo completamente il windowing system. I giochi dovrebbero poter dialogare direttamente con il kernel mode settings e con libinput. Rimuovendo tutto ciò che c'è tra la GPU e il videogioco si potrebbe ottenere un'esperienza utente decisamente migliore sia per il videogiocatore che per gli sviluppatori, un po' come già accade con le varie console. In questo modo il gioco avrebbe il pieno controllo del rendering e della potenza della GPU.
La soluzione pensata dallo sviluppare influirebbe però sulla la funzione Alt+Tab e comporterebbe delle modifiche su Wayland. Ma si tratta di qualcosa che secondo Gräßlin è possibile fare, non senza qualche difficoltà, ottenendo ambienti di gioco molto simili alle console casalinghe.