diff --git a/native/android/surface_control.cpp b/native/android/surface_control.cpp index 93a54445a033..693a027bd0e2 100644 --- a/native/android/surface_control.cpp +++ b/native/android/surface_control.cpp @@ -44,70 +44,14 @@ using Transaction = SurfaceComposerClient::Transaction; LOG_ALWAYS_FATAL_IF(!static_cast(name).isValid(), \ "invalid arg passed as " #name " argument"); -static bool getWideColorSupport(const sp& surfaceControl) { - sp client = surfaceControl->getClient(); - - const sp display = client->getInternalDisplayToken(); - if (display == nullptr) { - ALOGE("unable to get wide color support for disconnected internal display"); - return false; - } - - bool isWideColorDisplay = false; - status_t err = client->isWideColorDisplay(display, &isWideColorDisplay); - if (err) { - ALOGE("unable to get wide color support"); - return false; - } - return isWideColorDisplay; -} - -static bool getHdrSupport(const sp& surfaceControl) { - sp client = surfaceControl->getClient(); - - const sp display = client->getInternalDisplayToken(); - if (display == nullptr) { - ALOGE("unable to get hdr capabilities for disconnected internal display"); - return false; - } - - ui::DynamicDisplayInfo info; - if (status_t err = client->getDynamicDisplayInfo(display, &info); err != NO_ERROR) { - ALOGE("unable to get hdr capabilities"); - return err; - } - - return !info.hdrCapabilities.getSupportedHdrTypes().empty(); -} - -static bool isDataSpaceValid(const sp& surfaceControl, ADataSpace dataSpace) { - static_assert(static_cast(ADATASPACE_UNKNOWN) == static_cast(HAL_DATASPACE_UNKNOWN)); - static_assert(static_cast(ADATASPACE_SCRGB_LINEAR) == static_cast(HAL_DATASPACE_V0_SCRGB_LINEAR)); - static_assert(static_cast(ADATASPACE_SRGB) == static_cast(HAL_DATASPACE_V0_SRGB)); - static_assert(static_cast(ADATASPACE_SCRGB) == static_cast(HAL_DATASPACE_V0_SCRGB)); - static_assert(static_cast(ADATASPACE_DISPLAY_P3) == static_cast(HAL_DATASPACE_DISPLAY_P3)); - static_assert(static_cast(ADATASPACE_BT2020_PQ) == static_cast(HAL_DATASPACE_BT2020_PQ)); - - switch (static_cast(dataSpace)) { - case HAL_DATASPACE_UNKNOWN: - case HAL_DATASPACE_V0_SRGB: - return true; - // These data space need wide gamut support. - case HAL_DATASPACE_V0_SCRGB_LINEAR: - case HAL_DATASPACE_V0_SCRGB: - case HAL_DATASPACE_DISPLAY_P3: - return getWideColorSupport(surfaceControl); - // These data space need HDR support. - case HAL_DATASPACE_BT2020_PQ: - if (!getHdrSupport(surfaceControl)) { - ALOGE("Invalid dataspace - device does not support hdr"); - return false; - } - return true; - default: - return false; - } -} +static_assert(static_cast(ADATASPACE_UNKNOWN) == static_cast(HAL_DATASPACE_UNKNOWN)); +static_assert(static_cast(ADATASPACE_SCRGB_LINEAR) == + static_cast(HAL_DATASPACE_V0_SCRGB_LINEAR)); +static_assert(static_cast(ADATASPACE_SRGB) == static_cast(HAL_DATASPACE_V0_SRGB)); +static_assert(static_cast(ADATASPACE_SCRGB) == static_cast(HAL_DATASPACE_V0_SCRGB)); +static_assert(static_cast(ADATASPACE_DISPLAY_P3) == + static_cast(HAL_DATASPACE_DISPLAY_P3)); +static_assert(static_cast(ADATASPACE_BT2020_PQ) == static_cast(HAL_DATASPACE_BT2020_PQ)); Transaction* ASurfaceTransaction_to_Transaction(ASurfaceTransaction* aSurfaceTransaction) { return reinterpret_cast(aSurfaceTransaction); @@ -580,10 +524,6 @@ void ASurfaceTransaction_setBufferDataSpace(ASurfaceTransaction* aSurfaceTransac CHECK_NOT_NULL(aSurfaceControl); sp surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl); - if (!isDataSpaceValid(surfaceControl, aDataSpace)) { - ALOGE("Failed to set buffer dataspace - invalid dataspace"); - return; - } Transaction* transaction = ASurfaceTransaction_to_Transaction(aSurfaceTransaction); transaction->setDataspace(surfaceControl, static_cast(aDataSpace)); } @@ -650,10 +590,6 @@ void ASurfaceTransaction_setColor(ASurfaceTransaction* aSurfaceTransaction, CHECK_NOT_NULL(aSurfaceControl); sp surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl); - if (!isDataSpaceValid(surfaceControl, dataspace)) { - ALOGE("Failed to set buffer dataspace - invalid dataspace"); - return; - } Transaction* transaction = ASurfaceTransaction_to_Transaction(aSurfaceTransaction); half3 color;