Bug 1073209 - Eliminate usage of CreateSamplingRestrictedDrawable on d2d backends. r=jrmuizel

This commit is contained in:
Mason Chang [:mchang] 2015-08-04 08:13:00 +02:00
parent c218cee3fa
commit 4a26b7df8c
6 changed files with 28 additions and 19 deletions

View File

@ -391,7 +391,7 @@ IsSafeImageTransformComponent(gfxFloat aValue)
return aValue >= -32768 && aValue <= 32767;
}
#ifndef MOZ_GFX_OPTIMIZE_MOBILE
#if !defined(MOZ_GFX_OPTIMIZE_MOBILE)
/**
* This returns the fastest operator to use for solid surfaces which have no
* alpha channel or their alpha channel is uniformly opaque.
@ -424,6 +424,12 @@ CreateSamplingRestrictedDrawable(gfxDrawable* aDrawable,
PROFILER_LABEL("gfxUtils", "CreateSamplingRestricedDrawable",
js::ProfileEntry::Category::GRAPHICS);
DrawTarget* destDrawTarget = aContext->GetDrawTarget();
if ((destDrawTarget->GetBackendType() == BackendType::DIRECT2D1_1) ||
(destDrawTarget->GetBackendType() == BackendType::DIRECT2D)) {
return nullptr;
}
gfxRect clipExtents = aContext->GetClipExtents();
// Inflate by one pixel because bilinear filtering will sample at most
@ -756,18 +762,18 @@ gfxUtils::DrawPixelSnapped(gfxContext* aContext,
// On Mobile, we don't ever want to do this; it has the potential for
// allocating very large temporary surfaces, especially since we'll
// do full-page snapshots often (see bug 749426).
#ifndef MOZ_GFX_OPTIMIZE_MOBILE
#if !defined(MOZ_GFX_OPTIMIZE_MOBILE)
nsRefPtr<gfxDrawable> restrictedDrawable =
CreateSamplingRestrictedDrawable(aDrawable, aContext,
aRegion, aFormat);
if (restrictedDrawable) {
drawable.swap(restrictedDrawable);
}
drawable.swap(restrictedDrawable);
// We no longer need to tile: Either we never needed to, or we already
// filled a surface with the tiled pattern; this surface can now be
// drawn without tiling.
doTile = false;
// We no longer need to tile: Either we never needed to, or we already
// filled a surface with the tiled pattern; this surface can now be
// drawn without tiling.
doTile = false;
}
#endif
}
}

View File

@ -17,8 +17,8 @@ fuzzy-if(winWidget,1,1) == multicolor-image-2.html multicolor-image-2-ref.html
!= different-h-v-2.html different-h-v-ref.html
!= different-h-v-1.html different-h-v-2.html
== center-scaling-1.html center-scaling-1-ref.html
fails-if(Android||B2G) == center-scaling-2.html center-scaling-2-ref.html # Android/B2G: very different scaling (blurriness) on some sides
fails-if(Android||B2G) == center-scaling-3.html center-scaling-3-ref.html # Android/B2G: very different scaling (blurriness) on some sides
fails-if(Android||B2G) fails-if(usesRepeatResampling) == center-scaling-2.html center-scaling-2-ref.html # Android/B2G: very different scaling (blurriness) on some sides
fails-if(Android||B2G) fails-if(usesRepeatResampling) == center-scaling-3.html center-scaling-3-ref.html # Android/B2G: very different scaling (blurriness) on some sides
== center-scaling-4t.html center-scaling-4t-ref.html
== center-scaling-4r.html center-scaling-4r-ref.html
== center-scaling-4b.html center-scaling-4b-ref.html

View File

@ -1015,7 +1015,7 @@ skip-if(B2G||Mulet) == 421234-1.html 421234-1-ref.html # Initial mulet triage: p
== 421436-1b.html 421436-1-ref.html
== 421632-1.html 421632-1-ref.html
!= 421710-1.html about:blank
skip-if(B2G||Mulet) fails-if(Android) == 421885-1.xml 421885-1-ref.xml # Initial mulet triage: parity with B2G/B2G Desktop
skip-if(B2G||Mulet) fails-if(Android) fails-if(usesRepeatResampling) == 421885-1.xml 421885-1-ref.xml # Initial mulet triage: parity with B2G/B2G Desktop
== 421955-1.html 421955-1-ref.html
skip-if(B2G||Mulet) == 422249-1.html 422249-1-ref.html # Initial mulet triage: parity with B2G/B2G Desktop
== 422394-1.html 422394-1-ref.html
@ -1165,13 +1165,13 @@ random == 445004-1.html 445004-1-ref.html # bug 472268
== 445142-1c.html 445142-1-ref.html
== 445142-2a.html 445142-2-ref.html
== 445142-2b.html 445142-2-ref.html
== 446100-1a.html about:blank
skip-if(B2G||Mulet) fails-if(Android) == 446100-1b.html about:blank # Initial mulet triage: parity with B2G/B2G Desktop
skip-if(B2G||Mulet) fails-if(Android) == 446100-1c.html about:blank # Initial mulet triage: parity with B2G/B2G Desktop
== 446100-1d.html about:blank
== 446100-1e.html about:blank
fails-if(usesRepeatResampling) == 446100-1a.html about:blank
skip-if(B2G||Mulet) fails-if(Android) fails-if(usesRepeatResampling) == 446100-1b.html about:blank # Initial mulet triage: parity with B2G/B2G Desktop
skip-if(B2G||Mulet) fails-if(Android) fails-if(usesRepeatResampling) == 446100-1c.html about:blank # Initial mulet triage: parity with B2G/B2G Desktop
fails-if(usesRepeatResampling) == 446100-1d.html about:blank
fails-if(usesRepeatResampling) == 446100-1e.html about:blank
== 446100-1f.html about:blank
skip-if(B2G||Mulet) fails-if(Android) == 446100-1g.html about:blank # Initial mulet triage: parity with B2G/B2G Desktop
fails-if(usesRepeatResampling) skip-if(B2G||Mulet) fails-if(Android) == 446100-1g.html about:blank # Initial mulet triage: parity with B2G/B2G Desktop
== 446100-1h.html about:blank
skip-if(B2G||Mulet) == 447749-1.html 447749-1-ref.html # Initial mulet triage: parity with B2G/B2G Desktop
fuzzy(127,2) == 448193.html 448193-ref.html

View File

@ -18,7 +18,7 @@ fuzzy-if(d2d&&/^Windows\x20NT\x206\.1/.test(http.oscpu),16,90) == element-paint-
== element-paint-transform-repeated.html element-paint-transform-repeated-ref.html
fuzzy-if(d2d,255,24) == element-paint-transform-03.html element-paint-transform-03-ref.html
== element-paint-native-widget.html element-paint-native-widget-ref.html
== element-paint-subimage-sampling-restriction.html about:blank
fails-if(usesRepeatResampling) == element-paint-subimage-sampling-restriction.html about:blank
== element-paint-clippath.html element-paint-clippath-ref.html
== element-paint-sharpness-01a.html element-paint-sharpness-01b.html
== element-paint-sharpness-01b.html element-paint-sharpness-01c.html

View File

@ -1,5 +1,5 @@
fuzzy-if(Android,8,30) == background-image-zoom-1.html background-image-zoom-1-ref.html
== background-image-zoom-2.html about:blank
fails-if(usesRepeatResampling) == background-image-zoom-2.html about:blank
== image-seam-1a.html image-seam-1-ref.html
== image-seam-1b.html image-seam-1-ref.html
fuzzy-if(Android,255,154) == image-seam-2.html image-seam-2-ref.html # Bug 1128229

View File

@ -763,6 +763,9 @@ function BuildConditionSandbox(aURL) {
dump("REFTEST INFO | " + JSON.stringify(CU.waiveXrays(sandbox)) + " \n");
gDumpedConditionSandbox = true;
}
// Graphics features
sandbox.usesRepeatResampling = sandbox.d2d;
return sandbox;
}