Closed
Bug 1109314
Opened 10 years ago
Closed 9 years ago
Layer Tree Invalidation code doesn't run when compositing to draw target
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
WONTFIX
Tracking | Status | |
---|---|---|
firefox34 | --- | unaffected |
firefox35 | --- | unaffected |
firefox36 | --- | wontfix |
firefox37 | --- | wontfix |
firefox38 | --- | wontfix |
firefox38.0.5 | --- | wontfix |
firefox39 | --- | wontfix |
firefox40 | --- | wontfix |
firefox41 | --- | wontfix |
firefox42 | --- | wontfix |
firefox-esr31 | --- | unaffected |
People
(Reporter: BenWa, Assigned: BenWa)
References
Details
(Keywords: regression)
Attachments
(2 files, 3 obsolete files)
1.72 KB,
patch
|
mattwoodrow
:
review-
|
Details | Diff | Splinter Review |
2.05 KB,
text/plain
|
Details |
We need to run this code even for draw targets so that we know to invalidate the retained render target for container layers.
Attachment #8533983 -
Flags: review?(mstange)
Assignee | ||
Comment 1•10 years ago
|
||
[Tracking Requested - why for this release]: Regression from bug 1068190. The trigger for the bug should be rare I imagine but we should still fix it.
status-firefox34:
--- → unaffected
status-firefox35:
--- → unaffected
status-firefox36:
--- → affected
status-firefox37:
--- → affected
tracking-firefox36:
--- → ?
tracking-firefox37:
--- → ?
Assignee | ||
Comment 2•10 years ago
|
||
Assignee | ||
Updated•10 years ago
|
Keywords: regression,
regressionwindow-wanted
Assignee | ||
Updated•10 years ago
|
Keywords: regressionwindow-wanted
Updated•10 years ago
|
Attachment #8533983 -
Flags: review?(mstange) → review+
Assignee | ||
Comment 3•10 years ago
|
||
Assignee: nobody → bgirard
Status: NEW → ASSIGNED
Assignee | ||
Comment 4•10 years ago
|
||
Attachment #8533983 -
Attachment is obsolete: true
Attachment #8534168 -
Attachment is obsolete: true
Comment 5•10 years ago
|
||
Comment on attachment 8534170 [details] [diff] [review]
patch
Review of attachment 8534170 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/composite/LayerManagerComposite.cpp
@@ +295,1 @@
> mInvalidRegion.Or(mInvalidRegion, mRenderBounds);
Doesn't this mean that we now invalidate everything if we're compositing without a target, e.g. during normal BasicCompositor OMTC?
But I don't really understand why the old code had } else if (!mTarget) { here, and not just } else {. Do you? How did we make sure we were painting everything when compositing to a DrawTarget?
Updated•10 years ago
|
Comment hidden (obsolete) |
Assignee | ||
Comment 7•10 years ago
|
||
Comment on attachment 8534170 [details] [diff] [review]
patch
Ok this passes try:
https://tbpl.mozilla.org/?tree=Try&rev=786498b4e431
Attachment #8534170 -
Flags: review+
Assignee | ||
Comment 8•10 years ago
|
||
My comment above got the logic wrong. Marking as 'obsolete'.
Assignee | ||
Comment 9•10 years ago
|
||
Comment on attachment 8534170 [details] [diff] [review]
patch
Review of attachment 8534170 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/composite/LayerManagerComposite.cpp
@@ +295,1 @@
> mInvalidRegion.Or(mInvalidRegion, mRenderBounds);
Actually I think with this patch this branch is no longer needed. We should always be tracking the invalid region regardless if we have mTarget or not.
Assignee | ||
Comment 10•10 years ago
|
||
Assignee | ||
Comment 11•10 years ago
|
||
Attachment #8534170 -
Attachment is obsolete: true
Attachment #8535186 -
Flags: review?(matt.woodrow)
Comment 12•10 years ago
|
||
Comment on attachment 8535186 [details] [diff] [review]
patch v2
Review of attachment 8535186 [details] [diff] [review]:
-----------------------------------------------------------------
Does this pass tests?
The invalid region is the difference between the current layer tree and what we last composited. If we didn't composite to the same DT last time, then this invalid region won't be meaningful.
I think we want to keep the code setting the invalid region to the window bounds, and also make sure that we invalidate all cached ContainerLayers instead.
Attachment #8535186 -
Flags: review?(matt.woodrow) → review-
Comment 13•10 years ago
|
||
In what scenarios do we composite into a DrawTarget?
Comment 14•10 years ago
|
||
drawWindow, so usually reftests.
Assignee | ||
Comment 15•10 years ago
|
||
(In reply to Matt Woodrow (:mattwoodrow) from comment #12)
> I think we want to keep the code setting the invalid region to the window
> bounds, and also make sure that we invalidate all cached ContainerLayers
> instead.
This would mean that performance would be worse, it's an extra path that different and it give us no practical way to test container layer recycling. Even with GTest we're still using a draw target.
I don't think we have a good reason to have invalidation depend on the draw target or not. At least not in the OGL case where we just read back. I'm not sure about the other backends.
Flags: needinfo?(matt.woodrow)
Assignee | ||
Comment 16•10 years ago
|
||
Updated•10 years ago
|
Flags: needinfo?(matt.woodrow)
Assignee | ||
Comment 18•10 years ago
|
||
Updated container for bug 1109314.
To connect: ssh work@bulldozer.corp.tor1.mozilla.com 1109314
For more information see: https://wiki.mozilla.org/DockerEnv
Comment 19•10 years ago
|
||
Benoit, any plan wrt 36? Beta 8 is going to build today.
Flags: needinfo?(bgirard)
Assignee | ||
Comment 20•10 years ago
|
||
I think we're going to let it slide, we have no evidence that this is impacting users. I'll come back to this when I find the time.
Comment 21•10 years ago
|
||
OK, wontfix then. Merci!
Updated•10 years ago
|
status-firefox38:
--- → affected
status-firefox39:
--- → affected
Assignee | ||
Comment 22•10 years ago
|
||
Quick update:
- This bug will only show up if we're taking a screenshot under very specific circumstances. I do plan on landing a test for this with the fix however to make sure we don't re-regress this.
- It's marked as tracking because I don't want us to forget about this bug but it's probably ok to ship this regression since no one has noticed a failure.
- I wont have time to fix it before I go on my leave and I don't think it's worth assigning someone else to look at it.
- I plan on finishing this after my leave this summer.
Comment 23•10 years ago
|
||
Given comment 22 and the timing of Benoit's leave, it sounds like we want to track this for 41 at the earliest. No way to set that flag yet, so we will just leave needinfo on Benoit to set the tracking flag once 41 is available.
tracking-firefox36:
+ → ---
tracking-firefox37:
+ → ---
Updated•10 years ago
|
status-firefox38.0.5:
--- → wontfix
status-firefox40:
--- → affected
status-firefox41:
--- → affected
status-firefox-esr31:
--- → unaffected
Updated•10 years ago
|
status-firefox42:
--- → affected
Updated•9 years ago
|
Version: unspecified → 36 Branch
Assignee | ||
Comment 24•9 years ago
|
||
For now this doesn't appear to be causing any issue. I don't think it's worth fixing. Let me know if you disagree.
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Flags: needinfo?(bgirard)
Resolution: --- → WONTFIX
Updated•9 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•