[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
Sun Jan 22 10:07:32 PST 2012


--- Comment #31 from Benjamin Otte <otte at gnome.org> 2012-01-22 10:07:32 PST ---
(In reply to comment #30)
> Thus I believe EXTEND_NONE is the slowest for *EVERY* driver other than the
> XRender one!
There is no other driver we are talking about here. So it looks like we're
doing things right.

And you obviously are aware of things like
and know that this means that either you or the commit message have no idea
what they're saying.

> 1. What we have now: Cairo wastes time on a clipping test to turn the mode to
> EXTEND_NONE. The driver is then forced to *REPEAT* that test in order to detect
> if this was the reason it got EXTEND_NONE, and change the mode to the fastest
> one in this case.
This is of course the only solution that works. But you either do not know that
or are ignoring the comments from other people on purpose. (I stated the why in
comment 6, that was 24 comments ago).

> 2. (what everybody expected): Cairo leaves the extend mode alone and sends it
> to the driver. If (and only if) the driver knows it could run faster with
> another mode, the driver then runs the clipping test and changes to that other
> mode. It can skip this test if the mode is already the fastest.
Just in case you didn't learn it 24 comments back, I'll quote for you:

> 1) Have the same performance characteristics for any EXTEND when it doesn't
> matter

> 3. (the most common proposal here): Add EXTEND_ANY to the modes, modifying the
> XRender API to accept it as well. Cairo still runs it's clipping test and
> changes the mode to EXTEND_ANY. The driver can then change it to the fastest
> mode without re-running the clipping test. This is not as fast as #2 because
> the test is run even when the mode is already the fastest. However it is faster
> than #1 because the test is only run once. It also means the driver writers do
> not have to implement the test.

This violates the same point as (2).

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