Bug 1576767 Comment 236 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

I've been digging into the memory management of shared buffers (between kernel mode and user mode) by the IOAcceleratorFamily2 and IOSurface kernel extentions, and finding new information. But so far I haven't been able to find any differences between Firefox and Chrome and Safari that explain why this bug's crashes happen only (or much more often) in Firefox.

But a while ago I noticed that CGLChoosePixelFormat() is called with one "attribute" in Firefox that isn't used by Chrome -- NSOpenGLPFAAccelerated == 73. (This comparison isn't relevant to Safari, which uses Metal instead of OpenGL.) Not using this attribute makes Firefox scroll noticeably less smoothly on pages with lots of "resources", and (judging from comments in the Mozilla source) may have other bad side effects. But since I'm at a loss about how to proceed, I figure its now worth trying one more rather far fetched idea.

I've done a tryserver build that disables Firefox's use of this attribute. Please try it out, steve-_- and Eric. Testing it should be relatively easy for steve-_-: Just set your external display to "Scaled" "More Space" and see what happens.

https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/VfanRq6GT5i9kjZXnHZGTw/runs/0/artifacts/public/build/target.dmg
https://treeherder.mozilla.org/#/jobs?repo=try&revision=7a2ef5aaaec599a616b5fb0609a9cadf00fecd9f

Please try it out and let us know your results.

If this "works", it may be worthwhile to create an about:config setting that allows users to turn off NSOpenGLPFAAccelerated. This shouldn't be the default, though.
I've been digging into the memory management of shared buffers (between kernel mode and user mode) by the IOAcceleratorFamily2 and IOSurface kernel extentions, and finding new information. But so far I haven't been able to find any differences between Firefox and Chrome and Safari that explain why this bug's crashes happen only (or much more often) in Firefox.

But a while ago I noticed that CGLChoosePixelFormat() is called with one "attribute" in Firefox that isn't used by Chrome -- NSOpenGLPFAAccelerated == 73. (This comparison isn't relevant to Safari, which uses Metal instead of OpenGL.) Not using this attribute makes Firefox scroll noticeably less smoothly on pages with lots of "resources", and (judging from comments in the Mozilla source) may have other bad side effects. But since I'm at a loss about how to proceed, I figure its now worth trying one more rather far fetched idea.

I've done a tryserver build that disables Firefox's use of this attribute. Please try it out, steve and Eric. Testing it should be relatively easy for steve: Just set your external display to "Scaled" "More Space" and see what happens.

https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/VfanRq6GT5i9kjZXnHZGTw/runs/0/artifacts/public/build/target.dmg
https://treeherder.mozilla.org/#/jobs?repo=try&revision=7a2ef5aaaec599a616b5fb0609a9cadf00fecd9f

Please try it out and let us know your results.

If this "works", it may be worthwhile to create an about:config setting that allows users to turn off NSOpenGLPFAAccelerated. This shouldn't be the default, though.

Back to Bug 1576767 Comment 236