Bug 278938
| Summary: | Canvas Context DrawImage() fails with tall videos on some CPU/GPUs | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Michael Diehr <mdiehr> |
| Component: | Canvas | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | kkinnunen, sabouhallawa, simon.fraser, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Safari 17 | ||
| Hardware: | All | ||
| OS: | macOS 14 | ||
Michael Diehr
This seems like a long-standing issue, I first reported it back under Safari 15 under macOS Monterey 12 and Feedback Assistant case FB FB10024126
It persists in Safari 17 and macOS 14, as well as Safari Technology Preview (202).
Some videos fail to draw anything when Canvas Context DrawImage(video) is called.
Seems to affect particularly videos that are taller than wide, and may often happen more often with videos from LivePhotos.
Steps to reproduce:
Open this web page and click the play button:
https://xochi.com/xojo/canvas/index.html
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Michael Diehr
Regression testing reveals some complexity to the issue, as behavior differs depending on the GPU and OS in use, affecting mostly Intel MacBook Pros with both AMD, Intel, and NVIDIA GPUs.
Details:
Bug? OS Safari GPU
------------------------------------------------
Yes* Intel 10.14 14.1 Intel HD Graphics 4000
No Intel 10.14 14.1 GeForce GT 650M
Yes Intel 10.15 15.6 Intel HD Graphics 4000
Yes Intel 10.15 15.6 GeForce GT 650M
Yes Intel 12.4 15.5 Radeon Pro Vega 20
Yes Intel 14.6.1 17.6 Radeon Pro Vega 20
Yes Intel 14.6.1 P202 Radeon Pro Vega 20
Yes Intel 14.6.1 17.6 Intel UHD 630
No M1 12.6 16.0 M1
No M1 12.7.6 17.6 M1
No M1 13.6.1 17.1 M1
No M1 13.6.9 17.6 M1
No M1 15.1 18.1 M1
Notes:
P202 = Safari Technical Preview build 202
Yes* = On this machine, the bug is reversed. when using the iGPU: video fails to play, but the canvas screenshots do work. With the dGPU in use, it behaves normally.
Alexey Proskuryakov
Thank you, relating to your Feedback Assistant report, and adding some experts.
rdar://93708285
Kimmo Kinnunen
I can repro on iMac1,1.
Likely on intel we get some sort of CVPixelBuffer that we don't treat correctly with GPUP due to it having multiple code paths.
Need to investigate.