Closed Bug 1316788 Opened 3 years ago Closed 3 years ago

Don't reset devices for every tab


(Core :: Graphics, defect)

Not set



Tracking Status
firefox53 --- fixed


(Reporter: dvander, Assigned: dvander)




(1 file, 1 obsolete file)

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.
Attached patch bug1316788.patch (obsolete) — Splinter Review
Use a sequence number in CompositorUpdated, so CompositorBridgeChild can reset devices only once per update.
Attachment #8809714 - Flags: review?(rhunt)
Comment on attachment 8809714 [details] [diff] [review]

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:

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]

Yeah, you're right. New patch soon.
Attachment #8809714 - Flags: review?(rhunt)
Attached patch v2Splinter Review
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.
Attachment #8809714 - Attachment is obsolete: true
Attachment #8809917 - Flags: review?(rhunt)
Attachment #8809917 - Flags: review?(rhunt) → review+
Pushed by
Don't reset devices for each tab when the compositor resets. (bug 1316788, r=rhunt)
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
You need to log in before you can comment on or make changes to this bug.