Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d67761f1060aca4aef599fb47020365003a5544d https://github.com/WebKit/WebKit/commit/d67761f1060aca4aef599fb47020365003a5544d Author: Said Abou-Hallawa <s...@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 _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes