We should be able to work around the framework bug on Apple platforms that caused the canvas rendering problems with different color spaces, identified in bug 225873. The workaround is needed on Big Sur and earlier.
I ran Motionmark locally with the workaround in place, and didn't get notably different results.
Created attachment 437819 [details]
Created attachment 437845 [details]
(In reply to Cameron McCormack (:heycam) from comment #2)
> I ran Motionmark locally with the workaround in place, and didn't get
> notably different results.
That is measuring the overhead of doing the color space check, when we don't need to purge the caches. I haven't measured how much it can slow things down when repeatedly switching between color spaces.
Created attachment 437918 [details]
Patch that works around the bug on older OSes
Mark Windows failure since Display P3 canvas is not available there.
(In reply to Cameron McCormack (:heycam) from comment #6)
> I haven't measured how much it can slow things
> down when repeatedly switching between color spaces.
I just tested this. The overhead of the context flush and cache purge, when it's needed is about 2 ms on my machine. If drawing operations are done on canvases of alternating color spaces, then this is substantial. So now I am not sure that we want to do this.
Created attachment 437934 [details]
This is what I tested with. Got these results:
(A and B are srgb canvases, C and D are display-p3 canvases)
AAAA: 9 ms
CCCC: 23 ms
ABAB: 20 ms
CDCD: 12 ms
ACAC: 42739 ms
Created attachment 437970 [details]
Patch for EWS that disables the feature on unsupported platforms
Created attachment 437978 [details]
Patch for EWS that disables the feature on supported platforms
Created attachment 437981 [details]
Patch that disables the feature on unsupported platforms
Tools/Scripts/svn-apply failed to apply attachment 437981 [details] to trunk.
Please resolve the conflicts and upload a new patch.
Created attachment 438318 [details]
Committed r282513 (241738@main): <https://commits.webkit.org/241738@main>
All reviewed patches have been landed. Closing bug and clearing flags on attachment 438318 [details].