Comment 13 for bug 263661

Revision history for this message
In , Zweinberg (zweinberg) wrote :

(In reply to comment #5)
> > I haven't tried this exact testcase but I can reproduce visual
> > artifacts on OSX without it. Also, looking at cairo-quartz-surface.c, it
> > doesn't seem to take a fallback for EXTEND_PAD, only EXTEND_REPEAT/REFLECT.
>
> I can't reproduce with this testcase; no black or anything but green shows up.
> As you say, PAD is ignored anyway (incorrectly, I guess, but correctly for
> perf). So there's a separate bug there, I think.

PAD is not ignored on OSX. I have empirical evidence that it does *something*, and my impression from reading the code is that it is implemented with acceleration. Compare the rendering of reftests/border-image/solid-image-2.html at all zoom levels with these two builds:

https://build.mozilla.org/tryserver-builds/2008-12-02_11:<email address hidden><email address hidden>

https://build.mozilla.org/tryserver-builds/2008-12-05_17:<email address hidden><email address hidden>

At some zoom levels (reportedly not the default, though) you should see gaps in the borders with the first, but not the second. The only difference is that the second one sets EXTEND_PAD for quartz surfaces. (Note that both builds have other patches in them -- you should *not* see gaps in the border with a trunk build.)

Given that the mitigating change is in a shared code path for all images, I am certain it is possible to construct a test case that doesn't use border-image but nonetheless fails on OSX, but I have to leave it to someone who actually has a Mac.

I don't see any value in splitting the bug. It is the same bug on both Mac and Linux - we need to be using EXTEND_PAD and we're not.