GNU/Linux >> Linux Esercitazione >  >> Linux

Cosa fa effettivamente Libgl_always_indirect=1?

KDE SC 4.5.0 ha alcuni problemi con alcune schede video inclusa la mia. Al momento del rilascio, Arch ha consigliato diverse soluzioni alternative. Uno dei quali era

esporta "LIBGL_ALWAYS_INDIRECT=1" prima di avviare KDE

Ho deciso che era il metodo più semplice e migliore. Ma non so cosa faccia o come influisca sul mio sistema. È più lento dell'impostazione predefinita? devo ricordarmi di tenere d'occhio il problema e disabilitarlo in seguito una volta risolto?

Risposta accettata:

Il rendering indiretto significa che il protocollo GLX verrà utilizzato per trasmettere i comandi OpenGL e X.org eseguirà il vero disegno.

Il rendering diretto significa che l'applicazione può accedere direttamente all'hardware senza dover prima comunicare con X.org tramite mesa.

Il rendering diretto è più veloce in quanto non richiede il cambio di contesto nel processo X.org.

Chiarimento: In entrambi i casi il rendering viene eseguito dalla GPU (o tecnicamente può essere eseguito dalla GPU). Tuttavia, nel rendering indiretto il processo è simile a:

  1. Il programma chiama uno o più comandi
  2. I comandi vengono/vengono inviati a X.org tramite il protocollo GLX
  3. X.org chiama l'hardware (es. GPU) per disegnare

In rendering diretto

  1. Il programma chiama uno o più comandi
  2. I comandi vengono/vengono inviati alla GPU

Si noti che poiché OpenGL è stato progettato in modo tale da poter funzionare in rete, il rendering indiretto è più veloce, quindi sarebbe un'implementazione ingenua dell'architettura, ovvero consente di inviare un sacco di comandi in una volta sola. Tuttavia c'è un po' di sovraccarico in termini di tempo CPU speso per cambi di contesto e protocollo di gestione.


Linux
  1. Cos'è NGINX? Come funziona?

  2. Cosa significa "-" (doppio trattino)?

  3. Cosa fa Eco $? Fare??

  4. Cosa fa . ~/.bashrc Comando Fare??

  5. Cosa restituisce malloc(0)?

Cosa significa chmod 777

Cosa fa Bamfdaemon?

Cosa fa poll() con un timeout pari a 0?

Cosa significa 'cd-'?

Cosa fa ulimit -s illimitato?

Cosa fa esattamente init?