Closed
Bug 1087530
Opened 10 years ago
Closed 10 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)
(deleted),
patch
|
jrmuizel
:
review+
|
Details | Diff | Splinter Review |
(deleted),
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•10 years ago
|
||
Assignee: nobody → bgirard
Status: NEW → ASSIGNED
Assignee | ||
Comment 2•10 years ago
|
||
Attachment #8509718 -
Attachment is obsolete: true
Updated•10 years ago
|
Blocks: gfx-target-2.2
Assignee | ||
Comment 3•10 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•10 years ago
|
||
Needs testing on windows
Attachment #8509721 -
Attachment is obsolete: true
Assignee | ||
Comment 5•10 years ago
|
||
Tested d3d9/d3d11/ogl(mac,b2g)/basic(windows)
Attachment #8509780 -
Attachment is obsolete: true
Attachment #8509834 -
Flags: review?(jmuizelaar)
Assignee | ||
Updated•10 years ago
|
OS: Linux → All
Hardware: x86_64 → All
Comment 6•10 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•10 years ago
|
||
Attachment #8509834 -
Attachment is obsolete: true
Attachment #8510390 -
Flags: review?(jmuizelaar)
Comment hidden (obsolete) |
Assignee | ||
Comment 9•10 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•10 years ago
|
||
windows fixed
Attachment #8510390 -
Attachment is obsolete: true
Attachment #8510390 -
Flags: review?(jmuizelaar)
Assignee | ||
Comment 11•10 years ago
|
||
Assignee | ||
Comment 12•10 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•10 years ago
|
||
Attachment #8510433 -
Attachment is obsolete: true
Attachment #8511215 -
Attachment is obsolete: true
Attachment #8516291 -
Flags: review?(jmuizelaar)
Assignee | ||
Comment 14•10 years ago
|
||
Assignee | ||
Comment 15•10 years ago
|
||
Comment 16•10 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•10 years ago
|
||
Assignee | ||
Comment 18•10 years ago
|
||
Assignee | ||
Comment 19•10 years ago
|
||
Improvement: Mozilla-Inbound - Session Restore no Auto Restore Test - MacOSX 10.6 (rev4) - 2.25% decrease
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
Assignee | ||
Comment 21•10 years ago
|
||
Attachment #8525491 -
Flags: review?(jmuizelaar)
Updated•10 years ago
|
Attachment #8525491 -
Flags: review?(jmuizelaar) → review+
Assignee | ||
Comment 22•10 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
•