[webkit-changes] [WebKit/WebKit] d67761: [GPU Process] Cache all RenderingResources as one ...
Said Abou-Hallawa
noreply at github.com
Mon May 8 14:19:48 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d67761f1060aca4aef599fb47020365003a5544d
https://github.com/WebKit/WebKit/commit/d67761f1060aca4aef599fb47020365003a5544d
Author: Said Abou-Hallawa <said at apple.com>
Date: 2023-05-08 (Mon, 08 May 2023)
Changed paths:
M Source/WebCore/platform/graphics/DecomposedGlyphs.h
M Source/WebCore/platform/graphics/Gradient.h
M Source/WebCore/platform/graphics/NativeImage.h
M Source/WebCore/platform/graphics/RenderingResource.h
M Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h
M Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h
M Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp
M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h
Log Message:
-----------
[GPU Process] Cache all RenderingResources as one type
https://bugs.webkit.org/show_bug.cgi?id=256408
<rdar://problem/108977457>
Reviewed by Simon Fraser.
This makes adding a new RenderingResource less pervasive. RenderingResources are
mainly cached to control their lifetime between WebProcess and GPUProcess. Their
concrete types are rarely used especially in WebProcess. So replace the pointers
to NativeImage, DecomposedGlyphs and Gradient to just a pointer to RenderingResource.
Add traits to these classes so RenderingResource can be casted to any of them.
* Source/WebCore/platform/graphics/DecomposedGlyphs.h:
(isType):
* Source/WebCore/platform/graphics/Gradient.h:
(isType):
* Source/WebCore/platform/graphics/NativeImage.h:
(isType):
* Source/WebCore/platform/graphics/RenderingResource.h:
(WebCore::RenderingResource::isNativeImage const):
(WebCore::RenderingResource::isGradient const):
(WebCore::RenderingResource::isDecomposedGlyphs const):
* Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h:
(WebCore::DisplayList::LocalResourceHeap::add):
* Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h:
(WebKit::QualifiedResourceHeap::add):
(WebKit::QualifiedResourceHeap::getNativeImage const):
(WebKit::QualifiedResourceHeap::getDecomposedGlyphs const):
(WebKit::QualifiedResourceHeap::getGradient const):
(WebKit::QualifiedResourceHeap::removeRenderingResource):
(WebKit::QualifiedResourceHeap::releaseAllResources):
(WebKit::QualifiedResourceHeap::releaseAllImageResources):
(WebKit::QualifiedResourceHeap::checkInvariants const):
(WebKit::QualifiedResourceHeap::removeNativeImage): Deleted.
(WebKit::QualifiedResourceHeap::removeDecomposedGlyphs): Deleted.
(WebKit::QualifiedResourceHeap::removeGradient): Deleted.
* Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp:
(WebKit::RemoteResourceCache::releaseRenderingResource):
* Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::RemoteResourceCacheProxy::~RemoteResourceCacheProxy):
(WebKit::RemoteResourceCacheProxy::clear):
(WebKit::RemoteResourceCacheProxy::imagesCount const):
(WebKit::RemoteResourceCacheProxy::cachedNativeImage const):
(WebKit::RemoteResourceCacheProxy::recordDecomposedGlyphsUse):
(WebKit::RemoteResourceCacheProxy::recordGradientUse):
(WebKit::RemoteResourceCacheProxy::recordNativeImageUse):
(WebKit::RemoteResourceCacheProxy::releaseRenderingResource):
(WebKit::RemoteResourceCacheProxy::clearRenderingResourceMap):
(WebKit::RemoteResourceCacheProxy::clearNativeImageMap):
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):
(WebKit::RemoteResourceCacheProxy::releaseMemory):
(WebKit::RemoteResourceCacheProxy::clearDecomposedGlyphsMap): Deleted.
(WebKit::RemoteResourceCacheProxy::clearGradientMap): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
(WebKit::RemoteResourceCacheProxy::imagesCount const): Deleted.
Canonical link: https://commits.webkit.org/263824@main
More information about the webkit-changes
mailing list