sdm: Dont validate dataspace for HAL_DATASPACE_UNKNOWN
- GetClientTargetSupport API passes HAL_DATASPACE_UNKNOWN
everytime and expects no error for HAL_DATASPACE_UNKNOWN
CRs-Fixed: 2121789
Change-Id: I7b9b4bbe7215aaf164cf1b9866899bf66a185543
diff --git a/sdm/libs/core/display_base.cpp b/sdm/libs/core/display_base.cpp
index 34740a9..ee2fe44 100644
--- a/sdm/libs/core/display_base.cpp
+++ b/sdm/libs/core/display_base.cpp
@@ -1523,28 +1523,28 @@
DisplayError DisplayBase::GetClientTargetSupport(uint32_t width, uint32_t height,
LayerBufferFormat format,
const ColorMetaData &color_metadata) {
- DisplayError error = kErrorNone;
-
if (format != kFormatRGBA8888 && format != kFormatRGBA1010102) {
DLOGW("Unsupported format = %d", format);
- error = kErrorNotSupported;
+ return kErrorNotSupported;
} else if (ValidateScaling(width, height) != kErrorNone) {
DLOGW("Unsupported width = %d height = %d", width, height);
- error = kErrorNotSupported;
- } else {
- error = ValidateDataspace(color_metadata);
+ return kErrorNotSupported;
+ } else if (color_metadata.transfer && color_metadata.colorPrimaries) {
+ DisplayError error = ValidateDataspace(color_metadata);
if (error != kErrorNone) {
+ DLOGW("Unsupported Transfer Request = %d Color Primary = %d",
+ color_metadata.transfer, color_metadata.colorPrimaries);
return error;
}
// Check for BT2020 support
if (color_metadata.colorPrimaries == ColorPrimaries_BT2020) {
- DLOGW("Unsupported dataspace");
- error = kErrorNotSupported;
+ DLOGW("Unsupported Color Primary = %d", color_metadata.colorPrimaries);
+ return kErrorNotSupported;
}
}
- return error;
+ return kErrorNone;
}
DisplayError DisplayBase::ValidateScaling(uint32_t width, uint32_t height) {
diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp
index 0c305be..2255c45 100644
--- a/sdm/libs/hwc2/hwc_display.cpp
+++ b/sdm/libs/hwc2/hwc_display.cpp
@@ -732,11 +732,13 @@
HWC2::Error HWCDisplay::GetClientTargetSupport(uint32_t width, uint32_t height, int32_t format,
int32_t dataspace) {
ColorMetaData color_metadata = {};
- LayerBufferFormat sdm_format = GetSDMFormat(format, 0);
- GetColorPrimary(dataspace, &(color_metadata.colorPrimaries));
- GetTransfer(dataspace, &(color_metadata.transfer));
- GetRange(dataspace, &(color_metadata.range));
+ if (dataspace != HAL_DATASPACE_UNKNOWN) {
+ GetColorPrimary(dataspace, &(color_metadata.colorPrimaries));
+ GetTransfer(dataspace, &(color_metadata.transfer));
+ GetRange(dataspace, &(color_metadata.range));
+ }
+ LayerBufferFormat sdm_format = GetSDMFormat(format, 0);
if (display_intf_->GetClientTargetSupport(width, height, sdm_format,
color_metadata) != kErrorNone) {
return HWC2::Error::Unsupported;