Bug 92873 - Video regression with mpv + compton, crash from debug
Summary: Video regression with mpv + compton, crash from debug
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: git
Hardware: x86-64 (AMD64) All
: medium normal
Assignee: Chris Wilson
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
: 93446 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-11-09 18:31 UTC by Andreas Reis
Modified: 2015-12-19 09:25 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Xorg.0.log crash with --enable-debug=full, build + compton options (48.86 KB, application/x-xz-compressed-tar)
2015-11-09 18:31 UTC, Andreas Reis
no flags Details

Description Andreas Reis 2015-11-09 18:31:17 UTC
Created attachment 119520 [details]
Xorg.0.log crash with --enable-debug=full, build + compton options

Since "sna/dri2: Protect against a new possible recursion during TearFree" ( b1015d4 ) I can't play videos with mpv anymore. Xorg.0.log (for some reason the server runs as root again, but dunno since when) shows two lines recurring almost at a 1:1 pattern:

[  3618.247] (--) intel(0): HDMI max TMDS frequency 250000KHz
[  3619.715] (EE) intel(0): [DRI2] DRI2SwapComplete: bad drawable

Without compton (and before said commit) they play as intended, but the "max TMDS" line still shows on every mpv start. Also, with compton sometimes videos briefly do play (their video also starts playing when I resize the window) but after some seconds or fast forwarding the display freezes again without mpv printing an error.

That and the server crashes almost instantly (the 1080p manages to show the deskotp) only if started with --enable-debug, attached is a log with =full.

Haswell 4770, 2x HDMI (1440p+1080p), drm-intel-nightly
Comment 1 Chris Wilson 2015-11-09 20:45:29 UTC
Hmm, the dangers of DRI3/Present + DRI2 interop. :|
Comment 2 Chris Wilson 2015-11-10 10:00:05 UTC
commit 64dbcdd4de1fe1941196265d054272d7d93e5d59
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 10 09:56:07 2015 +0000

    sna/dri2: Add a specific recursion indicator for TearFree/DRI2
    
    Avoid conflating the DRI3/Present flag for controlling TearFree by
    adding a separate flag to indicate when we are waiting inside the
    TearFree shadow handler to avoid recursion in DRI2.
    
    Reported-by: Andreas Reis <andreas.reis@gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92873
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

commit 47f6c5b211c0458f2bf1e05a736e466bd8b64763
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 10 09:50:43 2015 +0000

    sna: Tweak TearFree interaction with Present flipping
    
    When Present takes over we mark the TearFree shadow as disabled. Before
    Present relinquishes its flip sequence, it copies from its pixmap to the
    screen triggering the shadow wait, even though the screeen Pixmap is not
    current bound (and still marked as disabled). Tweak the conditionals to
    properly skip this wait.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=92873
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

should resolve the stuck dri2 mpv and the assertion failure on startup with dri3.
Comment 3 Andreas Reis 2015-11-10 15:48:55 UTC
Both issues resolved. Still getting the harmless line

intel(0): HDMI max TMDS frequency 250000KHz

in Xorg.#.log whenever I start mpv, though.
Comment 4 Chris Wilson 2015-11-10 22:02:43 UTC
(In reply to Andreas Reis from comment #3)
> Both issues resolved. Still getting the harmless line
> 
> intel(0): HDMI max TMDS frequency 250000KHz
> 
> in Xorg.#.log whenever I start mpv, though.

mpv is doing a forced probe of the display configuration (i.e. is forcing a re-read of the hardware state for all attached outputs). That's a bug in mpv.
Comment 5 Chris Wilson 2015-12-19 09:25:54 UTC
*** Bug 93446 has been marked as a duplicate of this bug. ***


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.