HWfiles - Logo
Stampa
Gaming con Linux
Gaming con Linux
Raffaele Fanizzi - 09 Dicembre 2004
“Può Linux essere una valida alternativa a Windows in ambito gaming? A questa domanda tentiamo di dare una risposta, proponendo un’analisi delle prestazioni dei chip NV40 e R420 sotto Gentoo, una distribuzione Linux che si sta diffondendo rapidamente nel mondo dei sistemi operativi opensource.”
Pagina 1 - Introduzione

La diatriba tra Windows e Linux può essere definita una trasposizione in ambito software dei tanti antagonismi che vediamo in campo hardware (AMD vs Intel e NVIDIA vs ATI su tutti). Da un lato abbiamo un sistema operativo sviluppato da Microsoft, un’azienda che da molti punti di vista ha fatto la storia dell’informatica e ha sancito la sua evoluzione, contribuendo (e spesso imponendo) anche i percorsi di sviluppo dell’hardware. Dall’altro abbiamo la comunità opensource il cui intento è di sottrarre l’informatica allo spietato mondo del commercio: quasi la totalità delle distribuzioni Linux non solo sono gratuite, ma anche corredate da un numero enorme di applicazioni che danno accesso a funzionalità normalmente disponibili sotto Windows solo previo pagamento.

La filosofia opensource prevede un supporto diretto da parte della comunità, la quale può intervenire direttamente non solo segnalando bugs e proponendo nuove funzionalità, ma facendo parte nel vero senso della parola del team di sviluppo di un progetto. In questo modo viene, se vogliamo, astratto il concetto di proprietà in quanto ognuno è libero di sviluppare e di utilizzare le applicazioni a cui è interessato. Naturalmente non tutto è liberamente distribuibile e anche nel mondo opensource esistono molte regolamentazioni di carattere legale più che altro legate ai vari tipi di licenza d’uso che è possibile fare del codice sorgente di un progetto.

Nonostante Linux non sia mai stato considerato come una reale alternativa a Windows nel mercato desktop, relegando la sua massiccia presenza specie nel settore server e workstation, l’evoluzione delle interfacce utente (tra le quali Gnome e KDE le più diffuse) in aggiunta ad alcune notevoli semplificazioni in termini di installazione e di personalizzazione messe a disposizione da alcune distribuzioni, hanno permesso a Linux di diventare un sistema operativo ampiamente utilizzabile anche nei sistemi desktop.

Sul versante gaming la situazione di Linux è abbastanza misera. Direct 3D, infatti, può essere definito lo standard de facto nella programmazione dei motori grafici per i videogames e tale API, ovviamente, non è disponibile con il pinguino. OpenGL resta l’unica reale scelta per Linux in quanto è l’unica API per lo sviluppo di videogames in grado di garantire accesso diretto all’hardware con questo sistema operativo. Esistono alcuni progetti in via di sviluppo che hanno il non facile scopo di garantire l’utilizzabilità di applicazioni Win32 e .NET sotto Linux. I loro nomi sono rispettivamente Wine (Cedega) e Mono. La compatibilità, tuttavia, è abbastanza limitata ed è per questo motivo che tali progetti attualmente non possono garantire la piena operatività dei videogames Direct 3D sotto Linux.

In questo articolo analizzeremo le prestazioni in ambiente Linux dei chip video NVIDIA GeForce 6800 Ultra (NV40) e ATI Radeon X800XT Platinum Edition (R420).

Pagina 2 - Preparazione del sistema

La preparazione del sistema di test e la sua configurazione ha richiesto tre mesi. Non avendo dimestichezza con l’ambiente Linux (se non per qualche esperienza effettuata oltre quattro anni fa) il sottoscritto ha dovuto dapprima fare un’estesa ricerca per identificare la distribuzione che meglio si adattasse alle operazioni di benchmarking. Ciò richiede un sistema ottimizzato al massimo, assolutamente privo di tutto ciò che non è strettamente necessario per l’esecuzione dei benchmark. Dopo attenta valutazione la scelta è ricaduta su una distribuzione che recentemente sta riscuotendo un discreto successo: Gentoo. Non si tratta della scelta più idonea per coloro che non hanno dimestichezza con la console di Linux e che pretendono un’installazione visuale semplice da eseguire ed il più possibile indolore. In tal caso, infatti, è consigliabile scegliere distribuzioni come Mandrake o Suse, decisamente più user-friendly. Gentoo è una distribuzione che richiede l’esecuzione di operazioni quali la configurazione manuale di vari elementi tra cui i più delicati e quelli che maggiormente ci interessano in questa sede sono sicuramente il kernel, X Window System e, naturalmente, i driver delle schede video.

Una delle caratteristiche più interessanti di Gentoo è la tecnologia Portage, cioè essenzialmente un sistema di distribuzione software. Ogni sistema Gentoo ha il suo Portage tree in locale, cioè un albero di dipendenze contenente tutti gli script necessari alla compilazione ed all’installazione di un qualsiasi package software. Il vantaggio principale della tecnologia Portage è la semplicità con cui è possibile mantenere aggiornato il proprio sistema Gentoo Linux. Attraverso il comando “emerge sync” il sistema aggiorna il Portage tree in locale con le ultime versioni dei package presenti. Una volta eseguita tale operazione la semplice esecuzione del comando “emerge world” e “emerge system” provvede al download, alla compilazione ed all’installazione di tutti i package più aggiornati presenti sul sistema. Ciò consente di mantenere il sistema sempre aggiornato ed in perfetta efficienza. La velocità con cui un nuovo package (ad esempio nuovi driver rilasciati da NVIDIA o ATI) è inserito all’interno del Portage è praticamente nulla (entro 24 ore, spesso anche meno, è disponibile). Inutile dire che siamo rimasti favorevolmente sorpresi dalla validità di questo sistema, specie considerando che si tratta di un servizio assolutamente gratuito. Naturalmente, affinché il tutto possa essere messo in atto, è necessaria la presenza di una connessione internet a banda larga.

Sul sistema di test è stato installato il package gentoo-dev-sources 2.6.9-r4. Questo package non è altro che una versione ufficialmente supportata dalla comunità Gentoo del kernel 2.6.9 di Linux. In termini di configurazione per il kernel abbiamo selezionato e compilato solo ed esclusivamente il minimo indispensabile per il funzionamento del sistema: driver per l’interfaccia ethernet, per i controller EIDE e SATA, per il supporto AGP su chipset VIA, ecc…

Come X Window System è stato installato X.Org e, in particolare, il package xorg-x11 6.7.0-r3. Sfortunatamente non abbiamo potuto utilizzare l’ultima revisione di X.Org (la 6.8.0) a causa di alcune problematiche con i driver ATI.

Per quanto concerne i driver delle schede video abbiamo provveduto ad installare le ultime versioni (anche se non propriamente definite stabili nel Portage tree) sia per NVIDIA che per ATI. I package installati sono ati-drivers-3.14.6 per R420 ed nvidia-kernel e nvidia-glx in versione 1.0.6629 per NV40. Ogni processore grafico richiede una sua specifica configurazione di non solo del kernel, ma anche di X.Org. E’ per questo motivo che abbiamo messo a punto un dual boot, ognuno riportante una configurazione del kernel ed un file di configurazione xorg.conf specifici per la scheda video considerata.

Abbiamo provato ad installare i driver Linux per le schede Volari, ma ciò è risultato essere del tutto impossibile a causa dell’estrema immaturità dei driver messi a punto da XGI per tale piattaforma.

Pagina 3 - Configurazione di test

Configurazione di test

Processore

AMD Athlon 64 3200+

Scheda Madre

AOpen AK86-L

Chipset

VIA Apollo K8T800

Ram

2x512 MB Corsair XMS PC4000 xtreme PRO

Schede Video

ATI Radeon X800 XT PE 256 MB

 

NVIDIA GeForce 6800 Ultra 256 MB

Sistema Operativo

Gentoo Linux - Kernel 2.6.9

X Window System

X.Org 6.7.0

Versione dei drivers

ATi 3.14.6

 

NVIDIA 1.0.6629

La versione di Gentoo Linux utilizzata nel corso dei nostri test non è a 64bit, per cpu AMD64. Tale scelta è dovuta al fatto che ATI non distribuisce attualmente una revisione dei driver compatibile con la piattaforma Linux AMD64. Solo recentemente la società canadese ha annunciato di voler incrementare il suo supporto a questo sistema operativo rilasciando versioni aggiornate dei driver ogni due mesi in versione compatibile anche con X.Org 6.8.0 e sistemi AMD64.

Pacchetto benchmark

Trattandosi di un’analisi che prende in considerazione due schede dedicate all’ambito gaming e considerando che sotto Linux è disponibile solo OpenGL, il pacchetto benchmark è ovviamente limitato ai soli videogames facenti uso di quest’API.

Doom 3

Uno dei titoli più attesi del 2004, seguito del principe di tutti gli shooter in tre dimensioni, Doom 3 è l’ultima fatica di John Carmak. Tra le caratteristiche principali che questo motore grafico mette in mostra troviamo un pensante uso di stencil shadows. Sono presenti anche alcuni vertex e pixel shaders, anche se non in misura così avanzata come in Far Cry. Doom 3 è sviluppato, come vuole la tradizione Id Software, rigorosamente in OpenGL.

Unreal Tournament 2004

Basato su una versione rivista e aggiornata del motore grafico di Unreal Tournament 2003, questo titolo è uno dei più diffusi a livello di multiplayer gaming. Tra le caratteristiche più interessanti troviamo l’uso del T&L e del Bump Mapping. Quasi del tutto assenti invece i Vertex ed i Pixel Shader. Le due mappe prese in considerazione sono Antalus ed Asbestos. La prima è contraddistinta da spazi aperti molto vasti, mentre la seconda è al chiuso in un ambiente più claustrofobico.

Wolfenstein: Enemy Territory

Espansione di Return To Castle Wolfenstein, basato sul motore grafico di Quake III Arena, questo sparatutto non fa uso di nessuna delle funzionalità programmabili di una scheda video. Nonostante questo la demo da noi utilizzata è risultata essere comunque interessante perché ricca di overdraw e di effetti particellari.

Pagina 4 - Qualità dell'immagine

La nostra analisi non è un semplice confronto tra NV40 e R420 in ambito Linux, ma ha lo scopo di valutare eventuali differenze qualitative e velocistiche anche tra Linux e Windows a parità di scheda video considerata. Non essendo i file di salvataggio della versione Windows di Doom III compatibili con la versione Linux, abbiamo deciso di cambiare la scena utilizzata per la valutazione della qualità dell’immagine scegliendo quella che si presenta dopo il caricamento della mappa alphalabs3.

ATI R420
shot00001_s.jpg (9732 bytes) shot00002_s.jpg (9838 bytes)
Linux - Trilineare Linux - Anisotropico 8x
shot00001_s.jpg (9817 bytes) shot00002_s.jpg (9912 bytes)
Windows - Trilineare Windows - Anisotropico 8x
NVIDIA NV40
shot00001_s.jpg (9857 bytes) shot00002_s.jpg (9958 bytes)
Linux - Trilineare Linux - Anisotropico 8x
shot00001_s.jpg (9832 bytes) shot00002_s.jpg (9913 bytes)
Windows - Trilineare Windows - Anisotropico 8x

Eseguendo un confronto Linux vs Windows con una GeForce 6800 Ultra vediamo una totale mancanza di differenza nella resa dell’immagine ottenuta con filtro trilineare (modalità medium). Se, invece, abilitiamo la modalità high e, conseguentemente, il filtro anisotropico troviamo dei piccoli elementi di distinzione: l’immagine prodotta dalla versione Linux di Doom III è leggermente più dettagliata sulla distanza. Lo si nota soprattutto osservando le due luci poste al centro dell’immagine, in fondo alla stanza.

La Radeon X800 XT PE, invece, non propone nessuna significativa differenza nella resa confrontando la versione Linux e Windows di Doom III.

Paritario anche il confronto tra i due processori grafici: l’immagine ottenuta in Doom III con R420 e NV40 è essenzialmente la medesima.

Pagina 5 - Windows vs Linux: Doom III e Enemy Territory su NV40

doom3_1.png (24621 bytes)

doom3_2.png (25036 bytes)

Confrontando direttamente le prestazioni ottenute da NV40 con i due sistemi operative presi in considerazione otteniamo risultati molto interessanti: nonostante Linux non sia universalmente considerato un OS dedicato al gaming, i valori registrati indicano una sostanziale parità tra le due piattaforme, sia nel rendering semplice, sia con filtro anisotropico e antialiasing abilitati.

et_1.png (24885 bytes)

et_2.png (25623 bytes)

Linux esce decisamente vincitore dal confronto con Windows in Enemy Territory, un titolo basato su una versione modificata del motore grafico di Quake III Arena. Le prestazioni con filtro trilineare sono allineate e essenzialmente CPU limited in entrambi i casi, mentre abilitando il filtro anisotropico ad otto samples e l’antialiasing a quattro samples otteniamo un netto vantaggio per il pinguino.

Pagina 6 - Windows vs Linux: UT2004 su NV40

ut_1.png (31590 bytes)

ut_2.png (31182 bytes)

ut_3.png (32231 bytes)

ut_4.png (32809 bytes)

Unreal Tournament 2004 è basato su un motore grafico che possiede un renderer (cioè un percorso di calcolo) che fa uso del Direct 3D ed un altro dedicato ad OpenGL. Anche se di default la versione Windows utilizza il Direct 3D, abbiamo eseguito i test anche con OpenGL in maniera da eseguire il confronto con Linux a parità di API.

Siamo rimasti sorpresi dalle prestazioni di NV40 sotto Windows utilizzando l’OpenGL in UT2004: il numero di frame al secondo non si discosta mai molto dalla versione Direct 3D, anzi in alcuni casi (specie nel rendering più complesso) i risultati sono migliori. Questo è indice del buon grado di ottimizzazione dei driver NVIDIA con entrambe le API.

La versione Linux di UT2004 offre prestazioni allineate a quella Windows nel rendering semplice, mentre abilitando l’antialiasing ed il filtro anisotropico assistiamo ad un moderato calo.

Pagina 7 - Windows vs Linux: Doom III e Enemy Territory su R420

doom3_3.png (24143 bytes)

doom3_4.png (24425 bytes)

Rispetto a quanto visto con NV40, la situazione per R420 si prospetta decisamente meno rosea osservando questi risultati. E’ evidente, infatti, che con Linux la scheda video Radeon X800 XT PE fornisca prestazioni decisamente inferiori. Abilitando i filtri otteniamo persino una giocabilità molto limitata anche alla risoluzione di 1024x768.

et_3.png (24804 bytes)

et_4.png (25197 bytes)

Enemy Territory sembra accentuare ulteriormente il divario tra Windows e Linux a favore del primo. A 1600x1200 con antialiasing 4x e filtro anisotropico 8x abbiamo una differenza di ben 120 fps.

Pagina 8 - Windows vs Linux: UT2004 su R420

ut_5.png (30463 bytes)

ut_6.png (31197 bytes)

ut_7.png (31929 bytes)

ut_8.png (31995 bytes)

Anche con Unreal Tournament 2004 le situazione è grosso modo la medesime vista con Doom III anche se su scala maggiore in quanto si tratta di un titolo graficamente meno complesso. Inoltre è interessante notare che, contrariamente a quanto visto con NV40, il renderer OpenGL sotto Windows di questo titolo con R420 possiede prestazioni sempre inferiori alla corrispondente modalità Direct 3D.

Pagina 9 - R420 vs NV40: Doom III e Enemy Territory

doom3_1_c.png (24011 bytes)

doom3_2_c.png (24087 bytes)

Anche se, come ormai noto, l’architettura del motore grafico di Doom III tende ad avvantaggiare le schede GeForce, la differenza di prestazioni tra R420 e NV40 va comunque ben oltre le aspettative: il chip americano è fino a quattro volte più veloce del concorrente canadese, un distacco che sotto Windows è sensibilmente più ridotto.

et_1_c.png (24653 bytes)

et_2_c.png (25017 bytes)

Enemy Territory conferma nuovamente il trend visto con Doom III.

Pagina 10 - R420 vs NV40: UT2004

ut_1_c.png (23886 bytes)

ut_2_c.png (25039 bytes)

ut_3_c.png (25372 bytes)

ut_4_c.png (25086 bytes)

Sempre marcato, anche se in misura leggermente inferiore rispetto a Doom III, è il divario con Unreal Tournament 2004: in questo caso NV40 è quasi due volte e mezzo più veloce di R420.

Pagina 11 - Conclusioni

Il primo elemento che intendiamo definire con chiarezza riguarda il confronto Windows vs Linux. Molta è la curiosità da parte degli utenti al riguardo anche perché di fatto l’assenza di un supporto gaming esteso può essere definito uno dei pochissimi mattoni mancanti affinché Linux possa essere utilizzato senza particolari rinunce nei sistemi desktop. Il responso di questo confronto è assolutamente privo di ogni dubbio: non esiste un vincitore, ma le prestazioni dipendono essenzialmente dal grado di ottimizzazione dei driver.

La maggiore velocità di Linux o Windows nei nostri test, quindi, non riteniamo sia dovuta all’architettura dei due sistemi operativi. Se restringiamo i nostri test a quelli di NV40 osserviamo che Linux, rispetto a Windows XP, offre le stesse prestazioni con Doom III e risultati leggermente migliori con Enemy Territory. Solo Unreal Tournament 2004 vede un vantaggio della piattaforma Microsoft abilitando i filtri. Si tratta di un risultato di notevole interesse considerando che NVIDIA ha senza ombra di dubbio posto una cura superiore nell’ottimizzazione delle performance per la piattaforma Microsoft, essendo quella maggiormente utilizzata dai videogiocatori.

Quest’ultimo punto risulta essere notevolmente amplificato con le schede ATI. Innanzitutto i nostri test con Unreal Tournament 2004 hanno evidenziato che l’ottimizzazione dei driver OpenGL per le schede Radeon è leggermente inferiore rispetto alla controparte Direct 3D anche con Windows XP. Passando a Linux questa penalizzazione è ancora più evidente al punto che con una scheda come la Radeon X800 XT PE non possono essere abilitati l’antialiasing ed il filtro anisotropico senza assistere ad un pesante abbattimento delle prestazioni. A tal proposito ricordiamo che i driver 3.14.6 sono i primi a supportare Doom III. Eseguendo i test con la precedente versione 3.14.1 il titolo Id Software mostrava evidenti artefatti seguiti da un blocco irreversibile del sistema. Naturalmente la posizione dell’azienda canadese è del tutto comprensibile dal punto di vista commerciale: il supporto maggiore ed il superiore numero di risorse viene investito nella piattaforma più diffusa. ATI ha, comunque, espresso la sua volontà di migliorare il supporto a Linux e pertanto ci auspichiamo di vedere entro breve un miglioramento della situazione.

Anche se attualmente non riteniamo che Linux possa essere considerato una reale alternativa a Windows in ambito gaming vista la scarsa disponibilità di titoli, possiamo affermare con certezza che per gli utenti Linux interessati ai videogames la soluzione migliore è rappresentata dai processori grafici NVIDIA.