Como verificar qual placa gráfica está controlando meu monitor?

Como verificar qual placa gráfica está controlando meu monitor?

O sistema está configurado com uma daquelas ofertas híbridas Intel/ATI (muxless). Depois de mexer um pouco nas configurações e drivers do kernel, acho que ambas as placas funcionaram (adicionando radeon.dpm = 1 nas configurações do kernel e usando apenas os drivers de código aberto).

No entanto, não consigo descobrir qual placa o sistema está usando. Pelo que entendi com o kernel mais recente (3.12), o gerenciamento dinâmico de energia e o gerenciamento dinâmico de energia desligarão/ligarão a placa quando necessário, então, em teoria, ele deveria usar o hd4000 integrado na maior parte do tempo, mas não consigo encontrar uma maneira fácil para verificar qual está em uso.

lspci | grep VGAlista apenas todos os cartões, não especifica qual deles está em uso no momento.

Algumas orientações na direção certa são muito apreciadas.

Sistema

Debian 7 estável, 3.12 amd64 Kernel 7670M AMD + Intel HD4000

Responder1

xrandr

O uso xrandrmostrará quais cartões estão disponíveis.

$ 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

Neste sistema tenho 1 placa gráfica, uma Intel, que possui 2 portas (saídas). Você pode ver as saídas xrandrassim:

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

As 2 saídas são VGA1 (porta externa VGA) e LVDS1 (monitor LCD no laptop).

lshw

Por último, você pode usar lshwpara obter mais informações sobre as informações reais das placas gráficas:

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

Como determinar qual GPU está conduzindo quais monitores

Para realizar esta tarefa você precisará pegar a lista de provedores e anotar seu número no xrandr --listproviderscomando. Este número é o número dos dispositivos. Muitas vezes é o mesmo número atribuído junto com a tela na saída de xrandr -q.

Assim, pode-se construir vagamente qual "dispositivo" GPU está controlando qual tela. No meu exemplo, "Provedor 0" está direcionando a "Tela 0".

OBSERVAÇÃO:O termo “Tela” não corresponde necessariamente a um único display. No meu cenário, minha GPU pode gerar 2 saídas, LVDS1 e VGA1. Mas esta abordagem permite que você determine com um alto grau de confiança qual monitor está sendo controlado por qual GPU.

As associações acima são controladas através da configuração do sistema, portanto há possibilidades de enganá-lo. Por exemplo, a associação acima é conduzida a partir de uma configuração que geralmente se parece com esta:

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

Portanto, existe a possibilidade de o sistema ter sido configurado para Screen0ser acionado por algo diferente Device0.

Referências

Responder2

O glxinfo, que está disponível em mesa-utilspode ser usado para exibir qual adaptador de vídeo é usado para gráficos OpenGL.

Por exemplo:

➜  ~  glxinfo | grep "OpenGL renderer string"
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile

Responder3

Esta pergunta ainda aparece no topo dos resultados do Google, então vou respondê-la mesmo que seja muito antiga. A resposta do slm me ensinou muitas ferramentas úteis, mas não me deu a resposta. A mudança do Ubuntu para wayland pode ser parte do problema. Veja como eu descobri:

    root@Legion5:~# ls -lah /sys/class/drm
total 0
drwxr-xr-x  2 root root    0 Nov  9 11:07 .
drwxr-xr-x 87 root root    0 Nov  9 11:07 ..
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card0 -> ../../devices/pci0000:00/0000:00:08.1/0000:06:00.0/drm/card0
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card0-eDP-1 -> ../../devices/pci0000:00/0000:00:08.1/0000:06:00.0/drm/card0/card0-eDP-1
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card1 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/card1
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card1-DP-1 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/card1/card1-DP-1
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card1-DP-2 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/card1/card1-DP-2
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card1-eDP-2 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/card1/card1-eDP-2
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card1-HDMI-A-1 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/card1/card1-HDMI-A-1
lrwxrwxrwx  1 root root    0 Nov  9 11:07 renderD128 -> ../../devices/pci0000:00/0000:00:08.1/0000:06:00.0/drm/renderD128
lrwxrwxrwx  1 root root    0 Nov  9 11:07 renderD129 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/renderD129
-r--r--r--  1 root root 4.0K Nov  9 11:07 version

esta listagem mostra a placa e a tela, ou seja, "card0 eDP-1" é meu laptop e GPU controlando a tela LCD integrada do laptop. "card1-HDMI-A-1" é o gpu nvida que controla o monitor externo na porta HDMI. Ainda não é perfeito, mas perto o suficiente para me dizer o que quero.

informação relacionada