0

I'd like to simply show a testsource using gstreamer-1.0. When I use (I guess) non-accelerated output gst-launch-1.0 videotestsrc ! xvimagesink everything works find, but when I try to play it like gst-launch-1.0 videotestsrc ! autovideosink I get the following error:

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

I've installed NVIDIA-Linux-x86_64-367.44.run on Ubuntu 14.04.5 as follows:

  1. Remove old drivers: sudo apt-get remove --purge nvidia*
  2. Blacklist the old driver by the run script (It asks you to do so, quit after it)
  3. Reboot
  4. Stop the services: service lightdm stop && service x11-common stop
  5. Install the driver: ./NVIDIA-Linux-x86_64-367.44.run --no-x-check
  6. Installed VA stuff concerning https://wiki.ubuntuusers.de/Video-Dekodierung_beschleunigen/: sudo apt-get install libvdpau1 vdpauinfo vdpau-va-driver vainfo
  7. Reboot

Here are some helpful outputs, which still deliver errors:

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

Does anybody have a hint? I know that it worked once with this PC following the instructions, but now something seems to be broken.

1 Answer 1

0

Fixed it by reverting everything to stock ubuntu, but video acceleration does still not work:

  1. Remove former driver: sudo ./NVIDIA-Linux-x86_64-xxx.xx.run --uninstall
  2. uninstalling which was related to nvidia (search related packages by dpkg -l): nvidia, cuda, primus, vdpau-va-driver, vainfo, libvdpau1, vdpauinfo
  3. Remove all blacklist stuff for the nouveau drivers: Remove necessary files in /etc/modprobe.d
  4. Revert xconfig by: sudo X -configure && sudo cp xorg.conf.new /etc/X11/xorg.conf
  5. Reinstall mesa-vdpau-drivers-lts-<your release>
  6. IMPORTANT: Remove the gstreamer vaapi, so that it does not try to use the acceleration when plugins like autoconvertor autovideosink are used: sudo apt-get remove gstreamer1.0-vaapi gstreamer1.0-vaapi-doc libgstreamer-vaapi1.0-0:amd64 libgstreamer-vaapi1.0-dev

Now, the test programs glxinfo and glxgears work again as expected.

Anyway: The unsuccessful try: I still do not know why the VA stuff does not work with the original driver even when using the official ppa:

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

glxinfo and glxgears works, but vainfo and vdpauinfo still output errors. I managed vdpauinfo to output something other than an error by using the mesa drivers and exporting (If the variables point to the proprietary driver, it wont work):

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

But this is just the display driver, right. So I need to tell VA API, that it has to use vdpau like this (?):

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

But in that case, vainfo only replies with errors, no matter which driver name I chose.

If anyone knows how to make it work, please help. But for now, gstreamer works again (but with high CPU load).

Here are some 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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .