Closed
Bug 1078152
Opened 11 years ago
Closed 7 years ago
Provide performance label for frame uniformity
Categories
(Firefox OS Graveyard :: Performance, defect, P2)
Tracking
(tracking-b2g:backlog)
RESOLVED
WONTFIX
| tracking-b2g | backlog |
People
(Reporter: jerry, Assigned: jerry)
References
Details
Attachments
(3 files, 2 obsolete files)
|
790 bytes,
patch
|
Details | Diff | Splinter Review | |
|
918 bytes,
patch
|
Details | Diff | Splinter Review | |
|
14.76 KB,
patch
|
Details | Diff | Splinter Review |
We should have some performance label to check the frame uniformity(ex. show the layer position, touch input resampling position). It should be easy to turn on/off. Thus, we can check the improvement for silk on/off.
| Assignee | ||
Updated•11 years ago
|
Component: Widget: Gonk → Performance
Product: Core → Firefox OS
Comment 1•11 years ago
|
||
We have layer positions show in the SPS profiler. We can add touch position data as well if you really need it. For layer positions, will SPS profiler not work?
| Assignee | ||
Comment 2•11 years ago
|
||
Yes, we can get the layer position which is bigger than 300x300.
see http://dxr.mozilla.org/mozilla-central/source/gfx/layers/composite/ContainerLayerComposite.cpp?from=ContainerLayerComposite.cpp#146
It's hard to just get the layer position which we are interested.
So I want to modify our layout code to pass the div's class name from content side to compositor side.
Thus, we can just dump the specific layer position info.
Ex:
The html file
...
<body>
<div class="silk"></div>
</body>
We can set the class name in gfxPref. If the class name match the pref name, dump the position.
| Assignee | ||
Comment 3•11 years ago
|
||
1) Get the class name during processing the DisplayItem. If the name matches "silk" string, set the debug flag into the Layer.
2) Pass the debug flag in layer transaction.
3) Check the debug flag for each layer when composing. Dump the layer position if it has the debug flag.
| Assignee | ||
Comment 4•11 years ago
|
||
Comment on attachment 8510974 [details] [diff] [review]
Dump the layer pos for specific div class name.
Please check comment 3.
I want to dump a layer's position to check the uniformity.
I pass the debug flag from content side to compositor, and the compositor can check this flag to dump the layer position. Thus, we get the most interested layer data.
Do we have another simply way to associate the "class name" with layer at compositor side?
Attachment #8510974 -
Flags: feedback?(roc)
Comment on attachment 8510974 [details] [diff] [review]
Dump the layer pos for specific div class name.
Review of attachment 8510974 [details] [diff] [review]:
-----------------------------------------------------------------
Do you really need to support multiple marked layers here, with different class names? Or will one be enough?
Where is DumpLayerPos defined?
Attachment #8510974 -
Flags: feedback?(roc)
| Assignee | ||
Comment 6•11 years ago
|
||
I think that one name is enough, and dump all layers' position which match the name.
Attachment #8510974 -
Attachment is obsolete: true
| Assignee | ||
Updated•11 years ago
|
Attachment #8512471 -
Attachment description: Upload the missed "DumpLayerPos" function. → Dump the layer pos for specific div class name. v2
| Assignee | ||
Comment 7•11 years ago
|
||
Comment on attachment 8512471 [details] [diff] [review]
Dump the layer pos for specific div class name. v2
One class name is enough. At compositor, we dump all layers' position which match the name. This patch has one problem. If the layer is painted at content side(paint into PaintedLayer), we can't get position change at compositor.
Attachment #8512471 -
Flags: feedback?(roc)
| Assignee | ||
Updated•11 years ago
|
Assignee: nobody → hshih
Priority: -- → P1
Comment on attachment 8512471 [details] [diff] [review]
Dump the layer pos for specific div class name. v2
Review of attachment 8512471 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/Layers.h
@@ +1672,5 @@
> +
> + // The compoisitor will dump the layer's position if mPosDump is true.
> + bool mPosDump;
> + // The class name in html.
> + std::string mClassName;
I suggest you just add a numeric ID (uint8_t) and dump the layer if the ID is greater than zero.
::: layout/base/FrameLayerBuilder.cpp
@@ +3072,5 @@
> + ->GetContent()
> + ->GetAttr(kNameSpaceID_None, nsGkAtoms::_class, className))
> + {
> + // We can get the class name from gfxPref. Use "silk" string for WIP implementation.
> + if (!className.IsEmpty() && className.Find("silk") != kNotFound) {
Can we have a boolean pref that enables this? Use Preferences::AddBoolVarCache. Also, rather than hardcoding "silk" and checking the class, I'd look up a new attribute, say "layerid" and try to convert it to an integer id to set on the layer.
Attachment #8512471 -
Flags: feedback?(roc) → feedback-
| Assignee | ||
Comment 9•10 years ago
|
||
Attachment #8512471 -
Attachment is obsolete: true
| Assignee | ||
Comment 10•10 years ago
|
||
| Assignee | ||
Comment 11•10 years ago
|
||
Updated•10 years ago
|
Priority: P1 → P2
Comment 13•7 years ago
|
||
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•