summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-10-28 03:27:29 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-10-28 03:27:29 +0000
commit14f4d6f5b7122c88eb6884e1aaaf05d139332630 (patch)
treeb580ca994afeade7594f74eb257f399075689fa1
parentc4a4a4884d97ee59bd590d71b46c681a7f6882c9 (diff)
parent9a55565eed10c80ce6b0f8d9262dd977d08b18e9 (diff)
downloadzuma-14f4d6f5b7122c88eb6884e1aaaf05d139332630.tar.gz
Snap for 11017726 from 9a55565eed10c80ce6b0f8d9262dd977d08b18e9 to 24Q1-release
Change-Id: Ie210df453f40f726feae11744c50135c0c455cb7
-rw-r--r--libhwc2.1/libdevice/HistogramController.cpp17
-rw-r--r--libhwc2.1/libdevice/HistogramController.h1
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,