summaryrefslogtreecommitdiff
path: root/hwc3
diff options
context:
space:
mode:
authorKriti Dang <kritidang@google.com>2022-12-06 10:45:41 +0100
committerKriti Dang <kritidang@google.com>2023-01-12 18:31:40 +0100
commit9bacdbea094824f6a21321e7bfc96ea5e8f0c605 (patch)
tree68cb0d5aefff1a61bfe99f62c80b4e7bebfbe273 /hwc3
parent6d86b68f23054aeb25af581bd41785d759a1e2be (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.cpp14
-rw-r--r--hwc3/ComposerClient.h3
-rw-r--r--hwc3/impl/HalImpl.cpp8
-rw-r--r--hwc3/impl/HalImpl.h2
-rw-r--r--hwc3/include/IComposerHal.h4
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,