¿Cómo verificar qué tarjeta gráfica maneja mi pantalla?

9

El sistema está configurado con una de esas ofertas híbridas de Intel / ATI (muxless). Después de jugar un poco con la configuración y los controladores del kernel, creo que ambas tarjetas funcionan (agregando radeon.dpm = 1 en la configuración del kernel y usando solo los controladores de código abierto).

Sin embargo, no puedo entender qué tarjeta está usando el sistema. Según tengo entendido con el kernel más nuevo (3.12), la administración dinámica de energía de amd apagará / encenderá la tarjeta cuando sea necesario, por lo que, en teoría, debería usar el hd4000 integrado la mayor parte del tiempo, sin embargo, no puedo encontrar una manera fácil para verificar cuál está en uso.

lspci | grep VGA solo enumera todas las tarjetas, no especifica cuál está actualmente en uso.

Un poco de dirección en la dirección correcta muy apreciada.

Sistema

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

Jonathan
fuente

Respuestas:

2

xrandr

El uso xrandrle mostrará qué tarjetas están disponibles.

$ 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

En este sistema tengo 1 tarjeta gráfica, una Intel, que tiene 2 puertos (salidas). Puede ver las salidas con este xrandraspecto:

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

Las 2 salidas son VGA1 (puerto externo VGA) y LVDS1 (monitor LCD en la computadora portátil).

lshw

Por último, puede utilizar lshwpara obtener más información sobre la información real de las tarjetas 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)

Cómo determinar qué GPU está manejando qué monitores

Para realizar esta tarea, deberá tomar la lista de proveedores y anotar su número desde el xrandr --listproviderscomando. Este número es el número de dispositivos. A menudo es el mismo número que se asigna junto con la pantalla en la salida de xrandr -q.

Entonces, uno puede construir libremente qué "dispositivo" de GPU está manejando qué pantalla. En mi ejemplo, "Proveedor 0" está conduciendo a "Pantalla 0".

NOTA: El término "Pantalla" no corresponde necesariamente a una sola pantalla. En mi escenario, mi GPU puede manejar 2 salidas, LVDS1 y VGA1. Pero este enfoque le permite tomar la determinación con un grado bastante alto de confianza sobre qué pantalla está siendo impulsada por qué GPU.

Las asociaciones anteriores se controlan a través de la configuración del sistema, por lo que hay posibilidades de que pueda confundirlo. Por ejemplo, la asociación anterior se maneja desde una configuración que a menudo se ve así:

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

Por lo tanto, existe la posibilidad de que el sistema se haya configurado con Screen0una conducción diferente Device0.

Referencias

slm
fuente
No tengo una máquina multi-GPU para probar, pero por lo que puedo decir, ninguno de los comandos que ha propuesto indica qué GPU controla qué monitor.
Gilles 'SO- deja de ser malvado'
@Gilles: es cierto que no salen y en realidad lo dicen, pero sí muestran cómo se asocia un dispositivo a una pantalla determinada (es decir, pantallas).
slm
Todavía no está explicando cómo relacionar una GPU con un monitor (al menos en el caso común de no tener una Xorg.conf). La información probablemente esté en el registro de Xorg si en ningún otro lugar (y probablemente en otro lugar, pero no tengo experiencia con eso).
Gilles 'SO- deja de ser malvado'
@Gilles - hmm. El proveedor "Proveedor 0" es GPU # 0. Las unidades de GPU muestran pantallas que están asociadas como "Pantalla 0". ¿No te expliqué eso claramente?
slm
Pero, ¿cómo sabes qué proveedor maneja qué pantalla?
Gilles 'SO- deja de ser malvado'
2

El glxinfo, que está disponible en, mesa-utilsse puede usar para mostrar qué adaptador de video se usa para gráficos OpenGL.

Por ejemplo:

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