mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1130681. Part 2: Backout bug 1118876 for android reftest failures. r=jrmuizel
This commit is contained in:
parent
1264802e7c
commit
9b60b2ec81
@ -558,15 +558,15 @@ TiledLayerBuffer<Derived, Tile>::Update(const nsIntRegion& newValidRegion,
|
|||||||
x += width;
|
x += width;
|
||||||
}
|
}
|
||||||
|
|
||||||
mRetainedTiles = newRetainedTiles;
|
|
||||||
AsDerived().PostValidate(aPaintRegion);
|
AsDerived().PostValidate(aPaintRegion);
|
||||||
for (unsigned int i = 0; i < mRetainedTiles.Length(); ++i) {
|
for (unsigned int i = 0; i < newRetainedTiles.Length(); ++i) {
|
||||||
AsDerived().UnlockTile(mRetainedTiles[i]);
|
AsDerived().UnlockTile(newRetainedTiles[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// At this point, oldTileCount should be zero
|
// At this point, oldTileCount should be zero
|
||||||
MOZ_ASSERT(oldTileCount == 0, "Failed to release old tiles");
|
MOZ_ASSERT(oldTileCount == 0, "Failed to release old tiles");
|
||||||
|
|
||||||
|
mRetainedTiles = newRetainedTiles;
|
||||||
mValidRegion = newValidRegion;
|
mValidRegion = newValidRegion;
|
||||||
mPaintedRegion.Or(mPaintedRegion, aPaintRegion);
|
mPaintedRegion.Or(mPaintedRegion, aPaintRegion);
|
||||||
}
|
}
|
||||||
|
@ -517,7 +517,6 @@ TileClient::TileClient(const TileClient& o)
|
|||||||
mManager = o.mManager;
|
mManager = o.mManager;
|
||||||
mInvalidFront = o.mInvalidFront;
|
mInvalidFront = o.mInvalidFront;
|
||||||
mInvalidBack = o.mInvalidBack;
|
mInvalidBack = o.mInvalidBack;
|
||||||
mOrigin = o.mOrigin;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TileClient&
|
TileClient&
|
||||||
@ -537,7 +536,6 @@ TileClient::operator=(const TileClient& o)
|
|||||||
mManager = o.mManager;
|
mManager = o.mManager;
|
||||||
mInvalidFront = o.mInvalidFront;
|
mInvalidFront = o.mInvalidFront;
|
||||||
mInvalidBack = o.mInvalidBack;
|
mInvalidBack = o.mInvalidBack;
|
||||||
mOrigin = o.mOrigin;
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1058,31 +1056,6 @@ ClientTiledLayerBuffer::PostValidate(const nsIntRegion& aPaintRegion)
|
|||||||
mTilingOrigin = IntPoint(std::numeric_limits<int32_t>::max(),
|
mTilingOrigin = IntPoint(std::numeric_limits<int32_t>::max(),
|
||||||
std::numeric_limits<int32_t>::max());
|
std::numeric_limits<int32_t>::max());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < mRetainedTiles.Length(); ++i) {
|
|
||||||
TileClient& tile = mRetainedTiles[i];
|
|
||||||
if (tile.mFrontBuffer && tile.mFrontBuffer->IsLocked()) {
|
|
||||||
// Only worry about padding when not doing low-res because it simplifies
|
|
||||||
// the math and the artifacts won't be noticable
|
|
||||||
// Edge padding prevents sampling artifacts when compositing.
|
|
||||||
if (mResolution == 1) {
|
|
||||||
nsIntRect unscaledTile = nsIntRect(tile.mOrigin.x, tile.mOrigin.y,
|
|
||||||
GetTileSize().width, GetTileSize().height);
|
|
||||||
nsIntRegion tileValidRegion = GetValidRegion();
|
|
||||||
tileValidRegion.OrWith(aPaintRegion);
|
|
||||||
|
|
||||||
// We only need to pad out if the tile has area that's not valid
|
|
||||||
if (!tileValidRegion.Contains(unscaledTile)) {
|
|
||||||
tileValidRegion = tileValidRegion.Intersect(unscaledTile);
|
|
||||||
// translate the region into tile space and pad
|
|
||||||
tileValidRegion.MoveBy(-nsIntPoint(unscaledTile.x, unscaledTile.y));
|
|
||||||
RefPtr<DrawTarget> drawTarget = tile.mFrontBuffer->BorrowDrawTarget();
|
|
||||||
PadDrawTargetOutFromRegion(drawTarget, tileValidRegion);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -1171,8 +1144,6 @@ ClientTiledLayerBuffer::ValidateTile(TileClient aTile,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
aTile.mOrigin = gfx::ToIntPoint(aTileOrigin);
|
|
||||||
|
|
||||||
if (usingTiledDrawTarget) {
|
if (usingTiledDrawTarget) {
|
||||||
if (createdTextureClient) {
|
if (createdTextureClient) {
|
||||||
if (!mCompositableClient->AddTextureClient(backBuffer)) {
|
if (!mCompositableClient->AddTextureClient(backBuffer)) {
|
||||||
@ -1276,6 +1247,26 @@ ClientTiledLayerBuffer::ValidateTile(TileClient aTile,
|
|||||||
aTile.mInvalidFront.Or(aTile.mInvalidFront, nsIntRect(copyTarget.x, copyTarget.y, copyRect.width, copyRect.height));
|
aTile.mInvalidFront.Or(aTile.mInvalidFront, nsIntRect(copyTarget.x, copyTarget.y, copyRect.width, copyRect.height));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// only worry about padding when not doing low-res
|
||||||
|
// because it simplifies the math and the artifacts
|
||||||
|
// won't be noticable
|
||||||
|
if (mResolution == 1) {
|
||||||
|
nsIntRect unscaledTile = nsIntRect(aTileOrigin.x,
|
||||||
|
aTileOrigin.y,
|
||||||
|
GetTileSize().width,
|
||||||
|
GetTileSize().height);
|
||||||
|
|
||||||
|
nsIntRegion tileValidRegion = GetValidRegion();
|
||||||
|
tileValidRegion.Or(tileValidRegion, aDirtyRegion);
|
||||||
|
// We only need to pad out if the tile has area that's not valid
|
||||||
|
if (!tileValidRegion.Contains(unscaledTile)) {
|
||||||
|
tileValidRegion = tileValidRegion.Intersect(unscaledTile);
|
||||||
|
// translate the region into tile space and pad
|
||||||
|
tileValidRegion.MoveBy(-nsIntPoint(unscaledTile.x, unscaledTile.y));
|
||||||
|
PadDrawTargetOutFromRegion(drawTarget, tileValidRegion);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// The new buffer is now validated, remove the dirty region from it.
|
// The new buffer is now validated, remove the dirty region from it.
|
||||||
aTile.mInvalidBack.SubOut(offsetScaledDirtyRegion);
|
aTile.mInvalidBack.SubOut(offsetScaledDirtyRegion);
|
||||||
|
|
||||||
|
@ -274,8 +274,6 @@ struct TileClient
|
|||||||
nsIntRegion mInvalidBack;
|
nsIntRegion mInvalidBack;
|
||||||
nsExpirationState mExpirationState;
|
nsExpirationState mExpirationState;
|
||||||
|
|
||||||
gfx::IntPoint mOrigin;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Copies dirty pixels from the front buffer into the back buffer,
|
// Copies dirty pixels from the front buffer into the back buffer,
|
||||||
// and records the copied region in aAddPaintedRegion.
|
// and records the copied region in aAddPaintedRegion.
|
||||||
|
Loading…
Reference in New Issue
Block a user