Closed Bug 1078152 Opened 11 years ago Closed 7 years ago

Provide performance label for frame uniformity

Categories

(Firefox OS Graveyard :: Performance, defect, P2)

ARM
Gonk (Firefox OS)
defect

Tracking

(tracking-b2g:backlog)

RESOLVED WONTFIX
tracking-b2g backlog

People

(Reporter: jerry, Assigned: jerry)

References

Details

Attachments

(3 files, 2 obsolete files)

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.
Component: Widget: Gonk → Performance
Product: Core → Firefox OS
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?
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.
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.
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)
I think that one name is enough, and dump all layers' position which match the name.
Attachment #8510974 - Attachment is obsolete: true
Attachment #8512471 - Attachment description: Upload the missed "DumpLayerPos" function. → Dump the layer pos for specific div class name. v2
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: 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-
Attachment #8512471 - Attachment is obsolete: true
[Tracking Requested - why for this release]:
Priority: P1 → P2
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.

Attachment

General

Created:
Updated:
Size: