All the rendering resources, such as ImageFrames, Fonts and ImageBuffers will be cached in the GPU side. Managing this cache will be done by RemoteRenderingBackend and RemoteRenderingBackendProxy. Both of these objects will have a separate objects for maintaining the cached objects. The goal is to have these objects cached once and referenced by their ids multiple times.
Created attachment 410571 [details] Patch
Created attachment 410597 [details] Patch
Created attachment 410613 [details] Patch
Created attachment 410617 [details] Patch
Comment on attachment 410617 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=410617&action=review It seems like there will be 3 or 4 patches in here once this is broken up. I'll review those in more detail (just because this one is pretty big). > Source/WebCore/platform/graphics/GraphicsContext.cpp:795 > + if (m_impl && image.isPDFDocumentImage()) Why is this relevant? > Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:-292 > - if (m_impl) { > - m_impl->drawNativeImage(image, imageSize, destRect, srcRect, options); > - return; > - } > - This is surprising.
Created attachment 410738 [details] Patch
Created attachment 410739 [details] Patch
Created attachment 410740 [details] Patch
<rdar://problem/70122760>
Is this patch still useful?
The attached patch was split and landed separately in the blocking bugs.