vulkan: Make waiting for timeline semaphores a RELAXED op

Bug: 186021150
Change-Id: I04ad34d40263e589befc2ea89cea722ddbd8962f
diff --git a/protocols/vulkan/xml/cereal/wrapperdefs.py b/protocols/vulkan/xml/cereal/wrapperdefs.py
index 1a20f93..64cb206 100644
--- a/protocols/vulkan/xml/cereal/wrapperdefs.py
+++ b/protocols/vulkan/xml/cereal/wrapperdefs.py
@@ -86,6 +86,8 @@
 
 RELAXED_APIS = [
     "vkWaitForFences",
+    "vkWaitSemaphores",
+    "vkWaitSemaphoresKHR",
     "vkQueueWaitIdle",
     "vkDeviceWaitIdle",
     "vkQueueFlushCommandsGOOGLE",
diff --git a/stream-servers/vulkan/VkDecoder.cpp b/stream-servers/vulkan/VkDecoder.cpp
index e38ce3a..42dfb54 100644
--- a/stream-servers/vulkan/VkDecoder.cpp
+++ b/stream-servers/vulkan/VkDecoder.cpp
@@ -9487,6 +9487,7 @@
                 {
                     fprintf(stderr, "stream %p: call vkWaitSemaphores 0x%llx 0x%llx 0x%llx \n", ioStream, (unsigned long long)device, (unsigned long long)pWaitInfo, (unsigned long long)timeout);
                 }
+                if (queueSubmitWithCommandsEnabled) __atomic_fetch_add(seqnoPtr, 1, __ATOMIC_SEQ_CST);
                 VkResult vkWaitSemaphores_VkResult_return = (VkResult)0;
                 vkWaitSemaphores_VkResult_return = vk->vkWaitSemaphores(unboxed_device, pWaitInfo, timeout);
                 vkStream->unsetHandleMapping();
@@ -9499,7 +9500,6 @@
                     m_state->snapshot()->vkWaitSemaphores(snapshotTraceBegin, snapshotTraceBytes, &m_pool, vkWaitSemaphores_VkResult_return, device, pWaitInfo, timeout);
                 }
                 vkReadStream->clearPool();
-                if (queueSubmitWithCommandsEnabled) __atomic_fetch_add(seqnoPtr, 1, __ATOMIC_SEQ_CST);
                 android::base::endTrace();
                 break;
             }
@@ -15125,6 +15125,7 @@
                 {
                     fprintf(stderr, "stream %p: call vkWaitSemaphoresKHR 0x%llx 0x%llx 0x%llx \n", ioStream, (unsigned long long)device, (unsigned long long)pWaitInfo, (unsigned long long)timeout);
                 }
+                if (queueSubmitWithCommandsEnabled) __atomic_fetch_add(seqnoPtr, 1, __ATOMIC_SEQ_CST);
                 VkResult vkWaitSemaphoresKHR_VkResult_return = (VkResult)0;
                 vkWaitSemaphoresKHR_VkResult_return = vk->vkWaitSemaphoresKHR(unboxed_device, pWaitInfo, timeout);
                 vkStream->unsetHandleMapping();
@@ -15137,7 +15138,6 @@
                     m_state->snapshot()->vkWaitSemaphoresKHR(snapshotTraceBegin, snapshotTraceBytes, &m_pool, vkWaitSemaphoresKHR_VkResult_return, device, pWaitInfo, timeout);
                 }
                 vkReadStream->clearPool();
-                if (queueSubmitWithCommandsEnabled) __atomic_fetch_add(seqnoPtr, 1, __ATOMIC_SEQ_CST);
                 android::base::endTrace();
                 break;
             }