'X Erro do pedido falhado: BadRequest' ao usar driver nvidia com aceleração de vídeo (VA)

0

Gostaria de simplesmente mostrar uma fonte de teste usando o gstreamer-1.0. Quando eu uso (eu acho) saída não acelerada gst-launch-1.0 videotestsrc ! xvimagesink tudo funciona encontrar, mas quando eu tento reproduzi-lo como gst-launch-1.0 videotestsrc ! autovideosink eu recebo o seguinte erro:

Setting pipeline to PAUSED ...
libva info: VA-API version 0.35.0
X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  153 (DRI2)
  Minor opcode of failed request:  1 (DRI2Connect)
  Serial number of failed request:  15
  Current serial number in output stream:  15

Eu instalei NVIDIA-Linux-x86_64-367.44.run em Ubuntu 14.04.5 da seguinte forma:

  1. Remover drivers antigos: sudo apt-get remove --purge nvidia*
  2. Preta o antigo driver pelo script de execução (ele pede para você fazer isso, saia depois dele)
  3. Reiniciar
  4. Pare os serviços: service lightdm stop && service x11-common stop
  5. Instalar o driver: ./NVIDIA-Linux-x86_64-367.44.run --no-x-check
  6. Coisas VA instaladas referentes ao link : sudo apt-get install libvdpau1 vdpauinfo vdpau-va-driver vainfo
  7. Reiniciar

Aqui estão alguns resultados úteis, que ainda geram erros:

$ lspci -nnk | grep -i VGA -A2 
05:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK106 [GeForce GTX 660] [10de:11c0] (rev a1)
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:354e]
        Kernel driver in use: nvidia

$ vainfo
libva info: VA-API version 0.35.0
X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  153 (DRI2)
  Minor opcode of failed request:  1 (DRI2Connect)
  Serial number of failed request:  11
  Current serial number in output stream:  11

$ glxinfo 
name of display: localhost:10.0
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  20
  Current serial number in output stream:  20

$ uname -a
Linux alpia 4.4.0-38-generic #57~14.04.1-Ubuntu SMP Tue Sep 6 17:20:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

$ cat /var/log/Xorg.0.log | grep driver
[   127.579] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[   127.579]    X.Org XInput driver : 22.1
[   127.786] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[   128.733] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
[   128.815]    ABI class: X.Org XInput driver, version 22.1
[   128.815] (II) Using input driver 'evdev' for 'Power Button'
[   128.830] (II) Using input driver 'evdev' for 'Power Button'
[   128.831] (II) No input driver specified, ignoring this device.
[   128.831] (II) No input driver specified, ignoring this device.
[   128.831] (II) No input driver specified, ignoring this device.
[   128.831] (II) No input driver specified, ignoring this device.
[   128.832] (II) No input driver specified, ignoring this device.
[   128.832] (II) No input driver specified, ignoring this device.
[   128.832] (II) No input driver specified, ignoring this device.
[   128.832] (II) No input driver specified, ignoring this device.
[   128.832] (II) No input driver specified, ignoring this device.
[   128.832] (II) No input driver specified, ignoring this device.
[   128.833] (II) No input driver specified, ignoring this device.
[   128.833] (II) No input driver specified, ignoring this device.
[   128.833] (II) Using input driver 'evdev' for 'DELL Dell USB Entry Keyboard'
[   128.833] (II) Using input driver 'evdev' for 'USB Optical Mouse'
[   128.834] (II) No input driver specified, ignoring this device.

Alguém tem alguma dica? Eu sei que funcionou uma vez com este PC seguindo as instruções, mas agora algo parece ser brocken.

    
por Tik0 27.09.2016 / 08:39

1 resposta

0

Corrigido, revertendo tudo para o Ubuntu, mas a aceleração de vídeo ainda não funciona:

  1. Remover o driver anterior: sudo ./NVIDIA-Linux-x86_64-xxx.xx.run --uninstall
  2. desinstalando que estava relacionado a nvidia (pacotes relacionados a pesquisa por dpkg -l ): nvidia, cuda, primus, vdpau-va-driver, vainfo, libvdpau1, vdpauinfo
  3. Remova todos os itens da lista negra dos drivers nouveau: remova os arquivos necessários em /etc/modprobe.d
  4. Reverter o xconfig por: sudo X -configure && sudo cp xorg.conf.new /etc/X11/xorg.conf
  5. Reinstalar mesa-vdpau-drivers-lts-<your release>
  6. IMPORTANTE : Remova o gstreamer vaapi, para que ele não tente usar a aceleração quando forem usados plugins como autoconvert ou autovideosink : sudo apt-get remove gstreamer1.0-vaapi gstreamer1.0-vaapi-doc libgstreamer-vaapi1.0-0:amd64 libgstreamer-vaapi1.0-dev

Agora, os programas de teste glxinfo e glxgears funcionam novamente como esperado.

Enfim: A tentativa malsucedida : eu ainda não sei porque o material VA não funciona com o driver original, mesmo quando se usa o ppa oficial:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install --install-suggests nvidia-340

glxinfo e glxgears funciona, mas vainfo e vdpauinfo ainda geram erros. Eu consegui vdpauinfo produzir algo diferente de um erro usando os mesa drivers e exportando (Se as variáveis apontarem para o driver proprietário, ele não funcionará):

export VDPAU_DRIVER_PATH=/usr/lib/x86_64-linux-gnu/vdpau/
export VDPAU_DRIVER=va_gl

Mas este é apenas o driver de exibição, certo. Então eu preciso dizer VA API, que tem que usar vdpau como este (?):

export LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri/
export LIBVA_DRIVER_NAME=vdpau

Mas, nesse caso, vainfo só responde com erros, independentemente do nome do driver que eu escolhi.

Se alguém souber como fazê-lo funcionar, por favor ajude. Mas por enquanto, o gstreamer funciona novamente (mas com alta carga de CPU).

Aqui estão alguns links:

VDPAU Library Layout: http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/group__api__winsys__x11.html
NVIDIA driver archive: http://www.nvidia.com/object/unix.html
Hardware video acceleration (Arch): https://wiki.archlinux.org/index.php/Hardware_video_acceleration
NVIDIA xorg config: http://us.download.nvidia.com/XFree86/Linux-x86/331.20/README/editxconfig.html
    
por Tik0 29.09.2016 / 12:11