RetroArch
vulkan_win32.h
Go to the documentation of this file.
1 #ifndef VULKAN_WIN32_H_
2 #define VULKAN_WIN32_H_ 1
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 /*
9 ** Copyright (c) 2015-2018 The Khronos Group Inc.
10 **
11 ** Licensed under the Apache License, Version 2.0 (the "License");
12 ** you may not use this file except in compliance with the License.
13 ** You may obtain a copy of the License at
14 **
15 ** http://www.apache.org/licenses/LICENSE-2.0
16 **
17 ** Unless required by applicable law or agreed to in writing, software
18 ** distributed under the License is distributed on an "AS IS" BASIS,
19 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 ** See the License for the specific language governing permissions and
21 ** limitations under the License.
22 */
23 
24 /*
25 ** This header is generated from the Khronos Vulkan XML API Registry.
26 **
27 */
28 
29 
30 #define VK_KHR_win32_surface 1
31 #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
32 #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
33 
35 
38  const void* pNext;
40  HINSTANCE hinstance;
41  HWND hwnd;
43 
44 
45 typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
46 typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
47 
48 #ifndef VK_NO_PROTOTYPES
50  VkInstance instance,
51  const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
52  const VkAllocationCallbacks* pAllocator,
53  VkSurfaceKHR* pSurface);
54 
56  VkPhysicalDevice physicalDevice,
57  uint32_t queueFamilyIndex);
58 #endif
59 
60 #define VK_KHR_external_memory_win32 1
61 #define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
62 #define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
63 
66  const void* pNext;
68  HANDLE handle;
69  LPCWSTR name;
71 
74  const void* pNext;
75  const SECURITY_ATTRIBUTES* pAttributes;
76  DWORD dwAccess;
77  LPCWSTR name;
79 
82  void* pNext;
85 
88  const void* pNext;
89  VkDeviceMemory memory;
92 
93 
94 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
96 
97 #ifndef VK_NO_PROTOTYPES
99  VkDevice device,
100  const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
101  HANDLE* pHandle);
102 
104  VkDevice device,
106  HANDLE handle,
107  VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
108 #endif
109 
110 #define VK_KHR_win32_keyed_mutex 1
111 #define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
112 #define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
113 
116  const void* pNext;
118  const VkDeviceMemory* pAcquireSyncs;
122  const VkDeviceMemory* pReleaseSyncs;
125 
126 
127 
128 #define VK_KHR_external_semaphore_win32 1
129 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
130 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
131 
134  const void* pNext;
135  VkSemaphore semaphore;
138  HANDLE handle;
139  LPCWSTR name;
141 
144  const void* pNext;
145  const SECURITY_ATTRIBUTES* pAttributes;
146  DWORD dwAccess;
147  LPCWSTR name;
149 
152  const void* pNext;
158 
161  const void* pNext;
162  VkSemaphore semaphore;
165 
166 
167 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
168 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
169 
170 #ifndef VK_NO_PROTOTYPES
172  VkDevice device,
173  const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
174 
176  VkDevice device,
177  const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
178  HANDLE* pHandle);
179 #endif
180 
181 #define VK_KHR_external_fence_win32 1
182 #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
183 #define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
184 
187  const void* pNext;
188  VkFence fence;
191  HANDLE handle;
192  LPCWSTR name;
194 
197  const void* pNext;
198  const SECURITY_ATTRIBUTES* pAttributes;
199  DWORD dwAccess;
200  LPCWSTR name;
202 
205  const void* pNext;
206  VkFence fence;
209 
210 
211 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
212 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
213 
214 #ifndef VK_NO_PROTOTYPES
216  VkDevice device,
217  const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
218 
220  VkDevice device,
221  const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
222  HANDLE* pHandle);
223 #endif
224 
225 #define VK_NV_external_memory_win32 1
226 #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
227 #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
228 
231  const void* pNext;
233  HANDLE handle;
235 
238  const void* pNext;
239  const SECURITY_ATTRIBUTES* pAttributes;
240  DWORD dwAccess;
242 
243 
244 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
245 
246 #ifndef VK_NO_PROTOTYPES
248  VkDevice device,
249  VkDeviceMemory memory,
251  HANDLE* pHandle);
252 #endif
253 
254 #define VK_NV_win32_keyed_mutex 1
255 #define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
256 #define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
257 
260  const void* pNext;
262  const VkDeviceMemory* pAcquireSyncs;
266  const VkDeviceMemory* pReleaseSyncs;
269 
270 
271 
272 #ifdef __cplusplus
273 }
274 #endif
275 
276 #endif
struct VkImportMemoryWin32HandleInfoKHR VkImportMemoryWin32HandleInfoKHR
const void * pNext
Definition: vulkan_win32.h:144
struct VkWin32SurfaceCreateInfoKHR VkWin32SurfaceCreateInfoKHR
VkFence fence
Definition: vulkan_win32.h:206
VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface)
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex)
const void * pNext
Definition: vulkan_win32.h:197
Definition: vulkan_core.h:1665
VkStructureType sType
Definition: vulkan_win32.h:73
const void * pNext
Definition: vulkan_win32.h:152
VkFenceImportFlags flags
Definition: vulkan_win32.h:189
DWORD dwAccess
Definition: vulkan_win32.h:240
uint32_t memoryTypeBits
Definition: vulkan_win32.h:83
struct VkImportMemoryWin32HandleInfoNV VkImportMemoryWin32HandleInfoNV
const VkDeviceMemory * pReleaseSyncs
Definition: vulkan_win32.h:122
VkResult(VKAPI_PTR * PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
Definition: vulkan_win32.h:168
VkExternalMemoryHandleTypeFlagBits
Definition: vulkan_core.h:3778
VkResult(VKAPI_PTR * PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE *pHandle)
Definition: vulkan_win32.h:244
const void * pNext
Definition: vulkan_win32.h:88
DWORD dwAccess
Definition: vulkan_win32.h:76
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR *pMemoryWin32HandleProperties)
VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR *pImportSemaphoreWin32HandleInfo)
#define VKAPI_PTR
Definition: vk_platform.h:68
VkStructureType sType
Definition: vulkan_win32.h:237
VkStructureType sType
Definition: vulkan_win32.h:115
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR(VkDevice device, const VkMemoryGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
DWORD dwAccess
Definition: vulkan_win32.h:146
VkFence fence
Definition: vulkan_win32.h:188
VkResult(VKAPI_PTR * PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
Definition: vulkan_win32.h:94
VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR(VkDevice device, const VkImportFenceWin32HandleInfoKHR *pImportFenceWin32HandleInfo)
Definition: vulkan_win32.h:80
const void * pNext
Definition: vulkan_win32.h:260
LPCWSTR name
Definition: vulkan_win32.h:192
LPCWSTR name
Definition: vulkan_win32.h:200
struct VkSemaphoreGetWin32HandleInfoKHR VkSemaphoreGetWin32HandleInfoKHR
VkStructureType sType
Definition: vulkan_win32.h:65
VkStructureType sType
Definition: vulkan_win32.h:87
VkResult(VKAPI_PTR * PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface)
Definition: vulkan_win32.h:45
VkExternalMemoryHandleTypeFlagBits handleType
Definition: vulkan_win32.h:90
VkResult(VKAPI_PTR * PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR *pImportSemaphoreWin32HandleInfo)
Definition: vulkan_win32.h:167
struct VkFenceGetWin32HandleInfoKHR VkFenceGetWin32HandleInfoKHR
VkStructureType sType
Definition: vulkan_win32.h:186
VkExternalFenceHandleTypeFlagBits handleType
Definition: vulkan_win32.h:190
VkStructureType sType
Definition: vulkan_win32.h:204
Definition: vulkan_win32.h:150
const uint32_t * pAcquireTimeouts
Definition: vulkan_win32.h:120
VkResult(VKAPI_PTR * PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
Definition: vulkan_win32.h:212
VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
const SECURITY_ATTRIBUTES * pAttributes
Definition: vulkan_win32.h:239
VkSemaphore semaphore
Definition: vulkan_win32.h:135
void * pNext
Definition: vulkan_win32.h:82
uint32_t releaseCount
Definition: vulkan_win32.h:265
uint32_t releaseCount
Definition: vulkan_win32.h:121
Definition: vulkan_win32.h:36
uint32_t VkFlags
Definition: vulkan_core.h:68
Definition: vulkan_win32.h:229
VkFlags VkExternalMemoryHandleTypeFlagsNV
Definition: vulkan_core.h:6098
VkStructureType sType
Definition: vulkan_win32.h:133
VkExternalMemoryHandleTypeFlagsNV handleType
Definition: vulkan_win32.h:232
VkFlags VkWin32SurfaceCreateFlagsKHR
Definition: vulkan_win32.h:34
const void * pNext
Definition: vulkan_win32.h:187
const uint64_t * pAcquireKeys
Definition: vulkan_win32.h:263
VkFlags VkSemaphoreImportFlags
Definition: vulkan_core.h:3846
HANDLE handle
Definition: vulkan_win32.h:191
struct VkExportMemoryWin32HandleInfoNV VkExportMemoryWin32HandleInfoNV
const uint64_t * pReleaseKeys
Definition: vulkan_win32.h:267
#define VKAPI_CALL
Definition: vk_platform.h:67
LPCWSTR name
Definition: vulkan_win32.h:147
const VkDeviceMemory * pAcquireSyncs
Definition: vulkan_win32.h:118
LPCWSTR name
Definition: vulkan_win32.h:69
const uint64_t * pSignalSemaphoreValues
Definition: vulkan_win32.h:156
Definition: vulkan_win32.h:114
VkSemaphoreImportFlags flags
Definition: vulkan_win32.h:136
const void * pNext
Definition: vulkan_win32.h:116
VkStructureType sType
Definition: vulkan_win32.h:259
const void * pNext
Definition: vulkan_win32.h:38
Definition: vulkan_win32.h:72
VkStructureType sType
Definition: vulkan_win32.h:37
VkFlags VkFenceImportFlags
Definition: vulkan_core.h:3839
const uint32_t * pAcquireTimeoutMilliseconds
Definition: vulkan_win32.h:264
VkExternalFenceHandleTypeFlagBits handleType
Definition: vulkan_win32.h:207
struct VkExportMemoryWin32HandleInfoKHR VkExportMemoryWin32HandleInfoKHR
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE *pHandle)
const void * pNext
Definition: vulkan_win32.h:238
VkDeviceMemory memory
Definition: vulkan_win32.h:89
uint32_t acquireCount
Definition: vulkan_win32.h:261
VkStructureType sType
Definition: vulkan_win32.h:151
struct VkMemoryGetWin32HandleInfoKHR VkMemoryGetWin32HandleInfoKHR
struct VkWin32KeyedMutexAcquireReleaseInfoKHR VkWin32KeyedMutexAcquireReleaseInfoKHR
Definition: vulkan_win32.h:185
VkStructureType sType
Definition: vulkan_win32.h:81
const SECURITY_ATTRIBUTES * pAttributes
Definition: vulkan_win32.h:145
const void * pNext
Definition: vulkan_win32.h:161
VkResult
Definition: vulkan_core.h:124
struct VkImportFenceWin32HandleInfoKHR VkImportFenceWin32HandleInfoKHR
Definition: vulkan_win32.h:142
uint32_t signalSemaphoreValuesCount
Definition: vulkan_win32.h:155
const void * pNext
Definition: vulkan_win32.h:205
Definition: vulkan_win32.h:86
struct VkWin32KeyedMutexAcquireReleaseInfoNV VkWin32KeyedMutexAcquireReleaseInfoNV
const void * pNext
Definition: vulkan_win32.h:231
VkExternalSemaphoreHandleTypeFlagBits handleType
Definition: vulkan_win32.h:163
const void * pNext
Definition: vulkan_win32.h:66
Definition: vulkan_win32.h:64
const uint64_t * pReleaseKeys
Definition: vulkan_win32.h:123
VkExternalFenceHandleTypeFlagBits
Definition: vulkan_core.h:3812
VkStructureType sType
Definition: vulkan_win32.h:230
struct VkExportFenceWin32HandleInfoKHR VkExportFenceWin32HandleInfoKHR
Definition: vulkan_win32.h:258
HANDLE handle
Definition: vulkan_win32.h:138
const void * pNext
Definition: vulkan_win32.h:134
struct VkExportSemaphoreWin32HandleInfoKHR VkExportSemaphoreWin32HandleInfoKHR
const VkDeviceMemory * pReleaseSyncs
Definition: vulkan_win32.h:266
Definition: vulkan_win32.h:203
VkSemaphore semaphore
Definition: vulkan_win32.h:162
Definition: vulkan_win32.h:159
struct VkImportSemaphoreWin32HandleInfoKHR VkImportSemaphoreWin32HandleInfoKHR
VkStructureType sType
Definition: vulkan_win32.h:160
uint32_t waitSemaphoreValuesCount
Definition: vulkan_win32.h:153
const void * pNext
Definition: vulkan_win32.h:74
HANDLE handle
Definition: vulkan_win32.h:233
Definition: vulkan_win32.h:132
VkStructureType
Definition: vulkan_core.h:162
VkExternalMemoryHandleTypeFlagBits handleType
Definition: vulkan_win32.h:67
uint32_t VkBool32
Definition: vulkan_core.h:69
VkBool32(VKAPI_PTR * PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex)
Definition: vulkan_win32.h:46
uint32_t acquireCount
Definition: vulkan_win32.h:117
VkStructureType sType
Definition: vulkan_win32.h:143
LPCWSTR name
Definition: vulkan_win32.h:77
VkResult(VKAPI_PTR * PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR *pImportFenceWin32HandleInfo)
Definition: vulkan_win32.h:211
VkStructureType sType
Definition: vulkan_win32.h:196
Definition: vulkan_win32.h:236
const VkDeviceMemory * pAcquireSyncs
Definition: vulkan_win32.h:262
const SECURITY_ATTRIBUTES * pAttributes
Definition: vulkan_win32.h:75
Definition: vulkan_win32.h:195
VkExternalSemaphoreHandleTypeFlagBits handleType
Definition: vulkan_win32.h:137
#define VKAPI_ATTR
Definition: vk_platform.h:66
HWND hwnd
Definition: vulkan_win32.h:41
VkExternalSemaphoreHandleTypeFlagBits
Definition: vulkan_core.h:3848
LPCWSTR name
Definition: vulkan_win32.h:139
HINSTANCE hinstance
Definition: vulkan_win32.h:40
VkWin32SurfaceCreateFlagsKHR flags
Definition: vulkan_win32.h:39
VkResult(VKAPI_PTR * PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR *pMemoryWin32HandleProperties)
Definition: vulkan_win32.h:95
HANDLE handle
Definition: vulkan_win32.h:68
struct VkD3D12FenceSubmitInfoKHR VkD3D12FenceSubmitInfoKHR
struct nk_device device
Definition: nk_common.c:44
const uint64_t * pAcquireKeys
Definition: vulkan_win32.h:119
unsigned __int64 uint64_t
Definition: stdint.h:136
unsigned int uint32_t
Definition: stdint.h:126
DWORD dwAccess
Definition: vulkan_win32.h:199
const uint64_t * pWaitSemaphoreValues
Definition: vulkan_win32.h:154
struct VkMemoryWin32HandlePropertiesKHR VkMemoryWin32HandlePropertiesKHR
VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR(VkDevice device, const VkFenceGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
const SECURITY_ATTRIBUTES * pAttributes
Definition: vulkan_win32.h:198