diff options
| -rw-r--r-- | services/surfaceflinger/DisplayHardware/HWC2.cpp | 32 | ||||
| -rw-r--r-- | services/surfaceflinger/DisplayHardware/HWC2.h | 1 |
2 files changed, 17 insertions, 16 deletions
diff --git a/services/surfaceflinger/DisplayHardware/HWC2.cpp b/services/surfaceflinger/DisplayHardware/HWC2.cpp index e49e7344f8..402009a45c 100644 --- a/services/surfaceflinger/DisplayHardware/HWC2.cpp +++ b/services/surfaceflinger/DisplayHardware/HWC2.cpp @@ -531,9 +531,23 @@ Display::Display(Device& device, hwc2_display_t id) : mDevice(device), mId(id), mIsConnected(false), - mIsVirtual(false) + mIsVirtual(false), + mType(DisplayType::Invalid) { ALOGV("Created display %" PRIu64, id); + +#ifdef BYPASS_IHWC + int32_t intError = mDevice.mGetDisplayType(mDevice.mHwcDevice, mId, + reinterpret_cast<int32_t *>(&mType)); +#else + auto intError = mDevice.mComposer->getDisplayType(mId, + reinterpret_cast<Hwc2::IComposerClient::DisplayType *>(&mType)); +#endif + auto error = static_cast<Error>(intError); + if (error != Error::None) { + ALOGE("getDisplayType(%" PRIu64 ") failed: %s (%d)", + id, to_string(error).c_str(), intError); + } } Display::~Display() @@ -802,21 +816,7 @@ Error Display::getRequests(HWC2::DisplayRequest* outDisplayRequests, Error Display::getType(DisplayType* outType) const { -#ifdef BYPASS_IHWC - int32_t intType = 0; - int32_t intError = mDevice.mGetDisplayType(mDevice.mHwcDevice, mId, - &intType); -#else - Hwc2::IComposerClient::DisplayType intType = - Hwc2::IComposerClient::DisplayType::INVALID; - auto intError = mDevice.mComposer->getDisplayType(mId, &intType); -#endif - auto error = static_cast<Error>(intError); - if (error != Error::None) { - return error; - } - - *outType = static_cast<DisplayType>(intType); + *outType = mType; return Error::None; } diff --git a/services/surfaceflinger/DisplayHardware/HWC2.h b/services/surfaceflinger/DisplayHardware/HWC2.h index 4419dc1172..69d4afc568 100644 --- a/services/surfaceflinger/DisplayHardware/HWC2.h +++ b/services/surfaceflinger/DisplayHardware/HWC2.h @@ -376,6 +376,7 @@ private: hwc2_display_t mId; bool mIsConnected; bool mIsVirtual; + DisplayType mType; std::unordered_map<hwc2_layer_t, std::weak_ptr<Layer>> mLayers; std::unordered_map<hwc2_config_t, std::shared_ptr<const Config>> mConfigs; }; |