RESOLVED FIXED 229021
Support drawImage with a wide gamut image painting into a display-p3 canvas
https://bugs.webkit.org/show_bug.cgi?id=229021
Summary Support drawImage with a wide gamut image painting into a display-p3 canvas
Cameron McCormack (:heycam)
Reported 2021-08-11 21:35:21 PDT
.
Attachments
WIP including squashed dependencies for EWS (984.92 KB, patch)
2021-09-05 22:18 PDT, Cameron McCormack (:heycam)
no flags
WIP including squashed dependencies for EWS (977.25 KB, patch)
2021-09-07 22:14 PDT, Cameron McCormack (:heycam)
ews-feeder: commit-queue-
WIP including squashed dependencies for EWS (979.20 KB, patch)
2021-09-07 22:56 PDT, Cameron McCormack (:heycam)
ews-feeder: commit-queue-
WIP including squashed dependencies for EWS (979.42 KB, patch)
2021-09-07 23:27 PDT, Cameron McCormack (:heycam)
ews-feeder: commit-queue-
WIP including squashed dependencies for EWS (979.53 KB, patch)
2021-09-08 00:08 PDT, Cameron McCormack (:heycam)
no flags
WIP including squashed dependencies for EWS (180.94 KB, patch)
2021-09-09 03:38 PDT, Cameron McCormack (:heycam)
ews-feeder: commit-queue-
WIP including squashed dependencies for EWS (96.88 KB, patch)
2021-09-09 19:06 PDT, Cameron McCormack (:heycam)
no flags
WIP including squashed dependencies for EWS (203.58 KB, patch)
2021-09-09 20:38 PDT, Cameron McCormack (:heycam)
no flags
WIP including squashed dependencies for EWS (203.73 KB, patch)
2021-09-10 00:10 PDT, Cameron McCormack (:heycam)
no flags
Patch for review (without dependencies, so EWS will fail) (185.39 KB, patch)
2021-09-10 00:12 PDT, Cameron McCormack (:heycam)
no flags
Patch including squashed dependencies for EWS (211.59 KB, patch)
2021-09-10 17:01 PDT, Cameron McCormack (:heycam)
no flags
Patch for review (without dependencies and so will fail EWS) (192.71 KB, patch)
2021-09-10 17:02 PDT, Cameron McCormack (:heycam)
no flags
Patch including squashed dependencies for EWS (222.30 KB, patch)
2021-09-12 18:41 PDT, Cameron McCormack (:heycam)
no flags
Patch without dependencies (and so will fail EWS) (174.75 KB, patch)
2021-09-12 18:42 PDT, Cameron McCormack (:heycam)
no flags
Patch including squashed dependencies for EWS (223.70 KB, patch)
2021-09-12 19:23 PDT, Cameron McCormack (:heycam)
no flags
Patch without dependencies (and so will fail EWS) (180.15 KB, patch)
2021-09-12 19:23 PDT, Cameron McCormack (:heycam)
no flags
[fast-cq] Patch (180.24 KB, patch)
2021-09-16 15:55 PDT, Cameron McCormack (:heycam)
no flags
Patch (180.21 KB, patch)
2021-09-16 16:09 PDT, Cameron McCormack (:heycam)
no flags
Patch (180.21 KB, patch)
2021-09-16 16:25 PDT, Cameron McCormack (:heycam)
no flags
Radar WebKit Bug Importer
Comment 1 2021-08-11 21:40:08 PDT
Cameron McCormack (:heycam)
Comment 2 2021-09-05 22:18:08 PDT
Created attachment 437381 [details] WIP including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 3 2021-09-07 22:14:03 PDT
Created attachment 437593 [details] WIP including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 4 2021-09-07 22:56:46 PDT
Created attachment 437596 [details] WIP including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 5 2021-09-07 23:27:10 PDT
Created attachment 437597 [details] WIP including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 6 2021-09-08 00:08:44 PDT
Created attachment 437604 [details] WIP including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 7 2021-09-09 03:38:18 PDT
Created attachment 437727 [details] WIP including squashed dependencies for EWS
EWS Watchlist
Comment 8 2021-09-09 03:39:16 PDT
This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess
Cameron McCormack (:heycam)
Comment 9 2021-09-09 19:06:32 PDT
Created attachment 437823 [details] WIP including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 10 2021-09-09 20:38:39 PDT
Created attachment 437830 [details] WIP including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 11 2021-09-10 00:10:12 PDT
Created attachment 437846 [details] WIP including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 12 2021-09-10 00:12:31 PDT
Created attachment 437847 [details] Patch for review (without dependencies, so EWS will fail)
Cameron McCormack (:heycam)
Comment 13 2021-09-10 17:01:24 PDT
Created attachment 437926 [details] Patch including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 14 2021-09-10 17:02:17 PDT
Created attachment 437928 [details] Patch for review (without dependencies and so will fail EWS)
Cameron McCormack (:heycam)
Comment 15 2021-09-12 18:41:53 PDT
Created attachment 438001 [details] Patch including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 16 2021-09-12 18:42:45 PDT
Created attachment 438002 [details] Patch without dependencies (and so will fail EWS)
Cameron McCormack (:heycam)
Comment 17 2021-09-12 19:23:12 PDT
Created attachment 438005 [details] Patch including squashed dependencies for EWS
Cameron McCormack (:heycam)
Comment 18 2021-09-12 19:23:55 PDT
Created attachment 438006 [details] Patch without dependencies (and so will fail EWS)
Sam Weinig
Comment 19 2021-09-15 09:28:46 PDT
Comment on attachment 438006 [details] Patch without dependencies (and so will fail EWS) View in context: https://bugs.webkit.org/attachment.cgi?id=438006&action=review > Source/WebKit/Shared/cg/ShareableBitmapCG.cpp:46 > + CGColorSpaceRef colorSpace = configuration.colorSpace->platformColorSpace(); I was poking around after we discussed this, and it turns out there is some interesting SPI in CoreGraphics related to this that we might want to explore: CGBitmapContextCreateForFlatteningImage() I think we should ask the CoreGraphics folks if it would make sense for us to use it.
Cameron McCormack (:heycam)
Comment 20 2021-09-15 22:28:43 PDT
(In reply to Sam Weinig from comment #19) > I was poking around after we discussed this, and it turns out there is some > interesting SPI in CoreGraphics related to this that we might want to > explore: > > CGBitmapContextCreateForFlatteningImage() Nice find. It's doing similar work to find an appropriate color space that I'm doing in validateConfiguration, and avoids conversion in some more cases. CGBitmapContextCreateForFlatteningImage() creates its own buffer for the bitmap, but ShareableBitmap needs to create the buffer in shared memory. So I am not sure we could use it as it stands, unless we're happy to use it just to find an appropriate bitmap configuration and color space, or if we draw to it then copy the data out afterwards into the shared memory. If there were an API that could tell us the appropriate color space and bitmap configuration to use, that would be ideal. Although we would still need to teach ShareableBitmap about other bitmap configurations that it doesn't support right now (e.g. float components with non-extended range color spaces, CMYK, single channel grayscale) and store that in the ShareableBitmap::Configuration.
Cameron McCormack (:heycam)
Comment 21 2021-09-16 14:58:16 PDT
I'm going to land this patch as is, and I've filed bug 230375 to look into CGBitmapContextCreateForFlatteningImage.
Cameron McCormack (:heycam)
Comment 22 2021-09-16 15:55:44 PDT
Created attachment 438410 [details] [fast-cq] Patch
Cameron McCormack (:heycam)
Comment 23 2021-09-16 16:09:09 PDT
Cameron McCormack (:heycam)
Comment 24 2021-09-16 16:16:59 PDT
Submitted web-platform-tests pull request: https://github.com/web-platform-tests/wpt/pull/30833
Cameron McCormack (:heycam)
Comment 25 2021-09-16 16:25:35 PDT
EWS
Comment 26 2021-09-16 18:54:37 PDT
Committed r282626 (241783@main): <https://commits.webkit.org/241783@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 438415 [details].
Note You need to log in before you can comment on or make changes to this bug.