Merge "Only enable Pre-reboot Dexopt if version >= 2." into main
diff --git a/cmds/cmd/Android.bp b/cmds/cmd/Android.bp
index 27ef788..cf27e19 100644
--- a/cmds/cmd/Android.bp
+++ b/cmds/cmd/Android.bp
@@ -27,14 +27,10 @@
"libselinux",
"libbinder",
],
- whole_static_libs: [
- "libc++fs",
- ],
cflags: [
"-Wall",
"-Werror",
- "-DXP_UNIX",
],
}
@@ -58,6 +54,5 @@
cflags: [
"-Wall",
"-Werror",
- "-DXP_UNIX",
],
}
diff --git a/cmds/service/Android.bp b/cmds/service/Android.bp
index 21ac11b..00fd249 100644
--- a/cmds/service/Android.bp
+++ b/cmds/service/Android.bp
@@ -27,7 +27,6 @@
],
cflags: [
- "-DXP_UNIX",
"-Wall",
"-Werror",
],
@@ -46,7 +45,6 @@
],
cflags: [
- "-DXP_UNIX",
"-DVENDORSERVICES",
"-Wall",
"-Werror",
@@ -65,7 +63,6 @@
],
cflags: [
- "-DXP_UNIX",
"-Wall",
"-Werror",
],
diff --git a/services/surfaceflinger/DisplayHardware/HWC2.cpp b/services/surfaceflinger/DisplayHardware/HWC2.cpp
index 704ece5..29b2cfd 100644
--- a/services/surfaceflinger/DisplayHardware/HWC2.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWC2.cpp
@@ -78,6 +78,9 @@
DisplayType type)
: mComposer(composer), mCapabilities(capabilities), mId(id), mType(type) {
ALOGV("Created display %" PRIu64, id);
+ if (mType == hal::DisplayType::VIRTUAL) {
+ loadDisplayCapabilities();
+ }
}
Display::~Display() {
@@ -482,29 +485,7 @@
auto intError = mComposer.setPowerMode(mId, intMode);
if (mode == PowerMode::ON) {
- std::call_once(mDisplayCapabilityQueryFlag, [this]() {
- std::vector<DisplayCapability> tmpCapabilities;
- auto error =
- static_cast<Error>(mComposer.getDisplayCapabilities(mId, &tmpCapabilities));
- if (error == Error::NONE) {
- std::scoped_lock lock(mDisplayCapabilitiesMutex);
- mDisplayCapabilities.emplace();
- for (auto capability : tmpCapabilities) {
- mDisplayCapabilities->emplace(capability);
- }
- } else if (error == Error::UNSUPPORTED) {
- std::scoped_lock lock(mDisplayCapabilitiesMutex);
- mDisplayCapabilities.emplace();
- if (mCapabilities.count(AidlCapability::SKIP_CLIENT_COLOR_TRANSFORM)) {
- mDisplayCapabilities->emplace(DisplayCapability::SKIP_CLIENT_COLOR_TRANSFORM);
- }
- bool dozeSupport = false;
- error = static_cast<Error>(mComposer.getDozeSupport(mId, &dozeSupport));
- if (error == Error::NONE && dozeSupport) {
- mDisplayCapabilities->emplace(DisplayCapability::DOZE);
- }
- }
- });
+ loadDisplayCapabilities();
}
return static_cast<Error>(intError);
@@ -636,6 +617,32 @@
auto it = mLayers.find(id);
return it != mLayers.end() ? it->second.lock() : nullptr;
}
+
+void Display::loadDisplayCapabilities() {
+ std::call_once(mDisplayCapabilityQueryFlag, [this]() {
+ std::vector<DisplayCapability> tmpCapabilities;
+ auto error =
+ static_cast<Error>(mComposer.getDisplayCapabilities(mId, &tmpCapabilities));
+ if (error == Error::NONE) {
+ std::scoped_lock lock(mDisplayCapabilitiesMutex);
+ mDisplayCapabilities.emplace();
+ for (auto capability : tmpCapabilities) {
+ mDisplayCapabilities->emplace(capability);
+ }
+ } else if (error == Error::UNSUPPORTED) {
+ std::scoped_lock lock(mDisplayCapabilitiesMutex);
+ mDisplayCapabilities.emplace();
+ if (mCapabilities.count(AidlCapability::SKIP_CLIENT_COLOR_TRANSFORM)) {
+ mDisplayCapabilities->emplace(DisplayCapability::SKIP_CLIENT_COLOR_TRANSFORM);
+ }
+ bool dozeSupport = false;
+ error = static_cast<Error>(mComposer.getDozeSupport(mId, &dozeSupport));
+ if (error == Error::NONE && dozeSupport) {
+ mDisplayCapabilities->emplace(DisplayCapability::DOZE);
+ }
+ }
+ });
+}
} // namespace impl
// Layer methods
diff --git a/services/surfaceflinger/DisplayHardware/HWC2.h b/services/surfaceflinger/DisplayHardware/HWC2.h
index f907061..0a77d4b 100644
--- a/services/surfaceflinger/DisplayHardware/HWC2.h
+++ b/services/surfaceflinger/DisplayHardware/HWC2.h
@@ -276,6 +276,7 @@
hal::Error getPhysicalDisplayOrientation(Hwc2::AidlTransform* outTransform) const override;
private:
+ void loadDisplayCapabilities();
// This may fail (and return a null pointer) if no layer with this ID exists
// on this display