Bug 72351 - x11-backend with pixman renderer does not repaint on Expose
Summary: x11-backend with pixman renderer does not repaint on Expose
Status: VERIFIED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: weston (show other bugs)
Version: unspecified
Hardware: Other All
: medium minor
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-05 13:07 UTC by Pekka Paalanen
Modified: 2013-12-09 11:07 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Pekka Paalanen 2013-12-05 13:07:11 UTC
I'm running X without a compositing manager. When I run Weston's x11-backend with the pixman renderer, the weston window does not repaint on Expose events. For example, visit a different virtual desktop and return, and Weston's window contains garbage. Forcing Weston to repaint by other means, like moving a window inside weston, fixes the damage.

This is Daniel's analysis:
- the x11/pixman thing only happens if you aren't also using an x11 compositing manager
- and it's not handling the Expose events, needs to force a redraw when that happens; atm it does queue an output repaint, but with an empty region, so nothing actually gets re-rendered
Comment 1 Kristian Høgsberg 2013-12-05 20:31:11 UTC
commit a98c2e17fd35e70bf50cdfac5a884aa639b99a92
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Thu Dec 5 12:30:37 2013 -0800

    compositor-x11: Damage output when we receive expose events for the window
    
    The gl renderer typically repaints everything since we don't have
    EGL_buffer_age under X, but the pixman renderer carefully only repaints
    damaged regions.  So to actually repaint anything with the pixman
    renderer, we need to damage the output.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=72351
Comment 2 Pekka Paalanen 2013-12-09 11:07:20 UTC
The fix works nicely, thanks!


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.