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

Related Posts Plugin for WordPress, Blogger...

Il tuo indirizzo ip:
38.107.179.233

Valutazione 3.00 su 5
Categories: Senza categoria

Commenti via Facebook:


11 Responses so far.


  1. Algol ITALY scrive:

    Ma che tipo di moglioramenti dovrei notare Divi?
    ora faccio qualche prova

      Quota

  2. anonimo ITALY scrive:

    @Divilinux:
    scusa la domanda OT: farai una post sul nuovo kernel 2.6.23? ed eventuali nuove patch?
    spero proprio di si!

      Quota

  3. Algol ITALY scrive:

    magari un wiki per la compilazione…
    mi unisco alla richiesta (occhi sbrilluccicanti commossi!!!)

      Quota

  4. divilinu ITALY scrive:

    @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.. ;)

      Quota

  5. Marco SWITZERLAND scrive:

    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! :)

      Quota

  6. divilinu ITALY scrive:

    @Marco
    ottimo..mi hai fatto risparmiare un sacco di tempo per le prove.. :)
    grazie per i complimenti

      Quota

  7. imu ITALY scrive:

    @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.

      Quota

  8. imu ITALY scrive:

    @Divilinux
    Smettila di mettere queste immagini, io impazzisco quando vedo certi mostri :)

      Quota

  9. divilinu ITALY scrive:

    @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.

      Quota

  10. TheWall ITALY Mozilla Firefox Gentoo Linux scrive:

    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 :D

      Quota

  11. Divilinux BRAZIL Mozilla Linux scrive:

    @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
    ;)

      Quota

Leave a Reply