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

Commit 9422c1a6 authored by Jim Shargo's avatar Jim Shargo
Browse files

SurfaceFlinger: use VirtualDisplaySurface2 when flag is set

BYPASS_IGBP_IGBC_API_REASON=warren buffers

Bug: 340933138
Flag: com.android.graphics.surfaceflinger.flags.wb_virtualdisplay2
Test: n/a
Change-Id: I3d1f9c5793376ee9b8f34382de9fb006deeb312b
parent 67283d06
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -135,6 +135,7 @@
#include "DisplayHardware/ComposerHal.h"
#include "DisplayHardware/FramebufferSurface.h"
#include "DisplayHardware/Hal.h"
#include "DisplayHardware/VirtualDisplay/VirtualDisplaySurface2.h"
#include "DisplayHardware/VirtualDisplaySurface.h"
#include "Effects/Daltonizer.h"
#include "FpsReporter.h"
@@ -4063,11 +4064,21 @@ void SurfaceFlinger::processDisplayAdded(const wp<IBinder>& displayToken,

    if (state.isVirtual()) {
        LOG_FATAL_IF(!virtualDisplayIdVariantOpt);
        auto surface = sp<VirtualDisplaySurface>::make(getHwComposer(), *virtualDisplayIdVariantOpt,
        if (FlagManager::getInstance().wb_virtualdisplay2()) {
            auto surface =
                    sp<VirtualDisplaySurface2>::make(getHwComposer(), *virtualDisplayIdVariantOpt,
                                                     state.displayName,
                                                     sp<Surface>::make(state.surface));
            displaySurface = surface;
            producer = surface->getCompositionSurface()->getIGraphicBufferProducer();
        } else {
            auto surface =
                    sp<VirtualDisplaySurface>::make(getHwComposer(), *virtualDisplayIdVariantOpt,
                                                    state.surface, bqProducer, bqConsumer,
                                                    state.displayName);
            displaySurface = surface;
            producer = std::move(surface);
        }
    } else {
        ALOGE_IF(state.surface != nullptr,
                 "adding a supported display, but rendering "