[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
Tue Dec 13 12:45:11 PST 2011


--- Comment #15 from Bill Spitzak <spitzak at gmail.com> 2011-12-13 12:45:11 PST ---
Nonsense, Cairo is definitely doing the wrong thing. It is changing EXTEND_PAD
to EXTEND_NONE and getting the slower result on the backend.

If the backend is expected to detect that the extend does not matter (so it can
use EXTEND_PAD even if EXTEND_NONE is specified) then there is still no reason
for Cairo to change it, because the backend can do this detection no matter
what extend mode is asked for!

The addition of EXTEND_ANY, and fixing Cairo to use this instead of EXTEND_NONE
for "the extend does not matter", would fix this bug. But that is not in there
now so Cairo certainly does have a bug. You can't claim that something will fix
a problem and then claim there is no problem.

Furthermore if you think any graphics card made in the last 10 years does
EXTEND_NONE faster than EXTEND_PAD then you are incredibly ignorant of how
graphics works. EXTEND_NONE is *useless* for texture mapping on 3D and
therefore is not implemented in hardware in most cases. It is useless because
if the texture's edge lines up with the polygon edge then it would produce
double-premultiplied results that produce black borders on the objects.

In face EXTEND_NONE is so useless that I would very much like to see Cairo
fixed so it instead means "draw as though EXTEND_PAD (or reflections) is on,
but temporarily intersect the mask with a quadrilateral that is the boundary of
the source surface". This is in fact what users of Cairo expect and want and
are currently doing by turning on EXTEND_PAD and manually masking. This would
mean that all use of EXTEND_NONE by the backend would be removed and backends
would never have to implement it at all.

Please don't let a mistake in the design of XRender propagate forever as a
serious defect in Cairo.

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