Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HWComposer : Prevent FB de-allocation with HWC 1.1+ #1

Open
wants to merge 9 commits into
base: 8.0
Choose a base branch
from
Open

HWComposer : Prevent FB de-allocation with HWC 1.1+ #1

wants to merge 9 commits into from

Conversation

kunalshah912
Copy link

No description provided.

luk1337 and others added 9 commits August 29, 2017 10:04
Author: Ricardo Cerqueira <[email protected]>
Date:   Sat Nov 24 23:11:49 2012 +0000

    surfaceflinger: Reimplement hwrotation

    Change-Id: Ia26bb36b5b6de132af49c272c4472ad2703afbda

    Fix boot animation rotation problem when ro.sf.hwrotation is set to 90 or 270

    Change-Id: I7ad3c83e23ce38280818ec5283d173d50c889531

    sf: Only apply hwrotation to primary displays

    Change-Id: Ib51030cec5ce7609f12be9a5e46310f75442b680

    surfaceflinger: odd hw rotation (90/270) patch for swapping width/height

    This patch works in addition to the following commit
    re-implementing ro.sf.hwrotation:
    CyanogenMod/android_frameworks_native@7d28343

    When using values of 90 and 270 for ro.sf.hwrotation the
    LCD width and height also need to be swapped to display properly.

    Change-Id: I2874fdb8f8d8b855df6d62d338c9a22360491973
    NOTE: This patch does not fix the initial startup of bootanimation

    surfaceflinger: hwc1: Fix hwrotation

    Change-Id: I1f8defb108ff944f07ac32e8b147d1d87e7089e0

Author: Christopher N. Hesse <[email protected]>
Date:   Thu Aug 10 00:10:37 2017 +0200

    SF: Improve hwrotation handling

    Avoid getprop() calls in performance critical display
    code paths.
    Instead of querying the property each time we need it,
    we read it once during initialization and then reuse
    the cached value.

    This is more appropriate here because we do not expect
    the value to change at runtime. In fact, this property
    behaves like a compile time constant in the real world:
    Set it once and never again (because the angle of your
    panel is fixed and does not change after the device
    leaves the factory).

    Change-Id: I55c4131735a65c7bdde8b00c166913bffa6c4ec3

Change-Id: I9eb5728a11b08548af21edaeb4d3905ab4b3a833
Change-Id: If61a7e7bf2d8b2665db7ca57ed68a4462d0c1783
Change-Id: Ieca4e54439c47a817aaa6a9b6fabcee750ffc0c2
Even though HWComposer will not use FB HAL functionality when
working with newer HWC API, the FB instance should be keept alive
to prevent destruction of flip chain.

Change-Id: I606873fc5d03f676d3a256269e8503d5de5df43e
Signed-off-by: Mykola Ostrovskyy <[email protected]>
Until HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED is supported by
EGL, we have to hard-code FB pixel format.

Change-Id: I0f654c894bbfa82851bb03b85ad59e7c7305f309
Signed-off-by: Mykola Ostrovskyy <[email protected]>
Change-Id: I96fe0afc740abae79c6ebc7b7af1e3d2b22b4704
 * Bring into the desired group to get the best result.

Change-Id: I3bd031074cd7006994736b4c22d0294b6012f662

Revert "Revert "input: Adjust priority""

 * Fixit.

This reverts commit b7299fc50032b325ec259b53713631e681516af6.

Change-Id: Ic0477225e9b0bb3eb4f2c71ab3b2620f56d947c7
Signed-off-by: D. Andrei Măceș <[email protected]>
Squashed commit of the following:

commit 012d3fe41d1d6cd38a0858b59145e9a4447641fa
Author: Hashcode <[email protected]>
Date:   Sun Dec 8 19:36:50 2013 +0000

    sf: Always use opengles for screen capture

    Go back to the usage of GRALLOC_USAGE_HW_TEXTURE and GRALLOC_USAGE_HW_RENDERER
    in captureScreenImplLocked regardless of useReadPixels value

    This fixes the EGL_NO_IMAGE_KHR error returned from
    eglCreateImageKHR (blank images returned from screenshot path)

    Change-Id: I62fe90a081607b9e89c67f3dcfd34c84efc89d35

commit 4866ddf98ac98d8e22a1cd6a21894bb17f274588
Author: Ricardo Cerqueira <[email protected]>
Date:   Thu Oct 31 03:53:39 2013 +0000

    Revert "remove support for glReadPixels screenshot path"

    This reverts commit 3ca76f4.

    Conflicts:
    	include/gui/ISurfaceComposer.h
    	libs/gui/ISurfaceComposer.cpp
    	libs/gui/SurfaceComposerClient.cpp
    	services/surfaceflinger/SurfaceFlinger.cpp
    	services/surfaceflinger/SurfaceFlinger.h

    Change-Id: I8c239e533757af770e418dbb198f5a86c736961f

Change-Id: I8c239e533757af770e418dbb198f5a86c736961f
 * In KitKat and on most Samsung devices, the orientation sensor is
   not getting registered, and makes the compass non-working in a lot
   of apps. This patch enables the sensor for such devices.

Change-Id: I0ebba72ec4aa2cfa02c21a6daff0c356c6793fd0
(cherry picked from commit 98fa6f1152da759ef3eaf36cb16e0aaf2013376a)
(cherry picked from commit 82c4726054919240972745bbcc85e0e27da40aa3)
GzospBot pushed a commit that referenced this pull request Dec 21, 2019
Currently two entities in SurfaceFlinger can set a new display refresh
rate: (1) SurfaceFlinger core, and (2) Scheduler. It's possible for
these two entities to get out of sync in the following way:
1) Scheduler updates the refresh rate to some rate
2) Upper layers call into SurfaceFlinger to update allowed display
configs
3) SurfaceFlinger always sets display rate to max

If the refresh rate from #1 and #3 don't match, it can leave the system
in an inconsistent state, potentially causing visual and power issues.

This change fixes this problem by changing step #3: Instead of always
choosing the max refresh rate, SurfaceFlinger queries the optimal
refresh rate from Scheduler. If that rate isn't available, only then
does SurfaceFlinger default to the maximum rate.

Bug: 139557239
Test: atest libsurfaceflinger_unittest
Test: Manual:
    1) Start with SurfaceFlinger idling (Scheduler selected
    RefreshRateType::DEFAULT)
    2) Trigger a change in allowed display configs from
    DisplayModeDirector
    3) Make sure the RefreshRateType SurfaceFlinger sets is DEFAULT
    instead of PERFORMANCE
Change-Id: Ia85a60fde55afaed5106462942e0bb77652ec737
Merged-In: Ia85a60fde55afaed5106462942e0bb77652ec737
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants