diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-10-28 03:27:29 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-10-28 03:27:29 +0000 |
commit | 14f4d6f5b7122c88eb6884e1aaaf05d139332630 (patch) | |
tree | b580ca994afeade7594f74eb257f399075689fa1 | |
parent | c4a4a4884d97ee59bd590d71b46c681a7f6882c9 (diff) | |
parent | 9a55565eed10c80ce6b0f8d9262dd977d08b18e9 (diff) | |
download | zuma-14f4d6f5b7122c88eb6884e1aaaf05d139332630.tar.gz |
Snap for 11017726 from 9a55565eed10c80ce6b0f8d9262dd977d08b18e9 to 24Q1-release
Change-Id: Ie210df453f40f726feae11744c50135c0c455cb7
-rw-r--r-- | libhwc2.1/libdevice/HistogramController.cpp | 17 | ||||
-rw-r--r-- | libhwc2.1/libdevice/HistogramController.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/libhwc2.1/libdevice/HistogramController.cpp b/libhwc2.1/libdevice/HistogramController.cpp index ac616fb..6cf6f78 100644 --- a/libhwc2.1/libdevice/HistogramController.cpp +++ b/libhwc2.1/libdevice/HistogramController.cpp @@ -16,6 +16,11 @@ #include "HistogramController.h" +void HistogramController::initPlatformHistogramCapability() { + mHistogramCapability.supportSamplePosList.push_back(HistogramSamplePos::PRE_POSTPROC); + mHistogramCapability.supportBlockingRoi = true; +} + // TODO: b/295990513 - Remove the if defined after kernel prebuilts are merged. #if defined(EXYNOS_HISTOGRAM_CHANNEL_REQUEST) int HistogramController::createHistogramDrmConfigLocked(const ChannelInfo& channel, @@ -34,6 +39,17 @@ int HistogramController::createHistogramDrmConfigLocked(const ChannelInfo& chann channelConfig->roi.start_y = channel.workingConfig.roi.top; channelConfig->roi.hsize = channel.workingConfig.roi.right - channel.workingConfig.roi.left; channelConfig->roi.vsize = channel.workingConfig.roi.bottom - channel.workingConfig.roi.top; + if (channel.workingConfig.blockingRoi.has_value() && + channel.workingConfig.blockingRoi.value() != DISABLED_ROI) { + const HistogramRoiRect& blockedRoi = channel.workingConfig.blockingRoi.value(); + channelConfig->flags |= HISTOGRAM_FLAGS_BLOCKED_ROI; + channelConfig->blocked_roi.start_x = blockedRoi.left; + channelConfig->blocked_roi.start_y = blockedRoi.top; + channelConfig->blocked_roi.hsize = blockedRoi.right - blockedRoi.left; + channelConfig->blocked_roi.vsize = blockedRoi.bottom - blockedRoi.top; + } else { + channelConfig->flags &= ~HISTOGRAM_FLAGS_BLOCKED_ROI; + } channelConfig->weights.weight_r = channel.workingConfig.weights.weightR; channelConfig->weights.weight_g = channel.workingConfig.weights.weightG; channelConfig->weights.weight_b = channel.workingConfig.weights.weightB; @@ -41,6 +57,7 @@ int HistogramController::createHistogramDrmConfigLocked(const ChannelInfo& chann ? POST_DQE : PRE_DQE; channelConfig->threshold = channel.threshold; + length = sizeof(struct histogram_channel_config); return NO_ERROR; diff --git a/libhwc2.1/libdevice/HistogramController.h b/libhwc2.1/libdevice/HistogramController.h index b5e8dac..a895bdd 100644 --- a/libhwc2.1/libdevice/HistogramController.h +++ b/libhwc2.1/libdevice/HistogramController.h @@ -21,6 +21,7 @@ class HistogramController : public HistogramDevice { public: HistogramController(ExynosDisplay* display) : HistogramDevice(display, 4, {3}) {} + virtual void initPlatformHistogramCapability() override; // TODO: b/295990513 - Remove the if defined after kernel prebuilts are merged. #if defined(EXYNOS_HISTOGRAM_CHANNEL_REQUEST) virtual int createHistogramDrmConfigLocked(const ChannelInfo& channel, |