Revert "[LayerTraceGenerator] fix mirrors and rel-z data"

This reverts commit 39872bc1b63e955e376f30d2d2012cb6c8becdc9.

Reason for revert: b/273495141

Change-Id: I94712f4cbc9dbd6b0c59b28ea9759921d4123bb2
diff --git a/services/surfaceflinger/LayerProtoHelper.cpp b/services/surfaceflinger/LayerProtoHelper.cpp
index b5ae1a7..5c91b91 100644
--- a/services/surfaceflinger/LayerProtoHelper.cpp
+++ b/services/surfaceflinger/LayerProtoHelper.cpp
@@ -15,8 +15,6 @@
  */
 
 // TODO(b/129481165): remove the #pragma below and fix conversion issues
-#include "FrontEnd/LayerCreationArgs.h"
-#include "FrontEnd/LayerSnapshot.h"
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wconversion"
 #pragma clang diagnostic ignored "-Wextra"
@@ -250,88 +248,47 @@
     outRegion.bottom = proto.bottom();
 }
 
-LayersProto LayerProtoFromSnapshotGenerator::generate(const frontend::LayerHierarchy& root) {
-    mLayersProto.clear_layers();
-    std::unordered_set<uint64_t> stackIdsToSkip;
-    if ((mTraceFlags & LayerTracing::TRACE_VIRTUAL_DISPLAYS) == 0) {
-        for (const auto& [layerStack, displayInfo] : mDisplayInfos) {
-            if (displayInfo.isVirtual) {
-                stackIdsToSkip.insert(layerStack.id);
-            }
-        }
-    }
-
-    frontend::LayerHierarchy::TraversalPath path = frontend::LayerHierarchy::TraversalPath::ROOT;
-    for (auto& [child, variant] : root.mChildren) {
-        if (variant != frontend::LayerHierarchy::Variant::Attached ||
-            stackIdsToSkip.find(child->getLayer()->layerStack.id) != stackIdsToSkip.end()) {
-            continue;
-        }
-        frontend::LayerHierarchy::ScopedAddToTraversalPath addChildToPath(path,
-                                                                          child->getLayer()->id,
-                                                                          variant);
-        LayerProtoFromSnapshotGenerator::writeHierarchyToProto(*child, path);
-    }
-
-    // fill in relative and parent info
-    for (int i = 0; i < mLayersProto.layers_size(); i++) {
-        auto layerProto = mLayersProto.mutable_layers()->Mutable(i);
-        auto it = mChildToRelativeParent.find(layerProto->id());
-        if (it == mChildToRelativeParent.end()) {
-            layerProto->set_z_order_relative_of(-1);
-        } else {
-            layerProto->set_z_order_relative_of(it->second);
-        }
-        it = mChildToParent.find(layerProto->id());
-        if (it == mChildToParent.end()) {
-            layerProto->set_parent(-1);
-        } else {
-            layerProto->set_parent(it->second);
-        }
-    }
-
-    mDefaultSnapshots.clear();
-    mChildToRelativeParent.clear();
-    return std::move(mLayersProto);
-}
-
-frontend::LayerSnapshot* LayerProtoFromSnapshotGenerator::getSnapshot(
-        frontend::LayerHierarchy::TraversalPath& path, const frontend::RequestedLayerState& layer) {
-    frontend::LayerSnapshot* snapshot = mSnapshotBuilder.getSnapshot(path);
-    if (snapshot) {
-        return snapshot;
-    } else {
-        mDefaultSnapshots[path] = frontend::LayerSnapshot(layer, path);
-        return &mDefaultSnapshots[path];
-    }
-}
-
-void LayerProtoFromSnapshotGenerator::writeHierarchyToProto(
-        const frontend::LayerHierarchy& root, frontend::LayerHierarchy::TraversalPath& path) {
+void LayerProtoHelper::writeHierarchyToProto(
+        LayersProto& outLayersProto, const frontend::LayerHierarchy& root,
+        const frontend::LayerSnapshotBuilder& snapshotBuilder,
+        const std::unordered_map<uint32_t, sp<Layer>>& legacyLayers, uint32_t traceFlags) {
     using Variant = frontend::LayerHierarchy::Variant;
-    LayerProto* layerProto = mLayersProto.add_layers();
-    const frontend::RequestedLayerState& layer = *root.getLayer();
-    frontend::LayerSnapshot* snapshot = getSnapshot(path, layer);
-    LayerProtoHelper::writeSnapshotToProto(layerProto, layer, *snapshot, mTraceFlags);
+    frontend::LayerSnapshot defaultSnapshot;
 
+    LayerProto* layerProto = outLayersProto.add_layers();
+    const frontend::RequestedLayerState& layer = *root.getLayer();
+    frontend::LayerSnapshot* snapshot = snapshotBuilder.getSnapshot(layer.id);
+
+    if (!snapshot) {
+        defaultSnapshot.uniqueSequence = layer.id;
+        snapshot = &defaultSnapshot;
+    }
+    writeSnapshotToProto(layerProto, layer, *snapshot, traceFlags);
     for (const auto& [child, variant] : root.mChildren) {
-        frontend::LayerHierarchy::ScopedAddToTraversalPath addChildToPath(path,
-                                                                          child->getLayer()->id,
-                                                                          variant);
-        frontend::LayerSnapshot* childSnapshot = getSnapshot(path, layer);
-        if (variant == Variant::Attached || variant == Variant::Detached ||
-            variant == Variant::Mirror) {
-            mChildToParent[childSnapshot->uniqueSequence] = snapshot->uniqueSequence;
-            layerProto->add_children(childSnapshot->uniqueSequence);
+        if (variant == Variant::Attached || variant == Variant::Detached) {
+            layerProto->add_children(child->getLayer()->id);
         } else if (variant == Variant::Relative) {
-            mChildToRelativeParent[childSnapshot->uniqueSequence] = snapshot->uniqueSequence;
-            layerProto->add_relatives(childSnapshot->uniqueSequence);
+            layerProto->add_relatives(child->getLayer()->id);
         }
     }
 
-    if (mTraceFlags & LayerTracing::TRACE_COMPOSITION) {
-        auto it = mLegacyLayers.find(layer.id);
-        if (it != mLegacyLayers.end()) {
+    auto parent = root.getParent();
+    if (parent && parent->getLayer()) {
+        layerProto->set_parent(parent->getLayer()->id);
+    } else {
+        layerProto->set_parent(-1);
+    }
+
+    auto relativeParent = root.getRelativeParent();
+    if (relativeParent && relativeParent->getLayer()) {
+        layerProto->set_z_order_relative_of(relativeParent->getLayer()->id);
+    } else {
+        layerProto->set_z_order_relative_of(-1);
+    }
+
+    if (traceFlags & LayerTracing::TRACE_COMPOSITION) {
+        auto it = legacyLayers.find(layer.id);
+        if (it != legacyLayers.end()) {
             it->second->writeCompositionStateToProto(layerProto);
         }
     }
@@ -341,10 +298,7 @@
         if (variant == Variant::Detached) {
             continue;
         }
-        frontend::LayerHierarchy::ScopedAddToTraversalPath addChildToPath(path,
-                                                                          child->getLayer()->id,
-                                                                          variant);
-        writeHierarchyToProto(*child, path);
+        writeHierarchyToProto(outLayersProto, *child, snapshotBuilder, legacyLayers, traceFlags);
     }
 }
 
@@ -391,7 +345,6 @@
     layerInfo->set_shadow_radius(snapshot.shadowRadius);
 
     layerInfo->set_id(snapshot.uniqueSequence);
-    layerInfo->set_original_id(snapshot.sequence);
     layerInfo->set_name(requestedState.name);
     layerInfo->set_type("Layer");