1*61046927SAndroid Build Coastguard Worker #ifndef VULKAN_WIN32_H_ 2*61046927SAndroid Build Coastguard Worker #define VULKAN_WIN32_H_ 1 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard Worker /* 5*61046927SAndroid Build Coastguard Worker ** Copyright 2015-2024 The Khronos Group Inc. 6*61046927SAndroid Build Coastguard Worker ** 7*61046927SAndroid Build Coastguard Worker ** SPDX-License-Identifier: Apache-2.0 8*61046927SAndroid Build Coastguard Worker */ 9*61046927SAndroid Build Coastguard Worker 10*61046927SAndroid Build Coastguard Worker /* 11*61046927SAndroid Build Coastguard Worker ** This header is generated from the Khronos Vulkan XML API Registry. 12*61046927SAndroid Build Coastguard Worker ** 13*61046927SAndroid Build Coastguard Worker */ 14*61046927SAndroid Build Coastguard Worker 15*61046927SAndroid Build Coastguard Worker 16*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 17*61046927SAndroid Build Coastguard Worker extern "C" { 18*61046927SAndroid Build Coastguard Worker #endif 19*61046927SAndroid Build Coastguard Worker 20*61046927SAndroid Build Coastguard Worker 21*61046927SAndroid Build Coastguard Worker 22*61046927SAndroid Build Coastguard Worker // VK_KHR_win32_surface is a preprocessor guard. Do not pass it to API calls. 23*61046927SAndroid Build Coastguard Worker #define VK_KHR_win32_surface 1 24*61046927SAndroid Build Coastguard Worker #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 25*61046927SAndroid Build Coastguard Worker #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" 26*61046927SAndroid Build Coastguard Worker typedef VkFlags VkWin32SurfaceCreateFlagsKHR; 27*61046927SAndroid Build Coastguard Worker typedef struct VkWin32SurfaceCreateInfoKHR { 28*61046927SAndroid Build Coastguard Worker VkStructureType sType; 29*61046927SAndroid Build Coastguard Worker const void* pNext; 30*61046927SAndroid Build Coastguard Worker VkWin32SurfaceCreateFlagsKHR flags; 31*61046927SAndroid Build Coastguard Worker HINSTANCE hinstance; 32*61046927SAndroid Build Coastguard Worker HWND hwnd; 33*61046927SAndroid Build Coastguard Worker } VkWin32SurfaceCreateInfoKHR; 34*61046927SAndroid Build Coastguard Worker 35*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 36*61046927SAndroid Build Coastguard Worker typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); 37*61046927SAndroid Build Coastguard Worker 38*61046927SAndroid Build Coastguard Worker #ifndef VK_NO_PROTOTYPES 39*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR( 40*61046927SAndroid Build Coastguard Worker VkInstance instance, 41*61046927SAndroid Build Coastguard Worker const VkWin32SurfaceCreateInfoKHR* pCreateInfo, 42*61046927SAndroid Build Coastguard Worker const VkAllocationCallbacks* pAllocator, 43*61046927SAndroid Build Coastguard Worker VkSurfaceKHR* pSurface); 44*61046927SAndroid Build Coastguard Worker 45*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( 46*61046927SAndroid Build Coastguard Worker VkPhysicalDevice physicalDevice, 47*61046927SAndroid Build Coastguard Worker uint32_t queueFamilyIndex); 48*61046927SAndroid Build Coastguard Worker #endif 49*61046927SAndroid Build Coastguard Worker 50*61046927SAndroid Build Coastguard Worker 51*61046927SAndroid Build Coastguard Worker // VK_KHR_external_memory_win32 is a preprocessor guard. Do not pass it to API calls. 52*61046927SAndroid Build Coastguard Worker #define VK_KHR_external_memory_win32 1 53*61046927SAndroid Build Coastguard Worker #define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 54*61046927SAndroid Build Coastguard Worker #define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" 55*61046927SAndroid Build Coastguard Worker typedef struct VkImportMemoryWin32HandleInfoKHR { 56*61046927SAndroid Build Coastguard Worker VkStructureType sType; 57*61046927SAndroid Build Coastguard Worker const void* pNext; 58*61046927SAndroid Build Coastguard Worker VkExternalMemoryHandleTypeFlagBits handleType; 59*61046927SAndroid Build Coastguard Worker HANDLE handle; 60*61046927SAndroid Build Coastguard Worker LPCWSTR name; 61*61046927SAndroid Build Coastguard Worker } VkImportMemoryWin32HandleInfoKHR; 62*61046927SAndroid Build Coastguard Worker 63*61046927SAndroid Build Coastguard Worker typedef struct VkExportMemoryWin32HandleInfoKHR { 64*61046927SAndroid Build Coastguard Worker VkStructureType sType; 65*61046927SAndroid Build Coastguard Worker const void* pNext; 66*61046927SAndroid Build Coastguard Worker const SECURITY_ATTRIBUTES* pAttributes; 67*61046927SAndroid Build Coastguard Worker DWORD dwAccess; 68*61046927SAndroid Build Coastguard Worker LPCWSTR name; 69*61046927SAndroid Build Coastguard Worker } VkExportMemoryWin32HandleInfoKHR; 70*61046927SAndroid Build Coastguard Worker 71*61046927SAndroid Build Coastguard Worker typedef struct VkMemoryWin32HandlePropertiesKHR { 72*61046927SAndroid Build Coastguard Worker VkStructureType sType; 73*61046927SAndroid Build Coastguard Worker void* pNext; 74*61046927SAndroid Build Coastguard Worker uint32_t memoryTypeBits; 75*61046927SAndroid Build Coastguard Worker } VkMemoryWin32HandlePropertiesKHR; 76*61046927SAndroid Build Coastguard Worker 77*61046927SAndroid Build Coastguard Worker typedef struct VkMemoryGetWin32HandleInfoKHR { 78*61046927SAndroid Build Coastguard Worker VkStructureType sType; 79*61046927SAndroid Build Coastguard Worker const void* pNext; 80*61046927SAndroid Build Coastguard Worker VkDeviceMemory memory; 81*61046927SAndroid Build Coastguard Worker VkExternalMemoryHandleTypeFlagBits handleType; 82*61046927SAndroid Build Coastguard Worker } VkMemoryGetWin32HandleInfoKHR; 83*61046927SAndroid Build Coastguard Worker 84*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); 85*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); 86*61046927SAndroid Build Coastguard Worker 87*61046927SAndroid Build Coastguard Worker #ifndef VK_NO_PROTOTYPES 88*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR( 89*61046927SAndroid Build Coastguard Worker VkDevice device, 90*61046927SAndroid Build Coastguard Worker const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, 91*61046927SAndroid Build Coastguard Worker HANDLE* pHandle); 92*61046927SAndroid Build Coastguard Worker 93*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( 94*61046927SAndroid Build Coastguard Worker VkDevice device, 95*61046927SAndroid Build Coastguard Worker VkExternalMemoryHandleTypeFlagBits handleType, 96*61046927SAndroid Build Coastguard Worker HANDLE handle, 97*61046927SAndroid Build Coastguard Worker VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); 98*61046927SAndroid Build Coastguard Worker #endif 99*61046927SAndroid Build Coastguard Worker 100*61046927SAndroid Build Coastguard Worker 101*61046927SAndroid Build Coastguard Worker // VK_KHR_win32_keyed_mutex is a preprocessor guard. Do not pass it to API calls. 102*61046927SAndroid Build Coastguard Worker #define VK_KHR_win32_keyed_mutex 1 103*61046927SAndroid Build Coastguard Worker #define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 104*61046927SAndroid Build Coastguard Worker #define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" 105*61046927SAndroid Build Coastguard Worker typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { 106*61046927SAndroid Build Coastguard Worker VkStructureType sType; 107*61046927SAndroid Build Coastguard Worker const void* pNext; 108*61046927SAndroid Build Coastguard Worker uint32_t acquireCount; 109*61046927SAndroid Build Coastguard Worker const VkDeviceMemory* pAcquireSyncs; 110*61046927SAndroid Build Coastguard Worker const uint64_t* pAcquireKeys; 111*61046927SAndroid Build Coastguard Worker const uint32_t* pAcquireTimeouts; 112*61046927SAndroid Build Coastguard Worker uint32_t releaseCount; 113*61046927SAndroid Build Coastguard Worker const VkDeviceMemory* pReleaseSyncs; 114*61046927SAndroid Build Coastguard Worker const uint64_t* pReleaseKeys; 115*61046927SAndroid Build Coastguard Worker } VkWin32KeyedMutexAcquireReleaseInfoKHR; 116*61046927SAndroid Build Coastguard Worker 117*61046927SAndroid Build Coastguard Worker 118*61046927SAndroid Build Coastguard Worker 119*61046927SAndroid Build Coastguard Worker // VK_KHR_external_semaphore_win32 is a preprocessor guard. Do not pass it to API calls. 120*61046927SAndroid Build Coastguard Worker #define VK_KHR_external_semaphore_win32 1 121*61046927SAndroid Build Coastguard Worker #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 122*61046927SAndroid Build Coastguard Worker #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" 123*61046927SAndroid Build Coastguard Worker typedef struct VkImportSemaphoreWin32HandleInfoKHR { 124*61046927SAndroid Build Coastguard Worker VkStructureType sType; 125*61046927SAndroid Build Coastguard Worker const void* pNext; 126*61046927SAndroid Build Coastguard Worker VkSemaphore semaphore; 127*61046927SAndroid Build Coastguard Worker VkSemaphoreImportFlags flags; 128*61046927SAndroid Build Coastguard Worker VkExternalSemaphoreHandleTypeFlagBits handleType; 129*61046927SAndroid Build Coastguard Worker HANDLE handle; 130*61046927SAndroid Build Coastguard Worker LPCWSTR name; 131*61046927SAndroid Build Coastguard Worker } VkImportSemaphoreWin32HandleInfoKHR; 132*61046927SAndroid Build Coastguard Worker 133*61046927SAndroid Build Coastguard Worker typedef struct VkExportSemaphoreWin32HandleInfoKHR { 134*61046927SAndroid Build Coastguard Worker VkStructureType sType; 135*61046927SAndroid Build Coastguard Worker const void* pNext; 136*61046927SAndroid Build Coastguard Worker const SECURITY_ATTRIBUTES* pAttributes; 137*61046927SAndroid Build Coastguard Worker DWORD dwAccess; 138*61046927SAndroid Build Coastguard Worker LPCWSTR name; 139*61046927SAndroid Build Coastguard Worker } VkExportSemaphoreWin32HandleInfoKHR; 140*61046927SAndroid Build Coastguard Worker 141*61046927SAndroid Build Coastguard Worker typedef struct VkD3D12FenceSubmitInfoKHR { 142*61046927SAndroid Build Coastguard Worker VkStructureType sType; 143*61046927SAndroid Build Coastguard Worker const void* pNext; 144*61046927SAndroid Build Coastguard Worker uint32_t waitSemaphoreValuesCount; 145*61046927SAndroid Build Coastguard Worker const uint64_t* pWaitSemaphoreValues; 146*61046927SAndroid Build Coastguard Worker uint32_t signalSemaphoreValuesCount; 147*61046927SAndroid Build Coastguard Worker const uint64_t* pSignalSemaphoreValues; 148*61046927SAndroid Build Coastguard Worker } VkD3D12FenceSubmitInfoKHR; 149*61046927SAndroid Build Coastguard Worker 150*61046927SAndroid Build Coastguard Worker typedef struct VkSemaphoreGetWin32HandleInfoKHR { 151*61046927SAndroid Build Coastguard Worker VkStructureType sType; 152*61046927SAndroid Build Coastguard Worker const void* pNext; 153*61046927SAndroid Build Coastguard Worker VkSemaphore semaphore; 154*61046927SAndroid Build Coastguard Worker VkExternalSemaphoreHandleTypeFlagBits handleType; 155*61046927SAndroid Build Coastguard Worker } VkSemaphoreGetWin32HandleInfoKHR; 156*61046927SAndroid Build Coastguard Worker 157*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); 158*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); 159*61046927SAndroid Build Coastguard Worker 160*61046927SAndroid Build Coastguard Worker #ifndef VK_NO_PROTOTYPES 161*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR( 162*61046927SAndroid Build Coastguard Worker VkDevice device, 163*61046927SAndroid Build Coastguard Worker const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); 164*61046927SAndroid Build Coastguard Worker 165*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( 166*61046927SAndroid Build Coastguard Worker VkDevice device, 167*61046927SAndroid Build Coastguard Worker const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, 168*61046927SAndroid Build Coastguard Worker HANDLE* pHandle); 169*61046927SAndroid Build Coastguard Worker #endif 170*61046927SAndroid Build Coastguard Worker 171*61046927SAndroid Build Coastguard Worker 172*61046927SAndroid Build Coastguard Worker // VK_KHR_external_fence_win32 is a preprocessor guard. Do not pass it to API calls. 173*61046927SAndroid Build Coastguard Worker #define VK_KHR_external_fence_win32 1 174*61046927SAndroid Build Coastguard Worker #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 175*61046927SAndroid Build Coastguard Worker #define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" 176*61046927SAndroid Build Coastguard Worker typedef struct VkImportFenceWin32HandleInfoKHR { 177*61046927SAndroid Build Coastguard Worker VkStructureType sType; 178*61046927SAndroid Build Coastguard Worker const void* pNext; 179*61046927SAndroid Build Coastguard Worker VkFence fence; 180*61046927SAndroid Build Coastguard Worker VkFenceImportFlags flags; 181*61046927SAndroid Build Coastguard Worker VkExternalFenceHandleTypeFlagBits handleType; 182*61046927SAndroid Build Coastguard Worker HANDLE handle; 183*61046927SAndroid Build Coastguard Worker LPCWSTR name; 184*61046927SAndroid Build Coastguard Worker } VkImportFenceWin32HandleInfoKHR; 185*61046927SAndroid Build Coastguard Worker 186*61046927SAndroid Build Coastguard Worker typedef struct VkExportFenceWin32HandleInfoKHR { 187*61046927SAndroid Build Coastguard Worker VkStructureType sType; 188*61046927SAndroid Build Coastguard Worker const void* pNext; 189*61046927SAndroid Build Coastguard Worker const SECURITY_ATTRIBUTES* pAttributes; 190*61046927SAndroid Build Coastguard Worker DWORD dwAccess; 191*61046927SAndroid Build Coastguard Worker LPCWSTR name; 192*61046927SAndroid Build Coastguard Worker } VkExportFenceWin32HandleInfoKHR; 193*61046927SAndroid Build Coastguard Worker 194*61046927SAndroid Build Coastguard Worker typedef struct VkFenceGetWin32HandleInfoKHR { 195*61046927SAndroid Build Coastguard Worker VkStructureType sType; 196*61046927SAndroid Build Coastguard Worker const void* pNext; 197*61046927SAndroid Build Coastguard Worker VkFence fence; 198*61046927SAndroid Build Coastguard Worker VkExternalFenceHandleTypeFlagBits handleType; 199*61046927SAndroid Build Coastguard Worker } VkFenceGetWin32HandleInfoKHR; 200*61046927SAndroid Build Coastguard Worker 201*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); 202*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); 203*61046927SAndroid Build Coastguard Worker 204*61046927SAndroid Build Coastguard Worker #ifndef VK_NO_PROTOTYPES 205*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR( 206*61046927SAndroid Build Coastguard Worker VkDevice device, 207*61046927SAndroid Build Coastguard Worker const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); 208*61046927SAndroid Build Coastguard Worker 209*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( 210*61046927SAndroid Build Coastguard Worker VkDevice device, 211*61046927SAndroid Build Coastguard Worker const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, 212*61046927SAndroid Build Coastguard Worker HANDLE* pHandle); 213*61046927SAndroid Build Coastguard Worker #endif 214*61046927SAndroid Build Coastguard Worker 215*61046927SAndroid Build Coastguard Worker 216*61046927SAndroid Build Coastguard Worker // VK_NV_external_memory_win32 is a preprocessor guard. Do not pass it to API calls. 217*61046927SAndroid Build Coastguard Worker #define VK_NV_external_memory_win32 1 218*61046927SAndroid Build Coastguard Worker #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 219*61046927SAndroid Build Coastguard Worker #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" 220*61046927SAndroid Build Coastguard Worker typedef struct VkImportMemoryWin32HandleInfoNV { 221*61046927SAndroid Build Coastguard Worker VkStructureType sType; 222*61046927SAndroid Build Coastguard Worker const void* pNext; 223*61046927SAndroid Build Coastguard Worker VkExternalMemoryHandleTypeFlagsNV handleType; 224*61046927SAndroid Build Coastguard Worker HANDLE handle; 225*61046927SAndroid Build Coastguard Worker } VkImportMemoryWin32HandleInfoNV; 226*61046927SAndroid Build Coastguard Worker 227*61046927SAndroid Build Coastguard Worker typedef struct VkExportMemoryWin32HandleInfoNV { 228*61046927SAndroid Build Coastguard Worker VkStructureType sType; 229*61046927SAndroid Build Coastguard Worker const void* pNext; 230*61046927SAndroid Build Coastguard Worker const SECURITY_ATTRIBUTES* pAttributes; 231*61046927SAndroid Build Coastguard Worker DWORD dwAccess; 232*61046927SAndroid Build Coastguard Worker } VkExportMemoryWin32HandleInfoNV; 233*61046927SAndroid Build Coastguard Worker 234*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); 235*61046927SAndroid Build Coastguard Worker 236*61046927SAndroid Build Coastguard Worker #ifndef VK_NO_PROTOTYPES 237*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV( 238*61046927SAndroid Build Coastguard Worker VkDevice device, 239*61046927SAndroid Build Coastguard Worker VkDeviceMemory memory, 240*61046927SAndroid Build Coastguard Worker VkExternalMemoryHandleTypeFlagsNV handleType, 241*61046927SAndroid Build Coastguard Worker HANDLE* pHandle); 242*61046927SAndroid Build Coastguard Worker #endif 243*61046927SAndroid Build Coastguard Worker 244*61046927SAndroid Build Coastguard Worker 245*61046927SAndroid Build Coastguard Worker // VK_NV_win32_keyed_mutex is a preprocessor guard. Do not pass it to API calls. 246*61046927SAndroid Build Coastguard Worker #define VK_NV_win32_keyed_mutex 1 247*61046927SAndroid Build Coastguard Worker #define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2 248*61046927SAndroid Build Coastguard Worker #define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" 249*61046927SAndroid Build Coastguard Worker typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { 250*61046927SAndroid Build Coastguard Worker VkStructureType sType; 251*61046927SAndroid Build Coastguard Worker const void* pNext; 252*61046927SAndroid Build Coastguard Worker uint32_t acquireCount; 253*61046927SAndroid Build Coastguard Worker const VkDeviceMemory* pAcquireSyncs; 254*61046927SAndroid Build Coastguard Worker const uint64_t* pAcquireKeys; 255*61046927SAndroid Build Coastguard Worker const uint32_t* pAcquireTimeoutMilliseconds; 256*61046927SAndroid Build Coastguard Worker uint32_t releaseCount; 257*61046927SAndroid Build Coastguard Worker const VkDeviceMemory* pReleaseSyncs; 258*61046927SAndroid Build Coastguard Worker const uint64_t* pReleaseKeys; 259*61046927SAndroid Build Coastguard Worker } VkWin32KeyedMutexAcquireReleaseInfoNV; 260*61046927SAndroid Build Coastguard Worker 261*61046927SAndroid Build Coastguard Worker 262*61046927SAndroid Build Coastguard Worker 263*61046927SAndroid Build Coastguard Worker // VK_EXT_full_screen_exclusive is a preprocessor guard. Do not pass it to API calls. 264*61046927SAndroid Build Coastguard Worker #define VK_EXT_full_screen_exclusive 1 265*61046927SAndroid Build Coastguard Worker #define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4 266*61046927SAndroid Build Coastguard Worker #define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive" 267*61046927SAndroid Build Coastguard Worker 268*61046927SAndroid Build Coastguard Worker typedef enum VkFullScreenExclusiveEXT { 269*61046927SAndroid Build Coastguard Worker VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0, 270*61046927SAndroid Build Coastguard Worker VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1, 271*61046927SAndroid Build Coastguard Worker VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2, 272*61046927SAndroid Build Coastguard Worker VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3, 273*61046927SAndroid Build Coastguard Worker VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF 274*61046927SAndroid Build Coastguard Worker } VkFullScreenExclusiveEXT; 275*61046927SAndroid Build Coastguard Worker typedef struct VkSurfaceFullScreenExclusiveInfoEXT { 276*61046927SAndroid Build Coastguard Worker VkStructureType sType; 277*61046927SAndroid Build Coastguard Worker void* pNext; 278*61046927SAndroid Build Coastguard Worker VkFullScreenExclusiveEXT fullScreenExclusive; 279*61046927SAndroid Build Coastguard Worker } VkSurfaceFullScreenExclusiveInfoEXT; 280*61046927SAndroid Build Coastguard Worker 281*61046927SAndroid Build Coastguard Worker typedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT { 282*61046927SAndroid Build Coastguard Worker VkStructureType sType; 283*61046927SAndroid Build Coastguard Worker void* pNext; 284*61046927SAndroid Build Coastguard Worker VkBool32 fullScreenExclusiveSupported; 285*61046927SAndroid Build Coastguard Worker } VkSurfaceCapabilitiesFullScreenExclusiveEXT; 286*61046927SAndroid Build Coastguard Worker 287*61046927SAndroid Build Coastguard Worker typedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT { 288*61046927SAndroid Build Coastguard Worker VkStructureType sType; 289*61046927SAndroid Build Coastguard Worker const void* pNext; 290*61046927SAndroid Build Coastguard Worker HMONITOR hmonitor; 291*61046927SAndroid Build Coastguard Worker } VkSurfaceFullScreenExclusiveWin32InfoEXT; 292*61046927SAndroid Build Coastguard Worker 293*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); 294*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); 295*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); 296*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes); 297*61046927SAndroid Build Coastguard Worker 298*61046927SAndroid Build Coastguard Worker #ifndef VK_NO_PROTOTYPES 299*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT( 300*61046927SAndroid Build Coastguard Worker VkPhysicalDevice physicalDevice, 301*61046927SAndroid Build Coastguard Worker const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 302*61046927SAndroid Build Coastguard Worker uint32_t* pPresentModeCount, 303*61046927SAndroid Build Coastguard Worker VkPresentModeKHR* pPresentModes); 304*61046927SAndroid Build Coastguard Worker 305*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT( 306*61046927SAndroid Build Coastguard Worker VkDevice device, 307*61046927SAndroid Build Coastguard Worker VkSwapchainKHR swapchain); 308*61046927SAndroid Build Coastguard Worker 309*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT( 310*61046927SAndroid Build Coastguard Worker VkDevice device, 311*61046927SAndroid Build Coastguard Worker VkSwapchainKHR swapchain); 312*61046927SAndroid Build Coastguard Worker 313*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT( 314*61046927SAndroid Build Coastguard Worker VkDevice device, 315*61046927SAndroid Build Coastguard Worker const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 316*61046927SAndroid Build Coastguard Worker VkDeviceGroupPresentModeFlagsKHR* pModes); 317*61046927SAndroid Build Coastguard Worker #endif 318*61046927SAndroid Build Coastguard Worker 319*61046927SAndroid Build Coastguard Worker 320*61046927SAndroid Build Coastguard Worker // VK_NV_acquire_winrt_display is a preprocessor guard. Do not pass it to API calls. 321*61046927SAndroid Build Coastguard Worker #define VK_NV_acquire_winrt_display 1 322*61046927SAndroid Build Coastguard Worker #define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1 323*61046927SAndroid Build Coastguard Worker #define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display" 324*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); 325*61046927SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay); 326*61046927SAndroid Build Coastguard Worker 327*61046927SAndroid Build Coastguard Worker #ifndef VK_NO_PROTOTYPES 328*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkAcquireWinrtDisplayNV( 329*61046927SAndroid Build Coastguard Worker VkPhysicalDevice physicalDevice, 330*61046927SAndroid Build Coastguard Worker VkDisplayKHR display); 331*61046927SAndroid Build Coastguard Worker 332*61046927SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetWinrtDisplayNV( 333*61046927SAndroid Build Coastguard Worker VkPhysicalDevice physicalDevice, 334*61046927SAndroid Build Coastguard Worker uint32_t deviceRelativeId, 335*61046927SAndroid Build Coastguard Worker VkDisplayKHR* pDisplay); 336*61046927SAndroid Build Coastguard Worker #endif 337*61046927SAndroid Build Coastguard Worker 338*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 339*61046927SAndroid Build Coastguard Worker } 340*61046927SAndroid Build Coastguard Worker #endif 341*61046927SAndroid Build Coastguard Worker 342*61046927SAndroid Build Coastguard Worker #endif 343