Bug 56547

Summary: Regression in 1.12.4: Painting with surface fill to a clipped region does not fill it
Product: cairo Reporter: John Lindgren <john>
Component: xlib backendAssignee: Chris Wilson <chris>
Status: RESOLVED FIXED QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: major    
Priority: medium CC: andyrtr, kalevlember
Version: 1.12.4   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Screenshot with 1.12.2
Screenshot with 1.12.4

Description John Lindgren 2012-10-29 21:36:57 UTC
Created attachment 69259 [details]
Screenshot with 1.12.2

Forwarding from https://bugs.archlinux.org/task/32272:

Cairo 1.12.4 and later in testing cause parts Audacious's Winamp interface not to be rendered. More specifically, copying rectangles from an image surface seems broken when a non-trivial clipping mask is in use, as happens when Audacious draws the background of its playlist window. I bisected the problem to this Cairo commit [1], but I can't see anything obviously wrong there. I can work around the problem either on the Cairo side by reverting that commit or on the Audacious side by clearing the clipping mask entirely before drawing the playlist window.

[1] http://cgit.freedesktop.org/cairo/commit/?id=c068691ff57c2f6cd750a54db17393c0e132cb00

Additional info:

cairo 1.12.6-1
audacious 3.3.2-1

Steps to reproduce:

Start Audacious. Switch to the Winamp interface, and display the playlist window. Note that the word "PLAYLIST" along the top of the window and the entire row of buttons along the bottom are missing (screenshots attached).

I am attaching screenshots using Cairo 1.12.2 (good) and 1.12.4/6 (bad).
Comment 1 John Lindgren 2012-10-29 21:37:47 UTC
Created attachment 69260 [details]
Screenshot with 1.12.4
Comment 2 Kalev Lember 2012-10-30 11:09:14 UTC
I am seeing a similar regression in Shotwell in Fedora 18, which I've also bisected to commit c068691.
Comment 3 Chris Wilson 2012-10-30 11:49:28 UTC
Do you both share the same driver?
Comment 4 Chris Wilson 2012-10-30 12:48:41 UTC
Thanks for the report!

commit 66625cb46c985321c46b79d2163a4d676d6700ba
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 30 12:40:41 2012 +0000

    xlib: Apply the image offsets to the destination rather the source
    
    So that we can specify the entire source surface as the region to copy
    and not introduce clipping errors.
    
    Fixes regression from
    commit c068691ff57c2f6cd750a54db17393c0e132cb00
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Fri Aug 17 21:33:54 2012 +0100
    
        xlib/shm: Use an impromptu upload ShmSegment
    
    Reported-by: John Lindgren <john.lindgren@aol.com>
    Reported-by: Kalev Lember <kalevlember@gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56547
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 5 Kalev Lember 2012-10-30 15:02:24 UTC
Thanks for the quick fix Chris, I can confirm it solves the issue for me.
Comment 6 John Lindgren 2012-10-30 21:48:43 UTC
Fixed for me also.

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.