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