diff --git a/vulkan/api/vulkan.api b/vulkan/api/vulkan.api
index 7844f63..669a64e 100644
--- a/vulkan/api/vulkan.api
+++ b/vulkan/api/vulkan.api
@@ -27,7 +27,7 @@
 
 // API version (major.minor.patch)
 define VERSION_MAJOR 0
-define VERSION_MINOR 179
+define VERSION_MINOR 180
 define VERSION_PATCH 0
 
 // API limits
@@ -1058,6 +1058,15 @@
     char[VK_MAX_DESCRIPTION]                    description        /// Free-form description of the layer
 }
 
+class VkSubmitInfo {
+    u32                                         waitSemCount
+    const VkSemaphore*                          pWaitSemaphores
+    u32                                         cmdBufferCount
+    const VkCmdBuffer*                          pCommandBuffers
+    u32                                         signalSemCount
+    const VkSemaphore*                          pSignalSemaphores
+}
+
 class VkApplicationInfo {
     VkStructureType                             sType              /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
     const void*                                 pNext              /// Next structure in chain
@@ -2348,8 +2357,8 @@
 @threadSafety("app")
 cmd VkResult vkQueueSubmit(
         VkQueue                                     queue,
-        u32                                         cmdBufferCount,
-        const VkCmdBuffer*                          pCmdBuffers,
+        u32                                         submitCount,
+        const VkSubmitInfo*                         pSubmitInfo,
         VkFence                                     fence) {
     queueObject := GetQueue(queue)
 
@@ -2358,15 +2367,15 @@
         assert(fenceObject.device == queueObject.device)
     }
 
-    cmdBuffers := pCmdBuffers[0:cmdBufferCount]
-    for i in (0 .. cmdBufferCount) {
-        cmdBuffer := cmdBuffers[i]
-        cmdBufferObject := GetCmdBuffer(cmdBuffer)
-        assert(cmdBufferObject.device == queueObject.device)
-
-        validate("QueueCheck", cmdBufferObject.queueFlags in queueObject.flags,
-            "vkQueueSubmit: enqueued cmdBuffer requires missing queue capabilities.")
-    }
+    // cmdBuffers := pCmdBuffers[0:cmdBufferCount]
+    // for i in (0 .. cmdBufferCount) {
+    //    cmdBuffer := cmdBuffers[i]
+    //    cmdBufferObject := GetCmdBuffer(cmdBuffer)
+    //    assert(cmdBufferObject.device == queueObject.device)
+    //
+    //    validate("QueueCheck", cmdBufferObject.queueFlags in queueObject.flags,
+    //        "vkQueueSubmit: enqueued cmdBuffer requires missing queue capabilities.")
+    // }
 
     return ?
 }
