Merge "display: add logs for systrace debugging"
diff --git a/sdm/libs/core/comp_manager.cpp b/sdm/libs/core/comp_manager.cpp
index eadb497..325d7f5 100644
--- a/sdm/libs/core/comp_manager.cpp
+++ b/sdm/libs/core/comp_manager.cpp
@@ -193,6 +193,7 @@
const DisplayConfigVariableInfo &fb_config,
uint32_t *default_clk_hz) {
SCOPE_LOCK(locker_);
+ DTRACE_SCOPED();
DisplayError error = kErrorNone;
DisplayCompositionContext *display_comp_ctx =
@@ -285,6 +286,7 @@
DisplayError CompManager::Prepare(Handle display_ctx, HWLayers *hw_layers) {
SCOPE_LOCK(locker_);
+ DTRACE_SCOPED();
DisplayCompositionContext *display_comp_ctx =
reinterpret_cast<DisplayCompositionContext *>(display_ctx);
Handle &display_resource_ctx = display_comp_ctx->display_resource_ctx;
@@ -353,6 +355,7 @@
DisplayError CompManager::ReConfigure(Handle display_ctx, HWLayers *hw_layers) {
SCOPE_LOCK(locker_);
+ DTRACE_SCOPED();
DisplayCompositionContext *display_comp_ctx =
reinterpret_cast<DisplayCompositionContext *>(display_ctx);
Handle &display_resource_ctx = display_comp_ctx->display_resource_ctx;
diff --git a/sdm/libs/core/display_base.cpp b/sdm/libs/core/display_base.cpp
index 5a94374..0bb7a3a 100644
--- a/sdm/libs/core/display_base.cpp
+++ b/sdm/libs/core/display_base.cpp
@@ -283,6 +283,7 @@
DisplayError error = kErrorNone;
needs_validate_ = true;
+ DTRACE_SCOPED();
if (!active_) {
return kErrorPermission;
}
@@ -1116,6 +1117,8 @@
HWPanelInfo hw_panel_info;
uint32_t active_index = 0;
+ DTRACE_SCOPED();
+
error = hw_intf_->GetActiveConfig(&active_index);
if (error != kErrorNone) {
return error;
@@ -1202,6 +1205,7 @@
lock_guard<recursive_mutex> obj(recursive_mutex_);
DisplayError error = kErrorNone;
+ DTRACE_SCOPED();
if (!width || !height) {
return kErrorParameters;
}
diff --git a/sdm/libs/core/display_builtin.cpp b/sdm/libs/core/display_builtin.cpp
index c8496ac..82a5725 100644
--- a/sdm/libs/core/display_builtin.cpp
+++ b/sdm/libs/core/display_builtin.cpp
@@ -128,6 +128,7 @@
uint32_t display_width = display_attributes_.x_pixels;
uint32_t display_height = display_attributes_.y_pixels;
+ DTRACE_SCOPED();
if (NeedsMixerReconfiguration(layer_stack, &new_mixer_width, &new_mixer_height)) {
error = ReconfigureMixer(new_mixer_width, new_mixer_height);
if (error != kErrorNone) {
@@ -147,6 +148,8 @@
DisplayError error = kErrorNone;
uint32_t app_layer_count = hw_layers_.info.app_layer_count;
+ DTRACE_SCOPED();
+
// Enabling auto refresh is async and needs to happen before commit ioctl
if (hw_panel_info_.mode == kModeCommand) {
bool enable = (app_layer_count == 1) && layer_stack->flags.single_buffered_layer_present;
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp
index 9352ae6..6b1832b 100644
--- a/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/sdm/libs/core/drm/hw_device_drm.cpp
@@ -983,6 +983,7 @@
return;
}
+ DTRACE_SCOPED();
HWLayersInfo &hw_layer_info = hw_layers->info;
uint32_t hw_layer_count = UINT32(hw_layer_info.hw_layers.size());
HWQosData &qos_data = hw_layers->qos_data;
diff --git a/sdm/libs/hwc2/hwc_color_manager.cpp b/sdm/libs/hwc2/hwc_color_manager.cpp
index 5dd6a4b..4fb047f 100644
--- a/sdm/libs/hwc2/hwc_color_manager.cpp
+++ b/sdm/libs/hwc2/hwc_color_manager.cpp
@@ -370,6 +370,7 @@
int err = -1;
PPPendingParams pending_action;
PPDisplayAPIPayload req_payload;
+ DTRACE_SCOPED();
pending_action.action = kGetDetailedEnhancerData;
pending_action.params = NULL;
diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp
index 1d0c8cd..59455af 100644
--- a/sdm/libs/hwc2/hwc_display.cpp
+++ b/sdm/libs/hwc2/hwc_display.cpp
@@ -678,6 +678,7 @@
layer_stack_.flags.animating = animating_;
layer_stack_.flags.fast_path = fast_path_enabled_ && fast_path_composition_;
+ DTRACE_SCOPED();
// Add one layer for fb target
// TODO(user): Add blit target layers
for (auto hwc_layer : layer_set_) {
@@ -1173,6 +1174,8 @@
}
HWC2::Error HWCDisplay::SetActiveConfig(hwc2_config_t config) {
+ DTRACE_SCOPED();
+
if (SetActiveDisplayConfig(config) != kErrorNone) {
return HWC2::Error::BadConfig;
}
@@ -1268,6 +1271,7 @@
layer_requests_.clear();
has_client_composition_ = false;
+ DTRACE_SCOPED();
if (shutdown_pending_) {
validated_ = false;
return HWC2::Error::BadDisplay;
@@ -1472,6 +1476,8 @@
return HWC2::Error::None;
}
+ DTRACE_SCOPED();
+
if (!validated_) {
DLOGV_IF(kTagClient, "Display %d is not validated", id_);
return HWC2::Error::NotValidated;
diff --git a/sdm/libs/hwc2/hwc_display_builtin.cpp b/sdm/libs/hwc2/hwc_display_builtin.cpp
index ce72f3d..9683fd0 100644
--- a/sdm/libs/hwc2/hwc_display_builtin.cpp
+++ b/sdm/libs/hwc2/hwc_display_builtin.cpp
@@ -129,6 +129,7 @@
auto status = HWC2::Error::None;
DisplayError error = kErrorNone;
+ DTRACE_SCOPED();
if (display_paused_) {
MarkLayersForGPUBypass();
return status;
@@ -193,6 +194,8 @@
HWC2::Error HWCDisplayBuiltIn::Present(int32_t *out_retire_fence) {
auto status = HWC2::Error::None;
+
+ DTRACE_SCOPED();
if (display_paused_) {
DisplayError error = display_intf_->Flush(&layer_stack_);
validated_ = false;
diff --git a/sdm/libs/hwc2/hwc_session.cpp b/sdm/libs/hwc2/hwc_session.cpp
index df98f81..00444fe 100644
--- a/sdm/libs/hwc2/hwc_session.cpp
+++ b/sdm/libs/hwc2/hwc_session.cpp
@@ -2792,6 +2792,8 @@
HWC2::Error HWCSession::ValidateDisplayInternal(hwc2_display_t display, uint32_t *out_num_types,
uint32_t *out_num_requests) {
HWCDisplay *hwc_display = hwc_display_[display];
+
+ DTRACE_SCOPED();
if (hwc_display->IsInternalValidateState()) {
// Internal Validation has already been done on display, get the Output params.
return hwc_display->GetValidateDisplayOutput(out_num_types, out_num_requests);
@@ -2814,6 +2816,8 @@
HWC2::Error HWCSession::PresentDisplayInternal(hwc2_display_t display, int32_t *out_retire_fence) {
HWCDisplay *hwc_display = hwc_display_[display];
+
+ DTRACE_SCOPED();
// If display is in Skip-Validate state and Validate cannot be skipped, do Internal
// Validation to optimize for the frames which don't require the Client composition.
if (hwc_display->IsSkipValidateState() && !hwc_display->CanSkipValidate()) {