Loading services/surfaceflinger/Display/VirtualDisplaySnapshot.h +1 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ public: VirtualDisplayId displayId() const { return mVirtualId; } bool isGpu() const { return mIsGpu; } const std::string& uniqueId() const { return mUniqueId; } void dump(utils::Dumper& dumper) const { using namespace std::string_view_literals; Loading services/surfaceflinger/SurfaceFlinger.cpp +17 −3 Original line number Diff line number Diff line Loading @@ -6123,9 +6123,8 @@ void SurfaceFlinger::dumpDisplays(std::string& result) const { display->dump(dumper); std::lock_guard lock(mVirtualDisplaysMutex); const auto virtualSnapshotIt = mVirtualDisplays.find(virtualId); if (virtualSnapshotIt != mVirtualDisplays.end()) { virtualSnapshotIt->second.dump(dumper); if (const auto snapshotOpt = mVirtualDisplays.get(virtualId)) { snapshotOpt->get().dump(dumper); } } } Loading @@ -6137,6 +6136,7 @@ void SurfaceFlinger::dumpDisplayIdentificationData(std::string& result) const { if (!displayId) { continue; } const auto hwcDisplayId = getHwComposer().fromPhysicalDisplayId(*displayId); if (!hwcDisplayId) { continue; Loading @@ -6145,6 +6145,7 @@ void SurfaceFlinger::dumpDisplayIdentificationData(std::string& result) const { StringAppendF(&result, "Display %s (HWC display %" PRIu64 "): ", to_string(*displayId).c_str(), *hwcDisplayId); uint8_t port; DisplayIdentificationData data; if (!getHwComposer().getDisplayIdentificationData(*hwcDisplayId, &port, &data)) { Loading Loading @@ -6172,6 +6173,19 @@ void SurfaceFlinger::dumpDisplayIdentificationData(std::string& result) const { result.append(edid->displayName.data(), edid->displayName.length()); result.append("\"\n"); } for (const auto& [token, display] : mDisplays) { const auto virtualDisplayId = asVirtualDisplayId(display->getDisplayIdVariant()); if (virtualDisplayId) { StringAppendF(&result, "Display %s (Virtual display): displayName=\"%s\"", to_string(*virtualDisplayId).c_str(), display->getDisplayName().c_str()); std::lock_guard lock(mVirtualDisplaysMutex); if (const auto snapshotOpt = mVirtualDisplays.get(*virtualDisplayId)) { StringAppendF(&result, " uniqueId=\"%s\"", snapshotOpt->get().uniqueId().c_str()); } result.append("\n"); } } } void SurfaceFlinger::dumpRawDisplayIdentificationData(const DumpArgs& args, Loading Loading
services/surfaceflinger/Display/VirtualDisplaySnapshot.h +1 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ public: VirtualDisplayId displayId() const { return mVirtualId; } bool isGpu() const { return mIsGpu; } const std::string& uniqueId() const { return mUniqueId; } void dump(utils::Dumper& dumper) const { using namespace std::string_view_literals; Loading
services/surfaceflinger/SurfaceFlinger.cpp +17 −3 Original line number Diff line number Diff line Loading @@ -6123,9 +6123,8 @@ void SurfaceFlinger::dumpDisplays(std::string& result) const { display->dump(dumper); std::lock_guard lock(mVirtualDisplaysMutex); const auto virtualSnapshotIt = mVirtualDisplays.find(virtualId); if (virtualSnapshotIt != mVirtualDisplays.end()) { virtualSnapshotIt->second.dump(dumper); if (const auto snapshotOpt = mVirtualDisplays.get(virtualId)) { snapshotOpt->get().dump(dumper); } } } Loading @@ -6137,6 +6136,7 @@ void SurfaceFlinger::dumpDisplayIdentificationData(std::string& result) const { if (!displayId) { continue; } const auto hwcDisplayId = getHwComposer().fromPhysicalDisplayId(*displayId); if (!hwcDisplayId) { continue; Loading @@ -6145,6 +6145,7 @@ void SurfaceFlinger::dumpDisplayIdentificationData(std::string& result) const { StringAppendF(&result, "Display %s (HWC display %" PRIu64 "): ", to_string(*displayId).c_str(), *hwcDisplayId); uint8_t port; DisplayIdentificationData data; if (!getHwComposer().getDisplayIdentificationData(*hwcDisplayId, &port, &data)) { Loading Loading @@ -6172,6 +6173,19 @@ void SurfaceFlinger::dumpDisplayIdentificationData(std::string& result) const { result.append(edid->displayName.data(), edid->displayName.length()); result.append("\"\n"); } for (const auto& [token, display] : mDisplays) { const auto virtualDisplayId = asVirtualDisplayId(display->getDisplayIdVariant()); if (virtualDisplayId) { StringAppendF(&result, "Display %s (Virtual display): displayName=\"%s\"", to_string(*virtualDisplayId).c_str(), display->getDisplayName().c_str()); std::lock_guard lock(mVirtualDisplaysMutex); if (const auto snapshotOpt = mVirtualDisplays.get(*virtualDisplayId)) { StringAppendF(&result, " uniqueId=\"%s\"", snapshotOpt->get().uniqueId().c_str()); } result.append("\n"); } } } void SurfaceFlinger::dumpRawDisplayIdentificationData(const DumpArgs& args, Loading