diff options
author | Yichi Chen <yichichen@google.com> | 2022-02-19 07:36:42 +0800 |
---|---|---|
committer | Yichi Chen <yichichen@google.com> | 2022-02-25 10:17:24 +0800 |
commit | 58b3a7376939252231c79373a0fa4cfad160540f (patch) | |
tree | 80832480ea122ca968bc70e2a2b55d7320da6c62 /hwc3/impl/HalImpl.cpp | |
parent | f44db213b052781a63f4902de8a3c97e49b356fd (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.cpp | 12 |
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)); |