Bug 1700434 - Add SWGL fast-path for ps_text_run. r=jrmuizel

This adds some swgl_commitTextureLinearR8ToRGBA8 variations so that we can deal
with alpha glyph formats. Following that, a simple span shader is added that
dispatches to this as appropriate.

Differential Revision: https://phabricator.services.mozilla.com/D115551
This commit is contained in:
Lee Salzman 2021-05-21 05:53:46 +00:00
Родитель abefc13c51
Коммит acd20a15d5
44 изменённых файлов: 116 добавлений и 92 удалений

Просмотреть файл

@ -3976,6 +3976,13 @@ pub fn ast_to_hir(state: &mut State, tu: &syntax::TranslationUnit) -> Translatio
Type::new(Void),
vec![Type::new(*s), Type::new(Vec2), Type::new(Vec4)],
);
declare_function(
state,
"swgl_commitTextureLinearR8ToRGBA8",
None,
Type::new(Void),
vec![Type::new(*s), Type::new(Vec2), Type::new(Vec4)],
);
declare_function(
state,
"swgl_commitPartialTextureLinearR8",
@ -4011,6 +4018,13 @@ pub fn ast_to_hir(state: &mut State, tu: &syntax::TranslationUnit) -> Translatio
Type::new(Void),
vec![Type::new(*s), Type::new(Vec2), Type::new(Vec4), Type::new(Float)],
);
declare_function(
state,
"swgl_commitTextureLinearColorR8ToRGBA8",
None,
Type::new(Void),
vec![Type::new(*s), Type::new(Vec2), Type::new(Vec4), Type::new(Vec4)],
);
declare_function(
state,

Просмотреть файл

@ -153,9 +153,11 @@ those span boundary pixels to estimate the coverage based on edge slope.
```
void swgl_commitTextureLinearRGBA8(sampler, vec2 uv, vec4 uv_bounds);
void swgl_commitTextureLinearR8(sampler, vec2 uv, vec4 uv_bounds);
void swgl_commitTextureLinearR8ToRGBA8(sampler, vec2 uv, vec4 uv_bounds);
void swgl_commitTextureLinearColorRGBA8(sampler, vec2 uv, vec4 uv_bounds, vec4|float color);
void swgl_commitTextureLinearColorR8(sampler, vec2 uv, vec4 uv_bounds, vec4|float color);
void swgl_commitTextureLinearColorR8ToRGBA8(sampler, vec2 uv, vec4 uv_bounds, vec4|float color);
void swgl_commitTextureLinearRepeatRGBA8(sampler, vec2 uv, vec2 tile_repeat, vec4 uv_repeat, vec4 uv_bounds);
void swgl_commitTextureLinearRepeatColorRGBA8(sampler, vec2 uv, vec2 tile_repeat, vec4 uv_repeat, vec4 uv_bounds, vec4|float color);
@ -181,7 +183,9 @@ within the supplied uv bounds. The color variations also accept a supplied color
that modulates the result.
The RGBA8 versions may only be used to commit within `swgl_drawSpanRGBA8`, and
the R8 versions may only be used to commit within `swgl_drawSpanR8`.
the R8 versions may only be used to commit within `swgl_drawSpanR8`. The R8ToRGBA8
versions may be used to sample from an R8 source while committing to an RGBA8
framebuffer.
The Linear variations use a linear filter that bilinearly interpolates between
the four samples near the pixel. The Nearest variations use a nearest filter

Просмотреть файл

@ -155,21 +155,16 @@ static ALWAYS_INLINE P applyColor(P src, InvertColor) {
template <typename P>
static ALWAYS_INLINE P applyColor(P src, P color) {
return muldiv256(src, color);
return muldiv255(color, src);
}
static ALWAYS_INLINE WideRGBA8 applyColor(PackedRGBA8 src, WideRGBA8 color) {
return muldiv256(unpack(src), color);
return applyColor(unpack(src), color);
}
// Packs a color on a scale of 0..256 rather than 0..255 to allow faster scale
// math with muldiv256. Note that this can cause a slight rounding difference in
// the result versus the 255 scale. To alleviate this we scale by 256.49, so
// that the color rounds slightly up and in turn causes the the value it scales
// to round slightly up as well.
template <typename P, typename C>
static ALWAYS_INLINE auto packColor(P* buf, C color) {
return pack_span(buf, color, 256.49f);
return pack_span(buf, color, 255.0f);
}
template <typename P>
@ -347,11 +342,10 @@ static void* swgl_SpanBuf = nullptr;
// A pointer into the clip mask for the start of the span.
static uint8_t* swgl_ClipMaskBuf = nullptr;
static ALWAYS_INLINE WideR8 expand_clip_mask(UNUSED uint8_t* buf, WideR8 mask) {
static ALWAYS_INLINE WideR8 expand_mask(UNUSED uint8_t* buf, WideR8 mask) {
return mask;
}
static ALWAYS_INLINE WideRGBA8 expand_clip_mask(UNUSED uint32_t* buf,
WideR8 mask) {
static ALWAYS_INLINE WideRGBA8 expand_mask(UNUSED uint32_t* buf, WideR8 mask) {
WideRG8 maskRG = zip(mask, mask);
return zip(maskRG, maskRG);
}
@ -367,9 +361,9 @@ static ALWAYS_INLINE uint8_t* get_clip_mask(P* buf) {
template <typename P>
static ALWAYS_INLINE auto load_clip_mask(P* buf, int span)
-> decltype(expand_clip_mask(buf, 0)) {
return expand_clip_mask(
buf, unpack(load_span<PackedR8>(get_clip_mask(buf), span)));
-> decltype(expand_mask(buf, 0)) {
return expand_mask(buf,
unpack(load_span<PackedR8>(get_clip_mask(buf), span)));
}
// Temporarily removes masking from the blend stage, assuming the caller will

Просмотреть файл

@ -720,6 +720,8 @@ SI I32 roundzero(Float v, Float scale) { return cast(v * scale); }
SI I32 roundfast(Float v, Float scale) {
#if USE_SSE2
return _mm_cvtps_epi32(v * scale);
#elif USE_NEON
return vcvtq_s32_f32(vmlaq_f32(v, scale, 0.5f));
#else
return cast(v * scale + 0.5f);
#endif

Просмотреть файл

@ -14,10 +14,10 @@ static void commit_masked_solid_span(P* buf, C color, int len) {
for (P* end = &buf[len]; buf < end; buf += 4, mask += 4) {
commit_span(
buf,
blend_span(buf,
applyColor(expand_clip_mask(
buf, unpack(unaligned_load<PackedR8>(mask))),
color)));
blend_span(
buf,
applyColor(expand_mask(buf, unpack(unaligned_load<PackedR8>(mask))),
color)));
}
restore_clip_mask();
}
@ -614,6 +614,44 @@ static inline LinearFilter needsTextureLinear(S sampler, T P, int span) {
#define swgl_commitTextureLinearColorR8(s, p, uv_rect, color) \
swgl_commitTextureLinear(R8, s, p, uv_rect, color, swgl_SpanLength)
// Helper function that samples from an R8 texture while expanding it to support
// a differing framebuffer format.
template <bool BLEND, typename S, typename C, typename P>
static inline int blendTextureLinearR8(S sampler, vec2 uv, int span,
const vec4_scalar& uv_rect, C color,
P* buf) {
if (!swgl_isTextureR8(sampler)) {
return 0;
}
LINEAR_QUANTIZE_UV(sampler, uv, uv_step, uv_rect, min_uv, max_uv);
for (P* end = buf + span; buf < end; buf += swgl_StepSize, uv += uv_step) {
commit_blend_span<BLEND>(
buf, applyColor(expand_mask(buf, textureLinearUnpackedR8(
sampler,
ivec2(clamp(uv, min_uv, max_uv)))),
color));
}
return span;
}
// Commit an entire span with linear filtering while expanding from R8 to RGBA8
#define swgl_commitTextureLinearColorR8ToRGBA8(s, p, uv_rect, color) \
do { \
auto packed_color = packColor(swgl_OutRGBA8, color); \
int drawn = 0; \
if (blend_key) { \
drawn = blendTextureLinearR8<true>(s, p, swgl_SpanLength, uv_rect, \
packed_color, swgl_OutRGBA8); \
} else { \
drawn = blendTextureLinearR8<false>(s, p, swgl_SpanLength, uv_rect, \
packed_color, swgl_OutRGBA8); \
} \
swgl_OutRGBA8 += drawn; \
swgl_SpanLength -= drawn; \
} while (0)
#define swgl_commitTextureLinearR8ToRGBA8(s, p, uv_rect) \
swgl_commitTextureLinearColorR8ToRGBA8(s, p, uv_rect, NoColor())
// Compute repeating UVs, possibly constrained by tile repeat limits
static inline vec2 tileRepeatUV(vec2 uv, const vec2_scalar& tile_repeat) {
if (tile_repeat.x > 0.0f) {

Просмотреть файл

@ -326,4 +326,24 @@ void main() {
#endif
}
#if defined(SWGL_DRAW_SPAN) && defined(SWGL_BLEND) && defined(SWGL_CLIP_DIST)
void swgl_drawSpanRGBA8() {
// Only support simple swizzles for now. More complex swizzles must either
// be handled by blend overrides or the slow path.
if (v_mask_swizzle.x != 0.0 && v_mask_swizzle.x != 1.0) {
return;
}
#ifdef WR_FEATURE_DUAL_SOURCE_BLENDING
swgl_commitTextureLinearRGBA8(sColor0, v_uv, v_uv_bounds);
#else
if (swgl_isTextureR8(sColor0)) {
swgl_commitTextureLinearColorR8ToRGBA8(sColor0, v_uv, v_uv_bounds, v_color);
} else {
swgl_commitTextureLinearColorRGBA8(sColor0, v_uv, v_uv_bounds, v_color);
}
#endif
}
#endif
#endif // WR_FRAGMENT_SHADER

Просмотреть файл

@ -16,11 +16,11 @@ fuzzy(1,1) == shadow-huge.yaml shadow-huge-ref.yaml
== decorations.yaml decorations-ref.yaml
skip_on(android,device) fuzzy(1,3635) fuzzy-if(platform(swgl),3,13395) == decorations-suite.yaml decorations-suite.png # Fails on Pixel2
== 1658.yaml 1658-ref.yaml
fuzzy(2,405) == split-batch.yaml split-batch-ref.yaml
fuzzy(2,405) fuzzy-if(platform(swgl),2,1508) == split-batch.yaml split-batch-ref.yaml
# Next 3 tests affected by bug 1548099 on Android
skip_on(android) == shadow-red.yaml shadow-red-ref.yaml
skip_on(android) fuzzy(1,999) fuzzy-if(platform(swgl),2,1081) == shadow-grey.yaml shadow-grey-ref.yaml
skip_on(android) fuzzy(1,828) fuzzy-if(platform(swgl),1,1249) == shadow-grey-transparent.yaml shadow-grey-ref.yaml
skip_on(android) fuzzy(1,999) fuzzy-if(platform(swgl),2,1324) == shadow-grey.yaml shadow-grey-ref.yaml
skip_on(android) fuzzy(1,828) fuzzy-if(platform(swgl),2,1538) == shadow-grey-transparent.yaml shadow-grey-ref.yaml
== subtle-shadow.yaml subtle-shadow-ref.yaml
fuzzy(1,64) == shadow-atomic.yaml shadow-atomic-ref.yaml
fuzzy(1,64) == shadow-clip-rect.yaml shadow-atomic-ref.yaml

Просмотреть файл

@ -29,7 +29,7 @@ fuzzy(0-2,0-440) == boxshadow-skiprect.html boxshadow-skiprect-ref.html
fuzzy(0-3,0-500) fuzzy-if(d2d,0-2,0-1080) == boxshadow-border-radius-int.html boxshadow-border-radius-int-ref.html
== boxshadow-inset-neg-spread.html about:blank
== boxshadow-inset-neg-spread2.html boxshadow-inset-neg-spread2-ref.html
fuzzy(0-26,0-3610) fuzzy-if(d2d,0-26,0-5910) fuzzy-if(webrender,0-6,400-4500) == boxshadow-rotated.html boxshadow-rotated-ref.html # Bug 1211264
fuzzy(0-26,0-3610) fuzzy-if(d2d,0-26,0-5910) fuzzy-if(webrender,0-6,378-4500) == boxshadow-rotated.html boxshadow-rotated-ref.html # Bug 1211264
== boxshadow-inset-large-border-radius.html boxshadow-inset-large-border-radius-ref.html
# fuzzy due to blur going inside, but as long as it's essentially black instead of a light gray its ok.

Просмотреть файл

@ -1646,7 +1646,7 @@ fuzzy-if(skiaContent,0-1,0-65536) == 654950-1.html 654950-1-ref.html # Quartz al
== 655836-1.html 655836-1-ref.html
!= 656875.html about:blank
== 658952.html 658952-ref.html
fuzzy-if(skiaContent,0-10,0-919) fuzzy-if(webrender&&cocoaWidget,2-2,4-4) fuzzy-if(swgl&&cocoaWidget,2-2,148-148) == 660682-1.html 660682-1-ref.html
fuzzy-if(skiaContent,0-10,0-919) fuzzy-if(webrender&&cocoaWidget,2-2,4-23) == 660682-1.html 660682-1-ref.html
fuzzy-if(d2d,0-1,0-256) fuzzy-if(skiaContent,0-1,0-68000) == chrome://reftest/content/bugs/664127-1.xhtml chrome://reftest/content/bugs/664127-1-ref.xhtml
== 665597-1.html 665597-1-ref.html
!= 665597-2.html 665597-2-ref.html
@ -2026,7 +2026,7 @@ needs-focus != 1377447-1.html 1377447-2.html
fuzzy-if(webrender,0-129,0-48) == 1406179.html 1406179-ref.html
== 1406183-1.html 1406183-1-ref.html
== 1410028.html 1410028-ref.html
fuzzy-if(!(webrender&&(gtkWidget||geckoview)&&!swgl),1-2,17300-17500) == 1412375.html 1412375-ref.html
fuzzy-if(!webrender||(!gtkWidget&&!geckoview&&!swgl),1-2,17300-17500) == 1412375.html 1412375-ref.html
test-pref(font.size.systemFontScale,200) == 1412743.html 1412743-ref.html
fuzzy(0-255,0-4054) == 1415987-1.html 1415987-1-ref.html # this is a large fuzz, without the fix the test fails in the range 246-255,3237-25110, which overlaps the fuzz range, but would still catch regressing this bug some of the time which is better than not having a test.
== 1419820-1.html 1419820-1-ref.html
@ -2036,7 +2036,7 @@ fuzzy(0-255,0-4054) == 1415987-1.html 1415987-1-ref.html # this is a large fuzz,
== 1424680.html 1424680-ref.html
== 1424798-1.html 1424798-ref.html
fuzzy-if(!webrender,0-74,0-2234) == 1425243-1.html 1425243-1-ref.html
fuzzy-if(Android,0-66,0-574) fuzzy-if(d2d,0-89,0-777) fuzzy-if(!Android&&!d2d,0-1,0-31380) fuzzy-if(webrender&&winWidget&&!swgl,1-1,31240-31320) fails-if(useDrawSnapshot) == 1425243-2.html 1425243-2-ref.html
fuzzy-if(Android,0-66,0-574) fuzzy-if(d2d,0-89,0-777) fuzzy-if(!Android&&!d2d,0-1,0-31412) fuzzy-if(webrender&&winWidget,1-1,31240-31412) fails-if(useDrawSnapshot) == 1425243-2.html 1425243-2-ref.html
== 1430869.html 1430869-ref.html
== 1432541.html 1432541-ref.html
== 1446470.html 1035091-ref.html

Просмотреть файл

@ -111,7 +111,7 @@ pref(layout.display-list.improve-fragmentation,false) fuzzy-if(OSX,23-23,1-1) ==
== 115199-2b.html 115199-2-ref.html
== 652178-1.html 652178-1-ref2.html
fuzzy-if(cocoaWidget,0-1,0-5000) fuzzy-if(webrender&&swgl,0-1,0-9) == 745025-1.html 745025-1-ref.html
fuzzy-if(cocoaWidget&&swgl,1-1,21-21) == 820496-1.html 820496-1-ref.html
== 820496-1.html 820496-1-ref.html
# NOTE: These tests don't yet rigorously test what they're
# trying to test (shrink-to-fit behavior), due to bug 967311.
@ -133,7 +133,7 @@ fuzzy-if(cocoaWidget&&swgl,1-1,21-21) == 820496-1.html 820496-1-ref.html
== 1468654-1.html 1468654-1-ref.html
== 1596310.html 1596310-ref.html
fuzzy-if(cocoaWidget&&swgl,1-1,21-23) == content-url-element.html image.html
== content-url-element.html image.html
fuzzy-if(cocoaWidget&&swgl,0-1,0-23) == content-url-pseudo.html content-url-pseudo-ref.html
== quirks.html quirks-ref.html
@ -163,7 +163,7 @@ fuzzy-if(cocoaWidget&&swgl,0-1,0-23) == content-url-pseudo.html content-url-pseu
== fieldset-00J.html fieldset-00J-ref.html
== fieldset-00J-grid.html fieldset-00J-ref.html
== fieldset-00K.html fieldset-00K-ref.html
fuzzy-if(cocoaWidget&&swgl,1-1,21-21) == fieldset-00L.html fieldset-00L-ref.html
== fieldset-00L.html fieldset-00L-ref.html
== block-max-height-001.html block-max-height-001-ref.html
== block-max-height-002.html block-max-height-001-ref.html

Просмотреть файл

@ -2,6 +2,6 @@
# e.g. filter: blur(3px) grayscale(0.5) invert(0.2);
# Some platforms render this complex filter chain a little differently, and that's ok.
fuzzy(0-5,0-13638) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)&&layersGPUAccelerated,0-35,0-13638) fuzzy-if(webrender,4-6,12000-19484) fuzzy-if(webrender&&swgl,9-10,19336-20088) == long-chain.html long-chain-ref.html # Win10: Bug 1258241
fuzzy(0-5,0-13638) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)&&layersGPUAccelerated,0-35,0-13638) fuzzy-if(webrender,4-6,12000-19484) fuzzy-if(webrender&&swgl,7-10,19336-20088) == long-chain.html long-chain-ref.html # Win10: Bug 1258241
== moz-element.html moz-element-ref.html
fuzzy-if(webrender,13-15,7670-7982) fuzzy-if(webrender&&swgl,11-12,14052-14056) == same-filter.html same-filter-ref.html

Просмотреть файл

@ -50,11 +50,11 @@ fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)||webrender,0-1,0-10000) == i
== invert-over-one.html invert-over-one-ref.html
fuzzy-if(webrender,0-1,0-10000) fuzzy-if(d2d,0-1,0-10000) == invert-percent.html invert-percent-ref.html
== invert-zero.html invert-zero-ref.html
fuzzy-if(webrender&&!geckoview&&!swgl,1-1,10000-10000) fuzzy-if(d2d,0-1,0-10000) == opacity.html opacity-ref.html
fuzzy-if(webrender&&!geckoview,1-1,10000-10000) fuzzy-if(d2d,0-1,0-10000) == opacity.html opacity-ref.html
== opacity-one.html opacity-one-ref.html
== opacity-over-one.html opacity-over-one-ref.html
fuzzy-if(skiaContent,0-1,0-10000) == opacity-over-one-translucent-source.html opacity-over-one-translucent-source-ref.html
fuzzy-if(webrender&&!geckoview&&!swgl,1-1,10000-10000) fuzzy-if(d2d,0-1,0-10000) == opacity-percent.html opacity-percent-ref.html
fuzzy-if(webrender&&!geckoview,1-1,10000-10000) fuzzy-if(d2d,0-1,0-10000) == opacity-percent.html opacity-percent-ref.html
== opacity-zero.html opacity-zero-ref.html
== saturate.html saturate-ref.html
fuzzy-if(webrender&&!geckoview,1-1,10000-10000) fuzzy-if(d2d,0-1,0-10000) == saturate-desaturate.html saturate-desaturate-ref.html

Просмотреть файл

@ -223,7 +223,7 @@ skip pref(security.fileuri.strict_origin_policy,true) == filter-extref-different
== filter-foreignObject-01.svg pass.svg
== filter-in-mask-01.svg pass.svg
== filter-invalidation-01.svg pass.svg
fuzzy(0-71,0-821) fails-if(winWidget) fuzzy-if(webrender&&OSX,1-1,216-458) == filter-on-continuation-box-01.html filter-on-continuation-box-ref.html
fuzzy(0-71,0-821) fails-if(winWidget) fuzzy-if(webrender&&OSX&&!swgl,1-1,216-458) == filter-on-continuation-box-01.html filter-on-continuation-box-ref.html
== filter-result-01.svg filter-result-01-ref.svg
== filter-scaled-01.svg pass.svg
fuzzy-if(skiaContent,0-1,0-500) == filter-scaled-02.html filter-scaled-02-ref.html
@ -613,5 +613,5 @@ fails-if(Android) != mask-resource.html about:blank # The image the test uses is
!= bug-1562091.html bug-1562091-ref.html
== 1570363-1.html 1570363-1-ref.html
fuzzy-if(webrender,0-1,0-96) fuzzy-if(!webrender,0-2,0-7882) == mask-opacity-invalidation-1.html mask-opacity-invalidation-1-ref.html # clip-path mask/opacity optimization
fuzzy-if(webrender,0-1,0-150) fuzzy-if(!webrender,0-2,0-7882) == mask-opacity-invalidation-1.html mask-opacity-invalidation-1-ref.html # clip-path mask/opacity optimization
skip-if(Android) skip-if(cocoaWidget&&webrender) skip-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)) == transform-animation-on-path.html transform-animation-on-path-ref.html #Bug 1638909

Просмотреть файл

@ -51,10 +51,10 @@ fuzzy-if(webrender,36-40,1096-1162) == clip-path-ellipse-008.html clip-path-elli
== clip-path-inset-001b.html clip-path-inset-001-ref.html
== clip-path-inset-001c.html clip-path-inset-001-ref.html
# Anti-aliasing behavior for masking and borders is different
fuzzy-if(!webrender,0-64,0-146) fuzzy-if(webrender&&!swgl,0-1,0-2) fuzzy-if(webrender&&swgl,1-1,24-24) == clip-path-inset-002a.html clip-path-inset-002-ref.html
fuzzy-if(!webrender,0-64,0-146) fuzzy-if(webrender&&!swgl,0-1,0-2) fuzzy-if(webrender&&swgl,1-1,24-24) == clip-path-inset-002b.html clip-path-inset-002-ref.html
fuzzy-if(!webrender,0-64,0-146) fuzzy-if(webrender&&!swgl,0-1,0-2) fuzzy-if(webrender&&swgl,1-1,24-24) == clip-path-inset-002c.html clip-path-inset-002-ref.html
fuzzy-if(!webrender,0-64,0-340) fuzzy-if(webrender&&!swgl,0-1,0-2) fuzzy-if(webrender&&swgl,1-1,49-49) == clip-path-inset-003.html clip-path-inset-003-ref.html
fuzzy-if(!webrender,0-64,0-146) fuzzy-if(webrender,0-1,0-2) == clip-path-inset-002a.html clip-path-inset-002-ref.html
fuzzy-if(!webrender,0-64,0-146) fuzzy-if(webrender,0-1,0-2) == clip-path-inset-002b.html clip-path-inset-002-ref.html
fuzzy-if(!webrender,0-64,0-146) fuzzy-if(webrender,0-1,0-2) == clip-path-inset-002c.html clip-path-inset-002-ref.html
fuzzy-if(!webrender,0-64,0-340) fuzzy-if(webrender,0-1,0-2) == clip-path-inset-003.html clip-path-inset-003-ref.html
== clip-path-stroke-001.html clip-path-stroke-001-ref.html

Просмотреть файл

@ -2,7 +2,6 @@
disabled:
if webrender and (os == "linux"): https://bugzilla.mozilla.org/show_bug.cgi?id=1526468
expected:
if swgl: PASS
if os == "mac": FAIL
if webrender and (os == "win"): FAIL
if webrender and (os == 'android'): FAIL

Просмотреть файл

@ -2,5 +2,3 @@
expected:
if webrender: PASS
FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=11016-11016

Просмотреть файл

@ -2,5 +2,3 @@
expected:
if webrender: PASS
FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=11664-11664

Просмотреть файл

@ -1,3 +0,0 @@
[box-shadow-041.html]
fuzzy:
if swgl: maxDifference=1-1;totalPixels=2304-2304

Просмотреть файл

@ -1,3 +0,0 @@
[box-shadow-042.html]
fuzzy:
if swgl: maxDifference=1-1;totalPixels=2664-2664

Просмотреть файл

@ -1,5 +1,5 @@
[t32-opacity-basic-0.6-a.xht]
expected:
if os == "linux": PASS
if webrender and (os == "android"): PASS
if webrender and not swgl and (os == "android"): PASS
FAIL

Просмотреть файл

@ -1,5 +1,5 @@
[t422-rgba-a0.6-a.xht]
expected:
if os == "linux": PASS
if webrender and (os == "android"): PASS
if webrender and not swgl and (os == "android"): PASS
FAIL

Просмотреть файл

@ -4,5 +4,3 @@
if webrender and (os == "android"): PASS
if (os == "mac") and not webrender: FAIL
if (os == "android"): FAIL
fuzzy:
if swgl and ((os == "win") or (os == "mac")): maxDifference=1-1;totalPixels=76-90

Просмотреть файл

@ -1,5 +1,5 @@
[t425-hsla-basic-a.xht]
expected:
if webrender and (os == "android"): PASS
if webrender and not swgl and (os == "android"): PASS
if os == "linux": PASS
FAIL

Просмотреть файл

@ -4,5 +4,3 @@
if (os == "android") and swgl: FAIL
if webrender and (os == "android"): PASS
if (os == "android"): FAIL
fuzzy:
if swgl and ((os == "win") or (os == "mac")): maxDifference=1-1;totalPixels=76-90

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-circle-001.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=168-168

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-circle-002.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=168-168

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-circle-003.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=168-168

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-circle-004.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=168-168

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-circle-005.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=168-168

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-circle-006.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=168-168

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-circle-007.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=168-168

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-circle-008.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=168-168

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-ellipse-001.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=78-78

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-ellipse-002.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=78-78

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-ellipse-003.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=168-168

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-ellipse-004.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=78-78

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-ellipse-005.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=78-78

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-ellipse-006.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=78-78

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-ellipse-007.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=78-78

Просмотреть файл

@ -1,5 +1,3 @@
[clip-path-ellipse-008.html]
expected:
if not webrender: FAIL
fuzzy:
if swgl: maxDifference=1-1;totalPixels=78-78

Просмотреть файл

@ -3,5 +3,4 @@
if not webrender: FAIL
if webrender: PASS
fuzzy:
if os != "win" and swgl: maxDifference=1-1;totalPixels=10000-10000
if os == "win" and webrender: maxDifference=92;totalPixels=10894

Просмотреть файл

@ -1,3 +1,3 @@
[color-001.html]
expected:
if webrender and (os == "win"): FAIL
if webrender and not swgl and (os == "win"): FAIL

Просмотреть файл

@ -1,3 +1,3 @@
[color-002.html]
expected:
if webrender and (os == "win"): FAIL
if webrender and not swgl and (os == "win"): FAIL

Просмотреть файл

@ -1,3 +1,3 @@
[color-003.html]
expected:
if webrender and (os == "win"): FAIL
if webrender and not swgl and (os == "win"): FAIL