Backing out Bug 598736 - Use bilinear image scaling on mobile. Perf regression caused. r=me
authorDoug Turner <dougt@dougt.org>
Mon, 11 Apr 2011 09:25:59 -0700
changeset 67815 9a7c40dbd28822ee7c93d5035f03a33f48eb5a38
parent 67814 991132479b7a9c135e9b33b2adb61c926570329e
child 67817 779eb00c331b964812fede99948471fc034b7c19
push id1
push userroot
push dateTue, 26 Apr 2011 22:38:44 +0000
treeherdermozilla-beta@bfdb6e623a36 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersme
bugs598736
milestone2.2a1pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backing out Bug 598736 - Use bilinear image scaling on mobile. Perf regression caused. r=me
gfx/thebes/gfxDrawable.cpp
layout/base/nsLayoutUtils.cpp
mobile/chrome/content/content.css
--- a/gfx/thebes/gfxDrawable.cpp
+++ b/gfx/thebes/gfxDrawable.cpp
@@ -167,16 +167,19 @@ gfxSurfaceDrawable::Draw(gfxContext* aCo
         }
         nsRefPtr<gfxASurface> currentTarget = aContext->CurrentSurface();
         gfxASurface::gfxSurfaceType surfaceType = currentTarget->GetType();
         gfxMatrix deviceSpaceToImageSpace =
             DeviceToImageTransform(aContext, aTransform);
         PreparePatternForUntiledDrawing(pattern, deviceSpaceToImageSpace,
                                         surfaceType, currentTarget, filter);
     }
+#ifdef MOZ_GFX_OPTIMIZE_MOBILE
+    pattern->SetFilter(gfxPattern::FILTER_FAST); 
+#endif
     pattern->SetMatrix(gfxMatrix(aTransform).Multiply(mTransform));
     aContext->NewPath();
     aContext->SetPattern(pattern);
     aContext->Rectangle(aFillRect);
     aContext->Fill();
     return PR_TRUE;
 }
 
--- a/layout/base/nsLayoutUtils.cpp
+++ b/layout/base/nsLayoutUtils.cpp
@@ -3060,17 +3060,21 @@ nsLayoutUtils::GetClosestLayer(nsIFrame*
   if (layer)
     return layer;
   return aFrame->PresContext()->PresShell()->FrameManager()->GetRootFrame();
 }
 
 GraphicsFilter
 nsLayoutUtils::GetGraphicsFilterForFrame(nsIFrame* aForFrame)
 {
+#ifdef MOZ_GFX_OPTIMIZE_MOBILE
+  GraphicsFilter defaultFilter = gfxPattern::FILTER_NEAREST;
+#else
   GraphicsFilter defaultFilter = gfxPattern::FILTER_GOOD;
+#endif
 #ifdef MOZ_SVG
   nsIFrame *frame = nsCSSRendering::IsCanvasFrame(aForFrame) ?
     nsCSSRendering::FindBackgroundStyleFrame(aForFrame) : aForFrame;
 
   switch (frame->GetStyleSVG()->mImageRendering) {
   case NS_STYLE_IMAGE_RENDERING_OPTIMIZESPEED:
     return gfxPattern::FILTER_FAST;
   case NS_STYLE_IMAGE_RENDERING_OPTIMIZEQUALITY:
--- a/mobile/chrome/content/content.css
+++ b/mobile/chrome/content/content.css
@@ -348,15 +348,8 @@ textarea:active {
  * Generate an additional space after the anonymous div to make it easier to
  * to position the caret at the end of the text
  */
 input > .anonymous-div:after {
   content: "";
   margin: 16px;
 }
 
-/* 
- * Enforce nearest scaling for video in order not to lose too much performance
- * after fixing bug 598736 ("Use higher-quality imageinterpolation on mobile")
- */
-video {
-    image-rendering: -moz-crisp-edges;
-}