glretrace: Fixed issue where state could be dumped before the requested call had been executed in a multithreaded trace.

For example when getting state for a particular Draw call, the
framebuffer could contain the contents prior to the Draw call.

Change-Id: I16e404f78dde37cf3fe521d14d491ca6de78e327
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/apitrace/+/2224542
Reviewed-by: Po-Hsien Wang <pwang@chromium.org>
Commit-Queue: Robert Tarasov <tutankhamen@chromium.org>
Tested-by: Robert Tarasov <tutankhamen@chromium.org>
diff --git a/retrace/retrace_main.cpp b/retrace/retrace_main.cpp
index a0e3fc4..9111d86 100644
--- a/retrace/retrace_main.cpp
+++ b/retrace/retrace_main.cpp
@@ -347,7 +347,8 @@
         }
     }
 
-    if (call->no >= dumpStateCallNo &&
+    // dumpStateCallNo is 0 when fetching default state
+    if ((call->no == dumpStateCallNo || dumpStateCallNo == 0) &&
         dumper->canDump()) {
         StateWriter *writer = stateWriterFactory(std::cout);
         dumper->dumpState(*writer);