Come verificare quale scheda grafica guida il mio display?


9

Il sistema è configurato con una di quelle offerte ibride Intel / ATI (muxless). Dopo aver giocato un po 'con le impostazioni del kernel e i driver, ho fatto funzionare entrambe le carte, penso (aggiungendo radeon.dpm = 1 nelle impostazioni del kernel e usando solo i driver opensource).

Tuttavia, non riesco a capire quale carta sta usando il sistema. Dalla mia comprensione con il nuovo kernel (3.12) e la gestione dinamica dell'alimentazione spegnerà / accenderà la scheda quando necessario, quindi in teoria dovrebbe usare l'HD4000 integrato per la maggior parte del tempo, tuttavia non riesco a trovare un modo semplice per verificare quale è in uso.

lspci | grep VGA elenca solo tutte le carte, non specifica quale è attualmente in uso.

Qualche sterzo nella giusta direzione è molto apprezzato.

Sistema

Debian 7 stabile, 3.12 amd64 Kernel 7670M AMD + Intel HD4000

Risposte:


3

xrandr

L'uso xrandrmostra le carte disponibili.

$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x49 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 8 associated providers: 0 name:Intel

Su questo sistema ho 1 scheda grafica, una Intel, che ha 2 porte (output). Puoi vedere le uscite in questo xrandrmodo:

$ xrandr -q
Screen 0: minimum 320 x 200, current 3360 x 1080, maximum 8192 x 8192
LVDS1 connected primary 1440x900+0+0 (normal left inverted right x axis y axis) 303mm x 190mm
   1440x900       60.0*+   50.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1920x1080+1440+0 (normal left inverted right x axis y axis) 521mm x 293mm
   1920x1080      60.0*+
   1680x1050      60.0  
   1280x1024      75.0     60.0  
   1440x900       59.9  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)

Le 2 uscite sono VGA1 (porta esterna VGA) e LVDS1 (monitor LCD su laptop).

lshw

Infine puoi usare lshwper scoprire maggiori informazioni riguardanti le informazioni sulle schede grafiche attuali:

$ sudo lshw -numeric -c video
  *-display               
       description: VGA compatible controller
       product: Core Processor Integrated Graphics Controller [8086:46]
       vendor: Intel Corporation [8086]
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 02
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:41 memory:f2000000-f23fffff memory:d0000000-dfffffff ioport:1800(size=8)

Come determinare quale GPU sta guidando quali monitor

Per eseguire questa attività dovrai prendere l'elenco dei provider e prendere nota del loro numero dal xrandr --listproviderscomando. Questo numero è il numero dei dispositivi. Spesso è lo stesso numero assegnato insieme allo schermo nell'output di xrandr -q.

Quindi si può costruire liberamente quale "dispositivo" GPU sta guidando quale schermo. Nel mio esempio "Provider 0" sta guidando "Screen 0".

NOTA: il termine "Schermo" non corrisponde necessariamente a un singolo display. Nel mio scenario la mia GPU può pilotare 2 uscite, LVDS1 e VGA1. Ma questo approccio ti consente di prendere una decisione con un livello abbastanza alto di sicurezza su quale display è guidato da quale GPU.

Le associazioni di cui sopra sono controllate attraverso la configurazione del sistema, quindi ci sono possibilità che possa indurti in errore. Ad esempio, l'associazione sopra è guidata da un'installazione che spesso assomiglia a questa:

Section "Screen"
    Identifier  "Screen0"
    Device      "Device0"
EndSection
Section "Screen"
    Identifier  "Screen1"
    Device      "Device1"
EndSection

Quindi c'è la possibilità che il sistema sia stato configurato con Screen0una guida diversa da quella Device0.

Riferimenti


Non ho una macchina multi-GPU con cui testare, ma per quanto ne so, nessuno dei comandi che hai proposto indica quali unità GPU che monitorano.
Gilles 'SO- smetti di essere malvagio'

@Gilles - vero che non escono e in realtà lo affermano ma mostrano come un dispositivo è associato a una determinata schermata (ad es. Display).
slm

Non stai ancora spiegando come mettere in relazione una GPU con un monitor (almeno nel caso comune di non avere un Xorg.conf). Le informazioni sono probabilmente nel registro di Xorg se non altrove (e probabilmente altrove ma non ho esperienza con quello).
Gilles 'SO- smetti di essere malvagio'

@Gilles - hmm. Il provider "Provider 0" è GPU # 0. Le unità GPU vengono visualizzate come "Schermata 0". Non l'ho spiegato chiaramente?
slm

Ma come fai a sapere quale provider gestisce quale schermo?
Gilles 'SO- smetti di essere malvagio'

2

Il glxinfo, che è disponibile in mesa-utilspuò essere utilizzato per visualizzare quale scheda video viene utilizzata per la grafica OpenGL.

Per esempio:

➜  ~  glxinfo | grep "OpenGL renderer string"
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.