Summary: | [SNB] Intermittent GPU hang/kernel oops when decoding h264 video using VAAPI | ||
---|---|---|---|
Product: | libva | Reporter: | jackjones11 |
Component: | intel | Assignee: | haihao <haihao.xiang> |
Status: | RESOLVED WORKSFORME | QA Contact: | |
Severity: | major | ||
Priority: | medium | CC: | ben, chris, daniel, gb.devel, jbarnes, seanvk |
Version: | unspecified | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
dmesg
syslog intel_reg_dumper glxinfo vainfo xorg.log syslog2 dmesg-2 syslog-2 intel_reg_dumper-2 glxinfo-2 vainfo-2 Xorg.0.log-2 i915_error_state-2 xbmc.log-2 i915_error_state-3 |
Description
jackjones11
2012-06-05 04:40:14 UTC
You need to reproduce this on an uptodate kernel and gfx stack and attach the /sys/kernel/debug/dri/0/i915_error_state. Created attachment 62569 [details]
syslog
Created attachment 62571 [details]
intel_reg_dumper
Created attachment 62572 [details]
glxinfo
Created attachment 62573 [details]
vainfo
Created attachment 62574 [details]
xorg.log
Created attachment 62575 [details]
syslog2
Created attachment 62607 [details]
dmesg-2
Created attachment 62608 [details]
syslog-2
Created attachment 62609 [details]
intel_reg_dumper-2
Created attachment 62610 [details]
glxinfo-2
Created attachment 62611 [details]
vainfo-2
Created attachment 62612 [details]
Xorg.0.log-2
Created attachment 62613 [details]
i915_error_state-2
Created attachment 62616 [details]
xbmc.log-2
OK I've upgraded the gfx stack and kernel to: X.Org X Server 1.12.2 Release Date: 2012-05-29 libdrm 2.4.34+git20120520.481234f2-0ubuntu0ricotz~precise xserver-xorg-video-intel 2.19.0+git20120604.81f09347-0ubuntu0sarvatt~precise Mesa 8.1-devel Linux htpc 3.5.0-rc1.20120605 #3 SMP Tue Jun 5 16:28:27 BST 2012 x86_64 x86_64 x86_64 GNU/Linux I hope that software stack is recent enough as it's as new as I can find using the ubuntu PPAs. Really don't fancy the daunting prospect of compiling the gfx stack from source myself. The -2 attachments are from a switch to a h264/aac HD channel with VAAPI and deinterlacing turned on. No kernel oops this time, only a hung GPU. Screen is frozen showing a still frame of the tv picture and system is still SSH accessible. USB seems to be a bit borked in 3.5.0-rc1 as neither my wired or wireless USB keyboards work and my usual usb wireless network stick causes a kernel panic. Luckily the USB remote control IR receiver and alternative wireless stick worked so I could test things. Let me know if you need anything else. Thanks, the error states are spectacularly gruesome. I'm inclined to think that this is a wild write by libva-intel. Hi, what version of the libva-intel-driver do you use? Is your h.264 stream interlaced? Could the issue be reproduce with something lighter like mplayer-vaapi or gstreamer-vaapi? Thanks. Does this only occur during MPEG-2 to H.264 switch? (In reply to comment #16) > OK I've upgraded the gfx stack and kernel to: > > X.Org X Server 1.12.2 Release Date: 2012-05-29 > libdrm 2.4.34+git20120520.481234f2-0ubuntu0ricotz~precise > xserver-xorg-video-intel 2.19.0+git20120604.81f09347-0ubuntu0sarvatt~precise > Mesa 8.1-devel > Linux htpc 3.5.0-rc1.20120605 #3 SMP Tue Jun 5 16:28:27 BST 2012 x86_64 x86_64 > x86_64 GNU/Linux > Is this only seen on SNB? I am not seeing it with my IVB with older X.Org, kernel, et al. On a call but will post details later. @jackjones11: please update both xbmc and libva-driver-intel. The former now has a check against VA Intel driver >= 1.0.17 to enable deinterlacing. And for the latter, the final 1.0.17 has the required fixes for vaPutSurface() [used for VA/GLX] + VA_TOP_FIELD|VA_BOTTOM_FIELD. Otherwise, this indeed used to generate GPU hangs in the past. However, please note that the actual decoding of H.264 interlaced content is not correctly supported in FFmpeg and VA driver. Hi Gwenole, I'm now running: xbmc-pvr git master branch from 20120721 - tried compiling latest a few days ago but it wasn't playing ball. libva and libva-driver-intel git master branch from 20120823 - was previously running 1.0.17-pre1 - This was from vaapi-ext branch but this doesn't seem to have had any commits for a long time so I assume deinterlacing is now merged into master? Dunno what the version number is now as vainfo isn't working. and I can't reinstall the package as apt seems to have gotten itself into broken dependency hell I can't seem to fix, probably due to me running ubuntu oneiric but changing package lists to point to precise repositories in order to get latest edgers graphics stack installed to satisfy original bug report :) kernel 3.5 stable. h264 streams are 1080 interlaced, and MPEG2 streams also interlaced. xbmc seems to be using vaapi to deinterlace correctly as decoder info during playback shows ff-h264-vaapi and ff-mpeg2video-vaapi, and fps show correctly at 50fps as opposed to 25fps with deinterlacing off. Had another GPU hang tonight when switching from MPEG2 to h264 stream - I hadn't really noticed until you asked whether it only happens during this transition, but since turning VAAPI back on in xbmc a couple of days ago, any GPU hangs I have experienced have been during this transition so you may be onto something, although I must say it is very intermittent so may just not have been "lucky" to hit the problem when switching between the h264 channels during my tests. I don't have mplayer-vaapi or gstreamer-vaapi installed but can pursue this if you really want me to, although depending on how needy they are in terms of dependencies might have a few problems with this as I'll need to use source due to my apt problems. Also if problem does happen with instant codec transition when changing tv channels in xbmc, not sure how easy this would be to simulate with these players and live streams without player stopping in between if you know what I mean - anyway let me know if you'd like me to try and I'll see what I can come up with. i915_error_state-3 attachment is from tonight's GPU hang with the latest libva-driver-intel. Created attachment 66036 [details]
i915_error_state-3
Wild stab in the dark/clutching at straws moment: Although EDID parsing seems to work ok at boot to allow me to run without an xorg.conf, syslog is filled with msgs such as: Aug 23 17:40:58 htpc kernel: [22763.565205] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 15 and lately (may have been after an edgers package update) switching inputs on my receiver, then back to htpc input, my tv claims it isn't receiving any signal. xrandr and xdpyinfo claims everything is ok but I need to do: xrandr -display :0 --output HDMI2 --mode 0x47 xrandr -display :0 --output HDMI2 --mode 0x46 in order to get the signal back. This turned into a hard fault so had to revert to running with an xorg.conf file and turning hotplugging off with: Option "HotPlug" "false" Which has vastly improved things. Am I hitting the deinterlacing problem just as I change channels at the same time as EDID parsing is failing which is affecting the GPU in some strange way? No it can't be this because the two events don't follow each other in syslog - so much for wild theories :) vaapi-intel wtf: BEGIN_BATCH(batch, 2); OUT_BATCH(batch, MI_BATCH_BUFFER_START | (2 << 6)); OUT_RELOC(batch, i965_h264_context->avc_it_command_mb_info.bo, I915_GEM_DOMAIN_COMMAND, 0, 0); ADVANCE_BATCH(batch); Will you please try the latest intel-vaapi driver and see whether the issue still exists? Thanks. No response from user for a long time so closing as WORKSFORME, Feel free to reopen this bug if you still experience the issue |
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.