WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-227229-20210623103539.patch (text/plain), 6.95 KB, created by
Said Abou-Hallawa
on 2021-06-23 10:35:40 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Said Abou-Hallawa
Created:
2021-06-23 10:35:40 PDT
Size:
6.95 KB
patch
obsolete
>Subversion Revision: 279170 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index e107cfe3c081ec1038197929ef31ce3f60533c23..96090052edaa7c845060a41d64c95a2351b380a0 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,30 @@ >+2021-06-23 Said Abou-Hallawa <said@apple.com> >+ >+ [GPU Process] RELEASE_ASSERT in RemoteResourceCacheProxy::didFinalizeRenderingUpdate() may fire if GPUP is relaunched >+ https://bugs.webkit.org/show_bug.cgi?id=227229 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Remove RemoteResourceCacheProxy::didFinalizeRenderingUpdate() since it >+ has been doing nothing since it was landed. >+ >+ Remove m_numberOfFontsUsedInCurrentRenderingUpdate and >+ m_currentRenderingUpdateVersion since they have no use outside >+ didFinalizeRenderingUpdate(). >+ >+ Change m_fontIdentifierToLastRenderingUpdateVersionMap to be a HashSet >+ and rename it m_fontIdentifiers. >+ >+ * WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp: >+ (WebKit::RemoteResourceCacheProxy::cacheFont): >+ (WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed): >+ (WebKit::RemoteResourceCacheProxy::releaseMemory): >+ (WebKit::RemoteResourceCacheProxy::didFinalizeRenderingUpdate): Deleted. >+ * WebProcess/GPU/graphics/RemoteResourceCacheProxy.h: >+ (): Deleted. >+ * WebProcess/WebPage/WebPage.cpp: >+ (WebKit::WebPage::finalizeRenderingUpdate): >+ > 2021-06-23 Commit Queue <commit-queue@webkit.org> > > Unreviewed, reverting r279104. >diff --git a/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp b/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp >index 321bb4104f8dce9aff8d9675ec49c373d4287d94..5632cdd7c513ae83f398821be3f5ddaca9268f91 100644 >--- a/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp >+++ b/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp >@@ -104,16 +104,11 @@ void RemoteResourceCacheProxy::cacheNativeImage(NativeImage& image) > > void RemoteResourceCacheProxy::cacheFont(Font& font) > { >- auto result = m_fontIdentifierToLastRenderingUpdateVersionMap.ensure(font.renderingResourceIdentifier(), [&] { >- return 0; >- }); >- auto& lastVersion = result.iterator->value; >- if (lastVersion != m_currentRenderingUpdateVersion) { >- lastVersion = m_currentRenderingUpdateVersion; >- ++m_numberOfFontsUsedInCurrentRenderingUpdate; >- } >- if (result.isNewEntry) >- m_remoteRenderingBackendProxy.cacheFont(makeRef(font)); >+ if (m_fontIdentifiers.contains(font.renderingResourceIdentifier())) >+ return; >+ >+ m_fontIdentifiers.add(font.renderingResourceIdentifier()); >+ m_remoteRenderingBackendProxy.cacheFont(makeRef(font)); > } > > void RemoteResourceCacheProxy::releaseNativeImage(RenderingResourceIdentifier renderingResourceIdentifier) >@@ -125,27 +120,6 @@ void RemoteResourceCacheProxy::releaseNativeImage(RenderingResourceIdentifier re > m_remoteRenderingBackendProxy.releaseRemoteResource(renderingResourceIdentifier); > } > >-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 && unusedFontCount <= maximumUnusedFontCountToSkipRemoval) >- return; >- >- for (auto& item : m_fontIdentifierToLastRenderingUpdateVersionMap) { >- if (m_currentRenderingUpdateVersion - item.value >= minimumRenderingUpdateCountToKeepFontAlive) >- m_remoteRenderingBackendProxy.releaseRemoteResource(item.key); >- } >- >- ++m_currentRenderingUpdateVersion; >- m_numberOfFontsUsedInCurrentRenderingUpdate = 0; >-} >- > void RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed() > { > for (auto& imageBuffer : m_imageBuffers.values()) { >@@ -155,13 +129,12 @@ void RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed() > imageBuffer->clearBackend(); > } > m_nativeImages.clear(); >- m_fontIdentifierToLastRenderingUpdateVersionMap.clear(); >+ m_fontIdentifiers.clear(); > } > > void RemoteResourceCacheProxy::releaseMemory() > { >- m_fontIdentifierToLastRenderingUpdateVersionMap.clear(); >- m_numberOfFontsUsedInCurrentRenderingUpdate = 0; >+ m_fontIdentifiers.clear(); > m_remoteRenderingBackendProxy.deleteAllFonts(); > } > >diff --git a/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h b/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h >index f6b5fb7818176eb6915c5769bd93acf78b24be9f..5ed38951c68b8c279151248e08cc01adb3914279 100644 >--- a/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h >+++ b/Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h >@@ -50,9 +50,7 @@ public: > void releaseImageBuffer(WebCore::RenderingResourceIdentifier); > > void cacheNativeImage(WebCore::NativeImage&); >- > void cacheFont(WebCore::Font&); >- void didFinalizeRenderingUpdate(); > > void remoteResourceCacheWasDestroyed(); > void releaseMemory(); >@@ -60,15 +58,13 @@ public: > private: > using ImageBufferHashMap = HashMap<WebCore::RenderingResourceIdentifier, WeakPtr<WebCore::ImageBuffer>>; > using NativeImageHashMap = HashMap<WebCore::RenderingResourceIdentifier, WeakPtr<WebCore::NativeImage>>; >- >+ using FontIdentifierHashSet = HashSet<WebCore::RenderingResourceIdentifier>; >+ > void releaseNativeImage(WebCore::RenderingResourceIdentifier) override; > > ImageBufferHashMap m_imageBuffers; > NativeImageHashMap m_nativeImages; >- >- HashMap<WebCore::RenderingResourceIdentifier, uint64_t> m_fontIdentifierToLastRenderingUpdateVersionMap; >- unsigned m_numberOfFontsUsedInCurrentRenderingUpdate { 0 }; >- uint64_t m_currentRenderingUpdateVersion { 1 }; >+ FontIdentifierHashSet m_fontIdentifiers; > > RemoteRenderingBackendProxy& m_remoteRenderingBackendProxy; > }; >diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >index 37b43e9c7c5f2d7c097f38d0fd60f9cc8b4e6d18..4f20a04ab846ae01fe175f5dd3441305f6ff563b 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >@@ -4183,10 +4183,6 @@ void WebPage::didUpdateRendering() > void WebPage::finalizeRenderingUpdate(OptionSet<FinalizeRenderingUpdateFlags> flags) > { > m_page->finalizeRenderingUpdate(flags); >-#if ENABLE(GPU_PROCESS) >- if (m_remoteRenderingBackendProxy) >- m_remoteRenderingBackendProxy->remoteResourceCacheProxy().didFinalizeRenderingUpdate(); >-#endif > } > > void WebPage::releaseMemory(Critical)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 227229
:
431899
|
431941
|
432069
|
432106
|
432207