summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libdrmutils/drm_logger.h6
-rw-r--r--libqservice/IQService.h4
-rw-r--r--sdm/include/core/debug_interface.h4
-rw-r--r--sdm/include/utils/rect.h1
-rw-r--r--sdm/libs/core/display_base.cpp11
-rw-r--r--sdm/libs/core/drm/hw_info_drm.cpp13
-rw-r--r--sdm/libs/core/fb/hw_device.cpp32
-rw-r--r--sdm/libs/core/fb/hw_hdmi.cpp6
-rw-r--r--sdm/libs/core/fb/hw_scale.cpp6
-rw-r--r--sdm/libs/hwc2/hwc_debugger.cpp24
-rw-r--r--sdm/libs/hwc2/hwc_debugger.h2
-rw-r--r--sdm/libs/hwc2/hwc_display.cpp20
-rw-r--r--sdm/libs/hwc2/hwc_layers.cpp14
-rw-r--r--sdm/libs/hwc2/hwc_session.cpp19
-rw-r--r--sdm/libs/hwc2/hwc_session_services.cpp5
-rw-r--r--sdm/libs/hwc2/hwc_tonemapper.cpp3
-rw-r--r--sdm/libs/utils/rect.cpp5
17 files changed, 126 insertions, 49 deletions
diff --git a/libdrmutils/drm_logger.h b/libdrmutils/drm_logger.h
index d0b07738..8e8bb727 100644
--- a/libdrmutils/drm_logger.h
+++ b/libdrmutils/drm_logger.h
@@ -41,6 +41,7 @@ class DRMLogger {
virtual void Warning(const char *format, ...) = 0;
virtual void Info(const char *format, ...) = 0;
virtual void Debug(const char *format, ...) = 0;
+ virtual void Verbose(const char *format, ...) = 0;
static void Set(DRMLogger *logger) { s_instance = logger; }
static DRMLogger *Get() { return s_instance; }
@@ -60,9 +61,8 @@ class DRMLogger {
#define DRM_LOGE(format, ...) DRM_LOG_CONTEXT(Error, format, ##__VA_ARGS__)
#define DRM_LOGW(format, ...) DRM_LOG_CONTEXT(Warning, format, ##__VA_ARGS__)
#define DRM_LOGI(format, ...) DRM_LOG_CONTEXT(Info, format, ##__VA_ARGS__)
-#define DRM_LOGD_IF(pred, format, ...) \
- if (pred) \
- DRM_LOG_CONTEXT(Debug, format, ##__VA_ARGS__)
+#define DRM_LOGD(format, ...) DRM_LOG_CONTEXT(Debug, format, ##__VA_ARGS__)
+#define DRM_LOGV(format, ...) DRM_LOG_CONTEXT(Verbose, format, ##__VA_ARGS__)
} // namespace drm_utils
diff --git a/libqservice/IQService.h b/libqservice/IQService.h
index 610cd4eb..5765b10d 100644
--- a/libqservice/IQService.h
+++ b/libqservice/IQService.h
@@ -95,6 +95,10 @@ public:
DEBUG_ROTATOR,
DEBUG_QDCM,
DEBUG_SCALAR,
+ DEBUG_CLIENT,
+ DEBUG_DISPLAY,
+ DEBUG_MAX_VAL = DEBUG_DISPLAY, // Used to check each bit of the debug command paramater.
+ // Update DEBUG_MAX_VAL when adding new debug tag.
};
enum {
diff --git a/sdm/include/core/debug_interface.h b/sdm/include/core/debug_interface.h
index da219442..dba85ac5 100644
--- a/sdm/include/core/debug_interface.h
+++ b/sdm/include/core/debug_interface.h
@@ -49,7 +49,9 @@ enum DebugTag {
kTagRotator, //!< Debug log is tagged for rotator.
kTagScalar, //!< Debug log is tagged for Scalar Helper.
kTagQDCM, //!< Debug log is tagged for display QDCM color managing.
- kTagQOSClient, //!< Debug log is tagged for Qos client
+ kTagQOSClient, //!< Debug log is tagged for Qos client.
+ kTagDisplay, //!< Debug log is tagged for display core logs.
+ kTagClient, //!< Debug log is tagged for SDM client.
};
/*! @brief Display debug handler class.
diff --git a/sdm/include/utils/rect.h b/sdm/include/utils/rect.h
index 303fc9f1..b25f76e8 100644
--- a/sdm/include/utils/rect.h
+++ b/sdm/include/utils/rect.h
@@ -45,6 +45,7 @@ namespace sdm {
bool IsValid(const LayerRect &rect);
bool IsCongruent(const LayerRect &rect1, const LayerRect &rect2);
+ void LogI(DebugTag debug_tag, const char *prefix, const LayerRect &roi);
void Log(DebugTag debug_tag, const char *prefix, const LayerRect &roi);
void Normalize(const uint32_t &align_x, const uint32_t &align_y, LayerRect *rect);
LayerRect Union(const LayerRect &rect1, const LayerRect &rect2);
diff --git a/sdm/libs/core/display_base.cpp b/sdm/libs/core/display_base.cpp
index 1e948a2a..f04c8265 100644
--- a/sdm/libs/core/display_base.cpp
+++ b/sdm/libs/core/display_base.cpp
@@ -155,7 +155,7 @@ DisplayError DisplayBase::BuildLayerStackStats(LayerStack *layer_stack) {
hw_layers_info.app_layer_count++;
}
- DLOGV_IF(kTagNone, "LayerStack layer_count: %d, app_layer_count: %d, gpu_target_index: %d, "
+ DLOGD_IF(kTagNone, "LayerStack layer_count: %d, app_layer_count: %d, gpu_target_index: %d, "
"display type: %d", layers.size(), hw_layers_info.app_layer_count,
hw_layers_info.gpu_target_index, display_type_);
@@ -223,6 +223,7 @@ DisplayError DisplayBase::Prepare(LayerStack *layer_stack) {
return kErrorParameters;
}
+ DLOGI_IF(kTagDisplay, "Entering Prepare for display type : %d", display_type_);
error = BuildLayerStackStats(layer_stack);
if (error != kErrorNone) {
return error;
@@ -275,6 +276,7 @@ DisplayError DisplayBase::Prepare(LayerStack *layer_stack) {
DLOGW("ValidateHDR failed");
}
+ DLOGI_IF(kTagDisplay, "Exiting Prepare for display type : %d", display_type_);
return error;
}
@@ -309,6 +311,7 @@ DisplayError DisplayBase::Commit(LayerStack *layer_stack) {
}
}
+ DLOGI_IF(kTagDisplay, "Entering commit for display type : %d", display_type_);
CommitLayerParams(layer_stack);
error = comp_manager_->Commit(display_comp_ctx_, &hw_layers_);
@@ -340,6 +343,7 @@ DisplayError DisplayBase::Commit(LayerStack *layer_stack) {
return error;
}
+ DLOGI_IF(kTagDisplay, "Exiting commit for display type : %d", display_type_);
return kErrorNone;
}
@@ -1117,6 +1121,7 @@ DisplayError DisplayBase::ReconfigureMixer(uint32_t width, uint32_t height) {
return kErrorParameters;
}
+ DLOGD_IF(kTagQDCM, "Reconfiguring mixer with width : %d, height : %d", width, height);
HWMixerAttributes mixer_attributes;
mixer_attributes.width = width;
mixer_attributes.height = height;
@@ -1169,9 +1174,10 @@ bool DisplayBase::NeedsMixerReconfiguration(LayerStack *layer_stack, uint32_t *n
uint32_t align_y = 2;
if (req_mixer_width_ && req_mixer_height_) {
+ DLOGD_IF(kTagDisplay, "Required mixer width : %d, height : %d",
+ req_mixer_width_, req_mixer_height_);
*new_mixer_width = req_mixer_width_;
*new_mixer_height = req_mixer_height_;
-
return (req_mixer_width_ != mixer_width || req_mixer_height_ != mixer_height);
}
@@ -1187,6 +1193,7 @@ bool DisplayBase::NeedsMixerReconfiguration(LayerStack *layer_stack, uint32_t *n
max_area_layer_index = i;
}
}
+ DLOGV_IF(kTagDisplay, "Max area layer at index : %d", max_area_layer_index);
// TODO(user): Mark layer which needs downscaling on GPU fallback as priority layer and use MDP
// for composition to avoid quality mismatch between GPU and MDP switch(idle timeout usecase).
diff --git a/sdm/libs/core/drm/hw_info_drm.cpp b/sdm/libs/core/drm/hw_info_drm.cpp
index 55bc003b..9070ca35 100644
--- a/sdm/libs/core/drm/hw_info_drm.cpp
+++ b/sdm/libs/core/drm/hw_info_drm.cpp
@@ -85,17 +85,18 @@ namespace sdm {
class DRMLoggerImpl : public DRMLogger {
public:
-#define PRINTLOG(method, format, buf) \
+#define PRINTLOG(tag, method, format, buf) \
va_list list; \
va_start(list, format); \
vsnprintf(buf, sizeof(buf), format, list); \
va_end(list); \
- Debug::Get()->method(kTagNone, "%s", buf);
+ Debug::Get()->method(tag, "%s", buf);
- void Error(const char *format, ...) { PRINTLOG(Error, format, buf_); }
- void Warning(const char *format, ...) { PRINTLOG(Warning, format, buf_); }
- void Info(const char *format, ...) { PRINTLOG(Info, format, buf_); }
- void Debug(const char *format, ...) { PRINTLOG(Debug, format, buf_); }
+ void Error(const char *format, ...) { PRINTLOG(kTagNone, Error, format, buf_); }
+ void Warning(const char *format, ...) { PRINTLOG(kTagDriverConfig, Warning, format, buf_); }
+ void Info(const char *format, ...) { PRINTLOG(kTagDriverConfig, Info, format, buf_); }
+ void Debug(const char *format, ...) { PRINTLOG(kTagDriverConfig, Debug, format, buf_); }
+ void Verbose(const char *format, ...) { PRINTLOG(kTagDriverConfig, Verbose, format, buf_); }
private:
char buf_[1024] = {};
diff --git a/sdm/libs/core/fb/hw_device.cpp b/sdm/libs/core/fb/hw_device.cpp
index cac14548..38e57d85 100644
--- a/sdm/libs/core/fb/hw_device.cpp
+++ b/sdm/libs/core/fb/hw_device.cpp
@@ -190,9 +190,9 @@ DisplayError HWDevice::Validate(HWLayers *hw_layers) {
HWLayersInfo &hw_layer_info = hw_layers->info;
uint32_t hw_layer_count = UINT32(hw_layer_info.hw_layers.size());
- DLOGV_IF(kTagDriverConfig, "************************** %s Validate Input ***********************",
+ DLOGD_IF(kTagDriverConfig, "************************** %s Validate Input ***********************",
device_name_);
- DLOGV_IF(kTagDriverConfig, "SDE layer count is %d", hw_layer_count);
+ DLOGD_IF(kTagDriverConfig, "SDE layer count is %d", hw_layer_count);
mdp_layer_commit_v1 &mdp_commit = mdp_disp_commit_.commit_v1;
uint32_t &mdp_layer_count = mdp_commit.input_layer_cnt;
@@ -267,11 +267,11 @@ DisplayError HWDevice::Validate(HWLayers *hw_layers) {
mdp_layer_count++;
- DLOGV_IF(kTagDriverConfig, "******************* Layer[%d] %s pipe Input ******************",
+ DLOGD_IF(kTagDriverConfig, "******************* Layer[%d] %s pipe Input ******************",
i, count ? "Right" : "Left");
- DLOGV_IF(kTagDriverConfig, "in_w %d, in_h %d, in_f %d", mdp_buffer.width, mdp_buffer.height,
+ DLOGD_IF(kTagDriverConfig, "in_w %d, in_h %d, in_f %d", mdp_buffer.width, mdp_buffer.height,
mdp_buffer.format);
- DLOGV_IF(kTagDriverConfig, "plane_alpha %d, zorder %d, blending %d, horz_deci %d, "
+ DLOGD_IF(kTagDriverConfig, "plane_alpha %d, zorder %d, blending %d, horz_deci %d, "
"vert_deci %d, pipe_id = 0x%x, mdp_flags 0x%x", mdp_layer.alpha, mdp_layer.z_order,
mdp_layer.blend_op, mdp_layer.horz_deci, mdp_layer.vert_deci, mdp_layer.pipe_ndx,
mdp_layer.flags);
@@ -280,7 +280,7 @@ DisplayError HWDevice::Validate(HWLayers *hw_layers) {
DLOGV_IF(kTagDriverConfig, "dst_rect [%d, %d, %d, %d]", mdp_layer.dst_rect.x,
mdp_layer.dst_rect.y, mdp_layer.dst_rect.w, mdp_layer.dst_rect.h);
hw_scale_->DumpScaleData(mdp_layer.scale);
- DLOGV_IF(kTagDriverConfig, "*************************************************************");
+ DLOGD_IF(kTagDriverConfig, "*************************************************************");
}
}
}
@@ -338,16 +338,16 @@ DisplayError HWDevice::Validate(HWLayers *hw_layers) {
index++;
- DLOGV_IF(kTagDriverConfig, "************************ DestScalar[%d] **************************",
+ DLOGD_IF(kTagDriverConfig, "************************ DestScalar[%d] **************************",
dest_scalar_data->dest_scaler_ndx);
- DLOGV_IF(kTagDriverConfig, "Mixer WxH %dx%d flags %x", dest_scalar_data->lm_width,
+ DLOGD_IF(kTagDriverConfig, "Mixer WxH %dx%d flags %x", dest_scalar_data->lm_width,
dest_scalar_data->lm_height, dest_scalar_data->flags);
#ifdef MDP_DESTSCALER_ROI_ENABLE
- DLOGV_IF(kTagDriverConfig, "Panel ROI [%d, %d, %d, %d]", dest_scalar_data->panel_roi.x,
+ DLOGD_IF(kTagDriverConfig, "Panel ROI [%d, %d, %d, %d]", dest_scalar_data->panel_roi.x,
dest_scalar_data->panel_roi.y, dest_scalar_data->panel_roi.w,
dest_scalar_data->panel_roi.h);
#endif
- DLOGV_IF(kTagDriverConfig, "*****************************************************************");
+ DLOGD_IF(kTagDriverConfig, "*****************************************************************");
}
mdp_commit.dest_scaler_cnt = UINT32(hw_layer_info.dest_scale_info_map.size());
@@ -411,9 +411,9 @@ DisplayError HWDevice::Commit(HWLayers *hw_layers) {
HWLayersInfo &hw_layer_info = hw_layers->info;
uint32_t hw_layer_count = UINT32(hw_layer_info.hw_layers.size());
- DLOGV_IF(kTagDriverConfig, "*************************** %s Commit Input ************************",
+ DLOGD_IF(kTagDriverConfig, "*************************** %s Commit Input ************************",
device_name_);
- DLOGV_IF(kTagDriverConfig, "SDE layer count is %d", hw_layer_count);
+ DLOGD_IF(kTagDriverConfig, "SDE layer count is %d", hw_layer_count);
mdp_layer_commit_v1 &mdp_commit = mdp_disp_commit_.commit_v1;
uint32_t mdp_layer_index = 0;
@@ -449,16 +449,16 @@ DisplayError HWDevice::Commit(HWLayers *hw_layers) {
mdp_buffer.fence = input_buffer->acquire_fence_fd;
mdp_layer_index++;
- DLOGV_IF(kTagDriverConfig, "****************** Layer[%d] %s pipe Input *******************",
+ DLOGD_IF(kTagDriverConfig, "****************** Layer[%d] %s pipe Input *******************",
i, count ? "Right" : "Left");
- DLOGI_IF(kTagDriverConfig, "in_w %d, in_h %d, in_f %d, horz_deci %d, vert_deci %d",
+ DLOGD_IF(kTagDriverConfig, "in_w %d, in_h %d, in_f %d, horz_deci %d, vert_deci %d",
mdp_buffer.width, mdp_buffer.height, mdp_buffer.format, mdp_layer.horz_deci,
mdp_layer.vert_deci);
- DLOGI_IF(kTagDriverConfig, "in_buf_fd %d, in_buf_offset %d, in_buf_stride %d, " \
+ DLOGV_IF(kTagDriverConfig, "in_buf_fd %d, in_buf_offset %d, in_buf_stride %d, " \
"in_plane_count %d, in_fence %d, layer count %d", mdp_buffer.planes[0].fd,
mdp_buffer.planes[0].offset, mdp_buffer.planes[0].stride, mdp_buffer.plane_count,
mdp_buffer.fence, mdp_commit.input_layer_cnt);
- DLOGV_IF(kTagDriverConfig, "*************************************************************");
+ DLOGD_IF(kTagDriverConfig, "*************************************************************");
}
}
}
diff --git a/sdm/libs/core/fb/hw_hdmi.cpp b/sdm/libs/core/fb/hw_hdmi.cpp
index e1d7ba12..e339908e 100644
--- a/sdm/libs/core/fb/hw_hdmi.cpp
+++ b/sdm/libs/core/fb/hw_hdmi.cpp
@@ -1059,7 +1059,7 @@ DisplayError HWHDMI::UpdateHDRMetaData(HWLayers *hw_layers) {
(bits_per_component < 0) ? 0 : UINT32(bits_per_component);
hdr_ctrl.hdr_stream.content_type = GetContentType(hdr_layer.input_buffer);
- DLOGV_IF(kTagDriverConfig, "kSet: HDR Stream : MaxDisplayLuminance = %d\n"
+ DLOGD_IF(kTagDriverConfig, "kSet: HDR Stream : MaxDisplayLuminance = %d\n"
"MinDisplayLuminance = %d MaxContentLightLevel = %d MaxAverageLightLevel = %d\n"
"Red_x = %d Red_y = %d Green_x = %d Green_y = %d Blue_x = %d Blue_y = %d\n"
"WhitePoint_x = %d WhitePoint_y = %d EOTF = %d PixelEncoding = %d Colorimetry = %d\n"
@@ -1083,7 +1083,7 @@ DisplayError HWHDMI::UpdateHDRMetaData(HWLayers *hw_layers) {
cdm_color_space_ = (mdp_color_space) MDP_CSC_DEFAULT;
cdm_color_space_commit_ = true;
#endif
- DLOGV_IF(kTagDriverConfig, "kReset: HDR Stream: HDR_RESET");
+ DLOGD_IF(kTagDriverConfig, "kReset: HDR Stream: HDR_RESET");
} else if (hdr_layer_info.operation == HWHDRLayerInfo::kNoOp) {
if (reset_hdr_flag_) {
hdr_reset_end_ = time(NULL);
@@ -1092,7 +1092,7 @@ DisplayError HWHDMI::UpdateHDRMetaData(HWLayers *hw_layers) {
reset_hdr_flag_ = false;
memset(&hdr_ctrl.hdr_stream, 0, sizeof(hdr_ctrl.hdr_stream));
hdr_ctrl.hdr_state = HDR_DISABLE;
- DLOGV_IF(kTagDriverConfig, "kNoOp: HDR Stream: HDR_DISABLE");
+ DLOGD_IF(kTagDriverConfig, "kNoOp: HDR Stream: HDR_DISABLE");
} else {
return kErrorNone;
}
diff --git a/sdm/libs/core/fb/hw_scale.cpp b/sdm/libs/core/fb/hw_scale.cpp
index e44af5d6..02585704 100644
--- a/sdm/libs/core/fb/hw_scale.cpp
+++ b/sdm/libs/core/fb/hw_scale.cpp
@@ -104,7 +104,7 @@ void HWScaleV1::DumpScaleData(void *mdp_scale) {
mdp_scale_data *scale = reinterpret_cast<mdp_scale_data *>(mdp_scale);
if (scale->enable_pxl_ext) {
- DLOGV_IF(kTagDriverConfig, "Scale Enable = %d", scale->enable_pxl_ext);
+ DLOGD_IF(kTagDriverConfig, "Scale Enable = %d", scale->enable_pxl_ext);
for (int j = 0; j < MAX_PLANES; j++) {
DLOGV_IF(kTagDriverConfig, "Scale Data[%d] : Phase=[%x %x %x %x] Pixel_Ext=[%d %d %d %d]",
j, scale->init_phase_x[j], scale->phase_step_x[j], scale->init_phase_y[j],
@@ -273,7 +273,7 @@ void HWScaleV2::DumpScaleData(void *mdp_scale) {
mdp_scale_data_v2 *scale = reinterpret_cast<mdp_scale_data_v2 *>(mdp_scale);
if (scale->enable) {
- DLOGV_IF(kTagDriverConfig, "Scale Enable = %d", scale->enable);
+ DLOGD_IF(kTagDriverConfig, "Scale Enable = %d", scale->enable);
for (int j = 0; j < MAX_PLANES; j++) {
DLOGV_IF(kTagDriverConfig, "Scale Data[%d]: Phase_init[x y]=[%x %x] Phase_step:[x y]=[%x %x]",
j, scale->init_phase_x[j], scale->init_phase_y[j], scale->phase_step_x[j],
@@ -287,7 +287,7 @@ void HWScaleV2::DumpScaleData(void *mdp_scale) {
scale->src_width[j], scale->src_height[j], scale->roi_w[j]);
}
- DLOGV_IF(kTagDriverConfig, "LUT flags = %d", scale->lut_flag);
+ DLOGD_IF(kTagDriverConfig, "LUT flags = %d", scale->lut_flag);
DLOGV_IF(kTagDriverConfig, "y_rgb_filter=%d, uv_filter=%d, alpha_filter=%d, blend_cfg=%d",
scale->y_rgb_filter_cfg, scale->uv_filter_cfg, scale->alpha_filter_cfg, scale->blend_cfg);
DLOGV_IF(kTagDriverConfig, "dir_lut=%d, y_rgb_cir=%d, uv_cir=%d, y_rgb_sep=%d, uv_sep=%d",
diff --git a/sdm/libs/hwc2/hwc_debugger.cpp b/sdm/libs/hwc2/hwc_debugger.cpp
index ffbb5c57..8b517995 100644
--- a/sdm/libs/hwc2/hwc_debugger.cpp
+++ b/sdm/libs/hwc2/hwc_debugger.cpp
@@ -41,6 +41,10 @@ int32_t HWCDebugHandler::verbose_level_ = 0x0;
void HWCDebugHandler::DebugAll(bool enable, int verbose_level) {
if (enable) {
debug_flags_ = 0x7FFFFFFF;
+ if (verbose_level) {
+ // Enable verbose scalar logs only when explicitely enabled
+ debug_flags_[kTagScalar] = 0;
+ }
verbose_level_ = verbose_level;
} else {
debug_flags_ = 0x1; // kTagNone should always be printed.
@@ -118,6 +122,26 @@ void HWCDebugHandler::DebugQdcm(bool enable, int verbose_level) {
}
}
+void HWCDebugHandler::DebugClient(bool enable, int verbose_level) {
+ if (enable) {
+ debug_flags_[kTagClient] = 1;
+ verbose_level_ = verbose_level;
+ } else {
+ debug_flags_[kTagClient] = 0;
+ verbose_level_ = 0;
+ }
+}
+
+void HWCDebugHandler::DebugDisplay(bool enable, int verbose_level) {
+ if (enable) {
+ debug_flags_[kTagDisplay] = 1;
+ verbose_level_ = verbose_level;
+ } else {
+ debug_flags_[kTagDisplay] = 0;
+ verbose_level_ = 0;
+ }
+}
+
void HWCDebugHandler::Error(DebugTag tag, const char *format, ...) {
if (debug_flags_[tag]) {
va_list list;
diff --git a/sdm/libs/hwc2/hwc_debugger.h b/sdm/libs/hwc2/hwc_debugger.h
index 82ff2f26..04cbfa73 100644
--- a/sdm/libs/hwc2/hwc_debugger.h
+++ b/sdm/libs/hwc2/hwc_debugger.h
@@ -53,6 +53,8 @@ class HWCDebugHandler : public DebugHandler {
static void DebugRotator(bool enable, int verbose_level);
static void DebugScalar(bool enable, int verbose_level);
static void DebugQdcm(bool enable, int verbose_level);
+ static void DebugClient(bool enable, int verbose_level);
+ static void DebugDisplay(bool enable, int verbose_level);
static int GetIdleTimeoutMs();
virtual void Error(DebugTag tag, const char *format, ...);
diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp
index a89147cb..51b485e7 100644
--- a/sdm/libs/hwc2/hwc_display.cpp
+++ b/sdm/libs/hwc2/hwc_display.cpp
@@ -119,6 +119,7 @@ HWC2::Error HWCColorMode::SetColorMode(android_color_mode_t mode) {
DLOGE("failed for mode = %d", mode);
}
+ DLOGV_IF(kTagClient, "Color mode %d successfully set.", mode);
return status;
}
@@ -126,6 +127,7 @@ HWC2::Error HWCColorMode::SetColorModeById(int32_t color_mode_id) {
DLOGI("Applying mode: %d", color_mode_id);
DisplayError error = display_intf_->SetColorModeById(color_mode_id);
if (error != kErrorNone) {
+ DLOGI_IF(kTagClient, "Failed to apply mode: %d", color_mode_id);
return HWC2::Error::BadParameter;
}
return HWC2::Error::None;
@@ -202,14 +204,14 @@ void HWCColorMode::PopulateColorModes() {
return;
}
- DLOGV_IF(kTagQDCM, "Color Modes supported count = %d", color_mode_count);
+ DLOGV_IF(kTagClient, "Color Modes supported count = %d", color_mode_count);
const std::string color_transform = "identity";
std::vector<std::string> color_modes(color_mode_count);
error = display_intf_->GetColorModes(&color_mode_count, &color_modes);
for (uint32_t i = 0; i < color_mode_count; i++) {
std::string &mode_string = color_modes.at(i);
- DLOGV_IF(kTagQDCM, "Color Mode[%d] = %s", i, mode_string.c_str());
+ DLOGV_IF(kTagClient, "Color Mode[%d] = %s", i, mode_string.c_str());
AttrVal attr;
error = display_intf_->GetColorModeAttr(mode_string, &attr);
std::string color_gamut, dynamic_range, pic_quality;
@@ -223,6 +225,10 @@ void HWCColorMode::PopulateColorModes() {
pic_quality = it.second;
}
}
+
+ DLOGV_IF(kTagClient, "color_gamut : %s, dynamic_range : %s, pic_quality : %s",
+ color_gamut.c_str(), dynamic_range.c_str(), pic_quality.c_str());
+
if (dynamic_range == kHdr) {
continue;
}
@@ -1195,7 +1201,7 @@ HWC2::Error HWCDisplay::CommitLayerStack(void) {
}
if (!validated_) {
- DLOGV_IF(kTagCompManager, "Display %d is not validated", id_);
+ DLOGV_IF(kTagClient, "Display %d is not validated", id_);
return HWC2::Error::NotValidated;
}
@@ -1780,6 +1786,7 @@ void HWCDisplay::MarkLayersForClientComposition() {
// ClientComposition - GPU comp, to acheive this, set skip flag so that
// SDM does not handle this layer and hwc_layer composition will be
// set correctly at the end of Prepare.
+ DLOGV_IF(kTagClient, "HWC Layers marked for GPU comp");
for (auto hwc_layer : layer_set_) {
Layer *layer = hwc_layer->GetSDMLayer();
layer->flags.skip = true;
@@ -2027,25 +2034,32 @@ std::string HWCDisplay::Dump() {
bool HWCDisplay::CanSkipValidate() {
if (solid_fill_enable_) {
+ DLOGV_IF(kTagClient, "Solid fill is enabled. Returning false.");
return false;
}
// Layer Stack checks
if (layer_stack_.flags.hdr_present && (tone_mapper_ && tone_mapper_->IsActive())) {
+ DLOGV_IF(kTagClient, "HDR content present with tone mapping enabled. Returning false.");
return false;
}
if (client_target_->NeedsValidation()) {
+ DLOGV_IF(kTagClient, "Framebuffer target needs validation. Returning false.");
return false;
}
for (auto hwc_layer : layer_set_) {
if (hwc_layer->NeedsValidation()) {
+ DLOGV_IF(kTagClient, "hwc_layer[%d] needs validation. Returning false.",
+ hwc_layer->GetId());
return false;
}
// Do not allow Skip Validate, if any layer needs GPU Composition.
if (hwc_layer->GetDeviceSelectedCompositionType() == HWC2::Composition::Client) {
+ DLOGV_IF(kTagClient, "hwc_layer[%d] is GPU composed. Returning false.",
+ hwc_layer->GetId());
return false;
}
}
diff --git a/sdm/libs/hwc2/hwc_layers.cpp b/sdm/libs/hwc2/hwc_layers.cpp
index 2466413c..bf660b53 100644
--- a/sdm/libs/hwc2/hwc_layers.cpp
+++ b/sdm/libs/hwc2/hwc_layers.cpp
@@ -92,7 +92,7 @@ bool GetColorPrimary(const int32_t &dataspace, ColorPrimaries *color_primary) {
*color_primary = ColorPrimaries_BT2020;
break;
default:
- DLOGV_IF(kTagStrategy, "Unsupported Standard Request = %d", standard);
+ DLOGV_IF(kTagClient, "Unsupported Standard Request = %d", standard);
supported_csc = false;
}
return supported_csc;
@@ -121,7 +121,7 @@ bool GetTransfer(const int32_t &dataspace, GammaTransfer *gamma_transfer) {
*gamma_transfer = Transfer_Gamma2_2;
break;
default:
- DLOGV_IF(kTagStrategy, "Unsupported Transfer Request = %d", transfer);
+ DLOGV_IF(kTagClient, "Unsupported Transfer Request = %d", transfer);
supported_transfer = false;
}
return supported_transfer;
@@ -137,7 +137,7 @@ void GetRange(const int32_t &dataspace, ColorRange *color_range) {
*color_range = Range_Limited;
break;
default:
- DLOGV_IF(kTagStrategy, "Unsupported Range Request = %d", range);
+ DLOGV_IF(kTagClient, "Unsupported Range Request = %d", range);
break;
}
}
@@ -320,7 +320,7 @@ HWC2::Error HWCLayer::SetLayerColor(hwc_color_t color) {
}
layer_->solid_fill_color = GetUint32Color(color);
layer_->input_buffer.format = kFormatARGB8888;
- DLOGV_IF(kTagCompManager, "[%" PRIu64 "][%" PRIu64 "] Layer color set to %x", display_id_, id_,
+ DLOGV_IF(kTagClient, "[%" PRIu64 "][%" PRIu64 "] Layer color set to %x", display_id_, id_,
layer_->solid_fill_color);
return HWC2::Error::None;
}
@@ -375,7 +375,7 @@ HWC2::Error HWCLayer::SetLayerDataspace(int32_t dataspace) {
break;
default:
// unknown legacy dataspace
- DLOGW_IF(kTagQDCM, "Unsupported dataspace type %d", dataspace);
+ DLOGW_IF(kTagClient, "Unsupported dataspace type %d", dataspace);
}
}
@@ -731,6 +731,10 @@ DisplayError HWCLayer::SetMetaData(const private_handle_t *pvt_handle, Layer *la
if (getMetaData(handle, GET_PP_PARAM_INTERLACED, &interlaced) == 0) {
interlace = interlaced ? true : false;
}
+ if (interlace != layer_buffer->flags.interlace) {
+ DLOGI("Layer buffer interlaced metadata has changed. old=%d, new=%d",
+ layer_buffer->flags.interlace, interlace);
+ }
uint32_t linear_format = 0;
if (getMetaData(handle, GET_LINEAR_FORMAT, &linear_format) == 0) {
diff --git a/sdm/libs/hwc2/hwc_session.cpp b/sdm/libs/hwc2/hwc_session.cpp
index a7f210af..cd51405f 100644
--- a/sdm/libs/hwc2/hwc_session.cpp
+++ b/sdm/libs/hwc2/hwc_session.cpp
@@ -155,7 +155,7 @@ int HWCSession::Init() {
iqservice->connect(android::sp<qClient::IQClient>(this));
qservice_ = reinterpret_cast<qService::QService *>(iqservice.get());
} else {
- DLOGE("Failed to acquire %s", qservice_name);
+ ALOGE("%s::%s: Failed to acquire %s", __CLASS__, __FUNCTION__, qservice_name);
return -EINVAL;
}
@@ -163,7 +163,8 @@ int HWCSession::Init() {
DisplayError error = buffer_allocator_.Init();
if (error != kErrorNone) {
- DLOGE("Buffer allocaor initialization failed. Error = %d", error);
+ ALOGE("%s::%s: Buffer allocaor initialization failed. Error = %d",
+ __CLASS__, __FUNCTION__, error);
return -EINVAL;
}
@@ -173,7 +174,7 @@ int HWCSession::Init() {
&buffer_sync_handler_, &socket_handler_, &core_intf_);
if (error != kErrorNone) {
buffer_allocator_.Deinit();
- DLOGE("Display core initialization failed. Error = %d", error);
+ ALOGE("%s::%s: Display core initialization failed. Error = %d", __CLASS__, __FUNCTION__, error);
return -EINVAL;
}
@@ -250,7 +251,7 @@ int HWCSession::Deinit() {
DisplayError error = CoreInterface::DestroyCore();
if (error != kErrorNone) {
- DLOGE("Display core de-initialization failed. Error = %d", error);
+ ALOGE("Display core de-initialization failed. Error = %d", error);
}
return 0;
@@ -258,7 +259,7 @@ int HWCSession::Deinit() {
int HWCSession::Open(const hw_module_t *module, const char *name, hw_device_t **device) {
if (!module || !name || !device) {
- DLOGE("Invalid parameters.");
+ ALOGE("%s::%s: Invalid parameters.", __CLASS__, __FUNCTION__);
return -EINVAL;
}
@@ -1474,6 +1475,14 @@ void HWCSession::DynamicDebug(const android::Parcel *input_parcel) {
HWCDebugHandler::DebugScalar(enable, verbose_level);
break;
+ case qService::IQService::DEBUG_CLIENT:
+ HWCDebugHandler::DebugClient(enable, verbose_level);
+ break;
+
+ case qService::IQService::DEBUG_DISPLAY:
+ HWCDebugHandler::DebugDisplay(enable, verbose_level);
+ break;
+
default:
DLOGW("type = %d is not supported", type);
}
diff --git a/sdm/libs/hwc2/hwc_session_services.cpp b/sdm/libs/hwc2/hwc_session_services.cpp
index f4241e06..f19c85b7 100644
--- a/sdm/libs/hwc2/hwc_session_services.cpp
+++ b/sdm/libs/hwc2/hwc_session_services.cpp
@@ -44,9 +44,10 @@ using ::android::hardware::Void;
void HWCSession::StartServices() {
status_t status = IDisplayConfig::registerAsService();
if (status != OK) {
- DLOGW("Could not register IDisplayConfig as service (%d).", status);
+ ALOGW("%s::%s: Could not register IDisplayConfig as service (%d).",
+ __CLASS__, __FUNCTION__, status);
} else {
- DLOGI("IDisplayConfig service registration completed.");
+ ALOGI("%s::%s: IDisplayConfig service registration completed.", __CLASS__, __FUNCTION__);
}
}
diff --git a/sdm/libs/hwc2/hwc_tonemapper.cpp b/sdm/libs/hwc2/hwc_tonemapper.cpp
index a224e8d4..26caec9b 100644
--- a/sdm/libs/hwc2/hwc_tonemapper.cpp
+++ b/sdm/libs/hwc2/hwc_tonemapper.cpp
@@ -181,6 +181,7 @@ int HWCToneMapper::HandleToneMap(LayerStack *layer_stack) {
}
if (layer->request.flags.tone_map) {
+ DLOGV_IF(kTagClient, "Tonemapping for layer at index %d", i);
switch (layer->composition) {
case kCompositionGPUTarget:
if (!gpu_count) {
@@ -211,6 +212,7 @@ int HWCToneMapper::HandleToneMap(LayerStack *layer_stack) {
ToneMapSession *session = tone_map_sessions_.at(session_index);
ToneMap(layer, session);
+ DLOGI_IF(kTagClient, "Layer %d associated with session index %d", i, session_index);
session->layer_index_ = INT(i);
}
}
@@ -259,6 +261,7 @@ void HWCToneMapper::PostCommit(LayerStack *layer_stack) {
session->acquired_ = false;
it++;
} else {
+ DLOGI_IF(kTagClient, "Tone map session %d closed.", session_index);
delete session;
it = tone_map_sessions_.erase(it);
int deleted_session = INT(session_index);
diff --git a/sdm/libs/utils/rect.cpp b/sdm/libs/utils/rect.cpp
index c227cb30..a8305426 100644
--- a/sdm/libs/utils/rect.cpp
+++ b/sdm/libs/utils/rect.cpp
@@ -47,6 +47,11 @@ bool IsCongruent(const LayerRect &rect1, const LayerRect &rect2) {
(rect1.bottom == rect2.bottom));
}
+void LogI(DebugTag debug_tag, const char *prefix, const LayerRect &roi) {
+ DLOGI_IF(debug_tag, "%s: left = %.0f, top = %.0f, right = %.0f, bottom = %.0f",
+ prefix, roi.left, roi.top, roi.right, roi.bottom);
+}
+
void Log(DebugTag debug_tag, const char *prefix, const LayerRect &roi) {
DLOGV_IF(debug_tag, "%s: left = %.0f, top = %.0f, right = %.0f, bottom = %.0f",
prefix, roi.left, roi.top, roi.right, roi.bottom);