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