Revert "SF: Introduce struct surfaceflinger::Config"
Revert submission 23423266-SF-Config
Reason for revert: UIBench Jank Regression reported in b/288665387
Reverted changes: /q/submissionid:23423266-SF-Config
Change-Id: I0942f99fec1f211e607e3ff44da2dfa0e30d34c2
diff --git a/services/surfaceflinger/fuzzer/surfaceflinger_displayhardware_fuzzer.cpp b/services/surfaceflinger/fuzzer/surfaceflinger_displayhardware_fuzzer.cpp
index d296c47..9fac14e 100644
--- a/services/surfaceflinger/fuzzer/surfaceflinger_displayhardware_fuzzer.cpp
+++ b/services/surfaceflinger/fuzzer/surfaceflinger_displayhardware_fuzzer.cpp
@@ -481,8 +481,7 @@
sp<FramebufferSurface> surface =
sp<FramebufferSurface>::make(mHwc, mPhysicalDisplayId, bqConsumer,
- getFuzzedSize() /*size*/, getFuzzedSize() /*maxSize*/,
- mFdp.PickValueInArray(kMaxFrameBufferAcquiredBuffers));
+ getFuzzedSize() /*size*/, getFuzzedSize() /*maxSize*/);
surface->beginFrame(mFdp.ConsumeBool());
surface->prepareFrame(mFdp.PickValueInArray(kCompositionTypes));
@@ -516,8 +515,7 @@
auto surface =
sp<VirtualDisplaySurface>::make(mHwc, VirtualDisplayId, sink, bqProducer, bqConsumer,
- mFdp.ConsumeRandomLengthString().c_str() /*name*/,
- mFdp.ConsumeBool() /* useHwcForRgbToYuv */);
+ mFdp.ConsumeRandomLengthString().c_str() /*name*/);
surface->beginFrame(mFdp.ConsumeBool());
surface->prepareFrame(mFdp.PickValueInArray(kCompositionTypes));
diff --git a/services/surfaceflinger/fuzzer/surfaceflinger_fuzzer.cpp b/services/surfaceflinger/fuzzer/surfaceflinger_fuzzer.cpp
index df342dc..80943b5 100644
--- a/services/surfaceflinger/fuzzer/surfaceflinger_fuzzer.cpp
+++ b/services/surfaceflinger/fuzzer/surfaceflinger_fuzzer.cpp
@@ -124,20 +124,19 @@
mFlinger->setSchedFifo(mFdp.ConsumeBool());
mFlinger->setSchedAttr(mFdp.ConsumeBool());
mFlinger->getServiceName();
+ mFlinger->hasSyncFramework = mFdp.ConsumeBool();
+ mFlinger->dispSyncPresentTimeOffset = mFdp.ConsumeIntegral<int64_t>();
+ mFlinger->useHwcForRgbToYuv = mFdp.ConsumeBool();
+ mFlinger->maxFrameBufferAcquiredBuffers = mFdp.ConsumeIntegral<int64_t>();
+ mFlinger->maxGraphicsWidth = mFdp.ConsumeIntegral<uint32_t>();
+ mFlinger->maxGraphicsHeight = mFdp.ConsumeIntegral<uint32_t>();
+ mTestableFlinger.mutableSupportsWideColor() = mFdp.ConsumeBool();
+ mFlinger->useContextPriority = mFdp.ConsumeBool();
- auto& config = mTestableFlinger.mutableConfig();
- config.hasSyncFramework = mFdp.ConsumeBool();
- config.dispSyncPresentTimeOffset = mFdp.ConsumeIntegral<int64_t>();
- config.useHwcForRgbToYuv = mFdp.ConsumeBool();
- config.maxFrameBufferAcquiredBuffers = mFdp.ConsumeIntegral<int64_t>();
- config.maxGraphicsWidth = mFdp.ConsumeIntegral<uint32_t>();
- config.maxGraphicsHeight = mFdp.ConsumeIntegral<uint32_t>();
- config.supportsWideColor = mFdp.ConsumeBool();
- config.useContextPriority = mFdp.ConsumeBool();
- config.defaultCompositionDataspace = mFdp.PickValueInArray(kDataspaces);
- config.defaultCompositionPixelFormat = mFdp.PickValueInArray(kPixelFormats);
- config.wideColorGamutCompositionDataspace = mFdp.PickValueInArray(kDataspaces);
- config.wideColorGamutCompositionPixelFormat = mFdp.PickValueInArray(kPixelFormats);
+ mFlinger->defaultCompositionDataspace = mFdp.PickValueInArray(kDataspaces);
+ mFlinger->defaultCompositionPixelFormat = mFdp.PickValueInArray(kPixelFormats);
+ mFlinger->wideColorGamutCompositionDataspace = mFdp.PickValueInArray(kDataspaces);
+ mFlinger->wideColorGamutCompositionPixelFormat = mFdp.PickValueInArray(kPixelFormats);
mFlinger->enableLatchUnsignaledConfig = mFdp.PickValueInArray(kLatchUnsignaledConfig);
@@ -156,7 +155,7 @@
}
void SurfaceFlingerFuzzer::setInternalDisplayPrimaries() {
- auto& primaries = mTestableFlinger.mutableConfig().internalDisplayPrimaries;
+ ui::DisplayPrimaries primaries;
primaries.red.X = mFdp.ConsumeFloatingPoint<float>();
primaries.red.Y = mFdp.ConsumeFloatingPoint<float>();
primaries.red.Z = mFdp.ConsumeFloatingPoint<float>();
@@ -169,6 +168,7 @@
primaries.white.X = mFdp.ConsumeFloatingPoint<float>();
primaries.white.Y = mFdp.ConsumeFloatingPoint<float>();
primaries.white.Z = mFdp.ConsumeFloatingPoint<float>();
+ mTestableFlinger.setInternalDisplayPrimaries(primaries);
}
void SurfaceFlingerFuzzer::setTransactionState() {
diff --git a/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h b/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h
index 97cb5d3..0c9a16b 100644
--- a/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h
+++ b/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h
@@ -46,7 +46,6 @@
#include "Scheduler/VsyncModulator.h"
#include "StartPropertySetThread.h"
#include "SurfaceFlinger.h"
-#include "SurfaceFlingerConfig.h"
#include "SurfaceFlingerDefaultFactory.h"
#include "ThreadContext.h"
#include "TimeStats/TimeStats.h"
@@ -151,8 +150,6 @@
ui::PixelFormat::YCBCR_P010,
ui::PixelFormat::HSV_888};
-static constexpr int kMaxFrameBufferAcquiredBuffers[] = {2, 3, 4};
-
inline VsyncId getFuzzedVsyncId(FuzzedDataProvider& fdp) {
return VsyncId{fdp.ConsumeIntegral<int64_t>()};
}
@@ -407,8 +404,6 @@
SurfaceFlinger *flinger() { return mFlinger.get(); }
scheduler::TestableScheduler *scheduler() { return mScheduler; }
- auto& mutableConfig() { return mConfig; }
-
void initializeDisplays() {
FTL_FAKE_GUARD(kMainThreadContext, mFlinger->initializeDisplays());
}
@@ -700,6 +695,10 @@
mFactory.mCreateNativeWindowSurface = f;
}
+ void setInternalDisplayPrimaries(const ui::DisplayPrimaries &primaries) {
+ memcpy(&mFlinger->mInternalDisplayPrimaries, &primaries, sizeof(ui::DisplayPrimaries));
+ }
+
static auto &mutableLayerDrawingState(const sp<Layer> &layer) { return layer->mDrawingState; }
auto &mutableStateLock() { return mFlinger->mStateLock; }
@@ -765,12 +764,13 @@
auto calculateMaxAcquiredBufferCount(Fps refreshRate,
std::chrono::nanoseconds presentLatency) const {
- return mFlinger->calculateMaxAcquiredBufferCount(refreshRate, presentLatency);
+ return SurfaceFlinger::calculateMaxAcquiredBufferCount(refreshRate, presentLatency);
}
/* Read-write access to private data to set up preconditions and assert
* post-conditions.
*/
+ auto& mutableSupportsWideColor() { return mFlinger->mSupportsWideColor; }
auto& mutableCurrentState() { return mFlinger->mCurrentState; }
auto& mutableDisplays() { return mFlinger->mDisplays; }
auto& mutableDrawingState() { return mFlinger->mDrawingState; }
@@ -794,8 +794,8 @@
void triggerOnFrameRateOverridesChanged() override {}
surfaceflinger::test::Factory mFactory;
- surfaceflinger::Config mConfig = surfaceflinger::Config::makeDefault(&mFactory);
- sp<SurfaceFlinger> mFlinger = sp<SurfaceFlinger>::make(mConfig);
+ sp<SurfaceFlinger> mFlinger =
+ sp<SurfaceFlinger>::make(mFactory, SurfaceFlinger::SkipInitialization);
scheduler::TestableScheduler *mScheduler = nullptr;
std::shared_ptr<scheduler::RefreshRateSelector> mRefreshRateSelector;
};
diff --git a/services/surfaceflinger/fuzzer/surfaceflinger_service_fuzzer.cpp b/services/surfaceflinger/fuzzer/surfaceflinger_service_fuzzer.cpp
index c16a005..849a896 100644
--- a/services/surfaceflinger/fuzzer/surfaceflinger_service_fuzzer.cpp
+++ b/services/surfaceflinger/fuzzer/surfaceflinger_service_fuzzer.cpp
@@ -17,15 +17,13 @@
#include <fuzzbinder/libbinder_driver.h>
#include "SurfaceFlinger.h"
-#include "SurfaceFlingerConfig.h"
#include "SurfaceFlingerDefaultFactory.h"
using namespace android;
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
DefaultFactory factory;
- surfaceflinger::Config config = surfaceflinger::Config::makeDefault(&factory);
- sp<SurfaceFlinger> flinger = sp<SurfaceFlinger>::make(config);
+ sp<SurfaceFlinger> flinger = sp<SurfaceFlinger>::make(factory);
flinger->init();
sp<SurfaceComposerAIDL> composerAIDL = sp<SurfaceComposerAIDL>::make(flinger);