[Wayland-bugs] [Bug 727452] Wayland windows with non-trivial alpha get new content drawn over old

gtk+ (bugzilla.gnome.org) bugzilla at gnome.org
Thu Apr 3 03:04:08 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=727452
  gtk+ | Backend: Wayland | 3.12.x

--- Comment #14 from Simon McVittie <simon.mcvittie at collabora.co.uk> 2014-04-03 10:04:02 UTC ---
(In reply to comment #13)
> That's because the behavior is specific to reusing surfaces. And in mutter and
> pixman-weston, the compositor doesn't release the surface immediately so GDK
> marks it as busy and falls back to the way we do it in X by using a similar
> surface.

That makes sense - so Mutter and pixman-weston are basically in the same
situation as when I patched out the fast-path altogether (Attachment #273425).

If the slow-path is the only thing that gets tested in practice, perhaps it
would be better to use that as a short-term solution.

> I'm not sure memsetting the whole buffer is correcct for the cases where we
> only redraw parts of the window. 

Hmm, good point. I did think "it's fine, if anything its semantics are closer
to the slow path", but I think that may have been wrong reasoning - the slow
path only copies the redrawn region from the similar surface (overwriting the
corresponding part of the reusable surface), not the entire similar surface.

> I think the problem is that we have no definition inside GDK if begin_paint
> clears the cairo surface or returns a cairo surface with undefined contents.

The comments, and the implementation in GdkWindow, suggest that it's meant to
be OK for it to have undefined contents - so the patch from Comment #8 would be
a more correct approach, if it worked (unfortunately it doesn't, and I still
can't see why not).

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


More information about the Wayland-bugs mailing list