xref: /aosp_15_r20/external/vulkan-headers/include/vulkan/vulkan_win32.h (revision 902771965e4c6d39c75c62130a6a330c08b024db)
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