зеркало из https://github.com/mozilla/gecko-dev.git
Bug 988370 - Don't use progressive/low precision rendering on fixed layers. r=mattwoodrow
Fixed layers don't async scroll, so it doesn't make sense for them to have a low precision region or for them to be rendered progressively.
This commit is contained in:
Родитель
ec55847d33
Коммит
537b992447
|
@ -216,13 +216,17 @@ ClientTiledThebesLayer::RenderLayer()
|
||||||
ToClientLayer(GetMaskLayer())->RenderLayer();
|
ToClientLayer(GetMaskLayer())->RenderLayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isFixed = GetIsFixedPosition() || GetParent()->GetIsFixedPosition();
|
||||||
|
|
||||||
// Fast path for no progressive updates, no low-precision updates and no
|
// Fast path for no progressive updates, no low-precision updates and no
|
||||||
// critical display-port set, or no display-port set.
|
// critical display-port set, or no display-port set, or this is a fixed
|
||||||
|
// position layer/contained in a fixed position layer
|
||||||
const FrameMetrics& parentMetrics = GetParent()->GetFrameMetrics();
|
const FrameMetrics& parentMetrics = GetParent()->GetFrameMetrics();
|
||||||
if ((!gfxPrefs::UseProgressiveTilePainting() &&
|
if ((!gfxPrefs::UseProgressiveTilePainting() &&
|
||||||
!gfxPrefs::UseLowPrecisionBuffer() &&
|
!gfxPrefs::UseLowPrecisionBuffer() &&
|
||||||
parentMetrics.mCriticalDisplayPort.IsEmpty()) ||
|
parentMetrics.mCriticalDisplayPort.IsEmpty()) ||
|
||||||
parentMetrics.mDisplayPort.IsEmpty()) {
|
parentMetrics.mDisplayPort.IsEmpty() ||
|
||||||
|
isFixed) {
|
||||||
mValidRegion = mVisibleRegion;
|
mValidRegion = mVisibleRegion;
|
||||||
|
|
||||||
NS_ASSERTION(!ClientManager()->IsRepeatTransaction(), "Didn't paint our mask layer");
|
NS_ASSERTION(!ClientManager()->IsRepeatTransaction(), "Didn't paint our mask layer");
|
||||||
|
|
Загрузка…
Ссылка в новой задаче