[PATCH 5/5] modesetting: Implement page flipping support for Present.
kenneth at whitecape.org
Mon Apr 27 21:31:53 PDT 2015
On Tuesday, April 21, 2015 05:58:44 PM Kenneth Graunke wrote:
> Based on code by Keith Packard, Eric Anholt, and Jason Ekstrand.
> - Fix double free and flip_count underrun (caught by Mario Kleiner).
> - Don't leak flip_vblank_event on the error_out path (Mario).
> - Use the updated ms_flush_drm_events API (Mario, Ken).
> v3: Hack around DPMS shenanigans. If all monitors are DPMS off, then
> there is no active framebuffer; attempting to pageflip will hit the
> error_undo paths, causing us to drmModeRmFB with no framebuffer,
> which confuses the kernel into doing full modesets and generally
> breaks things. To avoid this, make ms_present_check_flip check that
> some CRTCs are enabled and DPMS on. This is an ugly hack that would
> get better with atomic modesetting, or some core Present work.
> - Don't do pageflipping if CRTCs are rotated (caught by Jason Ekstrand).
> - Make pageflipping optional (Option "PageFlip" in xorg.conf.d), but
> enabled by default.
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Upon further testing, there are still nasty DPMS bugs affecting this
patch. We no longer crash the X server, but clients appear to
occasionally get stuck.
I guess we just need to bite the bullet and unflip on DPMS off.
Or switch to atomic modesetting...
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: This is a digitally signed message part.
More information about the xorg-devel