gltrace: Commit all writes to coherent buffers before syncing them back

Otherwise these writes would be lost. Deus Ex: Mankind Divided renders
incorrectly without this.

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Change-Id: I3a5e7ab81b1ccbd3860c192466a79f87b063877c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/apitrace/+/2224545
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/wrappers/gltrace.py b/wrappers/gltrace.py
index 7c5e1f8..24eb70f 100644
--- a/wrappers/gltrace.py
+++ b/wrappers/gltrace.py
@@ -923,17 +923,20 @@
         # GPU are done and buffers are updated.
         if function.name == 'glWaitSync':
             print(r'    gltrace::Context *_ctx = gltrace::getContext();')
+            print(r'    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);')
             print(r'    GLMemoryShadow::syncAllForReads(_ctx);')
 
         if function.name == 'glClientWaitSync':
             print(r'    if (_result == GL_ALREADY_SIGNALED || _result == GL_CONDITION_SATISFIED) {')
             print(r'        gltrace::Context *_ctx = gltrace::getContext();')
+            print(r'        GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);')
             print(r'        GLMemoryShadow::syncAllForReads(_ctx);')
             print(r'    }')
 
         if function.name == 'glGetSynciv':
             print(r'    if (pname == GL_SYNC_STATUS && bufSize > 0 && values[0] == GL_SIGNALED) {')
             print(r'        gltrace::Context *_ctx = gltrace::getContext();')
+            print(r'        GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);')
             print(r'        GLMemoryShadow::syncAllForReads(_ctx);')
             print(r'    }')