Provare il driver video Gallium per schede grafiche AMD

Guides, tutorials & docs
Post Reply
User avatar
GvMariani
Collaboratore
Collaboratore
Posts: 610
Joined: 27 July 2009, 11:31
ROSA: 2016.1 Fresh R10
OpenMandriva: -
Kernel: 4.19.13-nrj-desktop
Desktop: Plasma 5
country: Italy
Location: Cologno Monzese (MI) - Italia

Provare il driver video Gallium per schede grafiche AMD

Post by GvMariani »

BACKGROUND...
La situazione del supporto per Linux delle schede video basate sul chipset Radeon di AMD (un tempo ATI), almeno fino a qualche mese fa, non era particolarmente esaltante; esiste infatti un driver proprietario fornito da AMD (fglrx), che garantisce buone prestazioni (in particolare con i giochi) ma che ha anche due grandi svantaggi:
* supporta solo i Radeon successivi al R600 (cioè tutte le schede video HD2xxx-HD69xx);
* ma, soprattutto, non sempre supporta le versioni di kernel e di X server più recenti al momento in cui queste si rendono disponibili, costringendo magari ad attendere diverse settimane (o a volte mesi) per avere versioni di fglrx più compatibili; in ogni caso, ad ogni cambio di kernel è necessaria la ricompilazione dei moduli contenuti nel package DKMS corrispondente.

Per chi possiede una scheda video basata su chipset R3xx-R5xx non c'è quindi nessun'altra risorsa se non i driver open, compresi in Mesa e, già dalla versione 7.9, il driver basato sul framework Gallium (r300g) è il driver di default, in luogo del più vecchio e ormai non più sviluppato driver "classico" (AKA r300c).

Per i possessori di schede video AMD HD2xxx - HD67xx, invece, tale passaggio avverrà solo con la versione 7.11 di Mesa, ormai prossima al rilascio; ciò non toglie, tuttavia, che oramai da diversi mesi lo sviluppo continua solo per il driver basato su Gallium (r600g), il quale ormai è per lo più stabile, più performante e più completo del corrispondente driver "classico" (r600c).
Per una sintesi aggiornata della situazione, si può vedere qui: http://www.x.org/wiki/RadeonFeature.
Le più recenti release di Fedora e di Ubuntu abilitano già di default il driver r600g; Mandriva 2010.2, invece, propone ancora il vecchio r600c (e, al momento, la prossima 2011.0 non sembra intenzionata a cambiare le cose): tuttavia è del tutto possibile utilizzare il driver Gallium r600g con piena soddisfazione anche sulla nostra amata 2010.2 (e ciò nonostante il server X abbastanza vecchio che essa si tira dietro).
Questa guida ha lo scopo di spiegare come fare a chi volesse fare un tentativo.


PACCHETTI NECESSARI
Ci vogliono:
* un kernel >= 2.6.38 (meglio se >= 2.6.39, se si vuole il supporto automatico per la compressione S3TC delle textures - v. più oltre):
i kernel del MIB vanno bene;
Speed up your pc! (Area contenente tutti i kernel)
http://mib.pianetalinux.org/mib/forum/v ... m.php?f=13

Per quanto riguarda i kernel consigliati della serie 2.6.38.x

Kernel 2.6.38.8 + -NRJ and -NRJ-PAE for 2010.1, 2010.2
http://mib.pianetalinux.org/mib/forum/v ... =13&t=2877

Kernel 2.6.38.6 + -NRJ and -NRJ-PAE for 2010.1, 2010.2
http://mib.pianetalinux.org/mib/forum/v ... =13&t=2846
* una versione delle libdrm (o lib64drm, per Linux a 64 bit) >= 2.4.25:
per una Mandriva a 64 bit, in http://mib.pianetalinux.org/MIB/2010.2/ ... ng/libdrm/ si trova quel che serve;

* una versione di Mesa compilata con le opzioni "--enable-gallium-r600" e "--enable-gallium-llvm" (di quest'ultima opzione beneficia anche il driver r300g):
il MIB, in http://mib.pianetalinux.org/MIB/2010.2/ ... sa/7.10.3/, provvede tre diverse versioni di Mesa:
una (withr600classic) sostanzialmente identica a quella di default in Mandriva (cioè con r300g e r600c), una (withllvmgallium) con abilitata
la sola opzione per LLVM ed una (withr600gallium) che abilita anche il driver r600g al posto del r600c;

* (ovviamente) il compilatore LLVM, per abilitare la compilazione JIT dei programmi per gli shaders della scheda video;
attenzione: se possibile, installare la versione 2.9 di LLVM, perché con la 2.8 si potrebbero incontrare crash;

* la libreria libtxc_dxtn (o lib64txc_dxtn) che permette di abilitare la compressione e decompressione S3TC delle textures
(necessaria per lo più per i giochi, ma anche richiesta per far girare adeguatamente VmWare Player o Workstation):
questa la si trova in http://mib.pianetalinux.org/MIB/2010.2/64/testing/;

* una versione recente del driver video ati:
in http://mib.pianetalinux.org/MIB/2010.2/64/testing/ c'è l'ultima disponibile (6.14.2) compilata per l'Xserver 1.7.7.

Se il SO Linux è a 32 bit, basta sostituire "32" a "64" nelle precedenti URL.


INSTALLAZIONE
Per facilitare le cose, le directory del repo "testing" che contengono le libdrm e mesa sono configurate a loro volta come dei repo. Supponendo già installato il kernel, per installare quanto necessario per una Mandriva a 64 bit è sufficiente:

1) aggiungere temporaneamente i repo testing, e poi libdrm e mesa prescelti (in questo caso: libdrm 2.4.26 e mesa 7.10.3 "withr600gallium"):

Code: Select all

urpmi.addmedia --update MiB_Testing64 http://mib.pianetalinux.org/MIB/2010.2/64/testing/
urpmi.addmedia --update MiB_Libdrm64 http://mib.pianetalinux.org/MIB/2010.2/64/testing/libdrm/2.4.26/
urpmi.addmedia --update MiB_Mesa64 http://mib.pianetalinux.org/MIB/2010.2/64/testing/mesa/7.10.3/withr600gallium/

2) installare i pacchetti necessari:
Per le libdrm: lib64drm*.rpm, lib64kms1*.rpm e libdrm-common*.rpm;
Per mesa: mesa*.rpm, lib64dri*.rpm, lib64mesa*.rpm;
Per la libreria di S3TC: lib64txc_dxtn-1.0.0-69.1mib2010.2.x86_64.rpm;
Il driver video: x11-driver-video-ati-6.14.2.
Se i repo provvisori sono correttamente configurati, dovrebbe essere solo questione di un semplice

Code: Select all

urpmi --auto-update
3) rimuovere i repo provvisori
Una volta installato tutto il necessario, è meglio rimuovere i repo provvisori

Code: Select all

urpmi.removemedia MiB_Testing64
urpmi.removemedia MiB_Libdrm64
urpmi.removemedia MiB_Mesa64

UTILIZZO DEL NUOVO DRIVER
Prima di lanciarsi nella nuova avventura grafica, è bene:

1) Verificare l'attivazione del KMS per il nuovo driver
Tutti i driver Gallium suppongono la presenza e l'utilizzo del protocollo DRI2, il quale normalmente viene abilitato in corrispondenza all'uso del Kernel Mode Setting: ciò significa che, onde evitare rogne, è bene accertarsi che il SO, all'avvio, lo attivi correttamente. Per ottenere tutto ciò è sufficiente:
* inserire nel file /etc/modprobe.preload (da root, ovviamente...) la riga "radeon"
* e poi togliere dalla riga di comando del boot ogni parametro del tipo "vga=xxx", onde evitare conflitti inutili con il framebuffer che quel comando attiva.
Riavviato il PC (possibilmente in modalità console, non direttamente grafica), il seguente comando

Code: Select all

dmesg | grep radeon
dovrebbe restituire la seguente riga:

Code: Select all

[drm] Initialized radeon 2.8.0 20080528 for 0000:01:00.0 on minor 0
2) abilitare il caricamento automatico di lib64txc_dxtn
La compressione / decompressione S3TC è necessaria per i giochi, per l'uso di VmWare e, in generale, per rendere più veloci le cose; essa, però, è coperta da brevetti software e di conseguenza gli sviluppatori di Mesa hanno deciso di non introdurre il codice necessario direttamente nel sorgente: invece, è stato predisposto un meccanismo per cui il driver r600g carica in memoria, nel caso in cui sia presente, una libreria esterna e usa un piccolo numero di funzioni di questa per implementare S3TC. Tocca all'utente decidere se installare o meno la libreria, nel rispetto delle norme vigenti nella sua nazione.
Tuttavia, a causa della tempistica con cui è avvenuto questo sviluppo per il r600g, ogni kernel < 2.6.39 non contiene ancora le modifiche al DRM necessarie perché ciò avvenga in maniera del tutto trasparente all'utente: per questa ragione, se il kernel installato non è >= 2.6.39, è necessario forzare l'attivazione di questa funzionalità esportando una variabile:

Code: Select all

R600_ENABLE_S3TC=1
Se il PC parte in modalità console (init 3, tanto per capirsi) è facile: basta avviare l'ambiente grafico con la seguente riga di comando

Code: Select all

R600_ENABLE_S3TC=1 startx
Se invece il PC parte direttamente in modalità grafica (init 5), bisognerà aggiungere in "/etc/profile" la riga:

Code: Select all

export R600_ENABLE_S3TC=1
per fare in modo che essa venga automaticamente presa dall'ambiente grafico.

Per verificare la corretta attivazione dell'estensione corrispondente, è sufficiente dare da una console dentro l'ambiente grafico, il comando:

Code: Select all

glxinfo | grep s3tc
e verificare la presenza delle due righe

Code: Select all

GL_EXT_texture_compression_s3tc
GL_S3_s3tc
A questo punto siete pronti per la nuova avventura grafica...

Per la mia piccola esperienza (con una HD3850, kernel-nrj mib 2.6.38.8, libdrm 2.4.26, mesa 7.10.3: llvm e r600g abilitati) un uso "normale" (*) del desktop è perfettamente stabile; con giochi e wine YMMW, ma anche qui senza troppi problemi (finora... tocca ferro).

(*) "Normale" per me vuol dire: effetti kwin, qualche video, internet, scrittura...

GvM

User avatar
GiuX
Utente
Utente
Posts: 238
Joined: 6 May 2009, 10:21
ROSA: Fresh
OpenMandriva: -
Kernel: 3.6.11nrjQL
Desktop: KDE 4.9.5
country: Italia

Re: Provare il driver video Gallium per schede grafiche AMD

Post by GiuX »

Provo immediatamente XD

User avatar
GiuX
Utente
Utente
Posts: 238
Joined: 6 May 2009, 10:21
ROSA: Fresh
OpenMandriva: -
Kernel: 3.6.11nrjQL
Desktop: KDE 4.9.5
country: Italia

Re: Provare il driver video Gallium per schede grafiche AMD

Post by GiuX »

non noto alcun miglioramento delle prestazioni... :( uguale a prima...

User avatar
GvMariani
Collaboratore
Collaboratore
Posts: 610
Joined: 27 July 2009, 11:31
ROSA: 2016.1 Fresh R10
OpenMandriva: -
Kernel: 4.19.13-nrj-desktop
Desktop: Plasma 5
country: Italy
Location: Cologno Monzese (MI) - Italia

Re: Provare il driver video Gallium per schede grafiche AMD

Post by GvMariani »

GiuX wrote:non noto alcun miglioramento delle prestazioni... :( uguale a prima...
Beh, ovviamente dipende dalle situazioni e dai test che fai...
A me, p.es., il nuovo r600g ha fatto sparire tutte le lineacce grigie che prima avevo alla chiusura di KDE, quando si inseriva l'effetto "Logout" (quello che desatura i colori...) e mi ha permesso di abilitare l'effetto "Blur" che invece prima non voleva saperne di funzionare adeguatamente.

Tieni presente che, per un utente a caso e non particolarmente "tennico", il fatto che il cambio a drop-in con qualcosa di teoricamente sperimentale porti ad identici risultati del driver cosidetto "stabile" non è affatto da buttar via: poteva certamente andar peggio... :) ; inoltre credo che i veri sviluppi li dovremmo avere con mesa 7.11: li oltre ai bug-fix ci sono anche tante altre cosine interessanti...
e forse non sarà necessario passare anche ad un xserver più recente per sfruttarle.

GvM
Last edited by GvMariani on 23 June 2011, 20:54, edited 1 time in total.

User avatar
GiuX
Utente
Utente
Posts: 238
Joined: 6 May 2009, 10:21
ROSA: Fresh
OpenMandriva: -
Kernel: 3.6.11nrjQL
Desktop: KDE 4.9.5
country: Italia

Re: Provare il driver video Gallium per schede grafiche AMD

Post by GiuX »

sisi, infatti mi ritengo fortunato XD

Post Reply