diff options
author | Kriti Dang <kritidang@google.com> | 2022-12-06 10:45:41 +0100 |
---|---|---|
committer | Kriti Dang <kritidang@google.com> | 2023-01-12 18:31:40 +0100 |
commit | 9bacdbea094824f6a21321e7bfc96ea5e8f0c605 (patch) | |
tree | 68cb0d5aefff1a61bfe99f62c80b4e7bebfbe273 /hwc3 | |
parent | 6d86b68f23054aeb25af581bd41785d759a1e2be (diff) |
Add HDR output control APIs implementation in hwc3
Bug: 251168514
Test: m
Change-Id: I95710e1a0a1caed2974520ae2b61eafafa2d3cf2
Diffstat (limited to 'hwc3')
-rw-r--r-- | hwc3/ComposerClient.cpp | 14 | ||||
-rw-r--r-- | hwc3/ComposerClient.h | 3 | ||||
-rw-r--r-- | hwc3/impl/HalImpl.cpp | 8 | ||||
-rw-r--r-- | hwc3/impl/HalImpl.h | 2 | ||||
-rw-r--r-- | hwc3/include/IComposerHal.h | 4 |
5 files changed, 31 insertions, 0 deletions
diff --git a/hwc3/ComposerClient.cpp b/hwc3/ComposerClient.cpp index f977f41..f9aaf81 100644 --- a/hwc3/ComposerClient.cpp +++ b/hwc3/ComposerClient.cpp @@ -342,6 +342,20 @@ ndk::ScopedAStatus ComposerClient::getPreferredBootDisplayConfig(int64_t display return TO_BINDER_STATUS(err); } +ndk::ScopedAStatus ComposerClient::getHdrConversionCapabilities( + std::vector<common::HdrConversionCapability>* hdrConversionCapabilities) { + DEBUG_FUNC(); + auto err = mHal->getHdrConversionCapabilities(hdrConversionCapabilities); + return TO_BINDER_STATUS(err); +} + +ndk::ScopedAStatus ComposerClient::setHdrConversionStrategy( + const common::HdrConversionStrategy& hdrConversionStrategy) { + DEBUG_FUNC(); + auto err = mHal->setHdrConversionStrategy(hdrConversionStrategy); + return TO_BINDER_STATUS(err); +} + ndk::ScopedAStatus ComposerClient::setAutoLowLatencyMode(int64_t display, bool on) { DEBUG_DISPLAY_FUNC(display); auto err = mHal->setAutoLowLatencyMode(display, on); diff --git a/hwc3/ComposerClient.h b/hwc3/ComposerClient.h index 9e85396..89763f8 100644 --- a/hwc3/ComposerClient.h +++ b/hwc3/ComposerClient.h @@ -115,6 +115,9 @@ public: ndk::ScopedAStatus setBootDisplayConfig(int64_t display, int32_t config) override; ndk::ScopedAStatus clearBootDisplayConfig(int64_t display) override; ndk::ScopedAStatus getPreferredBootDisplayConfig(int64_t display, int32_t* config) override; + ndk::ScopedAStatus getHdrConversionCapabilities( + std::vector<common::HdrConversionCapability>*) override; + ndk::ScopedAStatus setHdrConversionStrategy(const common::HdrConversionStrategy&) override; ndk::ScopedAStatus setAutoLowLatencyMode(int64_t display, bool on) override; ndk::ScopedAStatus setClientTargetSlotCount(int64_t display, int32_t count) override; ndk::ScopedAStatus setColorMode(int64_t display, ColorMode mode, RenderIntent intent) override; diff --git a/hwc3/impl/HalImpl.cpp b/hwc3/impl/HalImpl.cpp index a5d229d..1412816 100644 --- a/hwc3/impl/HalImpl.cpp +++ b/hwc3/impl/HalImpl.cpp @@ -637,6 +637,14 @@ int32_t HalImpl::getPreferredBootDisplayConfig(int64_t display, int32_t* config) return halDisplay->getPreferredBootDisplayConfig(config); } +int32_t HalImpl::getHdrConversionCapabilities(std::vector<common::HdrConversionCapability>*) { + return HWC2_ERROR_UNSUPPORTED; +} + +int32_t HalImpl::setHdrConversionStrategy(const common::HdrConversionStrategy&) { + return HWC2_ERROR_UNSUPPORTED; +} + int32_t HalImpl::setAutoLowLatencyMode(int64_t display, bool on) { ExynosDisplay* halDisplay; RET_IF_ERR(getHalDisplay(display, halDisplay)); diff --git a/hwc3/impl/HalImpl.h b/hwc3/impl/HalImpl.h index 21af64e..902efcd 100644 --- a/hwc3/impl/HalImpl.h +++ b/hwc3/impl/HalImpl.h @@ -93,6 +93,8 @@ class HalImpl : public IComposerHal { int32_t setBootDisplayConfig(int64_t display, int32_t config) override; int32_t clearBootDisplayConfig(int64_t display) override; int32_t getPreferredBootDisplayConfig(int64_t display, int32_t* config) override; + int32_t getHdrConversionCapabilities(std::vector<common::HdrConversionCapability>*) override; + int32_t setHdrConversionStrategy(const common::HdrConversionStrategy&) override; int32_t setAutoLowLatencyMode(int64_t display, bool on) override; int32_t setClientTarget(int64_t display, buffer_handle_t target, const ndk::ScopedFileDescriptor& fence, common::Dataspace dataspace, diff --git a/hwc3/include/IComposerHal.h b/hwc3/include/IComposerHal.h index 7183dec..8af77b0 100644 --- a/hwc3/include/IComposerHal.h +++ b/hwc3/include/IComposerHal.h @@ -25,6 +25,8 @@ #include <aidl/android/hardware/graphics/common/ColorTransform.h> #include <aidl/android/hardware/graphics/common/Dataspace.h> #include <aidl/android/hardware/graphics/common/FRect.h> +#include <aidl/android/hardware/graphics/common/HdrConversionCapability.h> +#include <aidl/android/hardware/graphics/common/HdrConversionStrategy.h> #include <aidl/android/hardware/graphics/common/PixelFormat.h> #include <aidl/android/hardware/graphics/common/Point.h> #include <aidl/android/hardware/graphics/common/Rect.h> @@ -160,6 +162,8 @@ class IComposerHal { virtual int32_t setBootDisplayConfig(int64_t display, int32_t config) = 0; virtual int32_t clearBootDisplayConfig(int64_t display) = 0; virtual int32_t getPreferredBootDisplayConfig(int64_t display, int32_t* config) = 0; + virtual int32_t getHdrConversionCapabilities(std::vector<common::HdrConversionCapability>*) = 0; + virtual int32_t setHdrConversionStrategy(const common::HdrConversionStrategy&) = 0; virtual int32_t setAutoLowLatencyMode(int64_t display, bool on) = 0; virtual int32_t setClientTarget(int64_t display, buffer_handle_t target, const ndk::ScopedFileDescriptor& fence, |