Trace drawing state

Some state that was dumped was still the current state, creating
misalignment between what was visible on screen and what was being
dumped. Make sure to dump all state consistently.

Test: adb shell service call SurfaceFlinger 1025 i32 1 &&
adb shell service call SurfaceFlinger 1025 i32 0 &&
adb pull /data/misc/trace/layerstrace.pb
Inspect with WindowScope

Change-Id: I16ea06764328fd8c506ed90dfc59929f7d26d156
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 96ba5fb..9e7563c 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1585,7 +1585,7 @@
     ATRACE_CALL();
     ATRACE_NAME(where);
     if (CC_UNLIKELY(mTracing.isEnabled())) {
-        mTracing.traceLayers(where, dumpProtoInfo());
+        mTracing.traceLayers(where, dumpProtoInfo(LayerVector::StateSet::Drawing));
     }
 }
 
@@ -3534,7 +3534,7 @@
         size_t numArgs = args.size();
 
         if (asProto) {
-            LayersProto layersProto = dumpProtoInfo();
+            LayersProto layersProto = dumpProtoInfo(LayerVector::StateSet::Current);
             result.append(layersProto.SerializeAsString().c_str(), layersProto.ByteSize());
             dumpAll = false;
         }
@@ -3783,11 +3783,13 @@
     result.append("\n");
 }
 
-LayersProto SurfaceFlinger::dumpProtoInfo() const {
+LayersProto SurfaceFlinger::dumpProtoInfo(LayerVector::StateSet stateSet) const {
     LayersProto layersProto;
-    mCurrentState.traverseInZOrder([&](Layer* layer) {
+    const bool useDrawing = stateSet == LayerVector::StateSet::Drawing;
+    const State& state = useDrawing ? mDrawingState : mCurrentState;
+    state.traverseInZOrder([&](Layer* layer) {
         LayerProto* layerProto = layersProto.add_layers();
-        layer->writeToProto(layerProto, LayerVector::StateSet::Current);
+        layer->writeToProto(layerProto, stateSet);
     });
 
     return layersProto;
@@ -3858,7 +3860,7 @@
     result.appendFormat("Visible layers (count = %zu)\n", mNumLayers);
     colorizer.reset(result);
 
-    LayersProto layersProto = dumpProtoInfo();
+    LayersProto layersProto = dumpProtoInfo(LayerVector::StateSet::Current);
     auto layerTree = LayerProtoParser::generateLayerTree(layersProto);
     result.append(LayerProtoParser::layersToString(layerTree).c_str());