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.
Created attachment 116967 [details] [review] Use the mb pair to calculate the corresponding decoding parameter
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.
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.
Now the corresponding patch is already pushed and this bug will be marked as resolved.
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.