зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1449242 - Don't delay image key deletions by an extra transaction. r=sotaro
This commit is contained in:
Родитель
07683220db
Коммит
b9c3c7eeb7
|
@ -108,7 +108,6 @@ WebRenderLayerManager::DoDestroy(bool aIsSync)
|
|||
|
||||
if (WrBridge()) {
|
||||
// Just clear ImageKeys, they are deleted during WebRenderAPI destruction.
|
||||
mImageKeysToDeleteLater.Clear();
|
||||
mImageKeysToDelete.Clear();
|
||||
// CompositorAnimations are cleared by WebRenderBridgeParent.
|
||||
mDiscardedCompositorAnimationsIds.Clear();
|
||||
|
@ -298,7 +297,6 @@ WebRenderLayerManager::EndTransactionWithoutLayer(nsDisplayList* aDisplayList,
|
|||
resourceUpdates.DeleteImage(key);
|
||||
}
|
||||
mImageKeysToDelete.Clear();
|
||||
mImageKeysToDelete.SwapElements(mImageKeysToDeleteLater);
|
||||
|
||||
WrBridge()->RemoveExpiredFontKeys(resourceUpdates);
|
||||
|
||||
|
@ -406,20 +404,16 @@ WebRenderLayerManager::MakeSnapshotIfRequired(LayoutDeviceIntSize aSize)
|
|||
void
|
||||
WebRenderLayerManager::AddImageKeyForDiscard(wr::ImageKey key)
|
||||
{
|
||||
mImageKeysToDeleteLater.AppendElement(key);
|
||||
mImageKeysToDelete.AppendElement(key);
|
||||
}
|
||||
|
||||
void
|
||||
WebRenderLayerManager::DiscardImages()
|
||||
{
|
||||
wr::IpcResourceUpdateQueue resources(WrBridge());
|
||||
for (const auto& key : mImageKeysToDeleteLater) {
|
||||
resources.DeleteImage(key);
|
||||
}
|
||||
for (const auto& key : mImageKeysToDelete) {
|
||||
resources.DeleteImage(key);
|
||||
}
|
||||
mImageKeysToDeleteLater.Clear();
|
||||
mImageKeysToDelete.Clear();
|
||||
WrBridge()->UpdateResources(resources);
|
||||
}
|
||||
|
@ -462,7 +456,6 @@ WebRenderLayerManager::DiscardLocalImages()
|
|||
// Removes images but doesn't tell the parent side about them
|
||||
// This is useful in empty / failed transactions where we created
|
||||
// image keys but didn't tell the parent about them yet.
|
||||
mImageKeysToDeleteLater.Clear();
|
||||
mImageKeysToDelete.Clear();
|
||||
}
|
||||
|
||||
|
|
|
@ -175,11 +175,6 @@ private:
|
|||
private:
|
||||
nsIWidget* MOZ_NON_OWNING_REF mWidget;
|
||||
nsTArray<wr::ImageKey> mImageKeysToDelete;
|
||||
// TODO - This is needed because we have some code that creates image keys
|
||||
// and enqueues them for deletion right away which is bad not only because
|
||||
// of poor texture cache usage, but also because images end up deleted before
|
||||
// they are used. This should hopfully be temporary.
|
||||
nsTArray<wr::ImageKey> mImageKeysToDeleteLater;
|
||||
|
||||
// Set of compositor animation ids for which there are active animations (as
|
||||
// of the last transaction) on the compositor side.
|
||||
|
|
Загрузка…
Ссылка в новой задаче