Aumentare gli FPS su Linux: la guida definitiva

Se sei atterrato qui perché un gioco ti rema contro e non sai se il colpevole è il driver, Proton o il tuo Mini PC, fermati un attimo: nella stragrande maggioranza dei casi il problema non è il gioco, è che Linux di default non sa che stai giocando. Il sistema resta tarato su un profilo energetico pensato per scrivere email, non per spremere ogni frame dalla tua GPU. La buona notizia è che sistemarlo richiede pochi strumenti, tutti gratuiti, e li uso ogni giorno sui miei Mini PC prima ancora di aprire Steam.

Questa non è una lista di trucchetti raccattati in giro. È l’ordine esatto in cui applico queste ottimizzazioni quando configuro un Mini PC nuovo, dal più semplice al più tecnico, con quello che guadagni davvero e quello che rischi se esageri.

GameMode: il primo interruttore da girare

GameMode è un demone scritto da Feral Interactive che dice al kernel una cosa sola: ora si gioca, dammi tutto quello che hai. Concretamente sposta il governor della CPU su performance, disattiva le funzioni di risparmio energetico che introducono latenza (il throttling P-state su AMD, i limiti Turbo Boost su Intel), alza la priorità I/O del processo di gioco e spegne temporaneamente il compositor.

Si installa con un comando solo, il nome del pacchetto cambia leggermente a seconda della distro:

sudo apt install gamemode lib32-gamemode        # Debian/Ubuntu
sudo dnf install gamemode lib32-gamemode        # Fedora/Nobara
sudo pacman -S gamemode lib32-gamemode          # Arch/CachyOS

Un passaggio che quasi tutte le guide si dimenticano di menzionare: devi aggiungerti al gruppo gamemode, altrimenti il demone non ha i permessi per cambiare il governor o la priorità dei processi. Senza quel passaggio, installi GameMode e non succede letteralmente nulla. Il comando è:

sudo usermod -aG gamemode $USER

Una nota per chi usa CachyOS: probabilmente non ti serve nemmeno installare GameMode. Il sistema include già game-performance, uno script proprio di CachyOS che si appoggia a power-profiles-daemon per passare automaticamente in modalità performance quando avvii un gioco, e torna al profilo precedente appena lo chiudi. Se lanci i giochi normalmente da Steam su CachyOS, è molto probabile che tu lo stia già usando senza accorgertene.

Se vuoi comunque GameMode vero e proprio, magari perché una guida o un gioco specifico lo richiede esplicitamente, installalo pure con sudo pacman -S gamemode lib32-gamemode, ma tieni presente un dettaglio che nessuna guida generica racconta: CachyOS include di default ananicy-cpp, un altro demone che gestisce la priorità dei processi, e i due possono entrare in conflitto perché entrambi provano a modificare la niceness dello stesso processo. Se attivi GameMode, fermalo prima con:

sudo systemctl stop ananicy-cpp

Essendo CachyOS una rolling release, questo comportamento può cambiare da un aggiornamento all’altro. Verifica sempre con pacman -Qs gamemode se il pacchetto è già presente sul tuo sistema prima di seguire i passaggi da zero.

Su Steam lo attivi mettendo nelle opzioni di avvio del gioco:

gamemoderun %command%

Su Lutris vai in Configura → Opzioni di sistema e trovi lo switch diretto per attivare Feral GameMode, niente da scrivere a mano. Per sapere se sta davvero lavorando, non fidarti a occhio: lancia gamemoded -s da terminale mentre il gioco è aperto e ti conferma se è attivo.

MangoHud: prima misuri, poi ottimizzi

Qui c’è un errore che vedo fare spesso: la gente applica ottimizzazioni a caso senza mai controllare se stanno davvero facendo qualcosa. MangoHud è l’overlay che ti mostra FPS, frame time, temperature CPU e GPU direttamente sullo schermo, in tempo reale, mentre giochi. È l’equivalente Linux di MSI Afterburner con RivaTuner, che su questo sistema semplicemente non esiste.

Installazione identica a GameMode, stesso schema di pacchetti (mangohud più lib32-mangohud per i giochi a 32 bit, ancora comuni tra i titoli più vecchi). Su Steam la combinazione che uso di default nelle opzioni di avvio è:

gamemoderun mangohud %command%

Su Lutris e Heroic Games Launcher trovi entrambi una casella da spuntare nelle impostazioni del gioco, niente configurazione manuale necessaria per iniziare. Se poi vuoi personalizzare cosa mostrare a schermo senza editare file di testo a mano, GOverlay ti dà un’interfaccia grafica sopra la configurazione di MangoHud.

Il trucco che uso davvero per capire se un’ottimizzazione funziona o è solo placebo: premi F2 durante il gioco per avviare una registrazione, gioca la stessa scena per un minuto o due, premi di nuovo F2 per fermarla. Il file CSV finisce automaticamente in ~/MangoHud/. Cambi una variabile alla volta, ripeti il test, confronti i numeri. È lo stesso metodo che usano i siti di benchmark seri, e ti evita di convincerti che un tweak funziona solo perché “ti sembra” più fluido.

Quando il problema non sono i frame ma lo stutter

A volte il contatore segna 60 FPS ma il gioco singhiozza a intervalli. Sono i micro-scatti da compilazione degli shader, e non li risolvi con GameMode o col profilo performance, perché non è un problema di potenza: è il sistema che compila gli shader mentre giochi invece che prima. La mossa più semplice e sicura è tenere attivo il pre-caching degli shader di Steam, da Impostazioni → Download: così Steam scarica gli shader già compilati prima che tu avvii il gioco, e gran parte dei singhiozzi sparisce da sola.

Se lo stutter resiste, in particolare su schede AMD dove il meccanismo integrato di Proton dà ancora qualche grattacapo, la strada giusta non è patchare a mano vecchie soluzioni tipo DXVK async, ormai superate, ma passare a una build di Proton che i fix li integra già: GE-Proton o Proton-CachyOS. Le installi in un attimo con ProtonUp-Qt e le forzi dal menu Compatibilità del singolo gioco. 👉 Leggi qui: ProtonDB: la guida pratica per il gaming Linux per il passaggio esatto su come cambiare versione di Proton su un titolo specifico.

Il profilo energetico

Prima ancora di GameMode, c’è un livello più a monte che su un Mini PC pesa più che su un desktop: il profilo di alimentazione del sistema. Su molte distro, soprattutto quelle non pensate per il gaming, il default è un profilo bilanciato o addirittura risparmio energetico, pensato per consumare poco quando non serve potenza.

Su KDE Plasma trovi il selettore nella system tray, su GNOME puoi controllarlo da terminale con powerprofilesctl set performance. Attivarlo manualmente prima di una sessione di gioco su un Mini PC con APU può valere diversi frame al secondo su titoli che spingono la CPU, perché elimina i limiti di frequenza che il sistema applica di default per contenere i consumi. Le distro pensate per il gaming come Bazzite, CachyOS e Nobara spesso lo gestiscono già meglio di default, un motivo in più per sceglierle se il gaming è il tuo uso principale.

Alzare il TDP dell’APU: la leva nascosta

Qui arriviamo alla parte che mi interessa davvero come persona che passa più tempo a testare Mini PC che a giocarci sopra. Se il tuo sistema monta una APU AMD, come il Ryzen 7 8745HS con Radeon 780M che ho sul banco, il limite di potenza impostato di fabbrica non è sempre il massimo che il dissipatore riesce davvero a gestire. Su riga di comando ryzenadj resta lo strumento più diretto per alzare i limiti di potenza (STAPM e PPT) di un’APU Ryzen. Se preferisci un’interfaccia grafica, oggi il riferimento è LACT (Linux GPU Configuration Tool): gira come servizio systemd, tiene i profili tra un riavvio e l’altro e gestisce limiti di potenza e undervolt. CoreCtrl fa cose simili ed è ancora usabile, ma lo sviluppo ha rallentato molto: tra i due, parti da LACT.

Un dettaglio che fa perdere tempo a chiunque ci provi la prima volta: su GPU e APU AMD le opzioni di power limit e undervolt sono spesso bloccate finché non le sblocchi dal kernel, aggiungendo amdgpu.ppfeaturemask=0xffffffff alle opzioni di avvio del sistema. Senza quel passaggio apri LACT e trovi metà dei controlli in grigio, senza capire perché..

Questo è anche il punto dove conviene andare piano. Il margine di sicurezza dipende dal dissipatore specifico del tuo Mini PC, dalla pasta termica di fabbrica e dallo spazio interno dello chassis: non esiste un numero universale valido per tutti i modelli, e alzare il TDP oltre quello che il case riesce a smaltire porta solo a throttling termico o spegnimenti improvvisi. Parti con incrementi piccoli, tieni MangoHud aperto sulle temperature mentre lo fai, e fermati appena la CPU si avvicina ai 95 gradi. Su un Mini PC con dissipatore compatto il guadagno reale può essere minimo o nullo: qualche test con e senza, prima e dopo, ti dice subito se ne vale la pena sul tuo modello.

FSR e risoluzione: la scorciatoia più sottovalutata su GPU integrate

Se il tuo collo di bottiglia è la GPU integrata e non la CPU, la variabile che sposta di più l’ago della bilancia spesso non è nessuno strumento di sistema, è AMD FSR. Attivandolo in gioco, quando disponibile, o tramite gamescope per i titoli che non lo supportano nativamente, il gioco renderizza a una risoluzione interna più bassa e la scala fino a quella del tuo schermo. Il costo visivo è quasi sempre più accettabile del guadagno in frame al secondo su un’APU, specialmente su titoli recenti e pesanti dove la Radeon 780M o la 890M semplicemente non hanno la forza bruta per il 1080p nativo a impostazioni alte.

Frame generation con lsfg-vk: la leva più nuova su APU

Se FSR abbassa la risoluzione interna per guadagnare frame, la frame generation lavora dall’altro lato: genera fotogrammi intermedi per far salire il frame rate percepito. Su Windows questo lo fa Lossless Scaling; su Linux ci pensa lsfg-vk, un layer Vulkan che si infila tra il gioco e la GPU e applica la stessa generazione di frame a qualsiasi titolo, anche a quelli che non la supportano nativamente.

Il motivo per cui la cito proprio in una guida pensata per i Mini PC: dalla versione 2.0 lsfg-vk sfrutta l’accelerazione FP16, e sulle APU AMD come 780M e 890M questo vale un raddoppio abbondante delle prestazioni del layer rispetto a prima. Su un’integrata che non ha la forza bruta per il 1080p nativo a dettagli alti, passare da 40 a 70-80 FPS percepiti è esattamente la differenza tra “ingiocabile” e “fluido”.

Su Arch e CachyOS lo trovi nell’AUR, per le altre distro ci sono pacchetti precompilati sul sito del progetto. Una volta installato configuri tutto dall’interfaccia grafica lsfg-vk-ui: imposti il moltiplicatore (x2, x3) e il frame rate di partenza.

Due condizioni da mettere in chiaro prima di lanciarti. Serve possedere Lossless Scaling su Steam — costa pochi euro e lsfg-vk ne riusa i componenti, non è un progetto pirata. E la frame generation aggiunge un po’ di input lag: rende al meglio quando il gioco parte già da un frame rate decente, diciamo dai 30-40 in su, mentre sotto quella soglia o nei titoli competitivi dove la latenza è tutto è meglio lasciarla stare. Per un single player pesante su APU, però, oggi è lo strumento col miglior rapporto tra sforzo e frame guadagnati.

Cosa conta davvero, in ordine

OttimizzazioneDifficoltàGuadagno tipicoRischio
GameModeBassaPiccolo ma costanteNessuno
MangoHudBassaNessun guadagno diretto, serve a misurareNessuno
Profilo performanceBassaMedio su APUConsumo/rumore ventola più alto
FSR / risoluzione scalataBassaAlto su GPU integrateQualità visiva ridotta
TDP APU (CoreCtl/ryzenadj)MediaVariabile, dipende dal dissipatoreThrottling termico se esagerato
Kernel gaming (fsync, scheduler BORE)Nulla se scegli la distro giustaLatenza input più bassaNessuno, ma legato alla scelta distro
Frame generation (lsfg-vk)MediaAlto su APU (frame percepiti)Input lag, serve Lossless Scaling
Pre-caching shader / GE-ProtonBassaElimina lo stutter, non alza gli FPSNessuno

Se devo dartene solo tre da fare oggi stesso: GameMode, MangoHud per misurare quello che stai facendo, e il profilo performance quando giochi. Il resto arriva dopo, quando hai già i numeri sotto controllo e vuoi spremere anche l’ultimo frame da un hardware che, sull’integrata, ha comunque dei limiti fisici che nessuna configurazione software elimina del tutto.

GMKtec M5 Ultra
569,96€-25%
Offerta a tempo

GMKtec M5 Ultra

AMD Ryzen 7 7730U · 16GB DDR4 · 1TB SSD

WiFi 6e, BT5.2 · 2x USB-A 3.2, 2x USB-A 2.0, 1x USB-C, 1x HDMI, 1 DP, 1x Jack audio, 2x Lan 2.5G, 1x DC-IN

NiPoGi P1
409,99€-12%
Offerta a tempo

NiPoGi P1

ΑΜD PRO 7330U · 16 GB DDR4 · 256 GB

Wi-Fi 5 - Bt 4.2 · 1x HDMI2.0, 1x USB3.2 Type-C, 1x DP1.4, 1x LAN RJ45, 6x USB3.2 Gen1, 1x jack audio e 1x porta DC

NiPoGi E3B

NiPoGi E3B

AMD 7430U · 16 GB LPDDR4 · 512 GB SSD

6x USB 3.2, 1x USB-C, 1x Lan, 1x DP1.4, 1x HDMI2.0, 1 Jack 3,5

GMKtec Mini PC EVO-X2 64+2T

GMKtec Mini PC EVO-X2 64+2T

AMD Ryzen™ AI Max+ 395 · 64 GB LPDDR5 · 2 TB

Wi-Fi 7, Bt5.4 · 3× USB-A 3.2 Gen2, 2× USB4, 2x USB 2.0, 1× lettore SD, 1x DP1.4, 1 HDMI 2.1, 2× jack audio 3,5mm

Beelink SER9

Beelink SER9

AMD Ryzen AI 7 H350 · 32GB LPDDR5X · 1TB SSD PCIe4.0

Wi‑Fi 6, BT5.2 · 2x USB-A 3.2, 2x USB-A 2.0, 2x USB-C, 1x HDMI, 1 DP, 1x Jack audio, 1x Lan 2,5G, 1x DC-IN

Non disponibile su Amazon
Origimagic C4 Air

Origimagic C4 Air

Ryzen 5 3500U · 8 Gb DDR4 · 256 GB

WiFi 5, BT5.0 · 3x USB-A 3.2, 1x USB-A 2.0, 1x USB-C 1080, 1x HDMI, 1 DP, 1x Jack audio, 2x Lan, 1x DC-IN

Non disponibile su Amazon
GEEKOM A9Max

GEEKOM A9Max

AMD Ryzen AI 9 HX 370 · 32 GB DDR5 · 2TB SSD

WiFi 7, BT5.4 · 5x USB-A 3.2, 1x USB-A 2.0, 2x USB-C, 2x HDMI, 1x Jack audio, 2x Lan 2.5G, 2.5G, 1x DC-IN

Per il contesto più ampio su compatibilità e cosa aspettarti da Proton, 👉 Leggi qui: ProtonDB: la guida pratica per il gaming Linux.
Se invece i tuoi giochi vengono da Epic o GOG piuttosto che da Steam, 👉 Leggi qui: Heroic e Bottles: le alternative a Lutris
E se prima di tutto vuoi sapere quali titoli funzionano davvero senza sorprese, 👉 Leggi qui: Anti-cheat su Linux: quali giochi non girano e perché

Non perderti i prossimi consigli

Guide, recensioni e novità su Linux, Mini PC e open source, dritte sul tuo Telegram. Niente spam, solo quello che vale la pena leggere.

Seguici su Telegram →

IncastroPC partecipa al Programma Affiliazione Amazon EU. Prezzi e disponibilità soggetti a variazione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *