// API version (major.minor.patch)
define VERSION_MAJOR 0
-define VERSION_MINOR 179
+define VERSION_MINOR 180
define VERSION_PATCH 0
// API limits
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
@threadSafety("app")
cmd VkResult vkQueueSubmit(
VkQueue queue,
- u32 cmdBufferCount,
- const VkCmdBuffer* pCmdBuffers,
+ u32 submitCount,
+ const VkSubmitInfo* pSubmitInfo,
VkFence fence) {
queueObject := GetQueue(queue)
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 ?
}
((major << 22) | (minor << 12) | patch)
// Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 179, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 180, 0)
#if defined(__cplusplus) && ((defined(_MSC_VER) && _MSC_VER >= 1800) || __cplusplus >= 201103L)
VK_DEFINE_HANDLE(VkPhysicalDevice)
VK_DEFINE_HANDLE(VkDevice)
VK_DEFINE_HANDLE(VkQueue)
+VK_DEFINE_NONDISP_HANDLE(VkSemaphore)
VK_DEFINE_HANDLE(VkCmdBuffer)
VK_DEFINE_NONDISP_HANDLE(VkFence)
VK_DEFINE_NONDISP_HANDLE(VkDeviceMemory)
VK_DEFINE_NONDISP_HANDLE(VkBuffer)
VK_DEFINE_NONDISP_HANDLE(VkImage)
-VK_DEFINE_NONDISP_HANDLE(VkSemaphore)
VK_DEFINE_NONDISP_HANDLE(VkEvent)
VK_DEFINE_NONDISP_HANDLE(VkQueryPool)
VK_DEFINE_NONDISP_HANDLE(VkBufferView)
} VkLayerProperties;
typedef struct {
+ uint32_t waitSemCount;
+ const VkSemaphore* pWaitSemaphores;
+ uint32_t cmdBufferCount;
+ const VkCmdBuffer* pCommandBuffers;
+ uint32_t signalSemCount;
+ const VkSemaphore* pSignalSemaphores;
+} VkSubmitInfo;
+
+typedef struct {
VkStructureType sType;
const void* pNext;
VkDeviceSize allocationSize;
typedef VkResult (VKAPI *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pCount, VkLayerProperties* pProperties);
typedef VkResult (VKAPI *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkLayerProperties* pProperties);
typedef void (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
-typedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t cmdBufferCount, const VkCmdBuffer* pCmdBuffers, VkFence fence);
+typedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmitInfo, VkFence fence);
typedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue);
typedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device);
typedef VkResult (VKAPI *PFN_vkAllocMemory)(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, VkDeviceMemory* pMem);
VkResult VKAPI vkQueueSubmit(
VkQueue queue,
- uint32_t cmdBufferCount,
- const VkCmdBuffer* pCmdBuffers,
+ uint32_t submitCount,
+ const VkSubmitInfo* pSubmitInfo,
VkFence fence);
VkResult VKAPI vkQueueWaitIdle(
}
__attribute__((visibility("default")))
-VkResult vkQueueSubmit(VkQueue queue, uint32_t cmdBufferCount, const VkCmdBuffer* pCmdBuffers, VkFence fence) {
- return GetVtbl(queue).QueueSubmit(queue, cmdBufferCount, pCmdBuffers, fence);
+VkResult vkQueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmitInfo, VkFence fence) {
+ return GetVtbl(queue).QueueSubmit(queue, submitCount, pSubmitInfo, fence);
}
__attribute__((visibility("default")))
return VK_SUCCESS;
}
-VkResult QueueSubmit(VkQueue queue, uint32_t cmdBufferCount, const VkCmdBuffer* pCmdBuffers, VkFence fence) {
+VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmitInfo, VkFence fence) {
return VK_SUCCESS;
}
VkResult EnumerateInstanceLayerProperties(uint32_t* pCount, VkLayerProperties* pProperties);
VkResult EnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkLayerProperties* pProperties);
void GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
-VkResult QueueSubmit(VkQueue queue, uint32_t cmdBufferCount, const VkCmdBuffer* pCmdBuffers, VkFence fence);
+VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmitInfo, VkFence fence);
VkResult QueueWaitIdle(VkQueue queue);
VkResult DeviceWaitIdle(VkDevice device);
VkResult AllocMemory(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, VkDeviceMemory* pMem);