summaryrefslogtreecommitdiff
path: root/sdm/libs/hwc2/hwc_display.cpp
AgeCommit message (Collapse)Author
2021-11-30sdm: mark FOD pressed layer by setting a bit on ZPOSDemon000
Change-Id: Ie1503da41766c31c9ec31bbb4282ae9ed62defce
2021-03-16hwc2 : Add scaling rgb layer flag to layer stackBaldev Sahu
Add scaling rgb layer flag to layer stack. This flag is used to avoid idle fallback which causes flicker due to mdp vs gpu output difference Change-Id: I9318e407fd1b56359c2f98de0d62784ee9803ed1
2021-01-11hwc2: Skip SDE composition if all client layers are invalidBaldev Sahu
If all client layers have invalid coordinates, FB target may not get cleared and stale FB content may get composed along with other SDE layers. So skip all layers for such scenario to avoid any artifacts. Change-Id: I806cca9dfac424c6849069406ec4b62387cc2c44
2020-07-10hwc: Allow null fence on client taret buffer.Baldev Sahu
Client keeps track of GPU composition requests and sends -1 fd if there is no need to re draw. CRs-Fixed: 2695433 Change-Id: I310d848a32afecdaf52aa23c513565920fe21de2
2020-05-19hwc2: Don't defer active config settingPadmanabhan Komanduru
SetActiveConfigWithConstraints API makes sure to trigger a Refresh by client and the active config change needs to be submitted and applied in the follow-up draw cycle. Don't defer the active config setting further in HWC HAL. Change-Id: I43c874553722de567ff34b19e6eecdb27b1f4e90
2020-05-19hwc2: Add VRR related Composer 2.4 APIsPadmanabhan Komanduru
Define SetActiveConfigWithConstraints and GetDisplayVsyncPeriod APIs for VRR on Composer 2.4 . Change-Id: Id64e71a9756e183b1d47a285fb6be0cae9ca046e
2020-05-19sdm: Add support for HWC2_ATTRIBUTE_CONFIG_GROUPPadmanabhan Komanduru
Add support for HWC2_ATTRIBUTE_CONFIG_GROUP display attribute. Change-Id: I2000747023da237053aa29bd8645575ab4e924f3
2020-04-08sdm: Implement SetDisplayBrightness, GetDisplayBrightness.Venkat Thogaru
Change-Id: Ica0f0bbb2955ad26fa113728ee152a21e6014b6c CRs-Fixed: 2454377
2020-03-30hwc: Handle validation reset during InternalValidate stateSushil Chauhan
If layer stack needs Client compositiontype , HWC display gets into the Internal Validate state. If validation gets reset by another thread in this state, set the geometry change flag on stack to ensure that Client target gets composed by SF. CRs-Fixed: 2497345 Change-Id: If82ed6e64cb1037f17cfa1ea4877632562ae6ca2
2020-03-12Merge "hwc2: Add support for HDR10PLUS"qctecmdr
2020-03-12Merge "sdm: Remove lock in ResourceDefault implementation"qctecmdr
2020-03-12Merge "sdm: Move resource_impl stop from prepare to postcommit"qctecmdr
2020-03-09hwc2: Add support for HDR10PLUSBaldev Sahu
- Add support HDR10PLUS hdr capability. - Add support for SetLayerPerFrameMetadataBlobs from composer 2.3. - Populate the dynamic metadata from the new composer API into the layer structure and set validate if the data changes. - Prioritize PerFrameMetadata/Blob over ColorMetaData. Change-Id: Idd9b6f4f104d1584cce31a4cb7022e11eb2751ad CRs-Fixed: 2545757 Signed-off-by: Karthi Kandasamy <kartka@codeaurora.org>
2020-03-09hwc2: Additional systrace logs to show skip layers marked by HWC or SFBaldev Sahu
Change-Id: I5f049fba0346508c2edf607aced289a07d5c71b9
2020-03-09hwc2: Fix mismatch in client requested composition in dumpsysBaldev Sahu
Currently when requested layer is marked for skip by hwc, then the dumpsys shows composition types as "Client/Client" instead of "Device/Client". With this fix, we preserve the original composition requested by the client. Change-Id: I18a03cf2228bd9eac30828feba6ba4d42c7cb8f8
2020-03-04sdm: Add support to defer Fps configSushil Chauhan
On Builtin display, add support to defer Fps (Transfer time) config to Comp Manager until number of frames, configured with Vendor properties. CRs-Fixed: 2472355 Change-Id: Ie314136878b5ec15bfafa629b9a89643cf094d49
2020-01-13sdm: clear cached geometry on successful prepareRajavenu Kyatham
- multiple prepare rejection happen in doze suspend so clear the cached geometry change only on successful prepare. CRs-Fixed: 2559596 Change-Id: I01ea8761fb8e7139a12748e6c161579e415524ad
2020-01-13sdm: set geometry change on doze suspendRajavenu Kyatham
- on doze suspend, commits are not allowed and it misses the geometry changes. CRs-Fixed: 2483527 Change-Id: I13a0086da159fc521a2c65b84406ba957b8759d8
2019-10-16Revert "sdm: Allow Skip Validate after Idle Power Collapse"Ramakant Singh
This reverts commit b199d3e31501125d6d0b43d9070ed32a6cbc6751. Change-Id: I6841f0c944ae8ad8922f525996a9bbb6097e4eb3 CRs-Fixed: 2541322
2019-09-06Merge "sdm: Trigger validate upon lut swap."qctecmdr
2019-09-03sdm: Trigger validate upon lut swap.Pullakavi Srinivas
drawcycle N: Lut index: A swap: 1 N+1: Lut index: B swap: 1 N+2: Lut index: N/A swap: 1 In N+2 cycle, Qseed will not program Lut index and just sets swap flag to set A. Triggering validate will result in resetting if this flag in steady state. CRs-Fixed: 2430749 Change-Id: Ia3117d3b201bad9ade679fb8e84904a16a94100b
2019-09-03hwc2: Close fbt fence on Deinit.Pullakavi Srinivas
Create/Destroy can result in fbt fence fd leak. Change-Id: Ice19f0325e4f5e88d248b323d1ac45227d3f3ba3
2019-08-12sdm: close the release fences properlyRajavenu Kyatham
- In asynchronous power state updates, release fences are closed properly but not in synchronous case, so close the release fences. CRs-Fixed: 2501157 Change-Id: Iee9bfc612ca265ad680280d52e847bc547389e50
2019-08-09Merge "hwc2: Couple SetActiveConfig to commit" into display.lnx.5.1Linux Build Service Account
2019-08-06hwc2: Couple SetActiveConfig to commitPullakavi Srinivas
Active config change needs commit in DRM architecture. Cache the config index to be applied and trigger refresh. Upon refresh display can enter into new mode. CRs-Fixed: 2498494 Change-Id: I42b1bdd64c3eed04f76b62603d274ae754167972
2019-07-26Merge "hwc2: Enforce to update color mode when panel reset" into display.lnx.5.1Linux Build Service Account
2019-07-16hwc2: Enforce to update color mode when panel resetQing Huang
Enforce to update color mode when panel power reset. Change fix the issue of HDR effect disappears after panel reset which is triggered by ESD. Change-Id: I0e68c79ca206965c5f646724e50a0415c32616cf
2019-07-15Merge "sdm: Allow Skip Validate after Idle Power Collapse" into display.lnx.5.1Linux Build Service Account
2019-06-28Merge "hwc2: Set geometry changed on configuration change"qctecmdr
2019-06-24sdm: Allow Skip Validate after Idle Power CollapseSushil Chauhan
After receiving Idle Power collapse event in HWC, Skip Validate was disabled with a cost of 2ms in ValidateDisplayInternal in next frame. Skip Validate can be allowed with current Idle Power collapse policy. CRs-Fixed: 2478233 Change-Id: I5e23c8a97bc2e7205c8e62886e870c1d5936abf6
2019-06-22Merge "hwc2: Trigger refresh if prepare fails" into display.lnx.5.1Linux Build Service Account
2019-06-22Merge "sdm: Handle color mode setting in ↵Linux Build Service Account
ApplyCurrentColorModeWithRenderIntent()" into display.lnx.5.1
2019-06-20hwc2: Set geometry changed on configuration changeNaseer Ahmed
Cache based composition cannot rely on the client target being unchanged after a configuration change Change-Id: I15d109ddc08b57f70e192a9b17e184e2dc0c50db CRs-Fixed: 2476064
2019-06-19sdm: Handle color mode setting in ApplyCurrentColorModeWithRenderIntent()Gousemoodhin Nadaf
If the panel does not support color modes, do not set color mode. Change-Id: Ic5ca1680327e3b1eea94e363cbb5dfb5b2665af3 CRs-Fixed: 2459835
2019-06-14sdm: Query strategy if there is a need to validatePullakavi Srinivas
CRs-Fixed: 2407098 Change-Id: Iaf64932b6182f54d9e6ed37dde24e8d2b5a49234
2019-06-14hwc2: Trigger refresh if prepare failsRamakant Singh
Prepare cycle can fail on a newly connected display if insufficient pipes are available at this moment. Trigger refresh so that the other displays can free up pipes and a valid content can be attached to virtual display. CRs-Fixed: 2419907 Change-Id: I275fe779380414c8d9bda33c34a7738b4f01c34f
2019-06-13Merge "hwc2: Set cursor composition if it is not skip layer."qctecmdr
2019-06-11hwc2: Change Get and Destroy Layer Error to WarningRamakant Singh
Since layer creation and destruction are in the hands of applications, SDM needs not flag an error if an invalid operation is requested on a layer. Appropriate error code should be returned and client is responsible to handle. Change-Id: Ic6d2b08cf6391765028a3e158c0c47033d24916a
2019-06-11hwc2: Set cursor composition if it is not skip layer.Pullakavi Srinivas
Some scenarios demand GPU composition even though client expects device composition. Ex: First frame after display connection, non-integral source crop etc; In such cases, prioritize skip flag over composition types. CRs-Fixed: 2452357 Change-Id: I7e6c70c46b1b3744e7872dff34961991f879d269
2019-06-09hwc2: Add support to set powerstate asynchronously.Srinivas Pullakavi
-- Create dummy displays for all displays that support async update. -- Map real and dummy displays as part of HWC Init. -- Upon call from client route all calls to dummy displays. This includes layerstack operations ie; create, destroy, get/set params etc. -- Post powerstate, get the current layerstack from dummy display and update it onto real display. Change-Id: Ib6ab3b31e28cbc9f609933eaece940a6b9eee3ba CRs-fixed: 2462204
2019-05-17Merge "display: Enumerate user color modes"qctecmdr
2019-05-14Merge "sdm: Avoid Refresh in SetActiveConfig API handling"qctecmdr
2019-05-08hwc: Fix to find HDR modeNaseer Ahmed
Use the colorimetric HDR mode if there is no HDR mode found with the current render intent. Bug: 131363224 CRs-Fixed: 2445568 Change-Id: I10e7a0df736e17963e05ce79b4db3f304489200d
2019-05-08sdm: Avoid Refresh in SetActiveConfig API handlingSushil Chauhan
Refresh enables HIDL to convert FastPath draw cycle from SF to Slow Path draw cycle, having separate ValidateDisplay and PresentDisplay IPC calls. Hence, remove Refresh callback to optimize the first draw cycle after SetActiveConfig API call. Display HAL should take care to update CRTC Mode in every use case. Change-Id: I0cfb1766a8e0b71f53314d8e8f70492fcb326e54
2019-05-06display: Enumerate user color modesQing Huang
Enumerate user color modes and report to SF during the initialization, user modes may not be read if partation are encrypted during the boot up. Change fixes the issue of set color mode failed from QDCM mobile APK. Change-Id: Ia582cac53936348c79e3612416bb240444bc4ca5
2019-05-03sdm: Move display panel info to dumpsysNaseer Ahmed
CRs-Fixed: 2437437 Bug: 130363301 Change-Id: Ic1b3d7f20b03cb47f82d8b61dfaf2e4c24ff150e
2019-05-02hwc2: enable the vsync on the display requested by SFPadmanabhan Komanduru
-- Avoid calculating the next vsync source based on the active display list in hwc2. -- Enable/disable the vsync on the HWC display as requested by SurfaceFlinger. Change-Id: I901be3d06ad1102d30232e6fb8dbb0d1709b5a68 CRs-fixed: 2429625
2019-05-02hwc2: Clean up display slot handling.Pullakavi Srinivas
-- Deprecate SetDisplayIndex api. -- Query for max display supported displays per type. -- Create display_map corresponding to capabilities. -- Fail creation of any display if free slot isn't available. Change-Id: Ic22f5695e7425a68ca7d4c85f0b85703055abe63 CRs-fixed: 2429625
2019-05-01sdm: Optimize the draw cycles where Frame ROI doesn't changeSushil Chauhan
With Partial Update feature enabled, SDM can skip the Validate Phase, if one or more layers have surface damage update, does not have any other LayerUpdate or Geometry change and the calculated Frame ROI haven't changed. It reduces CPU instructions in the draw cycles where only Surface Damage gets updated on the layer(s). CRs-Fixed: 2430570 Change-Id: I1e6e2712d9011f3477c3ab87b9470a0529edc8b8
2019-04-18hwc2: Avoid drawcycles with non-empty dirty regionPadmanabhan Komanduru
--Reject drawcycle if following conditions are met. 1. No change in layerstack attributes. 2. No new buffer latched. 3. No refresh request triggered by HWC. 4. This display is not source of vsync. --Do not return Present failed error if display is inactive. SF wouldn't query for release fence upon errors. CRs-Fixed: 2354696 Change-Id: I28174a09f4b5046d25c953f568f981fdb80b42a8