https://bugs.freedesktop.org/show_bug.cgi?id=78297
Priority: medium Bug ID: 78297 Assignee: dri-devel@lists.freedesktop.org Summary: Radeon uvd makes Flash player with VDPAU enabled to crash at vlVdpDecoderCreate Severity: normal Classification: Unclassified OS: Linux (All) Reporter: mail@3v1n0.net Hardware: Other Status: NEW Version: 10.1 Component: Drivers/Gallium/r600 Product: Mesa
Created attachment 98475 --> https://bugs.freedesktop.org/attachment.cgi?id=98475&action=edit Flash player crash using VDPAU with full-hd videos
I've enabled VDPAU support in flash player, and testing it with normal youtube videos (up to 720p) gives good results (congrats!).
However, once I switch to 1080p quality, the flash player crashes, and this seems to happen at the mesa vdpau driver level (for reference, this work using Intel, although that's a different story, but I can't test nouveau here).
Anyway, I'm attaching here the backtrace. I've got it using mesa stock from ubuntu, thus I've linked on the bt a paste of the exact files referenced by the debugger. Let me know if you need further debugging.
This is what happens in Ubuntu 14.04, but the same seems to happens in Arch Linux (check https://bbs.archlinux.org/viewtopic.php?pid=1409666).
https://bugs.freedesktop.org/show_bug.cgi?id=78297
Marco Trevisan (Treviño) mail@3v1n0.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #98475|0 |1 is obsolete| |
--- Comment #1 from Marco Trevisan (Treviño) mail@3v1n0.net --- Created attachment 98480 --> https://bugs.freedesktop.org/attachment.cgi?id=98480&action=edit Flash player crash using VDPAU with full-hd videos
https://bugs.freedesktop.org/show_bug.cgi?id=78297
Marco Trevisan (Treviño) mail@3v1n0.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Radeon uvd makes Flash |Radeon uvd makes VDPAU |player with VDPAU enabled |clients to crash at |to crash at |vlVdpDecoderCreate with |vlVdpDecoderCreate |1080p videos
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #2 from Christian König deathsimple@vodafone.de --- What version of mesa is that? From the backtrace it looks like allocating a buffers fails and then we crash because we want to clear the buffer.
But the line numbers look quite outdated to me.
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #3 from Marco Trevisan (Treviño) mail@3v1n0.net --- Created attachment 98482 --> https://bugs.freedesktop.org/attachment.cgi?id=98482&action=edit VLC crash using VDPAU with full-hd videos
This is actually more generic than I thought, as it happens also with VLC and Mplayer.
Attaching the VLC backtrace here (very similar to flash and to mplayer).
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #4 from Marco Trevisan (Treviño) mail@3v1n0.net --- (In reply to comment #2)
What version of mesa is that? From the backtrace it looks like allocating a buffers fails and then we crash because we want to clear the buffer.
But the line numbers look quite outdated to me.
As said I've used the ubuntu debug version, so in the backtrace (the last one attached, not the one I deprecated) I've linked the relative files:
src/gallium/state_trackers/vdpau/decode.c: http://paste.ubuntu.com/7398157/ src/gallium/drivers/radeon/radeon_uvd.c: http://paste.ubuntu.com/7398148/
I might test this with a more recent version as well, but since this seems to happen in Arch as well, I suppose it's in git version too.
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #5 from Christian König deathsimple@vodafone.de --- (In reply to comment #4)
(In reply to comment #2)
What version of mesa is that? From the backtrace it looks like allocating a buffers fails and then we crash because we want to clear the buffer.
But the line numbers look quite outdated to me.
As said I've used the ubuntu debug version, so in the backtrace (the last one attached, not the one I deprecated) I've linked the relative files:
src/gallium/state_trackers/vdpau/decode.c: http://paste.ubuntu.com/7398157/ src/gallium/drivers/radeon/radeon_uvd.c: http://paste.ubuntu.com/7398148/
I might test this with a more recent version as well, but since this seems to happen in Arch as well, I suppose it's in git version too.
Source files doesn't help at all, I need a version number or better git hash of what revision this is.
It looks like allocating the decoded picture buffer works, but mapping it returns a NULL pointer. Is there any other error message? Kernel or stderr?
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #6 from Marco Trevisan (Treviño) mail@3v1n0.net --- (In reply to comment #5)
Source files doesn't help at all, I need a version number or better git hash of what revision this is.
So, as I reported the ubuntu package is based on mesa 10.1, and the same is on debian git, thus the git hash seems to be 4a86465 (and line numbers reported on these backports matches).
The full tree, with ubuntu patches applied, is available at http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/mesa/trusty/files (or bzr branch lp:ubuntu/mesa).
It looks like allocating the decoded picture buffer works, but mapping it returns a NULL pointer. Is there any other error message? Kernel or stderr?
Mh, no I'm just getting this (on VLC):
VLC media player 2.1.2 Rincewind (revision 2.1.2-0-ga4c4876) [0x15adaa8] main interface error: no suitable interface module [0x13a9148] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface. libva info: VA-API version 0.35.0 libva info: va_getDriverName() returns 0 libva info: User requested driver 'vdpau' libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/vdpau_drv_video.so libva info: Found init function __vaDriverInit_0_32 libva info: va_openDriver() returns 0 [0x7f4358c28e98] avcodec decoder: Using VA API version 0.35 for hardware decoding. Bus Error (core dumped)
And pretty similar on mplayer (http://pastebin.ubuntu.com/7398928/), nothing more kernel side.
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #7 from Christian König deathsimple@vodafone.de --- (In reply to comment #6)
[0x7f4358c28e98] avcodec decoder: Using VA API version 0.35 for hardware decoding. Bus Error (core dumped)
Oh! Well that's interesting. It's not an segmentation fault at all.
It means that the CPU can't properly access VRAM. Please provide full dmesg output.
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #8 from Marco Trevisan (Treviño) mail@3v1n0.net --- Created attachment 98499 --> https://bugs.freedesktop.org/attachment.cgi?id=98499&action=edit dmesg
(In reply to comment #7)
(In reply to comment #6)
[0x7f4358c28e98] avcodec decoder: Using VA API version 0.35 for hardware decoding. Bus Error (core dumped)
Oh! Well that's interesting. It's not an segmentation fault at all.
It means that the CPU can't properly access VRAM. Please provide full dmesg output.
Here you are... Nothing seems directly related to this, though.
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #9 from Christian König deathsimple@vodafone.de --- That's the problem:
[ 1.714537] [drm] Detected VRAM RAM=1024M, BAR=128M
Your PCI BAR is smaller than usually, for a REDWOOD 256M are normal. Going to hack up a patch for this.
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #10 from Marco Trevisan (Treviño) mail@3v1n0.net --- (In reply to comment #9)
That's the problem:
[ 1.714537] [drm] Detected VRAM RAM=1024M, BAR=128M
Your PCI BAR is smaller than usually, for a REDWOOD 256M are normal. Going to hack up a patch for this.
Nice to hear! But in these cases where there's not enough memory, shouldn't the vdpau driver to fail returning an error (making the client to fallback to software rendering), instead of crashing?
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #11 from Christian König deathsimple@vodafone.de --- (In reply to comment #10)
(In reply to comment #9)
That's the problem:
[ 1.714537] [drm] Detected VRAM RAM=1024M, BAR=128M
Your PCI BAR is smaller than usually, for a REDWOOD 256M are normal. Going to hack up a patch for this.
Nice to hear! But in these cases where there's not enough memory, shouldn't the vdpau driver to fail returning an error (making the client to fallback to software rendering), instead of crashing?
It's not the VDPAU driver that's failing here, it's the kernel.
When the kernel can't place a buffer into visible VRAM the buffer should be moved into GART instead for CPU access. But instead we just return a SIGBUS to the application effectively crashing it.
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #12 from Christian König deathsimple@vodafone.de --- Created attachment 98501 --> https://bugs.freedesktop.org/attachment.cgi?id=98501&action=edit Possible fix.
Please try the attached kernel patch.
Only tested with 3.15-rc2, but should apply to 3.14 as well.
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #13 from Marco Trevisan (Treviño) mail@3v1n0.net --- (In reply to comment #12)
Created attachment 98501 [details] [review] Possible fix.
Please try the attached kernel patch.
Only tested with 3.15-rc2, but should apply to 3.14 as well.
Thanks, it applies to 3.13 as well, but still same issue :(
Exactly same crash (http://paste.ubuntu.com/7405255/) and dmesg (http://paste.ubuntu.com/7405259/)
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #14 from Christian König deathsimple@vodafone.de --- (In reply to comment #13)
(In reply to comment #12)
Created attachment 98501 [details] [review] [review] Possible fix.
Please try the attached kernel patch.
Only tested with 3.15-rc2, but should apply to 3.14 as well.
Thanks, it applies to 3.13 as well, but still same issue :(
Exactly same crash (http://paste.ubuntu.com/7405255/) and dmesg (http://paste.ubuntu.com/7405259/)
Mhm, your dmesg looks like you are still booting the standard Ubuntu kernel: [ 0.000000] Linux version 3.13.0-24-generic (buildd@batsu) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 (Ubuntu 3.13.0-24.47-generic 3.13.9)
Grub usually selects the kernel with the highest version number for boot. Please double check that you selected the self compiled version in grub while booting.
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #15 from Marco Trevisan (Treviño) mail@3v1n0.net --- (In reply to comment #14)
Mhm, your dmesg looks like you are still booting the standard Ubuntu kernel: [ 0.000000] Linux version 3.13.0-24-generic (buildd@batsu) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 (Ubuntu 3.13.0-24.47-generic 3.13.9)
Grub usually selects the kernel with the highest version number for boot. Please double check that you selected the self compiled version in grub while booting.
Sorry, that wasn't the problem since I patched the ubuntu kernel itself, but I did forgot to update the initramfs, thus it was still loading the old module -_-.
Anyway, once I fixed it this works like a charm! Thanks a lot (and sorry again for the trouble)!
https://bugs.freedesktop.org/show_bug.cgi?id=78297
Marco Trevisan (Treviño) mail@3v1n0.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Product|Mesa |DRI Version|10.1 |unspecified Component|Drivers/Gallium/r600 |DRM/Radeon
https://bugs.freedesktop.org/show_bug.cgi?id=78297
Christian König deathsimple@vodafone.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #16 from Christian König deathsimple@vodafone.de --- Thanks for for the help.
https://bugs.freedesktop.org/show_bug.cgi?id=78297
--- Comment #17 from Marco Trevisan (Treviño) mail@3v1n0.net --- (In reply to comment #16)
Thanks for for the help.
Thank you!
Once the patch gets into a drm branch, could you also please forward this to stable? As it would be very nice to get this included by distros as stable update.
dri-devel@lists.freedesktop.org