mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1035801 - Switch the tiling logging code from NSPR logging to printf_stderr. r=Cwiiis
This commit is contained in:
parent
bd0758dd52
commit
161e23eb39
@ -17,7 +17,6 @@
|
||||
#include "nsRect.h" // for nsIntRect
|
||||
#include "nsRegion.h" // for nsIntRegion
|
||||
#include "nsTArray.h" // for nsTArray
|
||||
#include "prlog.h" // for PR_LOG
|
||||
|
||||
#if defined(MOZ_WIDGET_GONK) && ANDROID_VERSION >= 17
|
||||
#include <ui/Fence.h>
|
||||
@ -26,24 +25,23 @@
|
||||
namespace mozilla {
|
||||
namespace layers {
|
||||
|
||||
// To get this logging, you need PR logging enabled (either by
|
||||
// doing a debug build, or #define'ing FORCE_PR_LOG at the top
|
||||
// of a .cpp file), and then run with NSPR_LOG_MODULES=tiling:5
|
||||
// in your environment at runtime.
|
||||
#ifdef PR_LOGGING
|
||||
# define TILING_PRLOG(_args) PR_LOG(gTilingLog, PR_LOG_DEBUG, _args)
|
||||
# define TILING_PRLOG_OBJ(_args, obj) \
|
||||
// You can enable all the TILING_LOG print statements by
|
||||
// changing the 0 to a 1 in the following #define.
|
||||
#define ENABLE_TILING_LOG 0
|
||||
|
||||
#if ENABLE_TILING_LOG
|
||||
# define TILING_LOG(_args) printf_stderr _args ;
|
||||
# define TILING_LOG_OBJ(_args, obj) \
|
||||
{ \
|
||||
std::stringstream ss; \
|
||||
AppendToString(ss, obj); \
|
||||
nsAutoCString tmpstr; \
|
||||
tmpstr = ss.str().c_str(); \
|
||||
PR_LOG(gTilingLog, PR_LOG_DEBUG, _args); \
|
||||
printf_stderr _args ; \
|
||||
}
|
||||
extern PRLogModuleInfo* gTilingLog;
|
||||
#else
|
||||
# define TILING_PRLOG(_args)
|
||||
# define TILING_PRLOG_OBJ(_args, obj)
|
||||
# define TILING_LOG(_args)
|
||||
# define TILING_LOG_OBJ(_args, obj)
|
||||
#endif
|
||||
|
||||
// An abstract implementation of a tile buffer. This code covers the logic of
|
||||
|
@ -28,8 +28,6 @@
|
||||
namespace mozilla {
|
||||
namespace layers {
|
||||
|
||||
PRLogModuleInfo* gTilingLog;
|
||||
|
||||
using namespace mozilla::gfx;
|
||||
|
||||
void
|
||||
@ -161,9 +159,6 @@ ClientLayerManager::CreateThebesLayerWithHint(ThebesLayerCreationHint aHint)
|
||||
(AsShadowForwarder()->GetCompositorBackendType() == LayersBackend::LAYERS_OPENGL ||
|
||||
AsShadowForwarder()->GetCompositorBackendType() == LayersBackend::LAYERS_D3D9 ||
|
||||
AsShadowForwarder()->GetCompositorBackendType() == LayersBackend::LAYERS_D3D11)) {
|
||||
if (!gTilingLog) {
|
||||
gTilingLog = PR_NewLogModule("tiling");
|
||||
}
|
||||
if (gfxPrefs::LayersUseSimpleTiles()) {
|
||||
nsRefPtr<SimpleClientTiledThebesLayer> layer =
|
||||
new SimpleClientTiledThebesLayer(this, aHint);
|
||||
|
@ -2,11 +2,6 @@
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// Uncomment this to enable the TILING_PRLOG stuff in this file
|
||||
// for release builds. To get the output you need to have
|
||||
// NSPR_LOG_MODULES=tiling:5 in your environment at runtime.
|
||||
// #define FORCE_PR_LOG
|
||||
|
||||
#include "ClientTiledThebesLayer.h"
|
||||
#include "FrameMetrics.h" // for FrameMetrics
|
||||
#include "Units.h" // for ScreenIntRect, CSSPoint, etc
|
||||
@ -142,7 +137,7 @@ ClientTiledThebesLayer::BeginPaint()
|
||||
return;
|
||||
}
|
||||
|
||||
TILING_PRLOG(("TILING %p: Found scrollAncestor %p and displayPortAncestor %p\n", this,
|
||||
TILING_LOG(("TILING %p: Found scrollAncestor %p and displayPortAncestor %p\n", this,
|
||||
scrollAncestor, displayPortAncestor));
|
||||
|
||||
const FrameMetrics& scrollMetrics = scrollAncestor->GetFrameMetrics();
|
||||
@ -166,23 +161,23 @@ ClientTiledThebesLayer::BeginPaint()
|
||||
+ displayportMetrics.mCompositionBounds.TopLeft();
|
||||
mPaintData.mCriticalDisplayPort = RoundedOut(
|
||||
ApplyParentLayerToLayerTransform(transformDisplayPortToLayer, criticalDisplayPort));
|
||||
TILING_PRLOG_OBJ(("TILING %p: Critical displayport %s\n", this, tmpstr.get()), mPaintData.mCriticalDisplayPort);
|
||||
TILING_LOG_OBJ(("TILING %p: Critical displayport %s\n", this, tmpstr.get()), mPaintData.mCriticalDisplayPort);
|
||||
|
||||
// Store the resolution from the displayport ancestor layer. Because this is Gecko-side,
|
||||
// before any async transforms have occurred, we can use the zoom for this.
|
||||
mPaintData.mResolution = displayportMetrics.GetZoomToParent();
|
||||
TILING_PRLOG(("TILING %p: Resolution %f\n", this, mPaintData.mResolution.scale));
|
||||
TILING_LOG(("TILING %p: Resolution %f\n", this, mPaintData.mResolution.scale));
|
||||
|
||||
// Store the applicable composition bounds in this layer's Layer units.
|
||||
mPaintData.mTransformToCompBounds =
|
||||
GetTransformToAncestorsParentLayer(this, scrollAncestor);
|
||||
mPaintData.mCompositionBounds = ApplyParentLayerToLayerTransform(
|
||||
mPaintData.mTransformToCompBounds.Inverse(), scrollMetrics.mCompositionBounds);
|
||||
TILING_PRLOG_OBJ(("TILING %p: Composition bounds %s\n", this, tmpstr.get()), mPaintData.mCompositionBounds);
|
||||
TILING_LOG_OBJ(("TILING %p: Composition bounds %s\n", this, tmpstr.get()), mPaintData.mCompositionBounds);
|
||||
|
||||
// Calculate the scroll offset since the last transaction
|
||||
mPaintData.mScrollOffset = displayportMetrics.GetScrollOffset() * displayportMetrics.GetZoomToParent();
|
||||
TILING_PRLOG_OBJ(("TILING %p: Scroll offset %s\n", this, tmpstr.get()), mPaintData.mScrollOffset);
|
||||
TILING_LOG_OBJ(("TILING %p: Scroll offset %s\n", this, tmpstr.get()), mPaintData.mScrollOffset);
|
||||
}
|
||||
|
||||
bool
|
||||
@ -221,7 +216,7 @@ ClientTiledThebesLayer::RenderHighPrecision(nsIntRegion& aInvalidRegion,
|
||||
oldValidRegion.And(oldValidRegion, LayerIntRect::ToUntyped(mPaintData.mCriticalDisplayPort));
|
||||
}
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update with old valid region %s\n", this, tmpstr.get()), oldValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update with old valid region %s\n", this, tmpstr.get()), oldValidRegion);
|
||||
|
||||
return mContentClient->mTiledBuffer.ProgressiveUpdate(mValidRegion, aInvalidRegion,
|
||||
oldValidRegion, &mPaintData, aCallback, aCallbackData);
|
||||
@ -234,8 +229,8 @@ ClientTiledThebesLayer::RenderHighPrecision(nsIntRegion& aInvalidRegion,
|
||||
mValidRegion.And(mValidRegion, LayerIntRect::ToUntyped(mPaintData.mCriticalDisplayPort));
|
||||
}
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Non-progressive paint invalid region %s\n", this, tmpstr.get()), aInvalidRegion);
|
||||
TILING_PRLOG_OBJ(("TILING %p: Non-progressive paint new valid region %s\n", this, tmpstr.get()), mValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Non-progressive paint invalid region %s\n", this, tmpstr.get()), aInvalidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Non-progressive paint new valid region %s\n", this, tmpstr.get()), mValidRegion);
|
||||
|
||||
mContentClient->mTiledBuffer.SetFrameResolution(mPaintData.mResolution);
|
||||
mContentClient->mTiledBuffer.PaintThebes(mValidRegion, aInvalidRegion, aCallback, aCallbackData);
|
||||
@ -277,8 +272,8 @@ ClientTiledThebesLayer::RenderLowPrecision(nsIntRegion& aInvalidRegion,
|
||||
// region. We don't want to spend time drawing things twice.
|
||||
aInvalidRegion.Sub(aInvalidRegion, mValidRegion);
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive paint: low-precision invalid region is %s\n", this, tmpstr.get()), aInvalidRegion);
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive paint: low-precision old valid region is %s\n", this, tmpstr.get()), oldValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive paint: low-precision invalid region is %s\n", this, tmpstr.get()), aInvalidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive paint: low-precision old valid region is %s\n", this, tmpstr.get()), oldValidRegion);
|
||||
|
||||
if (!aInvalidRegion.IsEmpty()) {
|
||||
updatedBuffer = mContentClient->mLowPrecisionTiledBuffer.ProgressiveUpdate(
|
||||
@ -286,11 +281,11 @@ ClientTiledThebesLayer::RenderLowPrecision(nsIntRegion& aInvalidRegion,
|
||||
&mPaintData, aCallback, aCallbackData);
|
||||
}
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive paint: low-precision new valid region is %s\n", this, tmpstr.get()), mLowPrecisionValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive paint: low-precision new valid region is %s\n", this, tmpstr.get()), mLowPrecisionValidRegion);
|
||||
return updatedBuffer;
|
||||
}
|
||||
if (!mLowPrecisionValidRegion.IsEmpty()) {
|
||||
TILING_PRLOG(("TILING %p: Clearing low-precision buffer\n", this));
|
||||
TILING_LOG(("TILING %p: Clearing low-precision buffer\n", this));
|
||||
// Clear the low precision tiled buffer.
|
||||
mLowPrecisionValidRegion.SetEmpty();
|
||||
mContentClient->mLowPrecisionTiledBuffer.ResetPaintedAndValidState();
|
||||
@ -308,7 +303,7 @@ ClientTiledThebesLayer::EndPaint()
|
||||
mPaintData.mLastScrollOffset = mPaintData.mScrollOffset;
|
||||
mPaintData.mPaintFinished = true;
|
||||
mPaintData.mFirstPaint = false;
|
||||
TILING_PRLOG(("TILING %p: Paint finished\n", this));
|
||||
TILING_LOG(("TILING %p: Paint finished\n", this));
|
||||
}
|
||||
|
||||
void
|
||||
@ -334,9 +329,9 @@ ClientTiledThebesLayer::RenderLayer()
|
||||
mValidRegion = nsIntRegion();
|
||||
}
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Initial visible region %s\n", this, tmpstr.get()), mVisibleRegion);
|
||||
TILING_PRLOG_OBJ(("TILING %p: Initial valid region %s\n", this, tmpstr.get()), mValidRegion);
|
||||
TILING_PRLOG_OBJ(("TILING %p: Initial low-precision valid region %s\n", this, tmpstr.get()), mLowPrecisionValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Initial visible region %s\n", this, tmpstr.get()), mVisibleRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Initial valid region %s\n", this, tmpstr.get()), mValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Initial low-precision valid region %s\n", this, tmpstr.get()), mLowPrecisionValidRegion);
|
||||
|
||||
nsIntRegion invalidRegion;
|
||||
invalidRegion.Sub(mVisibleRegion, mValidRegion);
|
||||
@ -353,7 +348,7 @@ ClientTiledThebesLayer::RenderLayer()
|
||||
|
||||
// In some cases we can take a fast path and just be done with it.
|
||||
if (UseFastPath()) {
|
||||
TILING_PRLOG(("TILING %p: Taking fast-path\n", this));
|
||||
TILING_LOG(("TILING %p: Taking fast-path\n", this));
|
||||
mValidRegion = mVisibleRegion;
|
||||
mContentClient->mTiledBuffer.PaintThebes(mValidRegion, invalidRegion, callback, data);
|
||||
ClientManager()->Hold(this);
|
||||
@ -377,13 +372,13 @@ ClientTiledThebesLayer::RenderLayer()
|
||||
invalidRegion.And(invalidRegion, LayerIntRect::ToUntyped(mPaintData.mCriticalDisplayPort));
|
||||
}
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: First-transaction valid region %s\n", this, tmpstr.get()), mValidRegion);
|
||||
TILING_PRLOG_OBJ(("TILING %p: First-transaction invalid region %s\n", this, tmpstr.get()), invalidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: First-transaction valid region %s\n", this, tmpstr.get()), mValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: First-transaction invalid region %s\n", this, tmpstr.get()), invalidRegion);
|
||||
} else {
|
||||
if (!mPaintData.mCriticalDisplayPort.IsEmpty()) {
|
||||
invalidRegion.And(invalidRegion, LayerIntRect::ToUntyped(mPaintData.mCriticalDisplayPort));
|
||||
}
|
||||
TILING_PRLOG_OBJ(("TILING %p: Repeat-transaction invalid region %s\n", this, tmpstr.get()), invalidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Repeat-transaction invalid region %s\n", this, tmpstr.get()), invalidRegion);
|
||||
}
|
||||
|
||||
nsIntRegion lowPrecisionInvalidRegion;
|
||||
@ -393,7 +388,7 @@ ClientTiledThebesLayer::RenderLayer()
|
||||
lowPrecisionInvalidRegion.Sub(mVisibleRegion, mLowPrecisionValidRegion);
|
||||
lowPrecisionInvalidRegion.Sub(lowPrecisionInvalidRegion, mValidRegion);
|
||||
}
|
||||
TILING_PRLOG_OBJ(("TILING %p: Low-precision invalid region %s\n", this, tmpstr.get()), lowPrecisionInvalidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Low-precision invalid region %s\n", this, tmpstr.get()), lowPrecisionInvalidRegion);
|
||||
|
||||
bool updatedHighPrecision = RenderHighPrecision(invalidRegion, callback, data);
|
||||
if (updatedHighPrecision) {
|
||||
@ -419,7 +414,7 @@ ClientTiledThebesLayer::RenderLayer()
|
||||
// updates, then mark the paint as unfinished and request a repeat transaction.
|
||||
// This is so that we don't perform low-precision updates in the same transaction
|
||||
// as high-precision updates.
|
||||
TILING_PRLOG(("TILING %p: Scheduling repeat transaction for low-precision painting\n", this));
|
||||
TILING_LOG(("TILING %p: Scheduling repeat transaction for low-precision painting\n", this));
|
||||
ClientManager()->SetRepeatTransaction();
|
||||
mPaintData.mLowPrecisionPaintCount = 1;
|
||||
mPaintData.mPaintFinished = false;
|
||||
|
@ -3,11 +3,6 @@
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// Uncomment this to enable the TILING_PRLOG stuff in this file
|
||||
// for release builds. To get the output you need to have
|
||||
// NSPR_LOG_MODULES=tiling:5 in your environment at runtime.
|
||||
// #define FORCE_PR_LOG
|
||||
|
||||
#include "mozilla/layers/TiledContentClient.h"
|
||||
#include <math.h> // for ceil, ceilf, floor
|
||||
#include "ClientTiledThebesLayer.h" // for ClientTiledThebesLayer
|
||||
@ -192,7 +187,7 @@ SharedFrameMetricsHelper::UpdateFromCompositorFrameMetrics(
|
||||
if (aLowPrecision && !mLastProgressiveUpdateWasLowPrecision) {
|
||||
// Skip low precision rendering until we're at risk of checkerboarding.
|
||||
if (!mProgressiveUpdateWasInDanger) {
|
||||
TILING_PRLOG(("TILING: Aborting low-precision rendering because not at risk of checkerboarding\n"));
|
||||
TILING_LOG(("TILING: Aborting low-precision rendering because not at risk of checkerboarding\n"));
|
||||
return true;
|
||||
}
|
||||
mProgressiveUpdateWasInDanger = false;
|
||||
@ -202,7 +197,7 @@ SharedFrameMetricsHelper::UpdateFromCompositorFrameMetrics(
|
||||
// Always abort updates if the resolution has changed. There's no use
|
||||
// in drawing at the incorrect resolution.
|
||||
if (!FuzzyEquals(compositorMetrics.GetZoom().scale, contentMetrics.GetZoom().scale)) {
|
||||
TILING_PRLOG(("TILING: Aborting because resolution changed from %f to %f\n",
|
||||
TILING_LOG(("TILING: Aborting because resolution changed from %f to %f\n",
|
||||
contentMetrics.GetZoom().scale, compositorMetrics.GetZoom().scale));
|
||||
return true;
|
||||
}
|
||||
@ -242,7 +237,7 @@ SharedFrameMetricsHelper::UpdateFromCompositorFrameMetrics(
|
||||
// Abort drawing stale low-precision content if there's a more recent
|
||||
// display-port in the pipeline.
|
||||
if (aLowPrecision && !aHasPendingNewThebesContent) {
|
||||
TILING_PRLOG(("TILING: Aborting low-precision because of new pending content\n"));
|
||||
TILING_LOG(("TILING: Aborting low-precision because of new pending content\n"));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -277,10 +272,10 @@ SharedFrameMetricsHelper::AboutToCheckerboard(const FrameMetrics& aContentMetric
|
||||
showing = showing.Intersect(aContentMetrics.mScrollableRect);
|
||||
|
||||
if (!painted.Contains(showing)) {
|
||||
TILING_PRLOG_OBJ(("TILING: About to checkerboard; content %s\n", tmpstr.get()), aContentMetrics);
|
||||
TILING_PRLOG_OBJ(("TILING: About to checkerboard; painted %s\n", tmpstr.get()), painted);
|
||||
TILING_PRLOG_OBJ(("TILING: About to checkerboard; compositor %s\n", tmpstr.get()), aCompositorMetrics);
|
||||
TILING_PRLOG_OBJ(("TILING: About to checkerboard; showing %s\n", tmpstr.get()), showing);
|
||||
TILING_LOG_OBJ(("TILING: About to checkerboard; content %s\n", tmpstr.get()), aContentMetrics);
|
||||
TILING_LOG_OBJ(("TILING: About to checkerboard; painted %s\n", tmpstr.get()), painted);
|
||||
TILING_LOG_OBJ(("TILING: About to checkerboard; compositor %s\n", tmpstr.get()), aCompositorMetrics);
|
||||
TILING_LOG_OBJ(("TILING: About to checkerboard; showing %s\n", tmpstr.get()), showing);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -716,8 +711,8 @@ ClientTiledLayerBuffer::PaintThebes(const nsIntRegion& aNewValidRegion,
|
||||
LayerManager::DrawThebesLayerCallback aCallback,
|
||||
void* aCallbackData)
|
||||
{
|
||||
TILING_PRLOG_OBJ(("TILING %p: PaintThebes painting region %s\n", mThebesLayer, tmpstr.get()), aPaintRegion);
|
||||
TILING_PRLOG_OBJ(("TILING %p: PaintThebes new valid region %s\n", mThebesLayer, tmpstr.get()), aNewValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: PaintThebes painting region %s\n", mThebesLayer, tmpstr.get()), aPaintRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: PaintThebes new valid region %s\n", mThebesLayer, tmpstr.get()), aNewValidRegion);
|
||||
|
||||
mCallback = aCallback;
|
||||
mCallbackData = aCallbackData;
|
||||
@ -1047,7 +1042,7 @@ ClientTiledLayerBuffer::ComputeProgressiveUpdateRegion(const nsIntRegion& aInval
|
||||
nsIntRegion staleRegion;
|
||||
staleRegion.And(aInvalidRegion, aOldValidRegion);
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update stale region %s\n", mThebesLayer, tmpstr.get()), staleRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update stale region %s\n", mThebesLayer, tmpstr.get()), staleRegion);
|
||||
|
||||
ContainerLayer* scrollAncestor = nullptr;
|
||||
mThebesLayer->GetAncestorLayers(&scrollAncestor, nullptr);
|
||||
@ -1079,7 +1074,7 @@ ClientTiledLayerBuffer::ComputeProgressiveUpdateRegion(const nsIntRegion& aInval
|
||||
viewTransform);
|
||||
#endif
|
||||
|
||||
TILING_PRLOG(("TILING %p: Progressive update view transform %f %f zoom %f abort %d\n", mThebesLayer, viewTransform.mTranslation.x, viewTransform.mTranslation.y, viewTransform.mScale.scale, abortPaint));
|
||||
TILING_LOG(("TILING %p: Progressive update view transform %f %f zoom %f abort %d\n", mThebesLayer, viewTransform.mTranslation.x, viewTransform.mTranslation.y, viewTransform.mScale.scale, abortPaint));
|
||||
|
||||
if (abortPaint) {
|
||||
// We ignore if front-end wants to abort if this is the first,
|
||||
@ -1099,7 +1094,7 @@ ClientTiledLayerBuffer::ComputeProgressiveUpdateRegion(const nsIntRegion& aInval
|
||||
aPaintData->mTransformToCompBounds,
|
||||
viewTransform);
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update transformed compositor bounds %s\n", mThebesLayer, tmpstr.get()), transformedCompositionBounds);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update transformed compositor bounds %s\n", mThebesLayer, tmpstr.get()), transformedCompositionBounds);
|
||||
|
||||
// Compute a "coherent update rect" that we should paint all at once in a
|
||||
// single transaction. This is to avoid rendering glitches on animated
|
||||
@ -1118,7 +1113,7 @@ ClientTiledLayerBuffer::ComputeProgressiveUpdateRegion(const nsIntRegion& aInval
|
||||
#endif
|
||||
)));
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update final coherency rect %s\n", mThebesLayer, tmpstr.get()), coherentUpdateRect);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update final coherency rect %s\n", mThebesLayer, tmpstr.get()), coherentUpdateRect);
|
||||
|
||||
aRegionToPaint.And(aInvalidRegion, coherentUpdateRect);
|
||||
aRegionToPaint.Or(aRegionToPaint, staleRegion);
|
||||
@ -1134,13 +1129,13 @@ ClientTiledLayerBuffer::ComputeProgressiveUpdateRegion(const nsIntRegion& aInval
|
||||
paintingVisible = true;
|
||||
}
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update final paint region %s\n", mThebesLayer, tmpstr.get()), aRegionToPaint);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update final paint region %s\n", mThebesLayer, tmpstr.get()), aRegionToPaint);
|
||||
|
||||
// Paint area that's visible and overlaps previously valid content to avoid
|
||||
// visible glitches in animated elements, such as gifs.
|
||||
bool paintInSingleTransaction = paintingVisible && (drawingStale || aPaintData->mFirstPaint);
|
||||
|
||||
TILING_PRLOG(("TILING %p: paintingVisible %d drawingStale %d firstPaint %d singleTransaction %d\n",
|
||||
TILING_LOG(("TILING %p: paintingVisible %d drawingStale %d firstPaint %d singleTransaction %d\n",
|
||||
mThebesLayer, paintingVisible, drawingStale, aPaintData->mFirstPaint, paintInSingleTransaction));
|
||||
|
||||
// The following code decides what order to draw tiles in, based on the
|
||||
@ -1214,9 +1209,9 @@ ClientTiledLayerBuffer::ProgressiveUpdate(nsIntRegion& aValidRegion,
|
||||
LayerManager::DrawThebesLayerCallback aCallback,
|
||||
void* aCallbackData)
|
||||
{
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update valid region %s\n", mThebesLayer, tmpstr.get()), aValidRegion);
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update invalid region %s\n", mThebesLayer, tmpstr.get()), aInvalidRegion);
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update old valid region %s\n", mThebesLayer, tmpstr.get()), aOldValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update valid region %s\n", mThebesLayer, tmpstr.get()), aValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update invalid region %s\n", mThebesLayer, tmpstr.get()), aInvalidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update old valid region %s\n", mThebesLayer, tmpstr.get()), aOldValidRegion);
|
||||
|
||||
bool repeat = false;
|
||||
bool isBufferChanged = false;
|
||||
@ -1230,7 +1225,7 @@ ClientTiledLayerBuffer::ProgressiveUpdate(nsIntRegion& aValidRegion,
|
||||
aPaintData,
|
||||
repeat);
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update computed paint region %s repeat %d\n", mThebesLayer, tmpstr.get(), repeat), regionToPaint);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update computed paint region %s repeat %d\n", mThebesLayer, tmpstr.get(), repeat), regionToPaint);
|
||||
|
||||
// There's no further work to be done.
|
||||
if (regionToPaint.IsEmpty()) {
|
||||
@ -1253,8 +1248,8 @@ ClientTiledLayerBuffer::ProgressiveUpdate(nsIntRegion& aValidRegion,
|
||||
aInvalidRegion.Sub(aInvalidRegion, regionToPaint);
|
||||
} while (repeat);
|
||||
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update final valid region %s buffer changed %d\n", mThebesLayer, tmpstr.get(), isBufferChanged), aValidRegion);
|
||||
TILING_PRLOG_OBJ(("TILING %p: Progressive update final invalid region %s\n", mThebesLayer, tmpstr.get()), aInvalidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update final valid region %s buffer changed %d\n", mThebesLayer, tmpstr.get(), isBufferChanged), aValidRegion);
|
||||
TILING_LOG_OBJ(("TILING %p: Progressive update final invalid region %s\n", mThebesLayer, tmpstr.get()), aInvalidRegion);
|
||||
|
||||
// Return false if nothing has been drawn, or give what has been drawn
|
||||
// to the shadow layer to upload.
|
||||
|
Loading…
Reference in New Issue
Block a user