The encoding and decoding of FEImage requires special handling. FEImage needs to encode and decode the RenderingResourceIdentifier of the Image or the ImageBuffer of its SourceImage. FEImage needs to send the Image or the ImageBuffer of its SourceImage separately to GPUProcess. But before applying the filter all the FEImages need to resolve their RenderingResourceIdentifiers back to an Image or an ImageBuffer.
Created attachment 446622 [details] Patch
There should be two follow-up patches: bug 234108: Convert FilterEffectVector to be a Vector of Ref<FilterEffect> bug 234109: Move FEImage to the 'platform' directory bug 234109 is essential to remove the layering violation which this patch is introducing by including the header file SVGFEImage.h in the source file DisplayListRecorder.cpp.
Comment on attachment 446622 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=446622&action=review r=mews > Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:248 > + Ref<Image> image = BitmapImage::create(RefPtr<NativeImage> { nativeImage }); Nit - I don't think this local variable adds much here.
Created attachment 446645 [details] Patch
Comment on attachment 446622 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=446622&action=review >> Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:248 >> + Ref<Image> image = BitmapImage::create(RefPtr<NativeImage> { nativeImage }); > > Nit - I don't think this local variable adds much here. The local variable was removed.
Committed r286824 (245058@main): <https://commits.webkit.org/245058@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 446645 [details].
<rdar://problem/86302383>