Bug 1691139 - Use cheaper linear approximation for WR shader anti-aliasing. r=gw

Differential Revision: https://phabricator.services.mozilla.com/D104270
This commit is contained in:
Lee Salzman 2021-02-07 20:15:47 +00:00
Родитель 645c3456ef
Коммит 28c09d8dcd
16 изменённых файлов: 67 добавлений и 58 удалений

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

@ -5,7 +5,7 @@ skip-if(!asyncPan) pref(apz.allow_zooming,true) != async-scrollbar-1-v.html abou
skip-if(!asyncPan) pref(apz.allow_zooming,true) != async-scrollbar-1-v-ref.html about:blank
fuzzy-if(Android,0-1,0-2) fuzzy-if(webrender&&gtkWidget&&!swgl,7-8,24-32) fuzzy-if(webrender&&cocoaWidget,22-22,44-44) skip-if(!asyncPan) pref(apz.allow_zooming,true) == async-scrollbar-1-v.html async-scrollbar-1-v-ref.html
fuzzy-if(Android,0-4,0-5) fuzzy-if(webrender&&gtkWidget,28-30,28-32) fuzzy-if(webrender&&cocoaWidget,22-22,44-44) skip-if(!asyncPan) pref(apz.allow_zooming,true) == async-scrollbar-1-h.html async-scrollbar-1-h-ref.html
fuzzy-if(Android,0-6,0-6) fuzzy-if(webrender&&gtkWidget&&!swgl,2-2,19-20) fuzzy-if(webrender&&cocoaWidget,17-17,88-88) skip-if(!asyncPan) pref(apz.allow_zooming,true) == async-scrollbar-1-vh.html async-scrollbar-1-vh-ref.html
fuzzy-if(Android,0-7,0-6) fuzzy-if(webrender&&gtkWidget&&!swgl,2-2,19-20) fuzzy-if(webrender&&cocoaWidget,17-17,88-88) skip-if(!asyncPan) pref(apz.allow_zooming,true) == async-scrollbar-1-vh.html async-scrollbar-1-vh-ref.html
fuzzy-if(Android,0-1,0-2) fuzzy-if(webrender&&gtkWidget&&!swgl,7-8,24-32) fuzzy-if(webrender&&cocoaWidget,22-22,44-44) skip-if(!asyncPan) pref(apz.allow_zooming,true) == async-scrollbar-1-v-rtl.html async-scrollbar-1-v-rtl-ref.html
fuzzy-if(Android,0-14,0-5) fuzzy-if(webrender&&gtkWidget,28-30,28-32) fuzzy-if(webrender&&cocoaWidget,22-22,44-44) skip-if(!asyncPan) pref(apz.allow_zooming,true) == async-scrollbar-1-h-rtl.html async-scrollbar-1-h-rtl-ref.html
fuzzy-if(Android,0-8,0-8) fuzzy-if(webrender&&gtkWidget,13-14,27-32) fuzzy-if(webrender&&cocoaWidget,17-17,50-54) skip-if(!asyncPan) pref(apz.allow_zooming,true) == async-scrollbar-1-vh-rtl.html async-scrollbar-1-vh-rtl-ref.html

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

@ -14,7 +14,7 @@ fuzzy-if(winWidget,0-1,0-4) == 1435143.html 1435143-ref.html
== 1444904.html 1444904-ref.html
fuzzy-if(winWidget&&webrender,90-95,1000-1100) == 1451168.html 1451168-ref.html
== 1461313.html 1461313-ref.html
fuzzy(5-32,21908-26621) fuzzy-if(webrender,4-5,868-1039) == 1463802.html 1463802-ref.html
fuzzy(5-32,21908-26621) fuzzy-if(webrender,0-5,0-1052) == 1463802.html 1463802-ref.html
fuzzy(0-11,0-4) == 1474722.html 1474722-ref.html
== 1501195.html 1501195-ref.html
== 1519754.html 1519754-ref.html

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

@ -3411,6 +3411,13 @@ pub fn ast_to_hir(state: &mut State, tu: &syntax::TranslationUnit) -> Translatio
declare_function(state, "exp2", None, Type::new(Float), vec![Type::new(Float)]);
declare_function(state, "log", None, Type::new(Float), vec![Type::new(Float)]);
declare_function(state, "log2", None, Type::new(Float), vec![Type::new(Float)]);
declare_function(
state,
"recip",
None,
Type::new(Float),
vec![Type::new(Float)],
);
declare_function(
state,
"inversesqrt",

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

@ -87,7 +87,7 @@
/// This range represents a coefficient to go from one CSS pixel to half a device pixel.
float compute_aa_range(vec2 position) {
// The constant factor is chosen to compensate for the fact that length(fw) is equal
// to sqrt(2) times the device pixel ratio in the typical case. 1/sqrt(2) = 0.7071.
// to sqrt(2) times the device pixel ratio in the typical case.
//
// This coefficient is chosen to ensure that any sample 0.5 pixels or more inside of
// the shape has no anti-aliasing applied to it (since pixels are sampled at their center,
@ -102,12 +102,18 @@
// We may want to adjust this constant in specific scenarios (for example keep the principled
// value for straight edges where we want pixel-perfect equivalence with non antialiased lines
// when axis aligned, while selecting a larger and smoother aa range on curves).
//
// As a further optimization, we compute the reciprocal of this range, such that we
// can then use the cheaper inversesqrt() instead of length(). This also elides a
// division that would otherwise be necessary inside distance_aa.
#ifdef SWGL
// SWGL uses an approximation for fwidth() such that it returns equal x and y.
// Thus, 1/sqrt(2) * length((x,y)) = 1/sqrt(2) * sqrt(x*x + x*x) = x.
return fwidth(position).x;
// Thus, sqrt(2)/length(w) = sqrt(2)/sqrt(x*x + x*x) = recip(x).
return recip(fwidth(position).x);
#else
return 0.7071 * length(fwidth(position));
// sqrt(2)/length(w) = inversesqrt(0.5 * dot(w, w))
vec2 w = fwidth(position);
return inversesqrt(0.5 * dot(w, w));
#endif
}
@ -115,26 +121,18 @@
///
/// 0.0 means inside the shape, 1.0 means outside.
///
/// This cubic polynomial approximates the area of a 1x1 pixel square under a
/// line, given the signed Euclidean distance from the center of the square to
/// that line. Calculating the *exact* area would require taking into account
/// not only this distance but also the angle of the line. However, in
/// practice, this complexity is not required, as the area is roughly the same
/// regardless of the angle.
///
/// The coefficients of this polynomial were determined through least-squares
/// regression and are accurate to within 2.16% of the total area of the pixel
/// square 95% of the time, with a maximum error of 3.53%.
/// This makes the simplifying assumption that the area of a 1x1 pixel square
/// under a line is reasonably similar to just the signed Euclidian distance
/// from the center of the square to that line. This diverges slightly from
/// better approximations of the exact area, but the difference between the
/// methods is not perceptibly noticeable, while this approximation is much
/// faster to compute.
///
/// See the comments in `compute_aa_range()` for more information on the
/// cutoff values of -0.5 and 0.5.
float distance_aa(float aa_range, float signed_distance) {
float dist = signed_distance / aa_range;
bool inside = dist <= -0.5 + EPSILON;
bool outside = dist >= 0.5 - EPSILON;
return inside || outside
? float(inside)
: 0.5 + dist * (0.8431027 * dist * dist - 1.14453603);
float dist = signed_distance * aa_range;
return clamp(0.5 - dist, 0.0, 1.0);
}
/// Component-wise selection.

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

@ -100,7 +100,11 @@ bool has_valid_transform_bounds() {
float signed_distance_rect(vec2 pos, vec2 p0, vec2 p1) {
vec2 d = max(p0 - pos, pos - p1);
return length(max(vec2(0.0), d)) + min(0.0, max(d.x, d.y));
// Instead of using a true signed distance to rect here, we just use the
// simpler approximation of the maximum distance on either axis from the
// outside of the rectangle. This avoids expensive use of length() and only
// causes mostly imperceptible differences at corner pixels.
return max(d.x, d.y);
}
float init_transform_fs(vec2 local_pos) {

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

@ -5,7 +5,7 @@ skip-if(!asyncPan) == bg-fixed-cover-3.html bg-fixed-cover-3-ref.html
skip-if(!asyncPan) == bg-fixed-child.html bg-fixed-child-ref.html
skip-if(!asyncPan) == bg-fixed-child-clip-1.html bg-fixed-child-clip-ref.html
skip-if(!asyncPan) == bg-fixed-child-clip-2.html bg-fixed-child-clip-ref.html
fuzzy(0-1,0-246) fuzzy-if(skiaContent,0-2,0-170) fuzzy-if(browserIsRemote&&d2d,0-59,0-187) fuzzy-if(webrender,41-42,166-176) skip-if(!asyncPan) == bg-fixed-child-mask.html bg-fixed-child-mask-ref.html
fuzzy(0-1,0-246) fuzzy-if(skiaContent,0-2,0-170) fuzzy-if(browserIsRemote&&d2d,0-59,0-187) fuzzy-if(webrender,41-42,154-176) skip-if(!asyncPan) == bg-fixed-child-mask.html bg-fixed-child-mask-ref.html
skip-if(!asyncPan) fuzzy-if(!webrender&&(gtkWidget||winWidget),0-1,0-10000) == bg-fixed-in-opacity.html bg-fixed-in-opacity-ref.html
# Passing the test below without WebRender would require implementing CSS filters in the Gecko compositor.
fails-if(!webrender) skip-if(!asyncPan) fuzzy-if(webrender&&gtkWidget,0-1,0-87) fuzzy-if(webrender&&!gtkWidget,0-1,0-3951) == bg-fixed-in-css-filter.html bg-fixed-in-css-filter-ref.html # bug 1454794 for webrender fuzziness

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

@ -23,14 +23,14 @@ fuzzy-if(skiaContent,0-1,0-342) == percent-2.html percent-2-ref.html
fuzzy-if(skiaContent,0-1,0-343) == percent-3.html percent-3-ref.html
# more serious tests, using SVG reference
fuzzy-if(skiaContent,0-17,0-58) fuzzy-if(webrender,30-30,70-70) == border-circle-2.html border-circle-2-ref.xhtml
fuzzy-if(skiaContent,0-17,0-58) fuzzy-if(webrender,30-30,65-70) == border-circle-2.html border-circle-2-ref.xhtml
fuzzy-if(gtkWidget,0-14,0-280) fuzzy-if(cocoaWidget,0-4,0-582) fuzzy-if(Android,0-36,0-264) fuzzy-if(d2d,0-51,0-323) fuzzy-if(winWidget&&!d2d,0-16,0-377) fuzzy-if(skiaContent,0-63,0-507) fuzzy-if(webrender,62-62,930-1013) == curved-stripe-border.html curved-stripe-border-ref.svg # bug 459945
# Corners
fuzzy-if(skiaContent,0-17,0-47) fuzzy-if(webrender,30-30,58-58) == corner-1.html corner-1-ref.svg # bottom corners different radius than top corners
fuzzy-if(gtkWidget,0-23,0-5) fuzzy-if(winWidget&&!d2d,0-23,0-5) fuzzy-if(d2d,0-32,0-8) fuzzy-if(Android,0-10,0-8) fuzzy-if(skiaContent,0-18,0-49) fuzzy-if(webrender,30-30,57-57) == corner-2.html corner-2-ref.svg # right corners different radius than left corners; see bug 500804
fuzzy-if(gtkWidget,0-3,0-10) fuzzy-if(winWidget&&!d2d,0-3,0-10) fuzzy-if(d2d,0-15,0-32) fuzzy-if(Android,0-3,0-15) fuzzy-if(skiaContent,0-18,0-90) fuzzy-if(webrender,23-23,105-105) == corner-3.html corner-3-ref.svg
fuzzy-if(skiaContent,0-13,0-83) fuzzy-if(webrender,13-13,104-108) == corner-4.html corner-4-ref.svg
fuzzy-if(skiaContent,0-17,0-47) fuzzy-if(webrender,28-30,53-58) == corner-1.html corner-1-ref.svg # bottom corners different radius than top corners
fuzzy-if(gtkWidget,0-23,0-5) fuzzy-if(winWidget&&!d2d,0-23,0-5) fuzzy-if(d2d,0-32,0-8) fuzzy-if(Android,0-10,0-8) fuzzy-if(skiaContent,0-18,0-49) fuzzy-if(webrender,28-30,52-57) == corner-2.html corner-2-ref.svg # right corners different radius than left corners; see bug 500804
fuzzy-if(gtkWidget,0-3,0-10) fuzzy-if(winWidget&&!d2d,0-3,0-10) fuzzy-if(d2d,0-15,0-32) fuzzy-if(Android,0-3,0-15) fuzzy-if(skiaContent,0-18,0-90) fuzzy-if(webrender,21-23,101-105) == corner-3.html corner-3-ref.svg
fuzzy-if(skiaContent,0-13,0-83) fuzzy-if(webrender,13-13,96-108) == corner-4.html corner-4-ref.svg
# Test that radii too long are reduced
== border-reduce-height.html border-reduce-height-ref.html
@ -39,7 +39,7 @@ fuzzy-if(skiaContent,0-13,0-83) fuzzy-if(webrender,13-13,104-108) == corner-4.ht
fails == clipping-1.html clipping-1-ref.html # background color should completely fill box; bug 466572
!= clipping-2.html about:blank # background color clipped to inner/outer border, can't get
# great tests for this due to antialiasing problems described in bug 466572
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-1,0-1) fuzzy-if(skiaContent,0-17,0-62) fuzzy-if(webrender,30-30,70-111) == clipping-3.html clipping-3-ref.xhtml # edge of border-radius clips an underlying object's background
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-1,0-1) fuzzy-if(skiaContent,0-17,0-62) fuzzy-if(webrender,30-30,66-111) == clipping-3.html clipping-3-ref.xhtml # edge of border-radius clips an underlying object's background
# Tests for clipping the contents of replaced elements and overflow!=visible
!= clipping-4-ref.html clipping-4-notref.html

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

@ -14,7 +14,7 @@ random != boxshadow-blur-2.html boxshadow-blur-2-notref.html # fixedpoint divisi
fuzzy-if(OSX==1010,0-1,0-24) fuzzy-if(d2d,0-16,0-999) fuzzy-if(skiaContent,0-14,0-179) fuzzy-if(webrender&&swgl,1-1,714-714) == boxshadow-large-border-radius.html boxshadow-large-border-radius-ref.html # Bug 1209649
== boxshadow-fileupload.html boxshadow-fileupload-ref.html
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-98,0-152) fuzzy-if(skiaContent,0-13,0-28) fuzzy-if(webrender,19-19,47-47) == boxshadow-inner-basic.html boxshadow-inner-basic-ref.svg
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-98,0-152) fuzzy-if(skiaContent,0-13,0-28) fuzzy-if(webrender,18-19,47-49) == boxshadow-inner-basic.html boxshadow-inner-basic-ref.svg
fuzzy-if(skiaContent,0-1,0-18) random-if(layersGPUAccelerated) == boxshadow-mixed.html boxshadow-mixed-ref.html
fuzzy-if(skiaContent,0-1,0-17) == boxshadow-mixed-2.html boxshadow-mixed-2-ref.html
random-if(d2d) fuzzy-if(skiaContent,0-1,0-212) fuzzy-if(webrender,0-127,0-3528) == boxshadow-rounded-spread.html boxshadow-rounded-spread-ref.html
@ -26,10 +26,10 @@ fuzzy(0-2,0-440) == boxshadow-skiprect.html boxshadow-skiprect-ref.html
== boxshadow-opacity.html boxshadow-opacity-ref.html
== boxshadow-color-rounding.html boxshadow-color-rounding-ref.html
== boxshadow-color-rounding-middle.html boxshadow-color-rounding-middle-ref.html
fuzzy(0-3,0-500) fuzzy-if(d2d,0-2,0-1080) fuzzy-if(webrender&&swgl,1-1,1000-1000) == boxshadow-border-radius-int.html boxshadow-border-radius-int-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,4-6,4172-4350) == boxshadow-rotated.html boxshadow-rotated-ref.html # Bug 1211264
fuzzy(0-26,0-3610) fuzzy-if(d2d,0-26,0-5910) fuzzy-if(webrender,4-6,4088-4350) == 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.

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

@ -1174,10 +1174,10 @@ fuzzy-if(webrender,0-4,0-361) == 449519-1.html 449519-1-ref.html
== 455280-1.xhtml 455280-1-ref.xhtml
fails-if(Android) == 455826-1.html 455826-1-ref.html
fails-if(Android||cocoaWidget||winWidget) == chrome://reftest/content/bugs/456147.xhtml 456147-ref.html # bug 458047
fuzzy-if(Android,0-11,0-41) fuzzy-if(winWidget||gtkWidget,0-4,0-6) fuzzy-if(d2d,0-16,0-95) fuzzy-if(skiaContent,0-42,0-154) fuzzy-if(webrender,56-60,449-570) == 456219-1a.html 456219-1-ref.html # bug 1128229
fuzzy-if(Android,0-11,0-41) fuzzy-if(winWidget||gtkWidget,0-4,0-6) fuzzy-if(d2d,0-16,0-99) fuzzy-if(skiaContent,0-42,0-154) fuzzy-if(webrender,56-60,449-1251) == 456219-1b.html 456219-1-ref.html # bug 1128229
fuzzy-if(Android,0-11,0-41) fuzzy-if(winWidget||gtkWidget,0-4,0-6) fuzzy-if(d2d,0-16,0-99) fuzzy-if(skiaContent,0-42,0-154) fuzzy-if(webrender,56-60,449-497) fuzzy-if(geckoview&&webrender&&device,60-60,497-4421) == 456219-1c.html 456219-1-ref.html # bug 1128229
fuzzy-if(skiaContent,0-1,0-45) fuzzy-if(webrender,8-10,8-8) == 456219-2.html 456219-2-ref.html
fuzzy-if(Android,0-11,0-41) fuzzy-if(winWidget||gtkWidget,0-4,0-6) fuzzy-if(d2d,0-16,0-95) fuzzy-if(skiaContent,0-42,0-154) fuzzy-if(webrender,53-60,418-570) == 456219-1a.html 456219-1-ref.html # bug 1128229
fuzzy-if(Android,0-11,0-41) fuzzy-if(winWidget||gtkWidget,0-4,0-6) fuzzy-if(d2d,0-16,0-99) fuzzy-if(skiaContent,0-42,0-154) fuzzy-if(webrender,53-60,418-1251) == 456219-1b.html 456219-1-ref.html # bug 1128229
fuzzy-if(Android,0-11,0-41) fuzzy-if(winWidget||gtkWidget,0-4,0-6) fuzzy-if(d2d,0-16,0-99) fuzzy-if(skiaContent,0-42,0-154) fuzzy-if(webrender,53-60,418-497) fuzzy-if(geckoview&&webrender&&device,54-60,497-4421) == 456219-1c.html 456219-1-ref.html # bug 1128229
fuzzy-if(skiaContent,0-1,0-45) fuzzy-if(webrender,0-10,0-8) == 456219-2.html 456219-2-ref.html
== 456330-1.gif 456330-1-ref.png
== 456484-1.html 456484-1-ref.html
== 457398-1.html 457398-1-ref.html
@ -1205,7 +1205,7 @@ fuzzy-if(skiaContent,0-1,0-5) == 459443-1.html 459443-1-ref.html
== 459613-1.html 459613-1-ref.html
== 460012-1.html 460012-1-ref.html
== 461266-1.html 461266-1-ref.html
fuzzy-if(skiaContent||webrender,0-1,0-31200) == 461512-1.html 461512-1-ref.html
fuzzy-if(skiaContent||webrender,0-1,0-34360) == 461512-1.html 461512-1-ref.html
== 462844-1.html 462844-ref.html
== 462844-2.html 462844-ref.html
== 462844-3.html 462844-ref.html
@ -1696,7 +1696,7 @@ fuzzy-if(skiaContent,0-1,0-1) == 751012-1b.html 751012-1-ref.html
== 753329-1.html about:blank
== 758561-1.html 758561-1-ref.html
fuzzy-if(true,0-1,0-90) fuzzy-if(skiaContent,0-1,0-320) == 759036-1.html 759036-1-ref.html
fuzzy-if(true,0-17,0-5886) fuzzy-if(skiaContent,0-9,0-5894) fuzzy-if(geckoview&&webrender&&device,3-3,5850-5855) == 759036-2.html 759036-2-ref.html
fuzzy-if(true,0-17,0-5886) fuzzy-if(skiaContent,0-9,0-5894) fuzzy-if(geckoview&&webrender&&device,3-3,5831-5855) == 759036-2.html 759036-2-ref.html
== 776265-1a.html 776265-1-ref.html
== 776265-1b.html 776265-1-ref.html
== 776265-1c.html 776265-1-ref.html
@ -1963,7 +1963,7 @@ fuzzy-if(Android,0-27,0-874) fuzzy-if(!Android,0-14,0-43) == 1313772.xhtml 13137
fuzzy(0-3,0-320000) == 1315113-1.html 1315113-1-ref.html
fuzzy(0-3,0-20000) == 1315113-2.html 1315113-2-ref.html
== 1315632-1.html 1315632-1-ref.html
fuzzy(0-2,0-40000) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-13,0-40000) fuzzy-if(gtkWidget&&webrender&&swgl,8-8,330-330) == 1316719-1a.html 1316719-1-ref.html
fuzzy(0-2,0-40000) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-13,0-40000) == 1316719-1a.html 1316719-1-ref.html
fuzzy(0-13,0-40000) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-13,0-40000) == 1316719-1b.html 1316719-1-ref.html
fuzzy(0-13,0-40000) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-13,0-40000) == 1316719-1c.html 1316719-1-ref.html
!= 1318769-1.html 1318769-1-ref.html
@ -2037,7 +2037,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,1-1,31284-31320) fuzzy-if(webrender&&swgl,1-1,31620-31620) == 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-31380) fuzzy-if(webrender&&winWidget,1-1,31240-31320) fuzzy-if(webrender&&swgl,1-1,31620-31676) == 1425243-2.html 1425243-2-ref.html
== 1430869.html 1430869-ref.html
== 1432541.html 1432541-ref.html
== 1446470.html 1035091-ref.html

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

@ -16,13 +16,13 @@ random-if(d2d) fuzzy-if(webrender,255-255,39-42) == element-paint-transform-02.h
fuzzy-if(d2d&&/^Windows\x20NT\x206\.1/.test(http.oscpu),0-16,0-90) == element-paint-background-size-01.html element-paint-background-size-01-ref.html
== element-paint-background-size-02.html element-paint-background-size-02-ref.html
fuzzy-if(skiaContent,0-255,0-4) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == element-paint-transform-repeated.html element-paint-transform-repeated-ref.html # Bug 1475907
fuzzy-if(d2d,0-255,0-24) fuzzy-if(webrender,255-255,56-56) == element-paint-transform-03.html element-paint-transform-03-ref.html
fuzzy-if(d2d,0-255,0-24) fuzzy-if(webrender,255-255,56-72) == element-paint-transform-03.html element-paint-transform-03-ref.html
fuzzy-if(asyncPan,0-2,0-140) fuzzy-if(skiaContent,0-3,0-106) fuzzy-if(webrender&&winWidget,134-222,1197-1588) fuzzy-if(geckoview&&webrender,0-7,0-1321) == element-paint-native-widget.html element-paint-native-widget-ref.html # in -ref the scrollframe is active and layerized differently with APZ
fails-if(usesRepeatResampling&&!(webrender&&winWidget)) == element-paint-subimage-sampling-restriction.html about:blank
== element-paint-clippath.html element-paint-clippath-ref.html
fuzzy-if(webrender,36-36,712-738) == element-paint-sharpness-01a.html element-paint-sharpness-01b.html
fuzzy-if(webrender,36-39,704-738) == element-paint-sharpness-01a.html element-paint-sharpness-01b.html
fuzzy-if(skiaContent,0-1,0-326) == element-paint-sharpness-01b.html element-paint-sharpness-01c.html
fuzzy-if(webrender,36-36,712-738) == element-paint-sharpness-01c.html element-paint-sharpness-01d.html
fuzzy-if(webrender,36-39,704-738) == element-paint-sharpness-01c.html element-paint-sharpness-01d.html
== element-paint-sharpness-02a.html element-paint-sharpness-02b.html
== element-paint-sharpness-02b.html element-paint-sharpness-02c.html
== element-paint-paintserversize-rounding-01.html element-paint-paintserversize-rounding-01-ref.html

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

@ -612,5 +612,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-92) 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-96) fuzzy-if(!webrender,0-2,0-7882) == mask-opacity-invalidation-1.html mask-opacity-invalidation-1-ref.html # clip-path mask/opacity optimization
== transform-animation-on-path.html transform-animation-on-path-ref.html

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

@ -38,14 +38,14 @@ fuzzy-if(webrender,35-70,699-800) == clip-path-circle-019.html clip-path-circle-
fuzzy-if(webrender,35-70,699-800) == clip-path-circle-020.html clip-path-circle-002-ref.html
fuzzy-if(webrender&&(winWidget||cocoaWidget),0-1,0-5) == clip-path-circle-021.html clip-path-circle-021-ref.html
fuzzy-if(webrender,36-36,1099-1162) == clip-path-ellipse-001.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-36,1099-1162) == clip-path-ellipse-002.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-36,1099-1162) == clip-path-ellipse-003.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-36,1099-1162) == clip-path-ellipse-004.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-36,1099-1162) == clip-path-ellipse-005.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-36,1099-1162) == clip-path-ellipse-006.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-36,1099-1162) == clip-path-ellipse-007.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-36,1099-1162) == clip-path-ellipse-008.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-40,1096-1162) == clip-path-ellipse-001.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-40,1096-1162) == clip-path-ellipse-002.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-40,1096-1162) == clip-path-ellipse-003.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-40,1096-1162) == clip-path-ellipse-004.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-40,1096-1162) == clip-path-ellipse-005.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-40,1096-1162) == clip-path-ellipse-006.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-40,1096-1162) == clip-path-ellipse-007.html clip-path-ellipse-001-ref.html
fuzzy-if(webrender,36-40,1096-1162) == clip-path-ellipse-008.html clip-path-ellipse-001-ref.html
== clip-path-inset-001a.html clip-path-inset-001-ref.html
== clip-path-inset-001b.html clip-path-inset-001-ref.html

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

@ -110,11 +110,11 @@ random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == bug1375518-5.html bug137
# Fuzzy because border-collapsed borders are not antialiased, since each segment is painted separately.
# So get 40 pixels of fuzz, 20 at each beveled corner (because the border width
# is 20px).
fuzzy(0-255,0-40) fails-if(geckoview&&webrender) == border-style-outset-becomes-groove.html border-style-outset-becomes-groove-ref.html
fuzzy(0-255,0-40) fuzzy-if(webrender,52-52,40-526) fails-if(geckoview&&webrender) == border-style-outset-becomes-groove.html border-style-outset-becomes-groove-ref.html
# Fuzzy because border-collapsed borders are not antialiased, since each segment is painted separately.
# So get 40 pixels of fuzz, 20 at each beveled corner (because the border width
# is 20px).
fuzzy(0-255,0-40) fails-if(geckoview&&webrender) == border-style-inset-becomes-ridge.html border-style-inset-becomes-ridge-ref.html
fuzzy(0-255,0-40) fuzzy-if(webrender,52-52,40-526) fails-if(geckoview&&webrender) == border-style-inset-becomes-ridge.html border-style-inset-becomes-ridge-ref.html
fuzzy(0-2,0-11000) == 1324524.html 1324524-ref.html
== 1384602-1a.html 1384602-1-ref.html
== 1384602-1b.html 1384602-1-ref.html

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

@ -1,4 +1,4 @@
[contain-paint-clip-015.html]
fuzzy: # The perimiter of this test's circle is reliably fuzzy.
if webrender: maxDifference=98;totalPixels=332
if webrender: maxDifference=98-99;totalPixels=332
if not webrender: maxDifference=99-131;totalPixels=371-373

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

@ -1,4 +1,4 @@
[contain-paint-clip-016.html]
fuzzy: # The perimiter of this test's circle is reliably fuzzy.
if webrender: maxDifference=98;totalPixels=332
if webrender: maxDifference=98-99;totalPixels=332
if not webrender: maxDifference=99-131;totalPixels=371-373

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

@ -1,3 +1,3 @@
[clip-path-rotated-will-change-transform.html]
expected:
if webrender: FAIL
if (os == "mac") and webrender: FAIL