Closed
Bug 887963
Opened 11 years ago
Closed 7 years ago
OMTC on mac regresses FishIE dramatically
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
firefox23 | --- | unaffected |
firefox24 | - | disabled |
firefox25 | --- | affected |
People
(Reporter: jrmuizel, Unassigned)
References
Details
Attachments
(1 file)
(deleted),
patch
|
Details | Diff | Splinter Review |
From 60fps to 10fps or so.
Reporter | ||
Updated•11 years ago
|
tracking-firefox24:
--- → ?
Comment 1•11 years ago
|
||
Is OMTC on the Mac under a pref right now?
Reporter | ||
Comment 2•11 years ago
|
||
Yes.
Comment 3•11 years ago
|
||
To be clear, the pref exists, but it's enabled by default on trunk and aurora.
Comment 4•11 years ago
|
||
What's the pref and what's the actual site for fishie?
Reporter | ||
Comment 5•11 years ago
|
||
(In reply to Milan Sreckovic [:milan] from comment #4)
> What's the pref and what's the actual site for fishie?
layers.offmainthreadcomposition.enabled
http://ie.microsoft.com/testdrive/Performance/FishIETank/Default.html
Comment 6•11 years ago
|
||
I get ~ 50fps on the nightly, 10.8.
Comment 7•11 years ago
|
||
How many fish etc?
I'm getting ~40fps with a debug build. Recent-ish m-c clone, 10.8
Comment 8•11 years ago
|
||
With 100 fish that is.
Comment 9•11 years ago
|
||
Oops, had SkiaGL enabled. 20fps.
Reporter | ||
Comment 10•11 years ago
|
||
I'm on 10.7 and get 5fps with 20 fish
Comment 11•11 years ago
|
||
I can see a few issues here, don't think they really explain a regression of the magnitude you're seeing though.
1a) Instead of sharing the canvas backing surface across IPC, we create a separate surface for sharing and make a copy every frame.
1b) We upload from our dedicated IPC surface while blocking the main thread, even though we wouldn't be writing into it.
I think we need to fix either a or b. Changing both would cause race conditions.
2) We recreate our TextureImageTextureHostOGL every frame.
http://mxr.mozilla.org/mozilla-central/source/gfx/layers/composite/ImageHost.cpp#34
mTextureHost->GetBuffer() is always false for single-buffered texture hosts.
Once again, this happens while blocking the main thread, and seems to be kinda expensive.
It would be nice if time spent in ClientLayerManager::ForwardTransaction could be split into time waiting for the other thread to start processing the transaction (waiting for the previous composite to finish), and time spent while actually processing it.
Comment 13•11 years ago
|
||
(In reply to Matt Woodrow (:mattwoodrow) from comment #11)
> 1b) We upload from our dedicated IPC surface while blocking the main thread,
> even though we wouldn't be writing into it.
In bug 858914 I changed this (not landed yet): ShmemTextureHost and MemoryTextureHost now upload outside of the transaction (when Lock is called, only if the content of the shared data has changed).
Comment 14•11 years ago
|
||
Comment on attachment 769295 [details] [diff] [review]
Check if the TextureHost is suitable rather than recreating it
Review of attachment 769295 [details] [diff] [review]:
-----------------------------------------------------------------
I am not too far from having the texture client/host rewrite ready (bug 858914). At this point I mostly need to adapt the D3D and basic backends to the new stuff. This patch doesn't fit in the new system because the problem it solves doesn't exist in the new system (we only create a texture host when we create a texture client). Since we are at the beginning of a cycle I would prefer just finishing bug 858914 and landing it, rather than having a temporary solution that will be removed by bug 858914 in the same cycle.
Are you okay with that?
Updated•11 years ago
|
status-firefox23:
--- → unaffected
status-firefox24:
--- → affected
status-firefox25:
--- → affected
Comment 15•11 years ago
|
||
(In reply to Nicolas Silva [:nical] from comment #14)
>
> I am not too far from having the texture client/host rewrite ready (bug
> 858914). At this point I mostly need to adapt the D3D and basic backends to
> the new stuff. This patch doesn't fit in the new system because the problem
> it solves doesn't exist in the new system (we only create a texture host
> when we create a texture client). Since we are at the beginning of a cycle I
> would prefer just finishing bug 858914 and landing it, rather than having a
> temporary solution that will be removed by bug 858914 in the same cycle.
> Are you okay with that?
That's totally fine with me.
Let me know if there's anything I can do to help with that bug too.
Updated•11 years ago
|
Attachment #769295 -
Flags: review?(nical.bugzilla)
Comment 16•11 years ago
|
||
(In reply to Matt Woodrow (:mattwoodrow) from comment #15)
> Let me know if there's anything I can do to help with that bug too.
I could use some feedbacks/pre-review (the patch has gotten big so I'll have to break reviews between several people and you'll most likely will have the pleasure to review parts of it (sorry :p)).
Once the big initial patch lands we'll have to convert all layer types to use the new texture stuff (right now I implemented it only for image which is probably the most complicated because of the amount of texture types to support and because of async-video), and this will be easier to do in parallel.
Comment 17•11 years ago
|
||
Given OMTC is disabled on FX24 untracking this.
Updated•11 years ago
|
Comment 18•11 years ago
|
||
I can confirm this bug.
When I use Firefox 31 (aurora) and have set 20 fishes I get 40 fps and the count is not steady. If I use same test in safari 7 I get 60 fps. It is significant difference.
When I set count of fishes to 1000, browser is totaly stucked and it is not usable. The same test in safari 7 - browser ok and 60 fps without any problem.
Comment 19•11 years ago
|
||
Could you attach a profile?
Comment 20•11 years ago
|
||
Do you mean whole directory with files?
Comment 21•11 years ago
|
||
(In reply to Michal K from comment #20)
> Do you mean whole directory with files?
Directory called "ehhhxo6b.default" ?
Comment 22•10 years ago
|
||
I tested the problem in the latest Firefox Nightly (E10s) 2015-05-21 and the problem is gone. I have 100 fishes and 50 - 60 fps.
Comment 23•7 years ago
|
||
Per comment 22
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•