Possible solution to choppy 1080p 60 FPS YouTube playback within FireFox 56/57
Ever since my (relatively old) projector PC automatically updated to FireFox 57 a few days ago, I've honestly been blown away. The speed and responsiveness has been amazing and I feel like FireFox can finally give Chrome a run for its money.
That said, I've been experiencing the infamous choppy/laggy/jerky/unsmooth playback issue with 1080p 60 FPS YouTube videos in FireFox 57. The issue occurs on both the new and old YouTube layout. The issue doesn't occur within either Chrome of Microsoft Edge.
I can only assume that this issue is related to the age of my projector PC's CPU/GPU and the way in which FireFox utilises the GPU for rendering.
Having scoured Reddit and forums, I've nailed down the performance problem to two key about:config settings:
media.gpu-process-decoder
layers.gpu-process.enabled
Turning both of these options to false has seen 1080p 60 FPS playback go from looking like a choppy 20 FPS video to a properly rendered 60 FPS video!
It's worth noting that the setting change that seems to have the most performance impact is media.gpu-process-decoder however also setting layers.gpu-process.enabled to false seems to make 1080p 60FPS playback pretty much perfect.
I figured that, although this has been mentioned in replies within a handful of threads, it might be worth posting this separately for those of us with slower machines/GPU's that significantly notice this issue!
Posted Oct 14, 2017, 1:04 PM UTC
What does these flags do, exactly?
Really interest in this too, anyone from FF team can help us here?
^^^cc: ^^^/u/Jop902
This is about doing GPU work in a separate process to improve stability. Working with GPU drivers is one particular area where Mozilla has little control over the code. The drivers can leak memory and crash and Mozilla can't do anything about it but hope to blacklist them when they're alerted to such behavior. (In the case of some leaks this may be unclear.)
Hosting the GPU work in Firefox's code then makes Firefox less stable. Putting it in another process means that if it crashes, it doesn't bring the browser down. Here's a page talking about it.
Are you talking about the first one, second one, both?
And are you talking about having them Enabled or Disabled?
And if you're talking about having them Enabled how can disable them improve performance?
I'm not claiming to be an expert in this area, but per the names
These are both related to the gpu process. I believe the first is about doing video decoding in the separate process (preffed to true). There's other GPU work that happens beyond video. And the second is about whether or not the gpu process is enabled at all. Again preffing to true enables.
Because nothing's perfect? It was designed to improve stability while not hurting performance. It seems, at least in the case of OP, that hasn't been the case. At the very least a bug needs filed to look into this.
FYI, per this post that elaborates more on it:
So on 56 not everyone will have it, but on 57 a lot more will (because pretty well everyone should have multiprocess).