Jak sprawdzić, która karta graficzna napędza mój wyświetlacz?


9

System jest skonfigurowany z jedną z tych hybrydowych ofert Intel / ATI (bez mux). Po odrobinie majstrowania przy ustawieniach jądra i sterownikach, mam chyba obie karty działające (dodanie radeon.dpm = 1 w ustawieniach jądra i używanie tylko sterowników open source).

Nie wiem jednak, z której karty korzysta system. Z mojego zrozumienia z nowszym jądrem (3.12) i dynamiczne zarządzanie energią w razie potrzeby wyłączy / zwiększy moc karty, więc teoretycznie powinno ono używać zintegrowanego hd4000 przez większość czasu, jednak nie mogę znaleźć łatwego sposobu aby sprawdzić, który jest w użyciu.

lspci | grep VGA wyświetla tylko wszystkie karty, nie określa, która z nich jest aktualnie używana.

Bardzo doceniane jest sterowanie w dobrym kierunku.

System

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

Odpowiedzi:


3

Xrandr

Używanie xrandrpokaże, które karty są dostępne.

$ 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

W tym systemie mam 1 kartę graficzną, Intel, która ma 2 porty (wyjścia). Możesz zobaczyć wyniki z xrandrpodobnymi:

$ 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)

Dwa wyjścia to VGA1 (zewnętrzny port VGA) i LVDS1 (monitor LCD na laptopie).

lshw

Na koniec możesz użyć, lshwaby uzyskać więcej informacji dotyczących rzeczywistych informacji o kartach graficznych:

$ 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)

Jak ustalić, który układ GPU napędza które monitory

Aby wykonać to zadanie, musisz wziąć listę dostawców i zanotować ich liczbę w xrandr --listproviderspoleceniu. Ten numer jest numerem urządzenia. Często jest to ten sam numer, który jest przypisany wraz z ekranem na wyjściu xrandr -q.

Można więc swobodnie konstruować, które „urządzenie” GPU steruje danym ekranem. W moim przykładzie „dostawca 0” prowadzi „ekran 0”.

UWAGA: Termin „ekran” niekoniecznie odpowiada jednemu wyświetlaczowi. W moim scenariuszu mój GPU może obsługiwać 2 wyjścia, LVDS1 i VGA1. Ale to podejście pozwala na ustalenie z dość wysokim stopniem pewności, który ekran jest napędzany przez jaką kartę graficzną.

Powyższe powiązania są kontrolowane przez konfigurację systemu, więc są możliwości, że mogą cię wprowadzić w błąd. Na przykład powyższe powiązanie jest oparte na konfiguracji, która często wygląda następująco:

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

Istnieje więc możliwość, że system został skonfigurowany tak, aby Screen0był napędzany czymś innym niż Device0.

Bibliografia


Nie mam komputera z wieloma GPU do testowania, ale o ile wiem, żadne z zaproponowanych poleceń nie wskazuje, które dyski GPU monitorują.
Gilles „SO- przestań być zły”

@Gilles - to prawda, że ​​nie wychodzą i nie informują o tym, ale pokazują, w jaki sposób urządzenie jest powiązane z danym ekranem (tj. Wyświetlaczami).
slm

Nadal nie wyjaśniasz, jak powiązać procesor graficzny z monitorem (przynajmniej w typowym przypadku braku takiego Xorg.conf). Informacje są prawdopodobnie w dzienniku Xorg, jeśli nigdzie indziej (i prawdopodobnie gdzie indziej, ale nie mam z tym doświadczenia).
Gilles „SO- przestań być zły”

@Gilles - hmm. Dostawcą „Dostawca 0” jest GPU nr 0. Że dyski GPU są wyświetlane jako „Ekran 0”. Czy nie wyjaśniłem tego jasno?
slm

Ale skąd wiesz, który dostawca obsługuje który ekran?
Gilles „SO- przestań być zły”

2

glxinfo, Który jest dostępny w mesa-utilsmoże być używany do wyświetlania, która karta graficzna jest używana dla grafiki OpenGL.

Na przykład:

➜  ~  glxinfo | grep "OpenGL renderer string"
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.