summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevanshi Bansal <devanshi@codeaurora.org>2021-06-18 14:30:24 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2021-08-18 07:38:07 -0700
commitfe327715a935a39b126cd7cbb1c4e42401a1d734 (patch)
treedec5cc0567db561577e06d840c5be0a1627a674c
parent9cc7717c320771b5997d17c04817568a4b100807 (diff)
hwc: Add layer request flag for format and color metadata.
Change-Id: I2345d71cfc211f386d5dd97fb8c2d21cc4a82f86
-rw-r--r--composer/hwc_display.cpp14
-rw-r--r--init/init.qti.display_boot.sh24
-rw-r--r--sdm/include/core/layer_stack.h11
3 files changed, 31 insertions, 18 deletions
diff --git a/composer/hwc_display.cpp b/composer/hwc_display.cpp
index 4df0665d..e0074945 100644
--- a/composer/hwc_display.cpp
+++ b/composer/hwc_display.cpp
@@ -2802,25 +2802,25 @@ int HWCDisplay::GetActiveConfigIndex() {
HWC2::Error HWCDisplay::GetClientTargetProperty(ClientTargetProperty *out_client_target_property) {
- Layer *client_target_layer = client_target_->GetSDMLayer();
- if (!client_target_layer->request.flags.update_format) {
+ Layer *client_layer = client_target_->GetSDMLayer();
+ if (!client_layer->request.flags.update_format) {
return HWC2::Error::None;
}
int32_t format = 0;
uint64_t flags = 0;
- auto err = buffer_allocator_->SetBufferInfo(client_target_layer->request.format, &format,
+ auto err = buffer_allocator_->SetBufferInfo(client_layer->request.format, &format,
&flags);
if (err) {
- DLOGE("Invalid format: %s requested", GetFormatString(client_target_layer->request.format));
+ DLOGE("Invalid format: %s requested", GetFormatString(client_layer->request.format));
return HWC2::Error::BadParameter;
}
Dataspace dataspace;
- DisplayError error = ColorMetadataToDataspace(layer_stack_.gpu_target_color_metadata,
+ DisplayError error = ColorMetadataToDataspace(client_layer->request.color_metadata,
&dataspace);
if (error != kErrorNone) {
DLOGE("Invalid Dataspace requested: Primaries = %d Transfer = %d ds = %d",
- layer_stack_.gpu_target_color_metadata.colorPrimaries,
- layer_stack_.gpu_target_color_metadata.transfer, dataspace);
+ client_layer->request.color_metadata.colorPrimaries,
+ client_layer->request.color_metadata.transfer, dataspace);
return HWC2::Error::BadParameter;
}
out_client_target_property->dataspace = dataspace;
diff --git a/init/init.qti.display_boot.sh b/init/init.qti.display_boot.sh
index 8e57c068..917dea1d 100644
--- a/init/init.qti.display_boot.sh
+++ b/init/init.qti.display_boot.sh
@@ -40,13 +40,23 @@ case "$target" in
# Set property to differentiate bengal and khaje
# Soc Id for khaje is 518
case "$soc_hwid" in
- 518)
- # Set property for khaje
- setprop vendor.display.disable_layer_stitch 1
- setprop vendor.display.enable_rounded_corner 1
- setprop vendor.display.disable_rounded_corner_thread 0
- setprop vendor.display.enable_rc_support 1
- setprop vendor.display.enable_perf_hint_large_comp_cycle 1
+ 518)
+ # Set property for khaje
+ setprop vendor.display.disable_layer_stitch 1
+ setprop vendor.display.enable_rounded_corner 1
+ setprop vendor.display.disable_rounded_corner_thread 0
+ setprop vendor.display.enable_rc_support 1
+ setprop vendor.display.enable_perf_hint_large_comp_cycle 1
+ ;;
+ esac
;;
+ "lito")
+ # Set property to differentiate lito and lagoon
+ case "$soc_hwid" in
+ 434|459)
+ #Set property for lagoon
+ setprop vendor.display.enable_hdr10_gpu_target 1
+ ;;
esac
+ ;;
esac
diff --git a/sdm/include/core/layer_stack.h b/sdm/include/core/layer_stack.h
index 0c9841f3..e927a5e6 100644
--- a/sdm/include/core/layer_stack.h
+++ b/sdm/include/core/layer_stack.h
@@ -205,6 +205,9 @@ struct LayerRequestFlags {
uint32_t rc: 1; //!< This flag will be set by SDM when the layer is drawn by RC HW.
uint32_t update_format: 1; //!< This flag will be set by SDM when layer format is updated
//!< The buffer format is mentioned in the LayerRequest Format
+ uint32_t update_color_metadata: 1; //!< This flag will be set by SDM when layer color
+ //!< metadata is updated. The color metadata is
+ //!< mentioned in the LayerRequest Format
};
uint32_t request_flags = 0; //!< For initialization purpose only.
//!< Shall not be refered directly.
@@ -222,6 +225,10 @@ struct LayerRequest {
LayerRequestFlags flags; // Flags associated with this request
LayerBufferFormat format = kFormatRGBA8888; // Requested format - Used with tone_map and
// update_format flags
+ ColorMetaData color_metadata = { .colorPrimaries = ColorPrimaries_BT709_5,
+ .range = Range_Full,
+ .transfer = Transfer_sRGB };
+ // Requested color metadata
uint32_t width = 0; // Requested unaligned width.
// Used with tone_map flag
uint32_t height = 0; // Requested unalighed height
@@ -462,10 +469,6 @@ struct LayerStack {
uint64_t elapse_timestamp = 0; //!< system time until which display commit needs to be held
- ColorMetaData gpu_target_color_metadata = { .colorPrimaries = ColorPrimaries_BT709_5,
- .range = Range_Full,
- .transfer = Transfer_sRGB };
- //!< o/p - from SDM, applies to the Frame
};
} // namespace sdm