Closed Bug 1404232 Opened 2 years ago Closed 2 years ago

Tab move between different windows does not work well in layers-free mode

Categories

(Core :: Graphics: WebRender, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox57 --- unaffected
firefox58 --- unaffected

People

(Reporter: sotaro, Assigned: sotaro)

References

Details

(Whiteboard: [wr-mvp])

Attachments

(3 files, 9 obsolete files)

6.95 KB, patch
jrmuizel
: review+
Details | Diff | Splinter Review
7.27 KB, patch
jrmuizel
: review+
Details | Diff | Splinter Review
1.84 KB, patch
jrmuizel
: review+
Details | Diff | Splinter Review
Tab move between different windows seemed not work well in layers-free mode.
I am going to take a look.
Assignee: nobody → sotaro.ikeda.g
Whiteboard: [wr-mvp] [triage]
Status: NEW → ASSIGNED
Priority: -- → P1
Whiteboard: [wr-mvp] [triage] → [wr-mvp]
Attached patch wip (obsolete) — Splinter Review
TabMove between different windows on nightly often cause crash at webrender::resource_cache::ResourceCache::get_cached_image.

bp-037115bb-d4fe-46e9-98dd-c870e0171002
Attachment #8914213 - Attachment is obsolete: true
Attachment #8914639 - Attachment description: patch - Add WebRenderLayerManager::WrUpdated() → patch part 1 - Add WebRenderLayerManager::WrUpdated()
attachment 8914639 [details] [diff] [review] is a preparation for attachment 8914658 [details] [diff] [review].
attachment 8914658 [details] [diff] [review] adds WebRenderLayerManager::RemoveAndResetAllWebRenderUserData() and use the function as to remove all WebRenderUserData.
During working for this bug, I noticed that WebRenderBridgeChild::RecvWrUpdated() sometimes received same wr::IdNamespace since wr::IdNamespace is unique only within same WebRender instance. Therefore different Window(WebRender) could assign same wr::IdNamespace.
Bug 1405241 is created for Comment 7.
See Also: → 1405241
Rebased.
Attachment #8914639 - Attachment is obsolete: true
Rebased.
Attachment #8914658 - Attachment is obsolete: true
Attachment #8914688 - Attachment is obsolete: true
Attachment #8914690 - Attachment is obsolete: true
Attachment #8915428 - Attachment is obsolete: true
Attachment #8918702 - Attachment is obsolete: true
There were cases that DeleteTextureHandle() changed current gl context, it caused texture binding failure. attachment 8919215 [details] [diff] [review] addresses it.
Attachment #8919213 - Attachment description: patch part 2 - WebRenderCommandBuilder::ClearCachedResources() → patch part 2 - Add WebRenderCommandBuilder::ClearCachedResources()
When tab is moved between different windows, Wr related resources need to be cleared. attachment 8919213 [details] [diff] [review] does it.
Attachment #8918701 - Flags: review?(jmuizelaar)
Attachment #8919213 - Flags: review?(jmuizelaar)
Attachment #8919215 - Flags: review?(jmuizelaar)
Attachment #8919213 - Flags: review?(jmuizelaar) → review+
Attachment #8919215 - Flags: review?(jmuizelaar) → review+
Attachment #8918701 - Flags: review?(jmuizelaar) → review+
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/fef60dc3adec
Add WebRenderLayerManager::WrUpdated() r=jrmuizel
https://hg.mozilla.org/integration/mozilla-inbound/rev/a88fa8d0eaa0
Add WebRenderCommandBuilder::ClearCachedResources() r=jrmuizel
https://hg.mozilla.org/integration/mozilla-inbound/rev/4212d0d0ca77
Add mGL->MakeCurrent() calling in SetGLContext() r=jrmuizel
You need to log in before you can comment on or make changes to this bug.