1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
#ifndef VULKAN_SCI_H_
#define VULKAN_SCI_H_ 1
/*
** Copyright 2015-2021 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
/*
** This header is generated from the Khronos Vulkan XML API Registry.
**
*/
#ifdef __cplusplus
extern "C" {
#endif
#define VK_NV_external_sci_sync 1
#define VK_NV_EXTERNAL_SCI_SYNC_SPEC_VERSION 2
#define VK_NV_EXTERNAL_SCI_SYNC_EXTENSION_NAME "VK_NV_external_sci_sync"
typedef enum VkSciSyncClientTypeNV {
VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_NV = 0,
VK_SCI_SYNC_CLIENT_TYPE_WAITER_NV = 1,
VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_WAITER_NV = 2,
VK_SCI_SYNC_CLIENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
} VkSciSyncClientTypeNV;
typedef enum VkSciSyncPrimitiveTypeNV {
VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV = 0,
VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV = 1,
VK_SCI_SYNC_PRIMITIVE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
} VkSciSyncPrimitiveTypeNV;
typedef struct VkExportFenceSciSyncInfoNV {
VkStructureType sType;
const void* pNext;
NvSciSyncAttrList pAttributes;
} VkExportFenceSciSyncInfoNV;
typedef struct VkImportFenceSciSyncInfoNV {
VkStructureType sType;
const void* pNext;
VkFence fence;
VkExternalFenceHandleTypeFlagBits handleType;
void* handle;
} VkImportFenceSciSyncInfoNV;
typedef struct VkFenceGetSciSyncInfoNV {
VkStructureType sType;
const void* pNext;
VkFence fence;
VkExternalFenceHandleTypeFlagBits handleType;
} VkFenceGetSciSyncInfoNV;
typedef struct VkSciSyncAttributesInfoNV {
VkStructureType sType;
const void* pNext;
VkSciSyncClientTypeNV clientType;
VkSciSyncPrimitiveTypeNV primitiveType;
} VkSciSyncAttributesInfoNV;
typedef struct VkExportSemaphoreSciSyncInfoNV {
VkStructureType sType;
const void* pNext;
NvSciSyncAttrList pAttributes;
} VkExportSemaphoreSciSyncInfoNV;
typedef struct VkImportSemaphoreSciSyncInfoNV {
VkStructureType sType;
const void* pNext;
VkSemaphore semaphore;
VkExternalSemaphoreHandleTypeFlagBits handleType;
void* handle;
} VkImportSemaphoreSciSyncInfoNV;
typedef struct VkSemaphoreGetSciSyncInfoNV {
VkStructureType sType;
const void* pNext;
VkSemaphore semaphore;
VkExternalSemaphoreHandleTypeFlagBits handleType;
} VkSemaphoreGetSciSyncInfoNV;
typedef struct VkPhysicalDeviceExternalSciSyncFeaturesNV {
VkStructureType sType;
void* pNext;
VkBool32 sciSyncFence;
VkBool32 sciSyncSemaphore;
VkBool32 sciSyncImport;
VkBool32 sciSyncExport;
} VkPhysicalDeviceExternalSciSyncFeaturesNV;
typedef VkResult (VKAPI_PTR *PFN_vkGetFenceSciSyncFenceNV)(VkDevice device, const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo, void* pHandle);
typedef VkResult (VKAPI_PTR *PFN_vkGetFenceSciSyncObjNV)(VkDevice device, const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo, void* pHandle);
typedef VkResult (VKAPI_PTR *PFN_vkImportFenceSciSyncFenceNV)(VkDevice device, const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo);
typedef VkResult (VKAPI_PTR *PFN_vkImportFenceSciSyncObjNV)(VkDevice device, const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo);
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSciSyncAttributesNV)(VkPhysicalDevice physicalDevice, const VkSciSyncAttributesInfoNV* pSciSyncAttributesInfo, NvSciSyncAttrList pAttributes);
typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreSciSyncObjNV)(VkDevice device, const VkSemaphoreGetSciSyncInfoNV* pGetSciSyncInfo, void* pHandle);
typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreSciSyncObjNV)(VkDevice device, const VkImportSemaphoreSciSyncInfoNV* pImportSemaphoreSciSyncInfo);
#ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceSciSyncFenceNV(
VkDevice device,
const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo,
void* pHandle);
VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceSciSyncObjNV(
VkDevice device,
const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo,
void* pHandle);
VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceSciSyncFenceNV(
VkDevice device,
const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo);
VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceSciSyncObjNV(
VkDevice device,
const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo);
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSciSyncAttributesNV(
VkPhysicalDevice physicalDevice,
const VkSciSyncAttributesInfoNV* pSciSyncAttributesInfo,
NvSciSyncAttrList pAttributes);
VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreSciSyncObjNV(
VkDevice device,
const VkSemaphoreGetSciSyncInfoNV* pGetSciSyncInfo,
void* pHandle);
VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreSciSyncObjNV(
VkDevice device,
const VkImportSemaphoreSciSyncInfoNV* pImportSemaphoreSciSyncInfo);
#endif
#define VK_NV_external_memory_sci_buf 1
#define VK_NV_EXTERNAL_MEMORY_SCI_BUF_SPEC_VERSION 2
#define VK_NV_EXTERNAL_MEMORY_SCI_BUF_EXTENSION_NAME "VK_NV_external_memory_sci_buf"
typedef struct VkExportMemorySciBufInfoNV {
VkStructureType sType;
const void* pNext;
NvSciBufAttrList pAttributes;
} VkExportMemorySciBufInfoNV;
typedef struct VkImportMemorySciBufInfoNV {
VkStructureType sType;
const void* pNext;
VkExternalMemoryHandleTypeFlagBits handleType;
NvSciBufObj handle;
} VkImportMemorySciBufInfoNV;
typedef struct VkMemoryGetSciBufInfoNV {
VkStructureType sType;
const void* pNext;
VkDeviceMemory memory;
VkExternalMemoryHandleTypeFlagBits handleType;
} VkMemoryGetSciBufInfoNV;
typedef struct VkMemorySciBufPropertiesNV {
VkStructureType sType;
const void* pNext;
uint32_t memoryTypeBits;
} VkMemorySciBufPropertiesNV;
typedef struct VkPhysicalDeviceExternalMemorySciBufFeaturesNV {
VkStructureType sType;
void* pNext;
VkBool32 sciBufImport;
VkBool32 sciBufExport;
} VkPhysicalDeviceExternalMemorySciBufFeaturesNV;
typedef VkPhysicalDeviceExternalMemorySciBufFeaturesNV VkPhysicalDeviceExternalSciBufFeaturesNV;
typedef VkResult (VKAPI_PTR *PFN_vkGetMemorySciBufNV)(VkDevice device, const VkMemoryGetSciBufInfoNV* pGetSciBufInfo, NvSciBufObj* pHandle);
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV)(VkPhysicalDevice physicalDevice, VkExternalMemoryHandleTypeFlagBits handleType, NvSciBufObj handle, VkMemorySciBufPropertiesNV* pMemorySciBufProperties);
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSciBufAttributesNV)(VkPhysicalDevice physicalDevice, NvSciBufAttrList pAttributes);
#ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemorySciBufNV(
VkDevice device,
const VkMemoryGetSciBufInfoNV* pGetSciBufInfo,
NvSciBufObj* pHandle);
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV(
VkPhysicalDevice physicalDevice,
VkExternalMemoryHandleTypeFlagBits handleType,
NvSciBufObj handle,
VkMemorySciBufPropertiesNV* pMemorySciBufProperties);
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSciBufAttributesNV(
VkPhysicalDevice physicalDevice,
NvSciBufAttrList pAttributes);
#endif
#define VK_NV_external_sci_sync2 1
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphoreSciSyncPoolNV)
#define VK_NV_EXTERNAL_SCI_SYNC_2_SPEC_VERSION 1
#define VK_NV_EXTERNAL_SCI_SYNC_2_EXTENSION_NAME "VK_NV_external_sci_sync2"
typedef struct VkPhysicalDeviceExternalSciSync2FeaturesNV {
VkStructureType sType;
void* pNext;
VkBool32 sciSyncFence;
VkBool32 sciSyncSemaphore2;
VkBool32 sciSyncImport;
VkBool32 sciSyncExport;
} VkPhysicalDeviceExternalSciSync2FeaturesNV;
typedef struct VkSemaphoreSciSyncPoolCreateInfoNV {
VkStructureType sType;
const void* pNext;
NvSciSyncObj handle;
} VkSemaphoreSciSyncPoolCreateInfoNV;
typedef struct VkSemaphoreSciSyncCreateInfoNV {
VkStructureType sType;
const void* pNext;
VkSemaphoreSciSyncPoolNV semaphorePool;
const NvSciSyncFence* pFence;
} VkSemaphoreSciSyncCreateInfoNV;
typedef struct VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
VkStructureType sType;
const void* pNext;
uint32_t semaphoreSciSyncPoolRequestCount;
} VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV;
typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphoreSciSyncPoolNV)(VkDevice device, const VkSemaphoreSciSyncPoolCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphoreSciSyncPoolNV* pSemaphorePool);
#ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphoreSciSyncPoolNV(
VkDevice device,
const VkSemaphoreSciSyncPoolCreateInfoNV* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkSemaphoreSciSyncPoolNV* pSemaphorePool);
#endif
#ifdef __cplusplus
}
#endif
#endif
|