Bug 1783020 - Record WebRender display list building time in PerfStats. r=bas

This repurposes the unused LayerBuilding stat.

Differential Revision: https://phabricator.services.mozilla.com/D153631
This commit is contained in:
Jeff Muizelaar
2022-08-03 22:40:47 +00:00
parent f90bc292cd
commit 1febdb96a6
2 changed files with 9 additions and 1 deletions

View File

@@ -20,6 +20,7 @@
#include "mozilla/layers/TransactionIdAllocator.h"
#include "mozilla/layers/WebRenderBridgeChild.h"
#include "mozilla/layers/UpdateImageHelper.h"
#include "mozilla/PerfStats.h"
#include "nsDisplayList.h"
#include "nsLayoutUtils.h"
#include "WebRenderCanvasRenderer.h"
@@ -455,6 +456,13 @@ void WebRenderLayerManager::EndTransactionWithoutLayer(
? wr::GeckoDisplayListType::Full(aGeckoDLBuildTime)
: wr::GeckoDisplayListType::Partial(aGeckoDLBuildTime);
// convert from nanoseconds to microseconds
auto duration = TimeDuration::FromMicroseconds(
double(dlData.mDLDesc.builder_finish_time -
dlData.mDLDesc.builder_start_time) /
1000.);
PerfStats::RecordMeasurement(PerfStats::Metric::WrDisplayListBuilding,
duration);
bool ret = WrBridge()->EndTransaction(
std::move(dlData), mLatestTransactionId, containsSVGGroup,
mTransactionIdAllocator->GetVsyncId(),