Bug 91207 - Fail to play certain bitstream h264 until get the GPU hung in dmesg
Summary: Fail to play certain bitstream h264 until get the GPU hung in dmesg
Status: CLOSED FIXED
Alias: None
Product: libva
Classification: Unclassified
Component: intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: ykzhao
QA Contact: Sean V Kelley
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-07-03 08:34 UTC by Lim Siew Hoon
Modified: 2015-07-06 08:08 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Use the mb pair to calculate the corresponding decoding parameter (5.11 KB, patch)
2015-07-06 01:04 UTC, ykzhao
Details | Splinter Review

Description Lim Siew Hoon 2015-07-03 08:34:41 UTC
Fail to play certain bitstream h264 until seeing 
- sunflower_420_1920x1080.264 (Green video output or totally blank video playback when GPU hung errors appear, or appear half video output + half green screen output in 1st display frame then continue the rest is green video output). 
- blade_420_352x288.264 (Green video output)

Seeing same issue in gstreamer-vaapi and mplayer-vaapi decode.
command: 
1. gst-launch-1.0 -v filesrc location=/root/sunflower_420_1920x180.264 ! vaapiparse_h264 ! vaapidecode ! vaapisink
2. ./mplayer -vo vaapi -va vaapi -fps 27 /root/sunflower_420_1920x180.264


But if play using gstreamer software decode is working fine.
command: gst-launch-1.0 -v filesrc location=/root/sunflower_420_1920x180.264 ! h264parse ! avdec_h264 ! xvimagesink


dmesg:
  164.366014] [drm:valleyview_update_wm [i915]] *ERROR* timed out waiting for Punit DDR DVFS request
[  177.732771] [drm:valleyview_update_wm [i915]] *ERROR* timed out waiting for Punit DDR DVFS request
[  209.931361] [drm:valleyview_update_wm [i915]] *ERROR* timed out waiting for Punit DDR DVFS request
[  214.517293] [drm] stuck on bsd ring
[  214.563045] [drm] GPU HANG: ecode 8:1:0xcbe8e267, in vaapih264parse0 [2034], reason: Ring hung, action: reset
[  214.563059] [drm] GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace.
[  214.563064] [drm] Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel
[  214.563069] [drm] drm/i915 developers can then reassign to the right component if it's not a kernel issue.
[  214.563073] [drm] The gpu crash dump is required to analyze gpu hangs, so please always attach it.
[  214.563078] [drm] GPU crash dump saved to /sys/class/drm/card0/error
[  214.566884] drm/i915: Resetting chip after gpu hang
[  220.511086] [drm] stuck on bsd ring
[  220.560329] [drm] GPU HANG: ecode 8:1:0xcbe8e267, in vaapih264parse0 [2034], reason: Ring hung, action: reset
[  220.561705] [drm:i915_set_reset_status [i915]] *ERROR* gpu hanging too fast, banning!
[  220.564656] drm/i915: Resetting chip after gpu hang
[  239.357045] [drm:valleyview_update_wm [i915]] *ERROR* timed out waiting for Punit DDR DVFS request
[  239.378201] [drm:valleyview_update_wm [i915]] *ERROR* timed out waiting for Punit DDR DVFS request


Environment setting:
libva version: from git master
commit id: 5d07b29687db6d17811b7ecf9b779377e9851a27

Intel VA driver version: from git master
commit 8d11fd7dd7952551b2d57f900ce1f408a35616a1

vainfo:
libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_38
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.38 (libva 1.6.0.pre1)
vainfo: Driver version: Intel i965 driver for Intel(R) CherryView - 1.6.0.pre1 (                                 1.3.2-252-g8d11fd7)

OS : Fedora 21 with X - kernel version 4.1.0-rc7
Platform: Tested with BSW platform.
Comment 1 ykzhao 2015-07-06 01:04:24 UTC
Created attachment 116967 [details] [review]
Use the mb pair to calculate the corresponding decoding parameter
Comment 2 ykzhao 2015-07-06 01:07:06 UTC
The mentioned two clips are based on MBAFF(mb adaptive frame-field). In such case the macroblock pair should be used to calculate the decoding parameter.(This is defined in H264 spec).
Unfortunately the MBAFF scenario is not handled correctly in driver and the issue is triggered.

Please try the patch in comment #2 and see whether the issue is resolved.

Thanks.
Comment 3 Lim Siew Hoon 2015-07-06 06:22:49 UTC
The patch in comment#2 are working fine for the two video reported (sunflower_420_1920x1080.264 and blade_420_352x288.264) in gstreamer-vaapi and mplayer-vaapi, no observe gpu hung error message in dmesg in BSW platform.
Comment 4 ykzhao 2015-07-06 08:06:15 UTC
Now the corresponding patch is already pushed and this bug will be marked as resolved.
Comment 5 Lim Siew Hoon 2015-07-06 08:08:01 UTC
Thank you for fixed.


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.