Loading services/surfaceflinger/SurfaceFlinger.cpp +16 −10 Original line number Diff line number Diff line Loading @@ -112,6 +112,7 @@ #include <cutils/compiler.h> #include "android-base/parseint.h" #include "android-base/stringprintf.h" #include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h> Loading Loading @@ -4056,6 +4057,7 @@ status_t SurfaceFlinger::doDump(int fd, const DumpArgs& args, {"--display-id"s, dumper(&SurfaceFlinger::dumpDisplayIdentificationData)}, {"--dispsync"s, dumper([this](std::string& s) { mScheduler->getPrimaryDispSync().dump(s); })}, {"--edid"s, argsDumper(&SurfaceFlinger::dumpRawDisplayIdentificationData)}, {"--frame-events"s, dumper(&SurfaceFlinger::dumpFrameEventsLocked)}, {"--latency"s, argsDumper(&SurfaceFlinger::dumpStatsLocked)}, {"--latency-clear"s, argsDumper(&SurfaceFlinger::clearStatsLocked)}, Loading Loading @@ -4284,21 +4286,13 @@ void SurfaceFlinger::dumpDisplayIdentificationData(std::string& result) const { } if (!isEdid(data)) { result.append("unknown identification data: "); for (uint8_t byte : data) { StringAppendF(&result, "%x ", byte); } result.append("\n"); result.append("unknown identification data\n"); continue; } const auto edid = parseEdid(data); if (!edid) { result.append("invalid EDID: "); for (uint8_t byte : data) { StringAppendF(&result, "%x ", byte); } result.append("\n"); result.append("invalid EDID\n"); continue; } Loading @@ -4308,6 +4302,18 @@ void SurfaceFlinger::dumpDisplayIdentificationData(std::string& result) const { } } void SurfaceFlinger::dumpRawDisplayIdentificationData(const DumpArgs& args, std::string& result) const { hwc2_display_t hwcDisplayId; uint8_t port; DisplayIdentificationData data; if (args.size() > 1 && base::ParseUint(String8(args[1]), &hwcDisplayId) && getHwComposer().getDisplayIdentificationData(hwcDisplayId, &port, &data)) { result.append(reinterpret_cast<const char*>(data.data()), data.size()); } } void SurfaceFlinger::dumpWideColorInfo(std::string& result) const { StringAppendF(&result, "Device has wide color built-in display: %d\n", hasWideColorDisplay); StringAppendF(&result, "Device uses color management: %d\n", useColorManagement); Loading services/surfaceflinger/SurfaceFlinger.h +1 −0 Original line number Diff line number Diff line Loading @@ -865,6 +865,7 @@ private: std::vector<OccupancyTracker::Segment>&& history); void dumpBufferingStats(std::string& result) const; void dumpDisplayIdentificationData(std::string& result) const; void dumpRawDisplayIdentificationData(const DumpArgs&, std::string& result) const; void dumpWideColorInfo(std::string& result) const; LayersProto dumpDrawingStateProto(uint32_t traceFlags = SurfaceTracing::TRACE_ALL) const; void dumpOffscreenLayersProto(LayersProto& layersProto, Loading Loading
services/surfaceflinger/SurfaceFlinger.cpp +16 −10 Original line number Diff line number Diff line Loading @@ -112,6 +112,7 @@ #include <cutils/compiler.h> #include "android-base/parseint.h" #include "android-base/stringprintf.h" #include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h> Loading Loading @@ -4056,6 +4057,7 @@ status_t SurfaceFlinger::doDump(int fd, const DumpArgs& args, {"--display-id"s, dumper(&SurfaceFlinger::dumpDisplayIdentificationData)}, {"--dispsync"s, dumper([this](std::string& s) { mScheduler->getPrimaryDispSync().dump(s); })}, {"--edid"s, argsDumper(&SurfaceFlinger::dumpRawDisplayIdentificationData)}, {"--frame-events"s, dumper(&SurfaceFlinger::dumpFrameEventsLocked)}, {"--latency"s, argsDumper(&SurfaceFlinger::dumpStatsLocked)}, {"--latency-clear"s, argsDumper(&SurfaceFlinger::clearStatsLocked)}, Loading Loading @@ -4284,21 +4286,13 @@ void SurfaceFlinger::dumpDisplayIdentificationData(std::string& result) const { } if (!isEdid(data)) { result.append("unknown identification data: "); for (uint8_t byte : data) { StringAppendF(&result, "%x ", byte); } result.append("\n"); result.append("unknown identification data\n"); continue; } const auto edid = parseEdid(data); if (!edid) { result.append("invalid EDID: "); for (uint8_t byte : data) { StringAppendF(&result, "%x ", byte); } result.append("\n"); result.append("invalid EDID\n"); continue; } Loading @@ -4308,6 +4302,18 @@ void SurfaceFlinger::dumpDisplayIdentificationData(std::string& result) const { } } void SurfaceFlinger::dumpRawDisplayIdentificationData(const DumpArgs& args, std::string& result) const { hwc2_display_t hwcDisplayId; uint8_t port; DisplayIdentificationData data; if (args.size() > 1 && base::ParseUint(String8(args[1]), &hwcDisplayId) && getHwComposer().getDisplayIdentificationData(hwcDisplayId, &port, &data)) { result.append(reinterpret_cast<const char*>(data.data()), data.size()); } } void SurfaceFlinger::dumpWideColorInfo(std::string& result) const { StringAppendF(&result, "Device has wide color built-in display: %d\n", hasWideColorDisplay); StringAppendF(&result, "Device uses color management: %d\n", useColorManagement); Loading
services/surfaceflinger/SurfaceFlinger.h +1 −0 Original line number Diff line number Diff line Loading @@ -865,6 +865,7 @@ private: std::vector<OccupancyTracker::Segment>&& history); void dumpBufferingStats(std::string& result) const; void dumpDisplayIdentificationData(std::string& result) const; void dumpRawDisplayIdentificationData(const DumpArgs&, std::string& result) const; void dumpWideColorInfo(std::string& result) const; LayersProto dumpDrawingStateProto(uint32_t traceFlags = SurfaceTracing::TRACE_ALL) const; void dumpOffscreenLayersProto(LayersProto& layersProto, Loading