Loading services/surfaceflinger/BufferLayer.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -304,7 +304,9 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice, setCompositionType(displayDevice, Hwc2::IComposerClient::Composition::DEVICE); } ui::Dataspace dataspace = isColorSpaceAgnostic() ? targetDataspace : mCurrentDataSpace; ui::Dataspace dataspace = isColorSpaceAgnostic() && targetDataspace != ui::Dataspace::UNKNOWN ? targetDataspace : mCurrentDataSpace; error = hwcLayer->setDataspace(dataspace); if (error != HWC2::Error::None) { ALOGE("[%s] Failed to set dataspace %d: %s (%d)", mName.string(), dataspace, Loading services/surfaceflinger/ColorLayer.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -114,7 +114,9 @@ void ColorLayer::setPerFrameData(const sp<const DisplayDevice>& display, setCompositionType(display, Hwc2::IComposerClient::Composition::SOLID_COLOR); const ui::Dataspace dataspace = isColorSpaceAgnostic() ? targetDataspace : mCurrentDataSpace; const ui::Dataspace dataspace = isColorSpaceAgnostic() && targetDataspace != ui::Dataspace::UNKNOWN ? targetDataspace : mCurrentDataSpace; error = hwcLayer->setDataspace(dataspace); if (error != HWC2::Error::None) { ALOGE("[%s] Failed to set dataspace %d: %s (%d)", mName.string(), dataspace, Loading services/surfaceflinger/SurfaceFlinger.cpp +25 −1 Original line number Diff line number Diff line Loading @@ -157,6 +157,28 @@ bool isWideColorMode(const ColorMode colorMode) { return false; } bool isHdrColorMode(const ColorMode colorMode) { switch (colorMode) { case ColorMode::BT2100_PQ: case ColorMode::BT2100_HLG: return true; case ColorMode::DISPLAY_P3: case ColorMode::ADOBE_RGB: case ColorMode::DCI_P3: case ColorMode::BT2020: case ColorMode::DISPLAY_BT2020: case ColorMode::NATIVE: case ColorMode::STANDARD_BT601_625: case ColorMode::STANDARD_BT601_625_UNADJUSTED: case ColorMode::STANDARD_BT601_525: case ColorMode::STANDARD_BT601_525_UNADJUSTED: case ColorMode::STANDARD_BT709: case ColorMode::SRGB: return false; } return false; } ui::Transform::orientation_flags fromSurfaceComposerRotation(ISurfaceComposer::Rotation rotation) { switch (rotation) { case ISurfaceComposer::eRotateNone: Loading Loading @@ -1836,7 +1858,9 @@ void SurfaceFlinger::calculateWorkingSet() { const auto& displayState = display->getState(); layer->setPerFrameData(displayDevice, displayState.transform, displayState.viewport, displayDevice->getSupportedPerFrameMetadata(), targetDataspace); displayDevice->getSupportedPerFrameMetadata(), isHdrColorMode(displayState.colorMode) ? Dataspace::UNKNOWN : targetDataspace); } } Loading Loading
services/surfaceflinger/BufferLayer.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -304,7 +304,9 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice, setCompositionType(displayDevice, Hwc2::IComposerClient::Composition::DEVICE); } ui::Dataspace dataspace = isColorSpaceAgnostic() ? targetDataspace : mCurrentDataSpace; ui::Dataspace dataspace = isColorSpaceAgnostic() && targetDataspace != ui::Dataspace::UNKNOWN ? targetDataspace : mCurrentDataSpace; error = hwcLayer->setDataspace(dataspace); if (error != HWC2::Error::None) { ALOGE("[%s] Failed to set dataspace %d: %s (%d)", mName.string(), dataspace, Loading
services/surfaceflinger/ColorLayer.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -114,7 +114,9 @@ void ColorLayer::setPerFrameData(const sp<const DisplayDevice>& display, setCompositionType(display, Hwc2::IComposerClient::Composition::SOLID_COLOR); const ui::Dataspace dataspace = isColorSpaceAgnostic() ? targetDataspace : mCurrentDataSpace; const ui::Dataspace dataspace = isColorSpaceAgnostic() && targetDataspace != ui::Dataspace::UNKNOWN ? targetDataspace : mCurrentDataSpace; error = hwcLayer->setDataspace(dataspace); if (error != HWC2::Error::None) { ALOGE("[%s] Failed to set dataspace %d: %s (%d)", mName.string(), dataspace, Loading
services/surfaceflinger/SurfaceFlinger.cpp +25 −1 Original line number Diff line number Diff line Loading @@ -157,6 +157,28 @@ bool isWideColorMode(const ColorMode colorMode) { return false; } bool isHdrColorMode(const ColorMode colorMode) { switch (colorMode) { case ColorMode::BT2100_PQ: case ColorMode::BT2100_HLG: return true; case ColorMode::DISPLAY_P3: case ColorMode::ADOBE_RGB: case ColorMode::DCI_P3: case ColorMode::BT2020: case ColorMode::DISPLAY_BT2020: case ColorMode::NATIVE: case ColorMode::STANDARD_BT601_625: case ColorMode::STANDARD_BT601_625_UNADJUSTED: case ColorMode::STANDARD_BT601_525: case ColorMode::STANDARD_BT601_525_UNADJUSTED: case ColorMode::STANDARD_BT709: case ColorMode::SRGB: return false; } return false; } ui::Transform::orientation_flags fromSurfaceComposerRotation(ISurfaceComposer::Rotation rotation) { switch (rotation) { case ISurfaceComposer::eRotateNone: Loading Loading @@ -1836,7 +1858,9 @@ void SurfaceFlinger::calculateWorkingSet() { const auto& displayState = display->getState(); layer->setPerFrameData(displayDevice, displayState.transform, displayState.viewport, displayDevice->getSupportedPerFrameMetadata(), targetDataspace); displayDevice->getSupportedPerFrameMetadata(), isHdrColorMode(displayState.colorMode) ? Dataspace::UNKNOWN : targetDataspace); } } Loading