Bug 850396 - Disable single-tile paint path in BasicTiledThebesLayer. r=bgirard
authorChris Lord <chrislord.net@gmail.com>
Wed, 13 Mar 2013 18:31:01 +0000
changeset 124710 d0ad849d2bd0722205fc6cabdf5a70ffee535274
parent 124709 738733ab166d0f48f15691191cdbd5536c3f659e
child 124711 5d58b6d250d56de5196bdb84b7ddedffb3880d7f
push id24558
push userchrislord.net@gmail.com
push dateWed, 13 Mar 2013 18:31:13 +0000
treeherdermozilla-inbound@d0ad849d2bd0 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbgirard
bugs850396, 842389
milestone22.0a1
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
Bug 850396 - Disable single-tile paint path in BasicTiledThebesLayer. r=bgirard This code-path has always had issues, but the fix in bug 842389 causes them to be exposed more frequently.
gfx/layers/basic/BasicTiledThebesLayer.cpp
--- a/gfx/layers/basic/BasicTiledThebesLayer.cpp
+++ b/gfx/layers/basic/BasicTiledThebesLayer.cpp
@@ -87,25 +87,28 @@ BasicTiledLayerBuffer::PaintThebes(Basic
 #ifdef GFX_TILEDLAYER_PREF_WARNINGS
   long start = PR_IntervalNow();
 #endif
 
   // If this region is empty XMost() - 1 will give us a negative value.
   NS_ASSERTION(!aPaintRegion.GetBounds().IsEmpty(), "Empty paint region\n");
 
   bool useSinglePaintBuffer = UseSinglePaintBuffer();
+  // XXX The single-tile case doesn't work at the moment, see bug 850396
+  /*
   if (useSinglePaintBuffer) {
     // Check if the paint only spans a single tile. If that's
     // the case there's no point in using a single paint buffer.
     nsIntRect paintBounds = aPaintRegion.GetBounds();
     useSinglePaintBuffer = GetTileStart(paintBounds.x) !=
                            GetTileStart(paintBounds.XMost() - 1) ||
                            GetTileStart(paintBounds.y) !=
                            GetTileStart(paintBounds.YMost() - 1);
   }
+  */
 
   if (useSinglePaintBuffer) {
     const nsIntRect bounds = aPaintRegion.GetBounds();
     {
       SAMPLE_LABEL("BasicTiledLayerBuffer", "PaintThebesSingleBufferAlloc");
       mSinglePaintBuffer = new gfxImageSurface(
         gfxIntSize(ceilf(bounds.width * mResolution),
                    ceilf(bounds.height * mResolution)),