Path: blob/21.2-virgl/include/vulkan/vulkan_win32.h
4550 views
#ifndef VULKAN_WIN32_H_1#define VULKAN_WIN32_H_ 123/*4** Copyright 2015-2021 The Khronos Group Inc.5**6** SPDX-License-Identifier: Apache-2.07*/89/*10** This header is generated from the Khronos Vulkan XML API Registry.11**12*/131415#ifdef __cplusplus16extern "C" {17#endif18192021#define VK_KHR_win32_surface 122#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 623#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"24typedef VkFlags VkWin32SurfaceCreateFlagsKHR;25typedef struct VkWin32SurfaceCreateInfoKHR {26VkStructureType sType;27const void* pNext;28VkWin32SurfaceCreateFlagsKHR flags;29HINSTANCE hinstance;30HWND hwnd;31} VkWin32SurfaceCreateInfoKHR;3233typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);34typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);3536#ifndef VK_NO_PROTOTYPES37VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(38VkInstance instance,39const VkWin32SurfaceCreateInfoKHR* pCreateInfo,40const VkAllocationCallbacks* pAllocator,41VkSurfaceKHR* pSurface);4243VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(44VkPhysicalDevice physicalDevice,45uint32_t queueFamilyIndex);46#endif474849#define VK_KHR_external_memory_win32 150#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 151#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"52typedef struct VkImportMemoryWin32HandleInfoKHR {53VkStructureType sType;54const void* pNext;55VkExternalMemoryHandleTypeFlagBits handleType;56HANDLE handle;57LPCWSTR name;58} VkImportMemoryWin32HandleInfoKHR;5960typedef struct VkExportMemoryWin32HandleInfoKHR {61VkStructureType sType;62const void* pNext;63const SECURITY_ATTRIBUTES* pAttributes;64DWORD dwAccess;65LPCWSTR name;66} VkExportMemoryWin32HandleInfoKHR;6768typedef struct VkMemoryWin32HandlePropertiesKHR {69VkStructureType sType;70void* pNext;71uint32_t memoryTypeBits;72} VkMemoryWin32HandlePropertiesKHR;7374typedef struct VkMemoryGetWin32HandleInfoKHR {75VkStructureType sType;76const void* pNext;77VkDeviceMemory memory;78VkExternalMemoryHandleTypeFlagBits handleType;79} VkMemoryGetWin32HandleInfoKHR;8081typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);82typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);8384#ifndef VK_NO_PROTOTYPES85VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR(86VkDevice device,87const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,88HANDLE* pHandle);8990VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR(91VkDevice device,92VkExternalMemoryHandleTypeFlagBits handleType,93HANDLE handle,94VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);95#endif969798#define VK_KHR_win32_keyed_mutex 199#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1100#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"101typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR {102VkStructureType sType;103const void* pNext;104uint32_t acquireCount;105const VkDeviceMemory* pAcquireSyncs;106const uint64_t* pAcquireKeys;107const uint32_t* pAcquireTimeouts;108uint32_t releaseCount;109const VkDeviceMemory* pReleaseSyncs;110const uint64_t* pReleaseKeys;111} VkWin32KeyedMutexAcquireReleaseInfoKHR;112113114115#define VK_KHR_external_semaphore_win32 1116#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1117#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"118typedef struct VkImportSemaphoreWin32HandleInfoKHR {119VkStructureType sType;120const void* pNext;121VkSemaphore semaphore;122VkSemaphoreImportFlags flags;123VkExternalSemaphoreHandleTypeFlagBits handleType;124HANDLE handle;125LPCWSTR name;126} VkImportSemaphoreWin32HandleInfoKHR;127128typedef struct VkExportSemaphoreWin32HandleInfoKHR {129VkStructureType sType;130const void* pNext;131const SECURITY_ATTRIBUTES* pAttributes;132DWORD dwAccess;133LPCWSTR name;134} VkExportSemaphoreWin32HandleInfoKHR;135136typedef struct VkD3D12FenceSubmitInfoKHR {137VkStructureType sType;138const void* pNext;139uint32_t waitSemaphoreValuesCount;140const uint64_t* pWaitSemaphoreValues;141uint32_t signalSemaphoreValuesCount;142const uint64_t* pSignalSemaphoreValues;143} VkD3D12FenceSubmitInfoKHR;144145typedef struct VkSemaphoreGetWin32HandleInfoKHR {146VkStructureType sType;147const void* pNext;148VkSemaphore semaphore;149VkExternalSemaphoreHandleTypeFlagBits handleType;150} VkSemaphoreGetWin32HandleInfoKHR;151152typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);153typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);154155#ifndef VK_NO_PROTOTYPES156VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR(157VkDevice device,158const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);159160VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR(161VkDevice device,162const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,163HANDLE* pHandle);164#endif165166167#define VK_KHR_external_fence_win32 1168#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1169#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"170typedef struct VkImportFenceWin32HandleInfoKHR {171VkStructureType sType;172const void* pNext;173VkFence fence;174VkFenceImportFlags flags;175VkExternalFenceHandleTypeFlagBits handleType;176HANDLE handle;177LPCWSTR name;178} VkImportFenceWin32HandleInfoKHR;179180typedef struct VkExportFenceWin32HandleInfoKHR {181VkStructureType sType;182const void* pNext;183const SECURITY_ATTRIBUTES* pAttributes;184DWORD dwAccess;185LPCWSTR name;186} VkExportFenceWin32HandleInfoKHR;187188typedef struct VkFenceGetWin32HandleInfoKHR {189VkStructureType sType;190const void* pNext;191VkFence fence;192VkExternalFenceHandleTypeFlagBits handleType;193} VkFenceGetWin32HandleInfoKHR;194195typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);196typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);197198#ifndef VK_NO_PROTOTYPES199VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR(200VkDevice device,201const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);202203VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR(204VkDevice device,205const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,206HANDLE* pHandle);207#endif208209210#define VK_NV_external_memory_win32 1211#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1212#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"213typedef struct VkImportMemoryWin32HandleInfoNV {214VkStructureType sType;215const void* pNext;216VkExternalMemoryHandleTypeFlagsNV handleType;217HANDLE handle;218} VkImportMemoryWin32HandleInfoNV;219220typedef struct VkExportMemoryWin32HandleInfoNV {221VkStructureType sType;222const void* pNext;223const SECURITY_ATTRIBUTES* pAttributes;224DWORD dwAccess;225} VkExportMemoryWin32HandleInfoNV;226227typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);228229#ifndef VK_NO_PROTOTYPES230VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(231VkDevice device,232VkDeviceMemory memory,233VkExternalMemoryHandleTypeFlagsNV handleType,234HANDLE* pHandle);235#endif236237238#define VK_NV_win32_keyed_mutex 1239#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2240#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"241typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {242VkStructureType sType;243const void* pNext;244uint32_t acquireCount;245const VkDeviceMemory* pAcquireSyncs;246const uint64_t* pAcquireKeys;247const uint32_t* pAcquireTimeoutMilliseconds;248uint32_t releaseCount;249const VkDeviceMemory* pReleaseSyncs;250const uint64_t* pReleaseKeys;251} VkWin32KeyedMutexAcquireReleaseInfoNV;252253254255#define VK_EXT_full_screen_exclusive 1256#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4257#define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive"258259typedef enum VkFullScreenExclusiveEXT {260VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0,261VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1,262VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2,263VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3,264VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF265} VkFullScreenExclusiveEXT;266typedef struct VkSurfaceFullScreenExclusiveInfoEXT {267VkStructureType sType;268void* pNext;269VkFullScreenExclusiveEXT fullScreenExclusive;270} VkSurfaceFullScreenExclusiveInfoEXT;271272typedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT {273VkStructureType sType;274void* pNext;275VkBool32 fullScreenExclusiveSupported;276} VkSurfaceCapabilitiesFullScreenExclusiveEXT;277278typedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT {279VkStructureType sType;280const void* pNext;281HMONITOR hmonitor;282} VkSurfaceFullScreenExclusiveWin32InfoEXT;283284typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);285typedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain);286typedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain);287typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes);288289#ifndef VK_NO_PROTOTYPES290VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT(291VkPhysicalDevice physicalDevice,292const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,293uint32_t* pPresentModeCount,294VkPresentModeKHR* pPresentModes);295296VKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT(297VkDevice device,298VkSwapchainKHR swapchain);299300VKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT(301VkDevice device,302VkSwapchainKHR swapchain);303304VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT(305VkDevice device,306const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,307VkDeviceGroupPresentModeFlagsKHR* pModes);308#endif309310#ifdef __cplusplus311}312#endif313314#endif315316317