diff options
author | Devanshi Bansal <devanshi@codeaurora.org> | 2021-06-18 14:30:24 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2021-08-18 07:38:07 -0700 |
commit | fe327715a935a39b126cd7cbb1c4e42401a1d734 (patch) | |
tree | dec5cc0567db561577e06d840c5be0a1627a674c | |
parent | 9cc7717c320771b5997d17c04817568a4b100807 (diff) |
hwc: Add layer request flag for format and color metadata.
Change-Id: I2345d71cfc211f386d5dd97fb8c2d21cc4a82f86
-rw-r--r-- | composer/hwc_display.cpp | 14 | ||||
-rw-r--r-- | init/init.qti.display_boot.sh | 24 | ||||
-rw-r--r-- | sdm/include/core/layer_stack.h | 11 |
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 |