Loading services/surfaceflinger/SurfaceFlinger.cpp +19 −17 Original line number Diff line number Diff line Loading @@ -4836,6 +4836,7 @@ status_t SurfaceFlinger::doDump(int fd, const DumpArgs& args, bool asProto) { {"--vsync"s, dumper(&SurfaceFlinger::dumpVSync)}, {"--wide-color"s, dumper(&SurfaceFlinger::dumpWideColorInfo)}, {"--frametimeline"s, argsDumper(&SurfaceFlinger::dumpFrameTimeline)}, {"--hwclayers"s, dumper(&SurfaceFlinger::dumpHwcLayersMinidumpLocked)}, }; const auto flag = args.empty() ? ""s : std::string(String8(args[0])); Loading Loading @@ -5132,6 +5133,23 @@ void SurfaceFlinger::dumpOffscreenLayers(std::string& result) { result.append(future.get()); } void SurfaceFlinger::dumpHwcLayersMinidumpLocked(std::string& result) const { for (const auto& [token, display] : mDisplays) { const auto displayId = HalDisplayId::tryCast(display->getId()); if (!displayId) { continue; } StringAppendF(&result, "Display %s (%s) HWC layers:\n", to_string(*displayId).c_str(), (isDisplayActiveLocked(display) ? "active" : "inactive")); Layer::miniDumpHeader(result); const DisplayDevice& ref = *display; mCurrentState.traverseInZOrder([&](Layer* layer) { layer->miniDump(result, ref); }); result.append("\n"); } } void SurfaceFlinger::dumpAllLocked(const DumpArgs& args, std::string& result) const { const bool colorize = !args.empty() && args[0] == String16("--color"); Colorizer colorizer(colorize); Loading Loading @@ -5263,23 +5281,7 @@ void SurfaceFlinger::dumpAllLocked(const DumpArgs& args, std::string& result) co } result.push_back('\n'); /* * HWC layer minidump */ for (const auto& [token, display] : mDisplays) { const auto displayId = HalDisplayId::tryCast(display->getId()); if (!displayId) { continue; } StringAppendF(&result, "Display %s (%s) HWC layers:\n", to_string(*displayId).c_str(), (isDisplayActiveLocked(display) ? "active" : "inactive")); Layer::miniDumpHeader(result); const DisplayDevice& ref = *display; mCurrentState.traverseInZOrder([&](Layer* layer) { layer->miniDump(result, ref); }); result.append("\n"); } dumpHwcLayersMinidumpLocked(result); { DumpArgs plannerArgs; Loading services/surfaceflinger/SurfaceFlinger.h +1 −0 Original line number Diff line number Diff line Loading @@ -996,6 +996,7 @@ private: * Debugging & dumpsys */ void dumpAllLocked(const DumpArgs& args, std::string& result) const REQUIRES(mStateLock); void dumpHwcLayersMinidumpLocked(std::string& result) const REQUIRES(mStateLock); void appendSfConfigString(std::string& result) const; void listLayersLocked(std::string& result) const; Loading Loading
services/surfaceflinger/SurfaceFlinger.cpp +19 −17 Original line number Diff line number Diff line Loading @@ -4836,6 +4836,7 @@ status_t SurfaceFlinger::doDump(int fd, const DumpArgs& args, bool asProto) { {"--vsync"s, dumper(&SurfaceFlinger::dumpVSync)}, {"--wide-color"s, dumper(&SurfaceFlinger::dumpWideColorInfo)}, {"--frametimeline"s, argsDumper(&SurfaceFlinger::dumpFrameTimeline)}, {"--hwclayers"s, dumper(&SurfaceFlinger::dumpHwcLayersMinidumpLocked)}, }; const auto flag = args.empty() ? ""s : std::string(String8(args[0])); Loading Loading @@ -5132,6 +5133,23 @@ void SurfaceFlinger::dumpOffscreenLayers(std::string& result) { result.append(future.get()); } void SurfaceFlinger::dumpHwcLayersMinidumpLocked(std::string& result) const { for (const auto& [token, display] : mDisplays) { const auto displayId = HalDisplayId::tryCast(display->getId()); if (!displayId) { continue; } StringAppendF(&result, "Display %s (%s) HWC layers:\n", to_string(*displayId).c_str(), (isDisplayActiveLocked(display) ? "active" : "inactive")); Layer::miniDumpHeader(result); const DisplayDevice& ref = *display; mCurrentState.traverseInZOrder([&](Layer* layer) { layer->miniDump(result, ref); }); result.append("\n"); } } void SurfaceFlinger::dumpAllLocked(const DumpArgs& args, std::string& result) const { const bool colorize = !args.empty() && args[0] == String16("--color"); Colorizer colorizer(colorize); Loading Loading @@ -5263,23 +5281,7 @@ void SurfaceFlinger::dumpAllLocked(const DumpArgs& args, std::string& result) co } result.push_back('\n'); /* * HWC layer minidump */ for (const auto& [token, display] : mDisplays) { const auto displayId = HalDisplayId::tryCast(display->getId()); if (!displayId) { continue; } StringAppendF(&result, "Display %s (%s) HWC layers:\n", to_string(*displayId).c_str(), (isDisplayActiveLocked(display) ? "active" : "inactive")); Layer::miniDumpHeader(result); const DisplayDevice& ref = *display; mCurrentState.traverseInZOrder([&](Layer* layer) { layer->miniDump(result, ref); }); result.append("\n"); } dumpHwcLayersMinidumpLocked(result); { DumpArgs plannerArgs; Loading
services/surfaceflinger/SurfaceFlinger.h +1 −0 Original line number Diff line number Diff line Loading @@ -996,6 +996,7 @@ private: * Debugging & dumpsys */ void dumpAllLocked(const DumpArgs& args, std::string& result) const REQUIRES(mStateLock); void dumpHwcLayersMinidumpLocked(std::string& result) const REQUIRES(mStateLock); void appendSfConfigString(std::string& result) const; void listLayersLocked(std::string& result) const; Loading