Build graph->inputIds/outputIds with layerBindingId instead of layerIndex

Signed-off-by: Jung Tae-young tee.ty.jung@openedges.com
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
Change-Id: I25ceeca70e72fad88ab039aed5a5ab6a7cc08c6c
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index 13ea0f0..b43f26c 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -91,8 +91,8 @@
     auto flatBufferInputBindableBaseLayer = serializer::CreateBindableLayerBase(m_flatBufferBuilder,
                                                                                 flatBufferInputBaseLayer,
                                                                                 id);
-    // Push layer index to outputIds.
-    m_inputIds.push_back(GetSerializedId(layer->GetGuid()));
+    // Push layer binding id to outputIds.
+    m_inputIds.push_back(id);
 
     // Create the FlatBuffer InputLayer
     auto flatBufferInputLayer = serializer::CreateInputLayer(m_flatBufferBuilder, flatBufferInputBindableBaseLayer);
@@ -113,8 +113,8 @@
     auto flatBufferOutputBindableBaseLayer = serializer::CreateBindableLayerBase(m_flatBufferBuilder,
                                                                                  flatBufferOutputBaseLayer,
                                                                                  id);
-    // Push layer index to outputIds.
-    m_outputIds.push_back(GetSerializedId(layer->GetGuid()));
+    // Push layer binding id to outputIds.
+    m_outputIds.push_back(id);
 
     // Create the FlatBuffer OutputLayer
     auto flatBufferOutputLayer = serializer::CreateOutputLayer(m_flatBufferBuilder, flatBufferOutputBindableBaseLayer);
@@ -1449,6 +1449,16 @@
     return flatBufferConstTensor;
 }
 
+flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> SerializerVisitor::GetVersionTable()
+{
+    flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> versionsTable =
+        serializer::CreateFeatureCompatibilityVersions(
+                m_flatBufferBuilder,
+                1 // Binding ids scheme version
+            );
+    return versionsTable;
+}
+
 std::vector<fb::Offset<serializer::InputSlot>>
     SerializerVisitor::CreateInputSlots(const armnn::IConnectableLayer* layer)
 {
@@ -1531,7 +1541,8 @@
         fbBuilder,
         fbBuilder.CreateVector(m_SerializerVisitor.GetSerializedLayers()),
         fbBuilder.CreateVector(m_SerializerVisitor.GetInputIds()),
-        fbBuilder.CreateVector(m_SerializerVisitor.GetOutputIds()));
+        fbBuilder.CreateVector(m_SerializerVisitor.GetOutputIds()),
+        m_SerializerVisitor.GetVersionTable());
 
     // Serialize the graph
     fbBuilder.Finish(serializedGraph);