Youtube video starts to glitch; black screen seen until restarted
Categories
(GeckoView :: Media, defect, P1)
Tracking
(firefox78+ fixed, firefox79 fixed)
People
(Reporter: jonalmeida, Assigned: gw)
References
(Blocks 1 open bug)
Details
Attachments
(2 files)
(deleted),
patch
|
Details | Diff | Splinter Review | |
(deleted),
text/x-phabricator-request
|
jcristau
:
approval-mozilla-beta+
|
Details |
Steps to reproduce
- Navigate to a youtube video; play the video.
- Scroll down the page to expand the comments (it seems to reproduce easier that way).
Alternative STR
- Open video in R-B/Fenix.
- Fullscreen the video.
- Press the system home button to enable PiP mode.
- Click on the PiP mode video to return to the browser.
Expected
- The video should play without any hiccups.
Actual
- The video starts to glitch and eventually task switching leads to a permanent black screen until the app is killed (see video).
- New tabs show a black screen too, but seem to be loading a session.
- Video link: https://drive.google.com/file/d/1A8ahE-8zb2wL1EpFoUXdRWfxPykylVKD/view?usp=sharing
GVE: 78.0.20200521093657; reproducible on Fenix and Reference Browser as well.
Device: Android 10, Pixel 4
Comment 1•4 years ago
|
||
I can reproduce this on Fenix Nightly on a Sony XZ1 Compact, this phone uses WebRender by default. The glitches I see is a few frames being repeated in a loop.
Comment 2•4 years ago
|
||
Kris, is this something that you can look into as fallout from WebRender?
Comment 3•4 years ago
|
||
@sotaro: Could you take a look at this?
Updated•4 years ago
|
Comment 4•4 years ago
|
||
(In reply to Kris Taeleman (:ktaeleman) from comment #3)
@sotaro: Could you take a look at this?
OK, I take a look.
Comment 5•4 years ago
|
||
I confirmed that the problem could happen with Firefox preview and with gecko view example app on Pixel 3a.
Comment 6•4 years ago
|
||
Could we get some flags for the Gecko versions affected/targeted for fixes, so we know what versions this is affecting? PiP is one of our new features that we're highlighting and we'll want to track what versions this affects when we make release decisions for Fenix.
Updated•4 years ago
|
Comment 7•4 years ago
|
||
We're aiming tentatively for a 79 Gecko version release for Fenix right now, so we'd like to have this fixed for that.
Comment 8•4 years ago
|
||
Does this problem occur without WebRender as well?
Comment 9•4 years ago
|
||
I did not see the problem without WebRender, though I still do not know why the problem happens:(
Comment 10•4 years ago
|
||
I don't know much about this PiP feature - is there someone on your end who worked on it that could help investigate here?
Comment 11•4 years ago
|
||
This happens without PiP, just doing full screen on a video and waiting will repro. The regression range is about two-three weeks max I'd say.
Comment 12•4 years ago
|
||
While trying to reproduce this on GVE, I ran to an issue that might be related to this, but not sure.
https://bugzilla.mozilla.org/show_bug.cgi?id=1643435 - Youtube video goes black when video controls appear on Android
Bisecting this has pointed to the problem being introduced by
https://bugzilla.mozilla.org/show_bug.cgi?id=1637953
I'll put a dependency on this issue for now and we can revisit when that's fixed.
Updated•4 years ago
|
Comment 13•4 years ago
|
||
STR without PiP as reported here: https://github.com/mozilla-mobile/fenix/issues/11017
Steps to reproduce
visit youtube video m.youtube.com/watch?v=n6QwnzbRUyA
Expected behavior
video moves
Actual behavior
sound goes on but video either freezes or loops like a gif of half a second
this started about a week ago
Comment 14•4 years ago
|
||
More STR from https://github.com/mozilla-mobile/fenix/issues/11054
Steps to reproduce
I can't get this to reproduce consistently.
- Open a video in YouTube, wait maybe a minute
- (if it doesn't reproduce, open a new video and try again)
- I can't seem to make it reproduce when I'm trying to do so – it comes up in my day-to-day use when I'm watching YouTube in the browser. When I get it to reproduce accidentally, it's usually within the first 5 minutes of opening the browser on the 3rd-5th video I click. Note that I frequently use the double-tap to advance 10s feature of YouTube and this could be related
Expected behavior
Nothing: video plays
Actual behavior
The video will start looping a few milliseconds of content (audio is fine). Subsequent interactions with the browser will make it unusable (e.g. content is all black) until I swipe it closed.
Video: https://drive.google.com/file/d/1Wgt6mBdQmRtlT7vIoPdWiYU65ushguaU/view?usp=sharing
Device information
- Android device: P2
- Fenix version: Nightly 200529
- I haven't seen this in the migrated Beta build in the play store
- I've seen this in local Nightly builds from at least few days ago, if not a week or two
- It reproduces in the Preview Nightly channel
Comment 15•4 years ago
|
||
Did some more digging and earliest report I see is using Fenix Nightly 05/25, which would be GV 78.0a1-20200520033931 from 05/20.
@sotaro: Going manually through the changes, do you think https://hg.mozilla.org/integration/autoland/rev/5ad0aa8b8d96 (Bug 1637873) could have something to do with this?
The Fenix team is going to cut a new version for release on Tuesday June 9th. I'll start preparing a change that turns off Webrender for release in case we can't get this fixed before that.
Comment 16•4 years ago
|
||
I tried "./mach mozregression -n gve" to find a point of regression. But it did not work :( I created Bug 1644066 for it.
Updated•4 years ago
|
Comment 17•4 years ago
|
||
(In reply to Kris Taeleman (:ktaeleman) from comment #15)
Did some more digging and earliest report I see is using Fenix Nightly 05/25, which would be GV 78.0a1-20200520033931 from 05/20.
@sotaro: Going manually through the changes, do you think https://hg.mozilla.org/integration/autoland/rev/5ad0aa8b8d96 (Bug 1637873) could have something to do with this?
I looked into it. But it seems not related to this bug. It could change an order of calling mSurfTex->DecrementUse() at SurfaceTextureHost::DeallocateDeviceData() on compositor thread and RenderAndroidSurfaceTextureHostOGL::~RenderAndroidSurfaceTextureHostOGL(). But it should not affect to how GeckoSurfaceTexture is destroyed.
Since, GeckoSurfaceTexture is always destroyed on Render thread by calling GeckoSurfaceTexture.destroyUnused()
Comment 18•4 years ago
|
||
I was able to reproduce the problem on Pixel 3a with GeckoView example app. But with today's m-c, I could not reproduce the problem any more with GeckoView example app.
Comment 19•4 years ago
|
||
Are ya'll still able to reproduce this issue? We can't...which is a bit odd.
Comment 20•4 years ago
|
||
Andrei - could we get a second look from QA to see if this issue can be reproduced?
Comment 21•4 years ago
|
||
I make Fenix build with local gecko. With it, the problem still happned, though it did not happn with GeckoView example app anymore.
Comment 22•4 years ago
|
||
It seems that the problem did not happen with https://www.youtube.com/watch?v=wZZ7oFKsKzY. Or when picture caching was disabled by pref gfx.webrender.picture-caching=false.
Comment 23•4 years ago
|
||
During looking into the bug. I found Bug 1644325.
Updated•4 years ago
|
Comment 24•4 years ago
|
||
It is interesting that black webrender rendering happned even when RenderAndroidSurfaceTextureHostOGL does not exist. For RenderAndroidSurfaceTextureHostOGL, InvalidToWrExternalImage() is used for rendering.
Assignee | ||
Comment 25•4 years ago
|
||
The reset_state
method being called after locking external textures
was resetting the cached state, but not actually forcing the GL
state to match.
This could result in cached state getting out of sync with GL. In
this case, we'd end up trying to composite to the external texture
FBO rather than the main framebuffer.
Assignee | ||
Comment 26•4 years ago
|
||
The attached patch above fixes the issue for me using the PiP STR, which was 100% reproducible for me.
It's possible there is a different bug causing the other symptoms mentioned here, but I'm fairly confident this will fix it in all of the reported STR cases.
Pending try:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=28b9dd4ede3bb9ead359297fdbb66baaed32a493
Assignee | ||
Comment 27•4 years ago
|
||
Once reviewed, please feel free to land this on my behalf, to get it into m-c as quickly as possible.
Updated•4 years ago
|
Comment 28•4 years ago
|
||
Assign the bug to :gw. He created a fixing patch.
Comment 29•4 years ago
|
||
Updated•4 years ago
|
Comment 30•4 years ago
|
||
Thank you! We'll be making another dot release onto Firefox Beta cut from a June 22 branch that will be using GV 78. Can we get a beta uplift?
Comment 31•4 years ago
|
||
bugherder |
Assignee | ||
Comment 32•4 years ago
|
||
Comment on attachment 9155186 [details]
Bug 1640496 - Fix incorrect FBO state caching when updating external textures.
Beta/Release Uplift Approval Request
- User impact if declined: Major video rendering artifacts on GeckoView with Picture in Picture
- Is this code covered by automated tests?: No
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: Yes
- If yes, steps to reproduce: If possible, it would be good to verify by following the Picture in Picture repro steps mentioned in the bug. However, if it's too difficult to manually test (e.g. requires specific hardware) it's still fine to take this low-risk patch, it's definitely a correct fix.
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): Small / simple patch, easy to back out, fixes a clear logic bug in the code.
- String changes made/needed:
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Comment 33•4 years ago
|
||
I was able to repro, yes. I'll check with a build that has the fix.
Updated•4 years ago
|
Comment 34•4 years ago
|
||
When are the GV Beta spins, and will this be in the next GV78 Beta? Is the spin once a week on Tuesday, or twice a week?
Reporter | ||
Comment 35•4 years ago
|
||
Verified on GV 79.0a1-20200610043607 that I can no longer reproduce this bug.
Comment 36•4 years ago
|
||
I can still reproduce the issue on Firefox Preview Nightly 200611 GV: 79.0a1-20200609092134 using a OnePlus 6T (Android 9).
Comment 37•4 years ago
|
||
(In reply to Laurentiu Apahidean from comment #36)
I can still reproduce the issue on Firefox Preview Nightly 200611 GV: 79.0a1-20200609092134 using a OnePlus 6T (Android 9).
This fix wasn't in that build.
Comment 38•4 years ago
|
||
Comment on attachment 9155186 [details]
Bug 1640496 - Fix incorrect FBO state caching when updating external textures.
approved for 78.0b7
Comment 39•4 years ago
|
||
(In reply to Chenxia Liu [:liuche] from comment #34)
When are the GV Beta spins, and will this be in the next GV78 Beta? Is the spin once a week on Tuesday, or twice a week?
3 times a week, on Monday, Wednesday and Friday, except during RC week. So the next build will start around 02:00 UTC on Monday.
Comment 40•4 years ago
|
||
bugherder uplift |
Comment 41•4 years ago
|
||
I retested the issue on Firefox Preview Nightly 200619 (Build #2171067) and Firefox Preview 5.2.0-beta.2 using a OnePlus 6T (Android 9) and the issue no longer occurs.
Comment 42•2 years ago
|
||
Moving some media bugs to the new GeckoView::Media component.
Updated•2 years ago
|
Comment 43•2 years ago
|
||
Removing regressionwindow-wanted
keyword because this bug has been resolved.
Comment 44•2 years ago
|
||
Removing regressionwindow-wanted
keyword because this bug has been resolved.
Comment 45•2 years ago
|
||
Removing regressionwindow-wanted
keyword because this bug has been resolved.
Description
•