diff --git a/common/include/dscreen_hitrace.h b/common/include/dscreen_hitrace.h index 492e76f024ce0c7133298cbef5494839ed4c5113..22efd27ccabf85137a057a60370b72b2edf41e73 100644 --- a/common/include/dscreen_hitrace.h +++ b/common/include/dscreen_hitrace.h @@ -37,6 +37,7 @@ const std::string DSCREEN_RELESSE_ENCODER_START = "DSCREEN_RELESSE_ENCODER_STAR const std::string DSCREEN_START_DECODER_START = "DSCREEN_START_DECODER_START"; const std::string DSCREEN_STOP_DECODER_START = "DSCREEN_STOP_DECODER_START"; const std::string DSCREEN_RELEASE_DECODER_START = "DSCREEN_RELEASE_DECODER_START"; +const std::string DSCREEN_SINK_PUSH_DATA_TO_WINDOW_START = "DSCREEN_SINK_PUSH_DATA_TO_WINDOW_START"; } // namespace DistributedHardware } // namespace OHOS #endif \ No newline at end of file diff --git a/services/screenservice/sinkservice/screenregionmgr/2.0/src/screenregion.cpp b/services/screenservice/sinkservice/screenregionmgr/2.0/src/screenregion.cpp index 394b39daf9242149eb76dcd564a0875b2d3bc0e3..b178fee5a78427c5572f2d09164439dddbfb3b9d 100644 --- a/services/screenservice/sinkservice/screenregionmgr/2.0/src/screenregion.cpp +++ b/services/screenservice/sinkservice/screenregionmgr/2.0/src/screenregion.cpp @@ -29,6 +29,8 @@ #include "screen_client.h" #include "screen_client_common.h" #include "2.0/include/screenregionmgr.h" +#include "hitrace_meter.h" +#include "dscreen_hitrace.h" namespace OHOS { namespace DistributedHardware { @@ -349,7 +351,9 @@ void ScreenRegion::OnEngineDataDone(const std::shared_ptr &buffer } #endif BufferFlushConfig flushConfig = { {0, 0, wsBuffer->GetWidth(), wsBuffer->GetHeight()}, 0}; + StartTrace(DSCREEN_HITRACE_LABEL, DSCREEN_SINK_PUSH_DATA_TO_WINDOW_START); surfaceErr = windowSurface_->FlushBuffer(wsBuffer, -1, flushConfig); + FinishTrace(DSCREEN_HITRACE_LABEL); if (surfaceErr != SURFACE_ERROR_OK) { DHLOGE("surface flush buffer failed, surfaceErr: %d.", surfaceErr); windowSurface_->CancelBuffer(wsBuffer);