summaryrefslogtreecommitdiff
path: root/hwc3/impl/HalImpl.cpp
diff options
context:
space:
mode:
authorYichi Chen <yichichen@google.com>2022-02-19 07:36:42 +0800
committerYichi Chen <yichichen@google.com>2022-02-25 10:17:24 +0800
commit58b3a7376939252231c79373a0fa4cfad160540f (patch)
tree80832480ea122ca968bc70e2a2b55d7320da6c62 /hwc3/impl/HalImpl.cpp
parentf44db213b052781a63f4902de8a3c97e49b356fd (diff)
hwc3: add support of blocking region for RCD layers
Blocking region for RCD is supported to save the memory bandwidth. The patch creates basic support to store the value in exynos_win_config_data. Bug: 214560831 Test: VtsHalGraphicsComposer3_TargetTest Change-Id: I5b350ec4736f60b49fed5db3756169a156bb42dd
Diffstat (limited to 'hwc3/impl/HalImpl.cpp')
-rw-r--r--hwc3/impl/HalImpl.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/hwc3/impl/HalImpl.cpp b/hwc3/impl/HalImpl.cpp
index 011fd43..8da3c0e 100644
--- a/hwc3/impl/HalImpl.cpp
+++ b/hwc3/impl/HalImpl.cpp
@@ -1012,6 +1012,18 @@ int32_t HalImpl::getRCDLayerSupport(int64_t display, bool& outSupport) {
return halDisplay->getRCDLayerSupport(outSupport);
}
+int32_t HalImpl::setLayerBlockingRegion(
+ int64_t display, int64_t layer,
+ const std::vector<std::optional<common::Rect>>& blockingRegion) {
+ ExynosLayer* halLayer;
+ RET_IF_ERR(getHalLayer(display, layer, halLayer));
+
+ std::vector<hwc_rect_t> halBlockingRegion;
+ a2h::translate(blockingRegion, halBlockingRegion);
+
+ return halLayer->setLayerBlockingRegion(halBlockingRegion);
+}
+
int32_t HalImpl::getDisplayIdleTimerSupport(int64_t display, bool& outSupport) {
ExynosDisplay* halDisplay;
RET_IF_ERR(getHalDisplay(display, halDisplay));