[layertracegenerator] fix display proto parsing
- fixes a couple of bugs in how we parsed display data
and added tests to cover the logic
- additionally create fake input tokens when
generating layer state so we don't assume that the token
is null and ignore input data
Fixes: 275418553
Test: presubmit
Change-Id: I60dd2862e0c6ce0e214ad2123a8523b4f74c38e9
diff --git a/services/surfaceflinger/Tracing/TransactionProtoParser.h b/services/surfaceflinger/Tracing/TransactionProtoParser.h
index 50944fc..d6c98e1 100644
--- a/services/surfaceflinger/Tracing/TransactionProtoParser.h
+++ b/services/surfaceflinger/Tracing/TransactionProtoParser.h
@@ -49,15 +49,16 @@
proto::TransactionState toProto(const std::map<uint32_t /* layerId */, TracingLayerState>&);
proto::LayerCreationArgs toProto(const LayerCreationArgs& args);
proto::LayerState toProto(const ResolvedComposerState&);
- proto::DisplayInfo toProto(const frontend::DisplayInfo&, uint32_t layerStack);
+ static proto::DisplayInfo toProto(const frontend::DisplayInfo&, uint32_t layerStack);
TransactionState fromProto(const proto::TransactionState&);
void mergeFromProto(const proto::LayerState&, TracingLayerState& outState);
void fromProto(const proto::LayerCreationArgs&, LayerCreationArgs& outArgs);
std::unique_ptr<FlingerDataMapper> mMapper;
- frontend::DisplayInfo fromProto(const proto::DisplayInfo&);
- void fromProto(const google::protobuf::RepeatedPtrField<proto::DisplayInfo>&,
- display::DisplayMap<ui::LayerStack, frontend::DisplayInfo> outDisplayInfos);
+ static frontend::DisplayInfo fromProto(const proto::DisplayInfo&);
+ static void fromProto(
+ const google::protobuf::RepeatedPtrField<proto::DisplayInfo>&,
+ display::DisplayMap<ui::LayerStack, frontend::DisplayInfo>& outDisplayInfos);
private:
proto::DisplayState toProto(const DisplayState&);