New issue
Advanced search Search tips

Issue 919015 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: 2019-01-18
OS: Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

VP9 video preview with alpha displaying incorrectly

Reported by m...@launchinteractive.com.au, Jan 4

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Steps to reproduce the problem:
visit https://codepen.io/anon/pen/mapvyE
click inline button to toggle resize

What is the expected behavior?
preview is supposed to be a 50% white box on pink

What went wrong?
white box is displayed grey when video is display block

Did this work before? Yes 71.0.3578.98

Does this work in other browsers? Yes

Chrome version: 73.0.3660.0  Channel: canary
OS Version: OS X 10.14.2
Flash Version: 

This was discovered here: https://bugs.chromium.org/p/chromium/issues/detail?id=905249#c30
 
strangeChromeRendering.mov
2.0 MB View Download
Cc: dalecur...@chromium.org
Status: Untriaged (was: Unconfirmed)
dalecurtis@ plz triage
Components: -Blink>Media Blink>Media>Video
Cc: ccameron@chromium.org
Seems like it's working fine on Linux 72.0.3626.28 -- don't have a Mac today but can try on Wednesday. Can you try going to chrome://flags and disabling accelerated canvas?
Also try running with --disable-gpu-memory-buffer-video-frames
disabling accelerated canvas doesn't help but adding the --disable-gpu-memory-buffer-video-frames argument does. Doing that also fixes https://bugs.chromium.org/p/chromium/issues/detail?id=905249
NextAction: 2019-01-09
Seems something specific to Mac, enabling GPU memory buffers on Linux doesn't show the same issue. I wonder if alpha resources aren't being created correctly. Will test on Wednesday when I have my mac if ccameron doesn't beat me to it.
The NextAction date has arrived: 2019-01-09
Yeah specific to Mac.
Owner: dalecur...@chromium.org
Status: Started (was: Untriaged)
https://chromium-review.googlesource.com/c/chromium/src/+/1404579 fixes this, but not sure it's correct / won't break other platforms. Will test.
Cc: -dalecur...@chromium.org dcasta...@chromium.org
Mac fix breaks Linux. For some reason the Mac GpuMemoryBuffer's are expecting the alpha channel _without_ pre-attenuatation/pre-multiply while Linux wants the opposite. +dcastagna

dcastagna/ccameron: Any idea why Mac and Linux might be functioning differently in regard to their alpha channels? Is it because we're directly using an IOSurface backed GMB on Mac that may not go through our compositor?

Comment 11 by dcasta...@chromium.org, Jan 16 (6 days ago)

We usually use premul in the compositor, https://chromium-review.googlesource.com/c/chromium/src/+/1404579 will likely break other platforms. Scanning out from a buffer with non premul doesn't work, we noticed that when a webgl canvas outputs non premultiplied colors.

Dale, can you try forcing GL composition on Mac and verify if we have the same issue?

Comment 12 by dalecur...@chromium.org, Jan 16 (6 days ago)

--disable-gpu fixes the issue as well. I think GL composition is enabled by default, so not sure what you wanted me to test otherwise.

Comment 13 by dcasta...@chromium.org, Jan 17 (5 days ago)

What I meant by forcing GL composition is to avoid deferring compositing of IOSurface to Core Animation and always use GLRenderer to flatten quads.

const char kDisableMacOverlays[] = "disable-mac-overlays";
is the flag I'd try.

If with that flag we observe the same issue, at least we know that GL Compositing and IOSurface overlay display path behave the same way.

Comment 14 by dalecur...@chromium.org, Jan 17 (5 days ago)

NextAction: 2019-01-18
Okay, will try when I have my mac next.

Comment 15 by mcasas@chromium.org, Jan 17 (5 days ago)

FTR I just compiled Chromium ToT on my MBP 10.14.2, and run
with and without the command-line flag --disable-mac-overlays,
the site https://simpl.info/videoalpha/, which has two VP8
videos with transparency, and in both cases the reproduction
was visually correct: the transparent background of the two
floating videos was fully transparent etc.

The video [1] is indeed recognised as VP9 with transparency,
in all cases decoded by VpxVideoDecoder, all producing 
PIXEL_FORMAT_I420A.

More importantly, I cannot repro the bug description, i.e.
using my Chromium ToT build and the codepen, I'm always 
seeing the box as grey in the original video, both when
inline and when not. 

ToT is r623723 for me now.

[1] https://launchinteractive.com.au/chrome/whiteSquare.webm

Comment 16 by dalecur...@chromium.org, Jan 17 (5 days ago)

Definitely still pink on Linux ToT, so something Mac specific must be happening.

Comment 17 by monor...@bugs.chromium.org, Jan 18 (4 days ago)

The NextAction date has arrived: 2019-01-18

Comment 18 by dalecur...@chromium.org, Jan 18 (4 days ago)

--disable-gmb still fixes the issue. --disable-mac-overlays doesn't help.

I can confirm that I always see grey now on ToT even without capturing. @mcasas are you on Mojave? I just upgraded on Wednesday, otherwise maybe something changed in ToT.

Comment 19 by dalecur...@chromium.org, Today (5 hours ago)

@dcastagna, ccameron: Any further tips?

Sign in to add a comment