Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec523137 authored by Huihong Luo's avatar Huihong Luo Committed by Automerger Merge Worker
Browse files

Merge "Re-introduce debug.sf.latch_unsignaled" into sc-dev am: 623322a8

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15004490

Change-Id: Ie60725a50c12f929a9ff2bc181e360edc46a33f2
parents 438d3529 623322a8
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -125,11 +125,16 @@ bool BufferQueueLayer::isBufferDue(nsecs_t expectedPresentTime) const {
// -----------------------------------------------------------------------

bool BufferQueueLayer::fenceHasSignaled() const {
    Mutex::Autolock lock(mQueueItemLock);

    if (SurfaceFlinger::enableLatchUnsignaled) {
        return true;
    }

    if (!hasFrameUpdate()) {
        return true;
    }

    Mutex::Autolock lock(mQueueItemLock);
    if (mQueueItems[0].item.mIsDroppable) {
        // Even though this buffer's fence may not have signaled yet, it could
        // be replaced by another buffer before it has a chance to, which means
+4 −0
Original line number Diff line number Diff line
@@ -635,6 +635,10 @@ FloatRect BufferStateLayer::computeSourceBounds(const FloatRect& parentBounds) c
// Interface implementation for BufferLayer
// -----------------------------------------------------------------------
bool BufferStateLayer::fenceHasSignaled() const {
    if (SurfaceFlinger::enableLatchUnsignaled) {
        return true;
    }

    const bool fenceSignaled =
            getDrawingState().acquireFence->getStatus() == Fence::Status::Signaled;
    if (!fenceSignaled) {
+4 −1
Original line number Diff line number Diff line
@@ -310,6 +310,7 @@ Dataspace SurfaceFlinger::wideColorGamutCompositionDataspace = Dataspace::V0_SRG
ui::PixelFormat SurfaceFlinger::wideColorGamutCompositionPixelFormat = ui::PixelFormat::RGBA_8888;
bool SurfaceFlinger::useFrameRateApi;
bool SurfaceFlinger::enableSdrDimming;
bool SurfaceFlinger::enableLatchUnsignaled;

std::string decodeDisplayColorSetting(DisplayColorSetting displayColorSetting) {
    switch(displayColorSetting) {
@@ -479,6 +480,8 @@ SurfaceFlinger::SurfaceFlinger(Factory& factory) : SurfaceFlinger(factory, SkipI

    // Debug property overrides ro. property
    enableSdrDimming = property_get_bool("debug.sf.enable_sdr_dimming", enable_sdr_dimming(false));

    enableLatchUnsignaled = base::GetBoolProperty("debug.sf.latch_unsignaled"s, false);
}

SurfaceFlinger::~SurfaceFlinger() = default;
@@ -3566,7 +3569,7 @@ bool SurfaceFlinger::transactionIsReadyToBeApplied(
    for (const ComposerState& state : states) {
        const layer_state_t& s = state.state;
        const bool acquireFenceChanged = (s.what & layer_state_t::eAcquireFenceChanged);
        if (acquireFenceChanged && s.acquireFence &&
        if (acquireFenceChanged && s.acquireFence && !enableLatchUnsignaled &&
            s.acquireFence->getStatus() == Fence::Status::Unsignaled) {
            ATRACE_NAME("fence unsignaled");
            return false;
+2 −0
Original line number Diff line number Diff line
@@ -270,6 +270,8 @@ public:
    // being treated as native display brightness
    static bool enableSdrDimming;

    static bool enableLatchUnsignaled;

    // must be called before clients can connect
    void init() ANDROID_API;