Closed
Bug 1087530
Opened 11 years ago
Closed 11 years ago
Retain container's intermediate surfaces for up to one frame
Categories
(Core :: Graphics, defect, P2)
Core
Graphics
Tracking
()
RESOLVED
FIXED
mozilla36
People
(Reporter: BenWa, Assigned: BenWa)
References
Details
(Keywords: perf)
Attachments
(2 files, 7 obsolete files)
|
7.43 KB,
patch
|
jrmuizel
:
review+
|
Details | Diff | Splinter Review |
|
679 bytes,
patch
|
jrmuizel
:
review+
|
Details | Diff | Splinter Review |
+++ This bug was initially created as a clone of Bug #1037220 +++
Right now hitting group opacity is a large performance cliff. This bug is about avoiding alloc/free of a render target for each draw where a intermediate container layer is required.
| Assignee | ||
Comment 1•11 years ago
|
||
Assignee: nobody → bgirard
Status: NEW → ASSIGNED
| Assignee | ||
Comment 2•11 years ago
|
||
Attachment #8509718 -
Attachment is obsolete: true
Updated•11 years ago
|
Blocks: gfx-target-2.2
| Assignee | ||
Comment 3•11 years ago
|
||
Profiling results on mac:
We spend less time flushing under glDeleteTexture.
I did more in depth profiling b2g:
Default: http://people.mozilla.org/~bgirard/cleopatra/#report=f4a7e7d25c39d7e7a3890737d818473c77d73cf5&select=3632,4320
With WIP: http://people.mozilla.org/~bgirard/cleopatra/#report=9059fc993257ce438b90614b3cc609c95d674ff5&select=93603,94456
Differences:
Total GPU time: 9ms -> 7.5ms (GPU profiling already coming in handy)
CPU Frame times: Bimodal frame times, half at 20ms and half near 28ms -> Most frames at 16.6ms, two frames at ~28ms
Risk:
Reusing a surface that's still in use from the previous frame might cause a hazard that some GPU drivers might fallback to flushing. We need to keep an eye out to make sure this doesn't regress on any platforms.
| Assignee | ||
Comment 4•11 years ago
|
||
Needs testing on windows
Attachment #8509721 -
Attachment is obsolete: true
| Assignee | ||
Comment 5•11 years ago
|
||
Tested d3d9/d3d11/ogl(mac,b2g)/basic(windows)
Attachment #8509780 -
Attachment is obsolete: true
Attachment #8509834 -
Flags: review?(jmuizelaar)
| Assignee | ||
Updated•11 years ago
|
OS: Linux → All
Hardware: x86_64 → All
Comment 6•11 years ago
|
||
Comment on attachment 8509834 [details] [diff] [review]
patch v1
Review of attachment 8509834 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/composite/TextureHost.h
@@ +671,5 @@
>
> + /**
> + * Perform a clear when recycling a non opaque surface.
> + * This must be call before binding.
> + */
I don't like the semantics of this that much, but don't have suggestions for improvement.
@@ +680,3 @@
>
> private:
> + gfx::IntRect mRect;
It seems like this will store the size twice. Let's not.
Attachment #8509834 -
Flags: review?(jmuizelaar) → review-
| Assignee | ||
Comment 7•11 years ago
|
||
Attachment #8509834 -
Attachment is obsolete: true
Attachment #8510390 -
Flags: review?(jmuizelaar)
| Comment hidden (obsolete) |
| Assignee | ||
Comment 9•11 years ago
|
||
This is a profile of a testcase that uses group opacity. Jeff wanted a profile showing deleting a texture being costly:
http://people.mozilla.org/~bgirard/cleopatra/#report=c4a756c160c0c35286b2b6db472df4337ceb6eda&search=delete
| Assignee | ||
Comment 10•11 years ago
|
||
windows fixed
Attachment #8510390 -
Attachment is obsolete: true
Attachment #8510390 -
Flags: review?(jmuizelaar)
| Assignee | ||
Comment 11•11 years ago
|
||
| Assignee | ||
Comment 12•11 years ago
|
||
with this patch and bug 1092360 my testcase goes from ~40ms to ~23ms frame time on the flame:
http://people.mozilla.org/~bgirard/many_framebuffer.html
| Assignee | ||
Comment 13•11 years ago
|
||
Attachment #8510433 -
Attachment is obsolete: true
Attachment #8511215 -
Attachment is obsolete: true
Attachment #8516291 -
Flags: review?(jmuizelaar)
| Assignee | ||
Comment 14•11 years ago
|
||
| Assignee | ||
Comment 15•11 years ago
|
||
Comment 16•11 years ago
|
||
Comment on attachment 8516291 [details] [diff] [review]
patch v4
Review of attachment 8516291 [details] [diff] [review]:
-----------------------------------------------------------------
Sure.
Attachment #8516291 -
Flags: review?(jmuizelaar) → review+
| Assignee | ||
Comment 17•11 years ago
|
||
| Assignee | ||
Comment 18•11 years ago
|
||
| Assignee | ||
Comment 19•11 years ago
|
||
Improvement: Mozilla-Inbound - Session Restore no Auto Restore Test - MacOSX 10.6 (rev4) - 2.25% decrease
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
| Assignee | ||
Comment 21•11 years ago
|
||
Attachment #8525491 -
Flags: review?(jmuizelaar)
Updated•11 years ago
|
Attachment #8525491 -
Flags: review?(jmuizelaar) → review+
| Assignee | ||
Comment 22•11 years ago
|
||
Regression follow up: https://hg.mozilla.org/integration/mozilla-inbound/rev/d757834c073b
You need to log in
before you can comment on or make changes to this bug.
Description
•