Bug 94559

Summary: Intel Video Driver V2.99.917 Does not support multiple video playback using XVideo on Skylake
Product: DRI Reporter: Paul <ibr>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: critical    
Priority: medium CC: davidcaste, freedesktop, fwyzard, intel-gfx-bugs
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=93461
Whiteboard:
i915 platform: SKL i915 features:

Description Paul 2016-03-15 19:54:54 UTC
Hello.

We have run into a issue with the XV implementation on Skylake using the intel video driver V2.99.917. 

Looking at the source we found Skylake processors are initialised with a generic SNA backend.

This causes video related setup to baseline, yielding only a single video sprite adapter and port.

Playing more than one video with the X Video extension (XV) will then fail because the video player cannot grab an available port.

XV is a pretty core part of doing video on the X Windows system. On older hardware such as Haswell, a textured video adapter and many ports are initialized by the driver, and thus Haswell does not have this limitation.

Tests to reproduce the XV Bug on a Intel Skylake G4400 or I5-6400 with Intel Driver 2.99.917

Try play more than one instance of video using the XV backend:

Gstreamer:

gst-launch-1.0 filesrc location=testvideo.mp4 ! decodebin ! xvimagesink

MPV

mpv --hwdec=vaapi -vo=xv testvideo.mp4


Printout of XV

X-Video Extension version 2.2

screen #0

  Adaptor #0: "Intel(R) Video Sprite"

    number of ports: 1

    port base: 75

    operations supported: PutImage

    supported visuals:

      depth 24, visualID 0x20

    number of attributes: 2

      "XV_COLORKEY" (range 0 to 16777215)

              client settable attribute

              client gettable attribute (current value is 66046)

      "XV_ALWAYS_ON_TOP" (range 0 to 1)

              client settable attribute

              client gettable attribute (current value is 0)

    maximum XvImage size: 8192 x 8192

    Number of image formats: 3

      id: 0x32595559 (YUY2)

        guid: 59555932-0000-0010-8000-00aa00389b71

        bits per pixel: 16

        number of planes: 1

        type: YUV (packed)

      id: 0x59565955 (UYVY)

        guid: 55595659-0000-0010-8000-00aa00389b71

        bits per pixel: 16

        number of planes: 1

        type: YUV (packed)

      id: 0x18424752

        guid: 50415353-5448-524f-5547-485247423234

        bits per pixel: 32

        number of planes: 1

        type: RGB (packed)

        depth: 24

        red, green, blue masks: 0xff0000, 0xff00, 0xff

This particular bug is having a seriously negative impact on UP Stream Packages.
There have been distribution packages incorporating patches to disable loading the Intel driver plus SNA in favour of GLAMOR and some kind of more generic mode setting driver built into X.Org; GLAMOR currently has it's own issues.

Both

Red Hat: https://bugzilla.redhat.com/show_bug.cgi?id=1305369

Debian following suite: http://anonscm.debian.org/cgit/pkg-xorg/driver/xserver-xorg-video-intel.git/commit/?id=e43d5b2191c5d9695e29ad2f5ac16c15dc1d9543

Have tried to skirt the issue with the Intel XV implementation in favor of Glamor but on Skylake (Gen 9) Glamor does not offer the same level of capabilities as Intel SNA on previous chipsets (e.g. Gen 8 and Gen 7).

Thanks Paul
Comment 1 Matt Corallo 2016-03-26 00:42:16 UTC
Videos also do not scale, which seems to have been the bigger reason why redhat disabled the Intel driver on skylake. This seems to be referring to +/- the same issue as #93461.
Comment 2 Gavin Stark 2016-06-07 14:59:01 UTC
I was having similar issues with gstreamer and the lack of xvimagesink support on Skylake. I too saw that there was no Textured Video result in `xvinfo` as expected.

I am running Ubuntu so I added the PPA repo at: https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers and installed the intel driver (and associated packages) for xserver-xorg-video-intel_2.99.917+git1606011933.b617f8~gd~x

After running with this updated driver I had "Textured Video" output from `xvinfo` as well as xvimagesink functioning within gstreamer.

I looked at the commits in xf86-video-intel and I suspect the issue for me was resolved between 094924 and b617f8. I don't know enough to rebuild the driver to perform a git-bisect and determine which commit resolved the issue for me.
Comment 3 Dan Dart 2016-07-21 19:20:56 UTC
> videos do not scale

With the new oibaf drivers this still does not happen on my skylake. Is it related?
Comment 4 Jari Tahvanainen 2017-03-27 10:21:19 UTC
Paul, Matt - do you still have this problem with current/latest video driver? See comment 2, which states that issue was resolved, for Gavin at least.
Comment 5 Jari Tahvanainen 2017-05-23 14:17:39 UTC
Timeout - marking resolved+fixed. Please reopen the bug if problem still persist with the latest kernels (preferable from drm-tip).

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.