[cairo] [RFC] Remove client-side workarounds

Thomas Jaeger thjaeger at gmail.com
Sun May 17 21:16:56 PDT 2009


It's an i965, but I think most of the failures are not driver-related.
Using cairo from git, pixman 0.15.2 and intel driver 2.7.1, I get the
following output.  Not a big deal in a development version, but it makes
testing for regressions a little annoying.

Tom

--

87 Passed [0 unexpectedly], 132 Failed [0 crashed, 10 expected], 4 Skipped
image (argb32): 2 failed - scale-offset-image scale-offset-similar
image (rgb24): 2 failed - scale-offset-image scale-offset-similar
test-fallback (argb32): 3 failed - fill-image scale-offset-image
scale-offset-similar
test-fallback (rgb24): 3 failed - fill-image scale-offset-image
scale-offset-similar
test-fallback16 (argb32): 92 failed - alpha-similar caps-joins-alpha
clip-fill-rule clip-nesting clip-operator clip-push-group clip-twice
clipped-group clipped-surface composite-integer-translate-source
composite-integer-translate-over dash-curve dash-state dash-zero-length
degenerate-arc degenerate-path device-offset-fractional
extend-pad-border extend-reflect extend-reflect-similar extend-repeat
extend-repeat-similar fill-alpha fill-alpha-pattern fill-and-stroke
fill-and-stroke-alpha fill-and-stroke-alpha-add
fill-degenerate-sort-order fill-image fill-missed-stop fill-rule
filter-bilinear-extents filter-nearest-transformed
finer-grained-fallbacks font-matrix-translation gradient-alpha
gradient-constant-alpha huge-linear huge-radial leaky-dashed-rectangle
leaky-dashed-stroke linear-gradient linear-gradient-reflect mask
mask-alpha mask-ctm mask-surface-ctm mask-transformed-image
mask-transformed-similar meta-surface-pattern new-sub-path
operator-alpha operator-clear operator-source over-above-source
over-around-source over-below-source over-between-source path-append
pixman-rotate push-group radial-gradient random-intersections rel-path
scale-offset-image scale-offset-similar stroke-image self-copy-overlap
set-source smask smask-fill smask-image-mask smask-mask smask-paint
smask-stroke smask-text source-clip-scale surface-pattern
surface-pattern-scale-down surface-pattern-scale-up text-antialias-gray
text-antialias-subpixel text-pattern text-rotate text-transform
trap-clip unbounded-operator user-font user-font-proxy user-font-rescale
ft-text-vertical-layout-type1 ft-text-vertical-layout-type3
test-fallback16 (rgb24): 104 failed - alpha-similar caps caps-joins
caps-joins-alpha caps-joins-curve clip-fill-rule clip-nesting
clip-operator clip-push-group clip-twice clipped-group clipped-surface
composite-integer-translate-source composite-integer-translate-over
copy-path culled-glyphs dash-caps-joins dash-curve dash-scale dash-state
degenerate-arc degenerate-pen extend-pad-border extend-reflect
extend-reflect-similar extend-repeat extend-repeat-similar fill-alpha
fill-alpha-pattern fill-and-stroke fill-and-stroke-alpha
fill-and-stroke-alpha-add fill-degenerate-sort-order fill-image
fill-rule filter-bilinear-extents filter-nearest-transformed
finer-grained-fallbacks font-matrix-translation glyph-cache-pressure
huge-linear huge-radial joins large-font leaky-dashed-rectangle
leaky-dashed-stroke leaky-polygon line-width-scale linear-gradient
linear-gradient-reflect long-dashed-lines mask mask-alpha
mask-transformed-image mask-transformed-similar meta-surface-pattern
operator-clear operator-source over-above-source over-around-source
over-below-source over-between-source paint-source-alpha
paint-with-alpha path-append pixman-rotate push-group radial-gradient
random-intersections reflected-stroke scale-offset-image
scale-offset-similar stroke-ctm-caps stroke-image select-font-face
show-text-current-point smask smask-fill smask-image-mask smask-mask
smask-paint smask-stroke smask-text spline-decomposition surface-pattern
surface-pattern-scale-down surface-pattern-scale-up text-antialias-gray
text-antialias-subpixel text-glyph-range text-rotate text-transform
transforms trap-clip twin unbounded-operator user-font user-font-mask
user-font-proxy user-font-rescale ft-show-glyphs-positioning
ft-show-glyphs-table ft-text-vertical-layout-type1
ft-text-vertical-layout-type3
test-meta (argb32): 2 failed - scale-offset-image scale-offset-similar
test-meta (rgb24): 2 failed - scale-offset-image scale-offset-similar
test-meta (rgb24): 1 unexpectedly passed - self-copy-overlap
test-paginated (argb32): 2 failed - scale-offset-image scale-offset-similar
test-paginated (rgb24): 2 failed - scale-offset-image scale-offset-similar
test-paginated (rgb24): 1 unexpectedly passed - self-copy-overlap
xlib (argb32): 14 failed - fill-image filter-bilinear-extents
finer-grained-fallbacks meta-surface-pattern over-above-source
rotate-image-surface-paint scale-offset-image scale-offset-similar
self-copy-overlap smask-text source-clip-scale surface-pattern
surface-pattern-scale-down surface-pattern-scale-up
xlib (rgb24): 10 failed - fill-image filter-bilinear-extents
rotate-image-surface-paint scale-offset-image scale-offset-similar
smask-text source-clip-scale surface-pattern surface-pattern-scale-down
surface-pattern-scale-up
xlib-fallback (rgb24): 22 failed - clip-fill-rule clip-nesting
clip-twice degenerate-arc fill-alpha fill-alpha-pattern
fill-degenerate-sort-order fill-image fill-rule finer-grained-fallbacks
linear-gradient over-above-source random-intersections
scale-offset-image scale-offset-similar smask-text trap-clip
unbounded-operator user-font user-font-proxy
ft-text-vertical-layout-type1 ft-text-vertical-layout-type3
ps2 (argb32): 4 failed - extend-pad fill-image user-font-proxy
test-fallback16-surface-source
ps2 (rgb24): 4 failed - extend-pad fill-image user-font-proxy
test-fallback16-surface-source
ps2 (rgb24): 1 unexpectedly passed - self-copy-overlap
ps3 (argb32): 4 failed - extend-pad fill-image user-font-proxy
test-fallback16-surface-source
ps3 (rgb24): 4 failed - extend-pad fill-image user-font-proxy
test-fallback16-surface-source
ps3 (rgb24): 1 unexpectedly passed - self-copy-overlap


Clemens Eisserer wrote:
> Hi Thomas,
> 
> Did you run the tests on an i915-class hardware?
> I've filed a two reports (one now open for almost a year) which could
> describe the problem causing the fails:
> 
> https://bugs.freedesktop.org/show_bug.cgi?id=16917
> https://bugs.freedesktop.org/show_bug.cgi?id=17933
> 
> No idea if this is related:
> https://bugs.freedesktop.org/show_bug.cgi?id=21523
> 
> - Clemens
> 
> 2009/5/15 Thomas Jaeger <thjaeger at gmail.com>:
>> Sorry, I forgot to regenerate the patches after adding a few comments to
>> the commits.
>>
>> Thomas Jaeger wrote:
>>> These are various performance fixes for cairo moving operations
>>> (composite, gradients) from the client to the server, which avoid an
>>> expensive transfer of a pixmap over the wire.  For handing off gradient
>>> creation to Render, I've adapted an old patch of David Reveman:
>>>
>>> http://cgit.freedesktop.org/~anholt/cairo/log/?h=server-gradients
>>>
>>> Especially the first patch is important, since currently it is
>>> prohibitively expensive for example for firefox to use linear
>>> interpolation for image upscaling due to the client-side fallback.
>>>
>>> On my system, this causes only one additional test (extend-pad-border)
>>> to fail in the cairo test suite.  The expected and actual output look
>>> identical, so this could be a subpixel offset in the intel driver.
>>> Certainly not something we need to worry about very much considering how
>>> many of the tests fail on current master.
>>>
>>> An important question is when to use Render for Pad/Reflect (see the
>>> commit message of the first patch), as we can't detect whether the X
>>> server is using a broken driver and/or pixman version.  I haven't
>>> implemented any checks for now, mainly because I'm unsure about which X
>>> server version would be reasonably safe.
>>>
>>> Thanks,
>>> Tom


More information about the cairo mailing list