Closed
Bug 1502789
Opened 6 years ago
Closed 6 years ago
Fix Texture release timing of AsyncImagePipelineManager::ProcessPipelineUpdates()
Categories
(Core :: Graphics: WebRender, enhancement)
Core
Graphics: WebRender
Tracking
()
RESOLVED
FIXED
mozilla65
Tracking | Status | |
---|---|---|
firefox65 | --- | fixed |
People
(Reporter: sotaro, Assigned: sotaro)
References
Details
Attachments
(1 file, 6 obsolete files)
Since Bug 1495352, AsyncImagePipelineManager::NotifyPipelinesUpdated() is called even when WebRender rendering is skipped. But when the rendering is skipped, we basically should not release TextureHosts for recycling.
If we release TextureHosts during skipping the rendering, There could be a case that TextureHosts are still used by gpu.
Assignee | ||
Updated•6 years ago
|
Assignee: nobody → sotaro.ikeda.g
Assignee | ||
Updated•6 years ago
|
Summary: Fix Texture release timing of AsyncImagePipelineManager::NotifyPipelinesUpdated() → Fix Texture release timing of AsyncImagePipelineManager::ProcessPipelineUpdates()
Assignee | ||
Comment 1•6 years ago
|
||
AsyncImagePipelineManager::NotifyPipelinesUpdated() triggers AsyncImagePipelineManager::ProcessPipelineUpdates().
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Assignee | ||
Comment 6•6 years ago
|
||
Assignee | ||
Comment 7•6 years ago
|
||
Attachment #9020989 -
Attachment is obsolete: true
Assignee | ||
Updated•6 years ago
|
Attachment #9020989 -
Flags: review?(nical.bugzilla)
Comment 8•6 years ago
|
||
Comment on attachment 9021092 [details] [diff] [review]
patch - Fix Texture release timing of AsyncImagePipelineManager::ProcessPipelineUpdates()
Review of attachment 9021092 [details] [diff] [review]:
-----------------------------------------------------------------
I'll be honest, I'm having a hard time following the logic here, most likely because this code isn't fresh in my memory. Still, if there are comments you can add that explain in the code what we are doing and more importantly why, it would be great.
I'll give this an r+ because it fixes a bug, but eventually I hope that we can drastically simplify it.
Note for the future:
I added to WebRender somewhat recently a notification system that lets you register handlers that will be notified at certain parts of the pipeline. You can do txn->Notify(wr::Checkpoint::FrameRendered, handler); and the handler will get notified on the renderer thread after a frame is rendered that contains the transaction (so if rendering is skipped, it will wait til next frame, etc which I think matches what we want here). I'm hoping that by using this mechanism we can avoid counting frames etc and just and a handler to the next transaction after a texture is unused to do the deletion.
Attachment #9021092 -
Flags: review+
Assignee | ||
Comment 9•6 years ago
|
||
Thanks for the review. I am going to add more comments. The patch is created as preparation of Bug 1500017. It requests counting frames. We could revisit usage of txn->Notify(wr::Checkpoint::FrameRendered, handler) after fixing Bug 1500017.
Assignee | ||
Updated•6 years ago
|
Attachment #9020989 -
Flags: review?(nical.bugzilla)
Assignee | ||
Comment 10•6 years ago
|
||
Attachment #9021092 -
Attachment is obsolete: true
Attachment #9021383 -
Flags: review+
Assignee | ||
Comment 11•6 years ago
|
||
Attachment #9021383 -
Attachment is obsolete: true
Attachment #9021384 -
Flags: review+
Assignee | ||
Comment 12•6 years ago
|
||
Comment 13•6 years ago
|
||
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/5c3e0fc819ba
Fix Texture release timing of AsyncImagePipelineManager::ProcessPipelineUpdates() r=nical
Comment 14•6 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox65:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
You need to log in
before you can comment on or make changes to this bug.
Description
•