asg: add snapshot support

Manual cherry-pick of aosp/1531939

Change-Id: Ia10e8dc224497489260e53fd785bd40f4e2f6060
diff --git a/stream-servers/RenderThread.cpp b/stream-servers/RenderThread.cpp
index 5d223ca..a6e85d9 100644
--- a/stream-servers/RenderThread.cpp
+++ b/stream-servers/RenderThread.cpp
@@ -114,8 +114,8 @@
 
 RenderThread::RenderThread(
         struct asg_context context,
-        android::emulation::asg::ConsumerCallbacks callbacks,
-        android::base::Stream* loadStream)
+        android::base::Stream* loadStream,
+        android::emulation::asg::ConsumerCallbacks callbacks)
     : android::base::Thread(android::base::ThreadFlags::MaskSignals, 2 * 1024 * 1024),
       mRingStream(
           new RingStream(context, callbacks, kStreamBufferSize)) {
@@ -370,6 +370,10 @@
                     break;
                 }
             } else if (needRestoreFromSnapshot) {
+                // If we're using RingStream that might load before FrameBuffer
+                // restores the contexts from the handles, so check again here.
+
+                tInfo.postLoadRefreshCurrentContextSurfacePtrs();
                 // We just loaded from a snapshot, need to initialize / bind
                 // the contexts.
                 needRestoreFromSnapshot = false;