Bug 215959

Summary: CoreImage CSS Filter Rendering Path Fallback Heuristic
Product: WebKit Reporter: frankhome61
Component: CSSAssignee: frankhome61
Status: NEW ---    
Severity: Normal CC: changseok, dino, esprehn+autocc, ews-watchlist, glenn, kondapallykalyan, mmaxfield, pdr, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
none
Renderer using both CoreImage path and software path causes artifacts none

Description frankhome61 2020-08-28 16:33:25 PDT
CoreImage performance is worse than Software path when the image size is less than 250x250px, so a fallback logic based on the size of the image is needed to determine the right time to select CoreImage path or the software path
Comment 1 Radar WebKit Bug Importer 2020-08-28 16:33:51 PDT
<rdar://problem/67968396>
Comment 2 frankhome61 2020-09-10 15:40:59 PDT
Created attachment 408487 [details]
Patch
Comment 3 frankhome61 2020-09-10 15:47:26 PDT
Created attachment 408488 [details]
Patch
Comment 4 frankhome61 2020-09-10 15:52:59 PDT
Created attachment 408489 [details]
Renderer using both CoreImage path and software path causes artifacts
Comment 5 frankhome61 2020-09-10 15:59:48 PDT
This current patch doesn't work when the window goes into background, where it starts to render in multiple smaller tiles. As shown in the video, the two tiles on the right is rendered with wrong contents. The cause is that, the decision of whether or not taking CoreImage path is on the per tile level (each tile will have its own CSS filter) and there will be cases where part of the large element is rendered using CoreImage path (with IOSurface), and other parts are rendered using software path (with CGBitmap image buffer).