https://bugs.freedesktop.org/show_bug.cgi?id=66384
Priority: medium Bug ID: 66384 Assignee: dri-devel@lists.freedesktop.org Summary: VDPAU playback hangs when moving window between xrandr monitors Severity: normal Classification: Unclassified OS: All Reporter: mgorny@gentoo.org Hardware: Other Status: NEW Version: unspecified Component: Drivers/Gallium/r600 Product: Mesa
I'm running live xorg/mesa with Radeon HD5450. I have two monitors connected and set up side-by-side using xrandr like the following:
$ xrandr --output VGA-0 --mode 1280x960 --right-of DVI-0
Now, when I play a movie using mplayer2 with VDPAU driver and move the movie onto second monitor without pausing it first, the playback hangs for a minute or two. Then it resumes like nothing happened, no messages neither on console nor in dmesg.
What's interesting is that it seems to happen only after moving half of the window. If I have it partially on both monitors, it plays back fine. After the hang it plays fine again, and if I then move it back to the first monitor, it again hangs after moving half of it.
https://bugs.freedesktop.org/show_bug.cgi?id=66384
Michał Górny mgorny@gentoo.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Hardware|Other |x86-64 (AMD64) OS|All |Linux (All) Version|unspecified |git
https://bugs.freedesktop.org/show_bug.cgi?id=66384
--- Comment #1 from Michel Dänzer michel@daenzer.net --- I think this is because the DRI2 MSC counters differ between CRTCs, so a DRI2 buffer swap or MSC wait times out.
AFAICT it might be tricky to fix this, at least without DRI3.
https://bugs.freedesktop.org/show_bug.cgi?id=66384
--- Comment #2 from Michel Dänzer michel@daenzer.net --- Created attachment 83546 --> https://bugs.freedesktop.org/attachment.cgi?id=83546&action=edit Attempt at making DRI2 MSC counter consistent between CRTCs
Here's an attempt at making the DRI2 MSC counter per-window instead of per-CRTC. I couldn't quite make it work, but maybe someone can run with this and finish it.
https://bugs.freedesktop.org/show_bug.cgi?id=66384
Michel Dänzer michel@daenzer.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |david.heidelberger@ixit.cz
--- Comment #3 from Michel Dänzer michel@daenzer.net --- *** Bug 72291 has been marked as a duplicate of this bug. ***
https://bugs.freedesktop.org/show_bug.cgi?id=66384
--- Comment #4 from David "okias" Heidelberger david.heidelberger@ixit.cz --- Now we have DRI3, is here some code to test? Or we should test this patch?
https://bugs.freedesktop.org/show_bug.cgi?id=66384
Christian König deathsimple@vodafone.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nfxjfg@gmail.com
--- Comment #5 from Christian König deathsimple@vodafone.de --- *** Bug 77208 has been marked as a duplicate of this bug. ***
https://bugs.freedesktop.org/show_bug.cgi?id=66384
--- Comment #6 from nfxjfg@gmail.com --- Shouldn't this be responsibility of the code that implements the vdpau API? Maybe it should attempt to remap the MSC counters to system time, and smooth out the differences. (Sorry I don't know anything about Mesa internals.)
IMO this issue does make the Mesa vdpau implementation very unreliable, and at least for me it has caused a lot of problems.
https://bugs.freedesktop.org/show_bug.cgi?id=66384
--- Comment #7 from David Heidelberger (okias) david.heidelberger@ixit.cz --- At this moment we have working DRI3 setup (without Present for Radeon).
Is there any effort to port VDPAU to DRI3?
https://bugs.freedesktop.org/show_bug.cgi?id=66384
--- Comment #8 from Christian König deathsimple@vodafone.de --- (In reply to David Heidelberger (okias) from comment #7)
At this moment we have working DRI3 setup (without Present for Radeon).
Is there any effort to port VDPAU to DRI3?
Not yet, but it is on the todo list.
On the other hand it sounds like a good beginners task if somebody wants to get his hands dirty. I'm glad to help and point out the right place in the sources if somebody volunteers.
https://bugs.freedesktop.org/show_bug.cgi?id=66384
Michel Dänzer michel@daenzer.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #9 from Michel Dänzer michel@daenzer.net --- Fixed in xf86-video-ati Git master:
commit 0288a4b87b65ba54f37fbeeea3cb32238deee92e Author: Michel Dänzer michel.daenzer@amd.com Date: Wed Aug 19 16:54:14 2015 +0900
DRI2: Keep MSC monotonic when moving window between CRTCs
dri-devel@lists.freedesktop.org