| Summary: | Performance issue with the canvas "globalCompositeOperation" when set to "destination-in" | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | register | ||||
| Component: | Canvas | Assignee: | Nobody <webkit-unassigned> | ||||
| Status: | NEW --- | ||||||
| Severity: | Major | CC: | ap, dino, sabouhallawa, simon.fraser, webkit-bug-importer | ||||
| Priority: | P2 | Keywords: | InRadar | ||||
| Version: | Safari 13 | ||||||
| Hardware: | Mac | ||||||
| OS: | macOS 10.14 | ||||||
| Attachments: |
|
||||||
|
Description
register
2020-03-31 05:20:45 PDT
When running the test on a 16" MacBook Pro, I get values that seem to be all over the place. What is a pass and what is a failure for this test? sum = 22 ms => average = 0.22 ms sum = 11.000000000007276 ms => average = 0.11000000000007276 ms sum = 3.000000000014552 ms => average = 0.030000000000145518 ms sum = 20 ms => average = 0.2 ms sum = 10 ms => average = 0.1 ms destination-out doesn't seem to be much faster. This is Safari 13.1 on macOS 10.15.4. On a 15'' MacBook Pro, mid-year, I can confirm that the performance on the composition mode "destination-out" are 10 times better than with "destination-in", which seems very weird, due to the fact that the computation should be quite similar, in terms of complexity… This is why I reported the issue, I hope that the WebKit team will handle this with great attention, because this strange performance behavior harms the UX. As a side note, as a comparison, on the same machine equipped with a Chromium v80, the performances are quite similar with both composition modes, and about twice faster than Safari. And beware of the results given by the little benchmark attached, because the "performance.now()" implementation on Safari does not allow sub-milliseconds precision. In order to work this around, if you have the opportunity to enable in Safari development mode the "performance.now()" sub-milliseconds precision (I could not find a way to achieve this), you will get precise results this time. There's some extra read back happening. Need to figure out why; it might be beneath WebKit. Hello. Did you have the time to investigate furthermore? Do you have some news to share regarding this performance issue, please? Thank you. I did not, sorry. This involves digging deep into Apple frameworks. OK, I understand that the issue involves a thorough investigation on the OS level. However, the performance penalty has some very noticeable impact. Should I open a ticket / bug somewhere else so that someone / some team investigated on it, please? |