зеркало из https://github.com/mozilla/gecko-dev.git
Bug 777194. Part 2: Remove RETENTION_THRESHOLD. FrameLayerBuilder limits the complexity of visible regions anyway. r=bas
This commit is contained in:
Родитель
926420a445
Коммит
0cebdd894a
|
@ -42,15 +42,7 @@ ThebesLayerD3D10::~ThebesLayerD3D10()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Retention threshold - amount of pixels intersection required to enable
|
|
||||||
* layer content retention. This is a guesstimate. Profiling could be done to
|
|
||||||
* figure out the optimal threshold.
|
|
||||||
*/
|
|
||||||
#define RETENTION_THRESHOLD 16384
|
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
||||||
ThebesLayerD3D10::InvalidateRegion(const nsIntRegion &aRegion)
|
ThebesLayerD3D10::InvalidateRegion(const nsIntRegion &aRegion)
|
||||||
{
|
{
|
||||||
mValidRegion.Sub(mValidRegion, aRegion);
|
mValidRegion.Sub(mValidRegion, aRegion);
|
||||||
|
@ -64,7 +56,6 @@ void ThebesLayerD3D10::CopyRegion(ID3D10Texture2D* aSrc, const nsIntPoint &aSrcO
|
||||||
nsIntRegionRectIterator iter(aCopyRegion);
|
nsIntRegionRectIterator iter(aCopyRegion);
|
||||||
const nsIntRect *r;
|
const nsIntRect *r;
|
||||||
while ((r = iter.Next())) {
|
while ((r = iter.Next())) {
|
||||||
if (r->width * r->height > RETENTION_THRESHOLD) {
|
|
||||||
// Calculate the retained rectangle's position on the old and the new
|
// Calculate the retained rectangle's position on the old and the new
|
||||||
// surface.
|
// surface.
|
||||||
D3D10_BOX box;
|
D3D10_BOX box;
|
||||||
|
@ -84,7 +75,6 @@ void ThebesLayerD3D10::CopyRegion(ID3D10Texture2D* aSrc, const nsIntPoint &aSrcO
|
||||||
|
|
||||||
retainedRegion.Or(retainedRegion, *r);
|
retainedRegion.Or(retainedRegion, *r);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Areas which were valid and were retained are still valid
|
// Areas which were valid and were retained are still valid
|
||||||
aValidRegion->And(*aValidRegion, retainedRegion);
|
aValidRegion->And(*aValidRegion, retainedRegion);
|
||||||
|
@ -219,8 +209,7 @@ ThebesLayerD3D10::Validate(ReadbackProcessor *aReadback)
|
||||||
// and we should silently ignore the failure. In the future when device
|
// and we should silently ignore the failure. In the future when device
|
||||||
// failures are properly handled we should test for the type of failure
|
// failures are properly handled we should test for the type of failure
|
||||||
// and gracefully handle different failures. See bug 569081.
|
// and gracefully handle different failures. See bug 569081.
|
||||||
if (!oldTexture || !mTexture ||
|
if (!oldTexture || !mTexture) {
|
||||||
largeRect.width * largeRect.height < RETENTION_THRESHOLD) {
|
|
||||||
mValidRegion.SetEmpty();
|
mValidRegion.SetEmpty();
|
||||||
} else {
|
} else {
|
||||||
CopyRegion(oldTexture, mTextureRect.TopLeft(),
|
CopyRegion(oldTexture, mTextureRect.TopLeft(),
|
||||||
|
|
Загрузка…
Ссылка в новой задаче