
Per ottenere qualcosa di piu’ dalle prestazione della nostra scheda video, possiamo aggiungere il supporto nativo Nvidia per l’AGP (Accelerated Graphics Port), un system-bus principalmente usato per connettere le schede grafiche al resto del sistema, inventato da Intel nel lontano 1997.
Dal 2004 sono stati introdotti gli slot PCI, che si possono anche utilizzare in combinazione a card AGP o con piu’ card PCI simultaneamente, per ottenere output video differenti.
La nostra scheda puo’ cosi’ essere di tipo PCI-Express ed utilizzare anche uno slot AGP per leggere le texture direttamente dalla RAM, senza copiarle prima in un Framebuffer (questa funzione si chiama GART – Graphics Address Remapping Table), oppure puo’ essere di tipo AGP ed utilizzare quindi le features proposte da questo “driver” per il rendering 3D.
Il supporto AGP e’ fornito dal kernel tramite il modulo agpgart, in combinazione con il write-back dell’ MTRR. Nel kernel di Ubuntu troviamo entrambe le funzioni gia’ abilitate: agpgart come modulo e MTRR compilato staticamente:

Se non si usa il supporto agpgart interno al kernel..

.. allora i driver useranno la propria implementazione agpgart, chiamata NvAGP. In certi sistemi ciò comporta un miglioramento delle prestazioni, mentre in altri un peggioramento delle stesse. Si dovranno valutare personalmente le due opzioni sul proprio sistema, per ottenere i risultati migliori.
Su alcune schede non e’ possibile eliminare il supporto agpgart perche’ necessario alle estensioni DRI e GLX per il corretto funzionamento.
L’AGP GART non permette delle texture molto elevate..in teoria oltre 256MB, ma di fatto 64 o 128MB (nella migliore delle ipotesi) per colpa dell’allocazione di memoria del Kernel e ai problemi ad esso collegati.
Ecco perche’ nasce la necessita’ di utilizzare NvAGP e le sue opzioni principali :
EnableAGPSBA: 1
EnableAGPFW: 1
Vediamo quindi quali sono i passi per escludere l’agpgart del kernel ed abilitare l’ NvAGP.
- Apriamo il file /etc/X11/xorg.conf -
sudo kate /etc/X11/xorg.conf
Cerchiamo la stringa che riguarda i nostri driver ed aggiungiamo l’opzione in grassetto:
Section “Device”
Identifier “Scheda video generica”
Driver “nvidia”
Option “NvAGP” “1″
EndSection
Il valore AGP e’ variabile:
#Option “NvAGP” “1″ # nvidia agp
#Option “NvAGP” “0″ # agp disabilitato
#Option “NvAGP” “3″ # prova 2 0 1
#Option “NvAGP” “2″ # agpgart
Possiamo controllare lo stato attuale di agpgart con:
cat /proc/driver/nvidia/registry | grep NvAGP
Il valore 3 significa che Xorg carica l’agpgart disponibile.
- Escludere l’agpgart interno -
Qui ci sono dei pareri piuttosto discordanti.
Buona parte delle guide che ho letto dicono di mettere in blacklist qualsiasi modulo AGP presente nella lista dei moduli caricati
lsmod | grep agp
intel_agp 44567 1
agpgart 35532 2 nvidia,intel_agp
sudo kate /etc/modprobe.d/blacklist
Scriviamo:
# blacklist driver agp
blacklist agpgart
blacklist intel-agp
Inseriamo anche l’abilitazione SBA e FW:
sudo kate /etc/modprobe.d/nvidia-kernel-nkc
All’interno dovremmo gia’ trovare questo alias:
alias char-major-195* nvidia
Adesso, di seguito, aggiungiamo:
options nvidia NVreg_EnableAGPSBA=1 NVreg_EnableAGPFW=1
Al riavvio del sistema, verifichiamo che tutte le nostre modifiche siano andate a buon fine:
cat /proc/driver/nvidia/agp/status
Status: Enabled
Driver: NVIDIA
AGP Rate: 4x
Fast Writes: Enabled
SBA: Enabled
Oppure:
cat /proc/driver/nvidia/registry | grep AGPSBA
cat /proc/driver/nvidia/registry | grep AGPFW
EnableAGPSBA: 1
EnableAGPFW: 1
Come si puo’ notare le opzioni sono diverse, e sono tutte elencate nelle informazioni del modulo:
modinfo nvidia
Per quanto riguarda la mia esperienza, con la GO7500LE ( una scheda PCI da 512MB), il modulo agpgart e’ sempre presente nonostante la blacklist. Questo perche’ e’ invocato dal modulo nvidia. Quello che e’ certo e’ che il sistema sta usando uno slot AGP..quale non mi e’ molto chiaro.
Le opzioni per il FW e l’SBA sono state aggiunte con successo cosi’ come sono stati realmente esclusi gli altri moduli blacklistati (i2c-core e intel-agp). Mi porterebbe a dire che sto utilizzando NvAGP al posto dell’agpgart..se avete dubbi , notizie, riflessioni o consigli e’ tutto bene accetto come sempre.
Sarebbe molto interessante ricompilare il kernel senza il supporto agpgart per vedere cosa succede effettivamente senza questo modulo..non manchero’ di provarlo e di aggiornare questa discussione.
Qualche lettura sull’argomento:
- E-Pillole
- Wiki Gentoo
- Wikipedia AGP GART
Il tuo indirizzo ip:
38.107.179.233




on
on
on
Ma che tipo di moglioramenti dovrei notare Divi?
ora faccio qualche prova
AlgolQuota
@Divilinux:
scusa la domanda OT: farai una post sul nuovo kernel 2.6.23? ed eventuali nuove patch?
spero proprio di si!
anonimoQuota
magari un wiki per la compilazione…
mi unisco alla richiesta (occhi sbrilluccicanti commossi!!!)
AlgolQuota
@tutti
purtroppo il 2.6.23 con gli fglrx attuali non va d’accordo..
Sto cercando di farlo funzionare su altri computer un po’ piu’..”fortunati”..videograficamente parlando..
divilinuQuota
Ciao, prima di tutto complimenti per il Blog!
Ho provato la tua miniguida sulla mia gentoo, disabilitando completamente l’agpgart e i suoi moduli in fase di menuconfig del kernel e funziona! Purtroppo non ho ancora avuto tempo di “benchmarkare” il tutto ma lo faro’ presto!
MarcoQuota
@Marco
ottimo..mi hai fatto risparmiare un sacco di tempo per le prove..
grazie per i complimenti
divilinuQuota
@Divilinux
La questione AGPGARD e NVAGP è semplice e spiegata nel README di ogni release dei driver, Di default i driver portano come settaggio NvAgp 3 per la semplice questione che non tutti i chipset sono supportati da quello nvidia (trovi la lista sempre li), quindi i driver ritrovandosi in questa situazione possono usare agpgard per il loro avvio e funzionamento. Nello stesso readme dice che l’uso dell’uno o dell’altro dovrebbe a livello di performans essere uguale, tranne in rari casi dove il modulo interno NVAGP potrebbe (sto usando il condizionale) portare dei miglioramenti.
Per la questione compilazione kernel senza agpgard posso dirti che funziona, MA attenzione il chipset della Mainbord deve essere supportato altrimenti … Quindi per esperienza ” attenzione a mainboard con chipset “via” ( ho avuto esperienze con il VT600 ed altri meno recenti ) e altre non presenti nella lista.
Dei veri miglioramenti anche se non tanto evidenti si hanno con SBA ed FW abilitato, ma anche qui bisogna stare attenti alle combinazioni Scheda madre / Scheda Video, innumerevoli se proviamo ad immaginarle, soprattutto sul FW disabilitato di default perchè “considerato ” instabile su alcune di esse.
Resta sempre la questione, provare e valutare.
imuQuota
@Divilinux
Smettila di mettere queste immagini, io impazzisco quando vedo certi mostri
imuQuota
@imu
grazie per la delucidazione
Effettivamente sia con che senza il FW o l’SBA poco mi cambia. Probabilmente con questa scheda (7500LE) e questo chipset (intel) non c’e’ possibilita’ di miglioramento in questo senso perche’ gia’ al massimo.
divilinuQuota
Ciao, so che il post è vecchio ma mi sto informando a riguardo solo ora. Ma io mi chiedo: avendo una 8600GTS su PCI Express mi è utile abilitare questa roba? Ho provato a mettere per ora solo Option “NvAGP” “1″ nel mio xorg.conf, ma il comando cat /proc/driver/nvidia/registry | grep NvAGP continua a darmi valore 3. Inoltre non ho notato un aumento di prestazioni sinceramente… almeno con glxgears, anzi semmai sono leggermente diminuite… Ciao grazie
TheWallQuota
@THeWall
Come e’ riportato nella guida, si tratta di un tentativo di sovrascrivere il modulo del kernel col modulo interno della scheda nvidia, per ottenere prestazioni maggiori ,..ma non sempre questo e’ vero…come tu stesso hai sperimentato
DivilinuxQuota