summaryrefslogtreecommitdiff
path: root/libhwc2.1
AgeCommit message (Collapse)Author
2024-02-04libdrmresource: Add missing epoll_event.h includeHEADuminekorazorloves
Fixes "error: variable has incomplete type 'struct epoll_event'" Change-Id: I7e21e5aa176e01142d580fac85d956c333b0c52d
2024-02-04hwc: Depend on qti kernel headersMichael Bestas
Change-Id: If1b72ad7b36d658bc85587bbea6caf85e520519d
2023-07-19libhwc2.1: revert behavior of setLayerCompositionType()Wiwit Rifa'i
This is partial revert of ag/23598344. This will fix power regression & disappearing cursor issues caused by that patch. In ag/23598344, we didn't set mGeometryChanged if the composition is changed back to the original composition (initially set by setLayerCompositionType()) after falling back to client composition in the previous frame. But, it causes some regressions, e.g. power jump and disappearing cursor issues. Thus, this will revert to the previous behavior i.e. to always set mGeometryChanged as dirty whenever we change mCompositionType. Bug: 289010449 Test: v2/android-power-te/functional_media_test_suite/* Test: Use mouse and the cursor shouldn't disappear unexpectedly (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f6f0318b90c6e41d3d7bd456ca32a23b16399aaf) Merged-In: If73dc0353c9e3ede93ff02e675aa879bc54287e4 Change-Id: If73dc0353c9e3ede93ff02e675aa879bc54287e4
2023-06-16Merge "libhwc2.1: Skip redundant onRefresh in histogramSample" into udc-devTreehugger Robot
2023-06-07libhwc2.1: use mRequestedCompositionType to check indicator layerWiwit Rifa'i
Instead of checking (mCompositionType == REFRESH_RATE_INDICATOR), we should check mRequestedCompositionType to check whether a layer is for refresh rate indicator or not. This is because mCompositionType can be changed to CLIENT when acceptDisplayChanges() is called. Thus, we should use mRequestedCompositionType that will only be changed by setLayerCompositionType(). Bug: 283352279 Test: refresh rate indicator can enter idle after play HDR video on YT Change-Id: I5381157107550ed380c9671fe712285b1b53f814
2023-06-06libhwc2.1: mark as non-frame update for reverting composition to originalWiwit Rifa'i
When some layers fallback to CLIENT composition, mCompositionType will be set to CLIENT during acceptDisplayChanges() since SF will update its state according to the validated type. But, SF may revert the requested composition back to the original composition (e.g. DEVICE), so HWC should not consider it as a frame update if there's no other update. This will prevent refresh rate indicator to increase unexpectedly when updating the refresh rate indicator but there are some layers fallback to client composition. Bug: 277999360 Bug: 283352279 Test: refresh rate indicator can enter idle on wallpaper & style Change-Id: Iaa33fbad555d7a0de65d77edc2a287c8e8940dc3 Merged-In: Iaa33fbad555d7a0de65d77edc2a287c8e8940dc3
2023-06-06libhwc2.1: Skip redundant onRefresh in histogramSampleLeo Chen
DPU driver maintains always-on histogram engine state with up to date histogram data. Therefore we don't have explicitly to trigger onRefresh in case histogram configuration does not change. Test: aidl_hist_client 500 500 1000 1999 340 340 344 POST 1000000 Bug: 261376040 Change-Id: I44824ee836adb66aeb214c371a11ed350d13b069 Signed-off-by: Leo Chen <yinchiuan@google.com>
2023-05-26Merge "libhwc2.1: correct refresh rate reference at toggling lhbm" into udc-devShiyong Li
2023-05-26libhwc2.1: histogram: fix race conditionOleg Matcovschi
Fix potential race condition when data is received before setHistrogramControl() returns and mHistReq_pending is set to true. TODO: Implement timeout for requestHist(). Bug: 261376040 Bug: 277948998 Change-Id: Idd8b191508af19f1ce9bdd63d7fdf6a39fe0bd6e Merged-In: Idd8b191508af19f1ce9bdd63d7fdf6a39fe0bd6e Signed-off-by: Oleg Matcovschi <omatcovschi@google.com>
2023-05-26libhwc2.1: histogram: pass parameters as referencesOleg Matcovschi
Bug: 277948998 Bug: 261376040 Change-Id: I7021e0445e4b938b98eaa7dab54d5622ada2957b Merged-In: I7021e0445e4b938b98eaa7dab54d5622ada2957b Signed-off-by: Oleg Matcovschi <omatcovschi@google.com>
2023-05-26libhwc2.1: correct refresh rate reference at toggling lhbmShiyong Li
The refresh rate associated with mActiveConfig takes one or more frames to actually becomre effective on hardware, and can't be used as reference to decide if it's needed to set new refresh rate while toggling lhbm. Use drm value instead, which can't be blocked by enableConfigSetting() and takes 1 frame at most to reflect on hardware. Bug: 280727927 Test: check udfps enrollment failure rate Signed-off-by: Shiyong Li <shiyongli@google.com> Change-Id: Ie2f39f73761cc6f9fe51637aa3ebf8e5d85026e5
2023-05-19Merge "libhwc2.1 : reset assigned resource when a layer is destroyed" into ↵Long Ling
udc-dev
2023-05-19Merge "libhwc2.1: add trace for setActiveConfigWithConstraints()" into udc-devJoen Chen
2023-05-19libhwc2.1: add trace for setActiveConfigWithConstraints()Joen Chen
HWC adds trace for setActiveConfigWithConstraints() to show the desire time and isConfigEnabled() Bug: 280460655 Test: run vts VtsHalGraphicsComposerV2_4TargetTest -t Per Instance/GraphicsComposerHidlTest#setActiveConfigWith Constraints_Delayed/0_default Change-Id: I6796d054f463982050b48a70b9e4300d1ddc9ac4
2023-05-17libhwc2.1: each display should have respective boot propertyJoen Chen
HWC should provide each display with a respective boot property. Considering OTA, we keep the property string for display with id 0, and give another property string for other displays. Bug: 282126684 Test: VTS “run vts -m VtsHalGraphicsComposer3_TargetTest -t PerInstance/GraphicsComposerAidlTest#GetPreferredBootDisplay Config/0_android_hardware_graphics_composer3_IComposer_default” Change-Id: Ieb00906bdf4ad949710e3469476cab0df734b9b4
2023-05-16libhwc2.1 : reset assigned resource when a layer is destroyedMuncheol Park
HWC service is crashed due to accessing memory which is already freed. In destroyLayer, it only delete layer object and pointer in ExynosDisplay. But ExynosMPP still have pointer of deleted layer object in mAssignedSource. So when validateDisplay called, it refers the freed memory in resetAssignedState() layer->resetAssignedResource() is added before delete layer object so that remove layer info in ExynosMPP. Bug: 264510390 Test: stop surfaceflinger by command "setprop ctl.stop surfaceflinger" Change-Id: I5191ae334c7566c8fe503c06784aae0e6be1ea81 (cherry picked from commit 261c8ec1328812c2e99e9cac86c635ba875990bb)
2023-05-16Merge "FBManager: use dedicated map for caching M2M secure layers" into udc-devMidas Chien
2023-05-15Merge "libhwc2.1: update IDisplay version to 8" into udc-devWeizhung Ding
2023-05-15FBManager: use dedicated map for caching M2M secure layersMidas Chien
The quota of secure memory is rare and limited. HWC should release it once it is inused quickly. Itʼs easier to use a dedicated map to control the life cycle of cached M2M secure buffers. Bug: 278836996 Test: play secure video with various resolutions and rotate screen Test: play video with various resolutions and rotate screen Test: camera, record, chrome, AOD Change-Id: Ic7a83773b43fcd27737ff514cf67754fdb1750d0
2023-05-12libhwc2.1: disconnect link between plane and crtc after power onjoenchen
HWC cannot just assign a plane’s crtc from crtc-0 to crtc-1 directly, and it must turn off the plane first Bug: 277874775 Test: enable/disable DDC in translation app Change-Id: I7771821fc618528f63610449c506ed93ec8a8ddc
2023-05-12libhwc2.1: update IDisplay version to 8Weizhung Ding
Bug: 281630752 Test: build Change-Id: I2366eeb95fdf5767d75944d65061af25d39c78a4
2023-05-10libhwc2.1: skip to disable unsupported planeYongWook Shin
When disable unused planes, the planes which are unsupported by CRTC should be skipped to avoid abnormal configurations. Bug: 238373481 Bug: 263989425 Test: power on/off display Change-Id: Ib14f03446b855d87c5f660775c6e803abb596339 Signed-off-by: YongWook Shin <yongwook.shin@samsung.com> Signed-off-by: Petri Gynther <pgynther@google.com> Merged-In: I627afe439e0a744532ff3aa4cf094dc4fd9d4b1d
2023-05-10Merge "libhwc2.1: skip async_off if multiple displays are enabled" into udc-devWeizhung Ding
2023-05-10libhwc2.1: skip async_off if multiple displays are enabledWeizhung Ding
Bug: 271818029 Test: display on/off Change-Id: Id1de11148e988fc3c6a831c40c6fc0de42aa04b8
2023-05-05libhwc2.1: add lock protection in checkBtsReassignResourceMidas Chien
Add mutex lock when accessing mLayers to avoid race condition. Bug: 271198385 Test: rr switch, AOD, video, camera Change-Id: I50985f896883e4001ffc08a582800ebde625fe97
2023-04-25libhwc2.1: actively set lhbm desired refresh rate during lhbm periodShiyong Li
- set lhbm desired refresh rate at enabling lhbm and restore SF desired one at disabling if needed. - always notify SF with it's desired Vsync if SF's refresh rate != lhbm's Bug: 250979028 Test: udfps auth with SmoothDisplay=on/off, check perfetto trace Signed-off-by: Shiyong Li <shiyongli@google.com> Change-Id: If011dbf12c1f979a50988cc375e74c7f53617d68
2023-04-25libhwc2.1: add getRefreshRate() and getVsyncPeriod() functionsShiyong Li
Bug: 250979028 Change-Id: I66c9fbc05b42c6376ec852ee1555b2655ea9635b Signed-off-by: Shiyong Li <shiyongli@google.com>
2023-03-22Merge "libhwc2.1: RGB HDR layer requires DTM" into udc-devLong Ling
2023-03-21libhwc2.1: RGB HDR layer requires DTMLong Ling
In current code DTM is not required by HDR layer. It works for HDR video because the HW layer processes video layer has the DTM stage. This change will ensure RGB HDR layer gets tone mapped. Bug: 266757412 Test: show and check HDR10, HDR10+ video and RGB HDR layer Change-Id: Id1101b9b59fe267c9904c5309c36f75c1cbdddce
2023-03-21Merge "libhwc2.1: clear brightness dirty flag if go sysfs path" into udc-devTreeHugger Robot
2023-03-20libhwc2.1: clear brightness dirty flag if go sysfs pathlinpeter
When go sysfs path, it does not clear brightness dirty flag. It will apply the privious brightness via drm path. Bug: 272629068 Bug: 272202831 Test: set brightness via HWCService cmd Change-Id: I6d320a5a9673409bc7984eaf02d256c7048ab31e
2023-03-17Merge "libhwc2.1: change vstride alignment to 16" into udc-devTreeHugger Robot
2023-03-16Merge "libhwc2.1: keep vblank enabled for at least the next TE" into udc-devTreeHugger Robot
2023-03-15libhwc2.1: add MALI_GRALLOC_FORMAT_INTERNAL_NV21 formatMidas Chien
Bug: 273397953 Test: check video comp type in camera preview, record Change-Id: I8f020860728decbe61bd991226371c63e092ee68
2023-03-14libhwc2.1: change vstride alignment to 16Midas Chien
The vstride alignment of HAL_PIXEL_FORMAT_GOOGLE_NV12_SP and HAL_PIXEL_FORMAT_GOOGLE_NV12_SP_10B are changed to 16B. Bug: 267636459 Test: build Change-Id: Iddc291a0cdff739b74699ef7fdf8d490dd5d5ddd
2023-03-14Merge "libdevice: add bounds check when parsing HDR dynamic metadata" into ↵Wen Chang Liu
udc-dev
2023-03-10Merge "libhwc2.1: allow EDID descriptor to be modified" into udc-devJeremy DeHaan
2023-03-10libdevice: add bounds check when parsing HDR dynamic metadatawenchangliu
Bug: 252764175 Test: run PoC on hwasan build Test: run cts -m CtsMediaDecoderTestCases -t android.media.decoder.cts.HDRDecoderTest Change-Id: I424bd4624ee7838fcdf6e40d20e0686c17c20de8
2023-03-07libhwc2.1: keep vblank enabled for at least the next TEKen Huang
Display driver misses TE irq due to turn off vblank right after frame updates. Keep vblank enabled for more 1ms to avoid turning off vblank right before TE irq is triggered. Bug: 238382809 Test: check trace about TE irq Change-Id: Ie1891d02adc717be70cb8ef73c53b6e49e0a10ab (cherry picked from commit 11b43f785af16507ef9583949631180a4d2e8d15)
2023-03-06libhwc2.1: allow EDID descriptor to be modifiedJeremy DeHaan
Allow the EDID monitor descriptor to be modified so that different panel revisions can have unique display ID's calculated. Bug: 217472351 Change-Id: I162778e6e30b2aac872d8070ce94b90c44e0619b Signed-off-by: Jeremy DeHaan <jdehaan@google.com>
2023-03-06Merge changes from topic "hwc-rri-callback-impl" into udc-devWiwit Rifa'i
* changes: hwc3: add debug to trigger refresh rate indicator update hwc3: add support for refresh rate indicator callback
2023-03-03Merge changes from topic "fixTDM" into udc-devJoen Chen
* changes: libhwc2.1: move calculateHWResourceAmount() after preProcessLayer() libhwc2.1: fix wrong overrinding of TDM
2023-03-02hwc3: add debug to trigger refresh rate indicator updateWiwit Rifa'i
Add new debug mechanism to trigger refresh rate indicator update event using the vndservice command. The command is in format of <HWC Display ID> <Refresh Rate> Bug: 267825022 Test: vndservice call Exynos.HWCService 1011 i32 0 i32 5 Change-Id: I6b81004e0fae0777d215914ec158988361bce57e
2023-03-02hwc3: add support for refresh rate indicator callbackWiwit Rifa'i
This will add support in HWC to expose the refresh rate in panel to SF using HWC3 callback API so that SF can update the refresh rate overlay indicator to the actual refresh rate in the panel. HWC will monitor the panel refresh rate based on some sysfs nodes. Bug: 267825022 Test: enable refresh rate indicator, wait for idle, AOD Change-Id: Ibc80d66eae6b21c3cf84d35fa819e97ccc509ede
2023-03-02libhwc2.1: support SKIP_VALIDATE by defaultMidas Chien
SKIP_VALIDATE is deprecated in HWC3 and it is not used by SF in U. It should be considered enabled by default. Start from HWC3, don't add SKIP_VALIDATE to the capability list and change code to support it by default. Bug: 270479799 Test: VtsHalGraphicsComposer3_TargetTest Test: VtsHalGraphicsComposerV2_4TargetTest Change-Id: I30979e56b8be96c6478e5ceaadfbc1145537e804
2023-03-01libhwc2.1: keep refresh rate unchangeable if LHBM is enabledShiyong Li
- block refresh rate switching before enabling LHBM and unblock after disabling. - set 1 second timeout to unblock in case disabling action is not called on time somehow. Bug: 268991972 Test: lock/unlock screen by fingerprint Change-Id: I5703d89ca8482a3ff7b70795705ac01fd3c2b8d2 Signed-off-by: Shiyong Li <shiyongli@google.com>
2023-02-28Revert "Revert "libhwc2.1: cleanup of BrightnessController code""Shiyong Li
This reverts commit f87ab4e4b8b0f97e50ae34ada3a048ba08d5aeea. Bug: 268991972 Change-Id: Iba217f322594360f29553aa693efdaaacafaa34c Signed-off-by: Shiyong Li <shiyongli@google.com>
2023-02-28Revert "Revert "libhwc2.1: support NS mode peak refresh rate""Shiyong Li
This reverts commit ed3e3da84aa70c356ea5a469b2543b8f6b7b5f69. Bug: 268991972 Change-Id: Ideb7eb81c7693b3800abefe8171515617fca8171 Signed-off-by: Shiyong Li <shiyongli@google.com>
2023-02-28Revert "Revert "libhwc2.1: wait for peak refresh rate via sysfs node""Shiyong Li
This reverts commit 334e1fee2f8204c8b30714291d60c19077e6df9f. Bug: 268991972 Change-Id: Ie0d344821b407ca0c3896dc5dc2a4f6afdf68eaf Signed-off-by: Shiyong Li <shiyongli@google.com>
2023-02-24libhwc2.1: move calculateHWResourceAmount() after preProcessLayer()joenchen
The calculateHWResourceAmount's original place does not have ExynosImage size information yet, so its calculation for scaling/rotation is wrong. calculateHWResourceAmount() should be moved after preProcessLayer(), and it needs to call setExynosImage() to ensure the correct scaling/rotation calculation. Bug: 191421040 Test: test multiple scaling/rotation layers by hwc-tester Change-Id: I286f74592889f57f0ec9e603efb99ee1d9381887