Title: [279168] trunk/Source/WebKit
- Revision
- 279168
- Author
- [email protected]
- Date
- 2021-06-23 08:20:49 -0700 (Wed, 23 Jun 2021)
Log Message
Unreviewed, reverting r279104.
https://bugs.webkit.org/show_bug.cgi?id=227292
Made various layout tests very flaky
Reverted changeset:
"[GPU Process] RELEASE_ASSERT in
RemoteResourceCacheProxy::didFinalizeRenderingUpdate() may
fire if GPUP is relaunched"
https://bugs.webkit.org/show_bug.cgi?id=227229
https://trac.webkit.org/changeset/279104
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (279167 => 279168)
--- trunk/Source/WebKit/ChangeLog 2021-06-23 15:20:13 UTC (rev 279167)
+++ trunk/Source/WebKit/ChangeLog 2021-06-23 15:20:49 UTC (rev 279168)
@@ -1,3 +1,18 @@
+2021-06-23 Commit Queue <[email protected]>
+
+ Unreviewed, reverting r279104.
+ https://bugs.webkit.org/show_bug.cgi?id=227292
+
+ Made various layout tests very flaky
+
+ Reverted changeset:
+
+ "[GPU Process] RELEASE_ASSERT in
+ RemoteResourceCacheProxy::didFinalizeRenderingUpdate() may
+ fire if GPUP is relaunched"
+ https://bugs.webkit.org/show_bug.cgi?id=227229
+ https://trac.webkit.org/changeset/279104
+
2021-06-22 Megan Gardner <[email protected]>
Message dropped when restoring webpages.
Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp (279167 => 279168)
--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp 2021-06-23 15:20:13 UTC (rev 279167)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp 2021-06-23 15:20:49 UTC (rev 279168)
@@ -105,16 +105,15 @@
void RemoteResourceCacheProxy::cacheFont(Font& font)
{
auto result = m_fontIdentifierToLastRenderingUpdateVersionMap.ensure(font.renderingResourceIdentifier(), [&] {
- m_remoteRenderingBackendProxy.cacheFont(makeRef(font));
- ++m_numberOfFontsUsedInCurrentRenderingUpdate;
- return m_currentRenderingUpdateVersion;
+ return 0;
});
-
auto& lastVersion = result.iterator->value;
if (lastVersion != m_currentRenderingUpdateVersion) {
lastVersion = m_currentRenderingUpdateVersion;
++m_numberOfFontsUsedInCurrentRenderingUpdate;
}
+ if (result.isNewEntry)
+ m_remoteRenderingBackendProxy.cacheFont(makeRef(font));
}
void RemoteResourceCacheProxy::releaseNativeImage(RenderingResourceIdentifier renderingResourceIdentifier)
@@ -126,42 +125,25 @@
m_remoteRenderingBackendProxy.releaseRemoteResource(renderingResourceIdentifier);
}
-void RemoteResourceCacheProxy::prepareForNextRenderingUpdate()
-{
- ++m_currentRenderingUpdateVersion;
- m_numberOfFontsUsedInCurrentRenderingUpdate = 0;
-}
-
-void RemoteResourceCacheProxy::clearFontMap()
-{
- m_fontIdentifierToLastRenderingUpdateVersionMap.clear();
- m_numberOfFontsUsedInCurrentRenderingUpdate = 0;
- m_currentRenderingUpdateVersion = 0;
-}
-
void RemoteResourceCacheProxy::didFinalizeRenderingUpdate()
{
static constexpr unsigned minimumRenderingUpdateCountToKeepFontAlive = 4;
static constexpr double minimumFractionOfUnusedFontCountToTriggerRemoval = 0.25;
+ static constexpr unsigned maximumUnusedFontCountToSkipRemoval = 0;
unsigned totalFontCount = m_fontIdentifierToLastRenderingUpdateVersionMap.size();
RELEASE_ASSERT(m_numberOfFontsUsedInCurrentRenderingUpdate <= totalFontCount);
-
unsigned unusedFontCount = totalFontCount - m_numberOfFontsUsedInCurrentRenderingUpdate;
- if (unusedFontCount <= minimumFractionOfUnusedFontCountToTriggerRemoval * totalFontCount) {
- prepareForNextRenderingUpdate();
+ if (unusedFontCount < minimumFractionOfUnusedFontCountToTriggerRemoval * totalFontCount && unusedFontCount <= maximumUnusedFontCountToSkipRemoval)
return;
+
+ for (auto& item : m_fontIdentifierToLastRenderingUpdateVersionMap) {
+ if (m_currentRenderingUpdateVersion - item.value >= minimumRenderingUpdateCountToKeepFontAlive)
+ m_remoteRenderingBackendProxy.releaseRemoteResource(item.key);
}
- m_fontIdentifierToLastRenderingUpdateVersionMap.removeIf([&] (const auto& item) {
- if (m_currentRenderingUpdateVersion - item.value < minimumRenderingUpdateCountToKeepFontAlive)
- return false;
-
- m_remoteRenderingBackendProxy.releaseRemoteResource(item.key);
- return true;
- });
-
- prepareForNextRenderingUpdate();
+ ++m_currentRenderingUpdateVersion;
+ m_numberOfFontsUsedInCurrentRenderingUpdate = 0;
}
void RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed()
@@ -173,13 +155,14 @@
imageBuffer->clearBackend();
}
m_nativeImages.clear();
- clearFontMap();
+ m_fontIdentifierToLastRenderingUpdateVersionMap.clear();
}
void RemoteResourceCacheProxy::releaseMemory()
{
+ m_fontIdentifierToLastRenderingUpdateVersionMap.clear();
+ m_numberOfFontsUsedInCurrentRenderingUpdate = 0;
m_remoteRenderingBackendProxy.deleteAllFonts();
- clearFontMap();
}
} // namespace WebKit
Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h (279167 => 279168)
--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h 2021-06-23 15:20:13 UTC (rev 279167)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h 2021-06-23 15:20:49 UTC (rev 279168)
@@ -62,8 +62,6 @@
using NativeImageHashMap = HashMap<WebCore::RenderingResourceIdentifier, WeakPtr<WebCore::NativeImage>>;
void releaseNativeImage(WebCore::RenderingResourceIdentifier) override;
- void prepareForNextRenderingUpdate();
- void clearFontMap();
ImageBufferHashMap m_imageBuffers;
NativeImageHashMap m_nativeImages;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes