[cairo-bugs] [Bug 43397] EXTEND_NONE is used instead of EXTEND_PAD when src sample area is entirely within the surface

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Jan 23 04:04:50 PST 2012


https://bugs.freedesktop.org/show_bug.cgi?id=43397

--- Comment #34 from Andrea Canciani <ranma42 at gmail.com> 2012-01-23 04:04:50 PST ---
Sorry for not replying to every comment, but I've been busy trying to figure
out what goes on within EXA.

Fun fact: the X server is already trying to detect if the repeat modes matters:

commit ff258ac2783203ed2a7698894d951391d1aecebc
Author: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Date:   Thu Oct 6 23:45:29 2005 +0000

    Clients tend to set picture->repeat when not necessary. Most HW cannot
        accelerate repeat NPOT thus triggering software fallback (this is the
        case with gnome desktop for example). This adds a simple optimisation
        to exa that removes "repeat" when it's obviously useless, that is, the
        single picture instance covers the entire rectangle beeing used

If it does not matter, it sets the "repeat" field to 0, which implies that the
repeatType is RepeatNone.
(To me, this looks like a further reason to believe that the issue is not in
Cairo)

The test could be extended to also allow for non-identity transforms, which is
the case we're tackling.
I am now working on a patch which detects if "any" repeat mode is ok and in
this case it tries to perform the compositing with every available repeat mode
until one succeeds.

For this, I would be happy to have a backtrace showing the stack when the
driver decides to fallback.
The reason for this is that I'm trying to only fix exaComposite, leaving
exaCompositeRects alone.
So far exaComposite has been optimized to avoid fallbacks as much as possible,
while exaCompositeRects has been kept simple, but if the performance issue
you're getting comes from exaCompositeRects, fixing exaCompoosite won't be
sufficient.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA Contact for the bug.


More information about the cairo-bugs mailing list