зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
abefc13c51
Коммит
acd20a15d5
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче