Bug 1200252 - Add marker for when the IPC request for a composite is sent to the compositor thread, r=jsantell,matt

This commit is contained in:
Victor Porof 2015-09-11 07:59:53 +02:00
parent 113dd9e919
commit 9231ac0501
9 changed files with 50 additions and 12 deletions

View File

@ -1421,7 +1421,8 @@ pref("devtools.performance.memory.sample-probability", "0.05");
// Can't go higher than this without causing internal allocation overflows while
// serializing the allocations data over the RDP.
pref("devtools.performance.memory.max-log-length", 125000);
pref("devtools.performance.timeline.hidden-markers", "[\"Composite\"]");
pref("devtools.performance.timeline.hidden-markers",
"[\"Composite\",\"CompositeForwardTransaction\"]");
pref("devtools.performance.profiler.buffer-size", 10000000);
pref("devtools.performance.profiler.sample-frequency-khz", 1);
pref("devtools.performance.ui.invert-call-tree", true);

View File

@ -78,6 +78,11 @@ const TIMELINE_BLUEPRINT = {
colorName: "graphs-green",
label: L10N.getStr("marker.label.composite"),
},
"CompositeForwardTransaction": {
group: 0,
colorName: "graphs-bluegrey",
label: L10N.getStr("marker.label.compositeForwardTransaction"),
},
/* Group 1 - JS */
"DOMEvent": {

View File

@ -18,6 +18,7 @@ marker.label.styles=Recalculate Style
marker.label.reflow=Layout
marker.label.paint=Paint
marker.label.composite=Composite Layers
marker.label.compositeForwardTransaction=Composite Request Sent
marker.label.javascript=Function Call
marker.label.parseHTML=Parse HTML
marker.label.parseXML=Parse XML

View File

@ -38,6 +38,7 @@
/* Colors used in Graphs, like performance tools. Mostly similar to some "highlight-*" colors. */
--theme-graphs-green: #70bf53;
--theme-graphs-blue: #46afe3;
--theme-graphs-bluegrey: #5e88b0;
--theme-graphs-purple: #df80ff;
--theme-graphs-yellow: #d99b28;
--theme-graphs-red: #eb5368;

View File

@ -38,6 +38,7 @@
/* Colors used in Graphs, like performance tools. Similar colors to Chrome's timeline. */
--theme-graphs-green: #85d175;
--theme-graphs-blue: #83b7f6;
--theme-graphs-bluegrey: #0072ab;
--theme-graphs-purple: #b693eb;
--theme-graphs-yellow: #efc052;
--theme-graphs-red: #e57180;

View File

@ -549,18 +549,22 @@
* Marker colors
*/
menuitem.marker-color-graphs-purple:before,
.marker-color-graphs-purple {
background-color: var(--theme-graphs-purple);
}
menuitem.marker-color-graphs-grey:before,
.marker-color-graphs-grey{
background-color: var(--theme-graphs-grey);
}
menuitem.marker-color-graphs-green:before,
.marker-color-graphs-green {
background-color: var(--theme-graphs-green);
}
menuitem.marker-color-graphs-blue:before,
.marker-color-graphs-blue {
background-color: var(--theme-graphs-blue);
}
menuitem.marker-color-graphs-bluegrey:before,
.marker-color-graphs-bluegrey {
background-color: var(--theme-graphs-bluegrey);
}
menuitem.marker-color-graphs-purple:before,
.marker-color-graphs-purple {
background-color: var(--theme-graphs-purple);
}
menuitem.marker-color-graphs-yellow:before,
.marker-color-graphs-yellow {
background-color: var(--theme-graphs-yellow);
@ -569,9 +573,9 @@ menuitem.marker-color-graphs-red:before,
.marker-color-graphs-red {
background-color: var(--theme-graphs-red);
}
menuitem.marker-color-graphs-blue:before,
.marker-color-graphs-blue {
background-color: var(--theme-graphs-blue);
menuitem.marker-color-graphs-grey:before,
.marker-color-graphs-grey{
background-color: var(--theme-graphs-grey);
}
/**

View File

@ -2973,6 +2973,21 @@ TabChild::DidComposite(uint64_t aTransactionId,
manager->DidComposite(aTransactionId, aCompositeStart, aCompositeEnd);
}
void
TabChild::DidRequestComposite(const TimeStamp& aCompositeReqStart,
const TimeStamp& aCompositeReqEnd)
{
nsCOMPtr<nsIDocShell> docShell = do_GetInterface(WebNavigation());
if (!docShell) {
return;
}
TimelineConsumers::AddMarkerForDocShell(docShell.get(),
"CompositeForwardTransaction", aCompositeReqStart, MarkerTracingType::START);
TimelineConsumers::AddMarkerForDocShell(docShell.get(),
"CompositeForwardTransaction", aCompositeReqEnd, MarkerTracingType::END);
}
void
TabChild::ClearCachedResources()
{

View File

@ -465,6 +465,8 @@ public:
void DidComposite(uint64_t aTransactionId,
const TimeStamp& aCompositeStart,
const TimeStamp& aCompositeEnd);
void DidRequestComposite(const TimeStamp& aCompositeReqStart,
const TimeStamp& aCompositeReqEnd);
void ClearCachedResources();

View File

@ -571,6 +571,8 @@ ClientLayerManager::StopFrameTimeRecording(uint32_t aStartIndex,
void
ClientLayerManager::ForwardTransaction(bool aScheduleComposite)
{
TimeStamp start = TimeStamp::Now();
if (mForwarder->GetSyncObject()) {
mForwarder->GetSyncObject()->FinalizeFrame();
}
@ -636,6 +638,12 @@ ClientLayerManager::ForwardTransaction(bool aScheduleComposite)
// this may result in Layers being deleted, which results in
// PLayer::Send__delete__() and DeallocShmem()
mKeepAlive.Clear();
TabChild* window = mWidget->GetOwningTabChild();
if (window) {
TimeStamp end = TimeStamp::Now();
window->DidRequestComposite(start, end);
}
}
ShadowableLayer*