Open Bug 1776113 Opened 4 years ago Updated 9 months ago

Choppy video after recovery from GPU process crash

Categories

(Core :: Audio/Video: Playback, defect, P3)

Firefox 100
x86_64
Windows 10
defect

Tracking

()

UNCONFIRMED

People

(Reporter: CPuckett.Dynetics, Unassigned)

Details

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0

Steps to reproduce:

  1. Restart FireFox.
  2. Play a 4k video on YouTube. Notice smooth playback.
  3. Kill the GPU process.
  4. Play the 4k video on YouTube again. Notice choppy playback.

Actual results:

FireFox restarted the GPU process, however hardware accelerated video decode is no longer working and remains broken for the remainder of the session.

Expected results:

GPU process should have restarted properly.

The Bugbug bot thinks this bug should belong to the 'Core::Audio/Video: Playback' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Audio/Video: Playback
Product: Firefox → Core

Hello, thanks for the report!

I was able to repro on Windows, though I had to kill the GPU process twice before Firefox disabled hardware acceleration.

I believe that this behavior is intentional. We disable DXVA if the GPU process has been crashing, which is used for hardware accelerated decoding. I do see that we track the number of crashes with mNumOfConsecutiveRDDOrGPUCrashes and mMaxConsecutiveRDDOrGPUCrashes here in MediaFormatReader.h. For Windows (and other platforms), the crash limit is 2 by default as per StaticPrefList_media.h. I did try changing media.rdd-process.max-crashes in about:config to see if it'd have an effect, though it didn't make a difference.

jhlin, would you be able to confirm?

Flags: needinfo?(jolin)
OS: Unspecified → Windows 10
Hardware: Unspecified → x86_64
Severity: -- → S4
Priority: -- → P3

Here's a thought. How about a button somewhere the user can click to manually force GPU decoding back into the workflow?

Flags: needinfo?(jolin)
You need to log in before you can comment on or make changes to this bug.