Closed Bug 1316788 Opened 3 years ago Closed 3 years ago
Don't reset devices for every tab
As I read bug 1272277, it looks like we'll reset DeviceManagerDx once for every TabChild. We probably shouldn't do that, though maybe there is a reason to.
Use a sequence number in CompositorUpdated, so CompositorBridgeChild can reset devices only once per update.
Comment on attachment 8809714 [details] [diff] [review] bug1316788.patch This fixes resetting the device more than once when we have one compositor. But if we have multiple compositors then we'll still reset the device multiple times because we reset the compositors one by one. Could we move the sequence number back a level to when we trigger all the compositors to be reset? Like maybe here: http://searchfox.org/mozilla-central/source/widget/windows/nsWindowGfx.cpp#180. And also I would be concerned about the seq number not being monotonic if the GPU process died and is restarted with one device reset having happened. The content process would have seq=1, the gpu would have seq=0, and then on a new device reset would send a seq=1 which would be ignored by the child.
Comment on attachment 8809714 [details] [diff] [review] bug1316788.patch Yeah, you're right. New patch soon.
This version propagates a sequence number from where compositor resets first originate (nsWindowGfx or GPUProcessManager). I had to change EnumAllWindows since it didn't support capturing lambdas.
Pushed by firstname.lastname@example.org: https://hg.mozilla.org/integration/mozilla-inbound/rev/b4ab43a2c1ec Don't reset devices for each tab when the compositor resets. (bug 1316788, r=rhunt)
You need to log in before you can comment on or make changes to this bug.