1 // Copyright (C) 2025 The Android Open Source Project
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 #include "VulkanBoxedHandles.h"
16
17 #include "VkDecoderGlobalState.h"
18 #include "VkDecoderInternalStructs.h"
19
20 namespace gfxstream {
21 namespace vk {
22 namespace {
23
24 struct ReadStreamRegistry {
25 android::base::Lock mLock;
26
27 std::vector<VulkanMemReadingStream*> freeStreams;
28
ReadStreamRegistrygfxstream::vk::__anond369c7fe0111::ReadStreamRegistry29 ReadStreamRegistry() { freeStreams.reserve(100); };
30
popgfxstream::vk::__anond369c7fe0111::ReadStreamRegistry31 VulkanMemReadingStream* pop(const gfxstream::host::FeatureSet& features) {
32 android::base::AutoLock lock(mLock);
33 if (freeStreams.empty()) {
34 return new VulkanMemReadingStream(nullptr, features);
35 } else {
36 VulkanMemReadingStream* res = freeStreams.back();
37 freeStreams.pop_back();
38 return res;
39 }
40 }
41
pushgfxstream::vk::__anond369c7fe0111::ReadStreamRegistry42 void push(VulkanMemReadingStream* stream) {
43 android::base::AutoLock lock(mLock);
44 freeStreams.push_back(stream);
45 }
46 };
47
48 static ReadStreamRegistry sReadStreamRegistry;
49
50 } // namespace
51
replayHandles(std::vector<BoxedHandle> handles)52 void BoxedHandleManager::replayHandles(std::vector<BoxedHandle> handles) {
53 mHandleReplay = true;
54 mHandleReplayQueue.clear();
55 for (BoxedHandle handle : handles) {
56 mHandleReplayQueue.push_back(handle);
57 }
58 }
59
clear()60 void BoxedHandleManager::clear() {
61 std::lock_guard<std::mutex> lock(mMutex);
62 mReverseMap.clear();
63 mStore.clear();
64 }
65
add(const BoxedHandleInfo & item,BoxedHandleTypeTag tag)66 BoxedHandle BoxedHandleManager::add(const BoxedHandleInfo& item, BoxedHandleTypeTag tag) {
67 BoxedHandle handle;
68
69 if (mHandleReplay) {
70 handle = mHandleReplayQueue.front();
71 mHandleReplayQueue.pop_front();
72 mHandleReplay = !mHandleReplayQueue.empty();
73
74 handle = (BoxedHandle)mStore.addFixed(handle, item, (size_t)tag);
75 } else {
76 handle = (BoxedHandle)mStore.add(item, (size_t)tag);
77 }
78
79 std::lock_guard<std::mutex> lock(mMutex);
80 mReverseMap[(BoxedHandle)(item.underlying)] = handle;
81 return handle;
82 }
83
update(BoxedHandle handle,const BoxedHandleInfo & item,BoxedHandleTypeTag tag)84 void BoxedHandleManager::update(BoxedHandle handle, const BoxedHandleInfo& item,
85 BoxedHandleTypeTag tag) {
86 auto storedItem = mStore.get(handle);
87 UnboxedHandle oldHandle = (UnboxedHandle)storedItem->underlying;
88 *storedItem = item;
89 std::lock_guard<std::mutex> lock(mMutex);
90 if (oldHandle) {
91 mReverseMap.erase(oldHandle);
92 }
93 mReverseMap[(UnboxedHandle)(item.underlying)] = handle;
94 }
95
remove(BoxedHandle h)96 void BoxedHandleManager::remove(BoxedHandle h) {
97 auto item = get(h);
98 if (item) {
99 std::lock_guard<std::mutex> lock(mMutex);
100 mReverseMap.erase((UnboxedHandle)(item->underlying));
101 }
102 mStore.remove(h);
103 }
104
removeDelayed(uint64_t h,VkDevice device,std::function<void ()> callback)105 void BoxedHandleManager::removeDelayed(uint64_t h, VkDevice device,
106 std::function<void()> callback) {
107 std::lock_guard<std::mutex> lock(mMutex);
108 mDelayedRemoves[device].push_back({h, callback});
109 }
110
processDelayedRemoves(VkDevice device)111 void BoxedHandleManager::processDelayedRemoves(VkDevice device) {
112 std::vector<DelayedRemove> deviceDelayedRemoves;
113
114 {
115 std::lock_guard<std::mutex> lock(mMutex);
116
117 auto it = mDelayedRemoves.find(device);
118 if (it == mDelayedRemoves.end()) return;
119
120 deviceDelayedRemoves = std::move(it->second);
121 mDelayedRemoves.erase(it);
122 }
123
124 for (const auto& r : deviceDelayedRemoves) {
125 auto h = r.handle;
126
127 // VkDecoderGlobalState is not locked when callback is called.
128 if (r.callback) {
129 r.callback();
130 }
131
132 mStore.remove(h);
133 }
134 }
135
get(BoxedHandle handle)136 BoxedHandleInfo* BoxedHandleManager::get(BoxedHandle handle) {
137 return (BoxedHandleInfo*)mStore.get_const(handle);
138 }
139
getBoxedFromUnboxed(UnboxedHandle unboxed)140 BoxedHandle BoxedHandleManager::getBoxedFromUnboxed(UnboxedHandle unboxed) {
141 std::lock_guard<std::mutex> lock(mMutex);
142
143 auto it = mReverseMap.find(unboxed);
144 if (it == mReverseMap.end()) {
145 return 0;
146 }
147
148 return it->second;
149 }
150
151 BoxedHandleManager sBoxedHandleManager;
152
153 template <typename VkObjectT>
GetTag()154 constexpr BoxedHandleTypeTag GetTag() {
155 if constexpr (std::is_same_v<VkObjectT, VkAccelerationStructureKHR>) {
156 return Tag_VkAccelerationStructureKHR;
157 } else if constexpr (std::is_same_v<VkObjectT, VkAccelerationStructureNV>) {
158 return Tag_VkAccelerationStructureNV;
159 } else if constexpr (std::is_same_v<VkObjectT, VkBuffer>) {
160 return Tag_VkBuffer;
161 } else if constexpr (std::is_same_v<VkObjectT, VkBufferView>) {
162 return Tag_VkBufferView;
163 } else if constexpr (std::is_same_v<VkObjectT, VkCommandBuffer>) {
164 return Tag_VkCommandBuffer;
165 } else if constexpr (std::is_same_v<VkObjectT, VkCommandPool>) {
166 return Tag_VkCommandPool;
167 } else if constexpr (std::is_same_v<VkObjectT, VkCuFunctionNVX>) {
168 return Tag_VkCuFunctionNVX;
169 } else if constexpr (std::is_same_v<VkObjectT, VkCuModuleNVX>) {
170 return Tag_VkCuModuleNVX;
171 } else if constexpr (std::is_same_v<VkObjectT, VkDebugReportCallbackEXT>) {
172 return Tag_VkDebugReportCallbackEXT;
173 } else if constexpr (std::is_same_v<VkObjectT, VkDebugUtilsMessengerEXT>) {
174 return Tag_VkDebugUtilsMessengerEXT;
175 } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorPool>) {
176 return Tag_VkDescriptorPool;
177 } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorSet>) {
178 return Tag_VkDescriptorSet;
179 } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorSetLayout>) {
180 return Tag_VkDescriptorSetLayout;
181 } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorUpdateTemplate>) {
182 return Tag_VkDescriptorUpdateTemplate;
183 } else if constexpr (std::is_same_v<VkObjectT, VkDevice>) {
184 return Tag_VkDevice;
185 } else if constexpr (std::is_same_v<VkObjectT, VkDeviceMemory>) {
186 return Tag_VkDeviceMemory;
187 } else if constexpr (std::is_same_v<VkObjectT, VkDisplayKHR>) {
188 return Tag_VkDisplayKHR;
189 } else if constexpr (std::is_same_v<VkObjectT, VkDisplayModeKHR>) {
190 return Tag_VkDisplayModeKHR;
191 } else if constexpr (std::is_same_v<VkObjectT, VkEvent>) {
192 return Tag_VkEvent;
193 } else if constexpr (std::is_same_v<VkObjectT, VkFence>) {
194 return Tag_VkFence;
195 } else if constexpr (std::is_same_v<VkObjectT, VkFramebuffer>) {
196 return Tag_VkFramebuffer;
197 } else if constexpr (std::is_same_v<VkObjectT, VkImage>) {
198 return Tag_VkImage;
199 } else if constexpr (std::is_same_v<VkObjectT, VkImageView>) {
200 return Tag_VkImageView;
201 } else if constexpr (std::is_same_v<VkObjectT, VkIndirectCommandsLayoutNV>) {
202 return Tag_VkIndirectCommandsLayoutNV;
203 } else if constexpr (std::is_same_v<VkObjectT, VkInstance>) {
204 return Tag_VkInstance;
205 } else if constexpr (std::is_same_v<VkObjectT, VkMicromapEXT>) {
206 return Tag_VkMicromapEXT;
207 } else if constexpr (std::is_same_v<VkObjectT, VkPhysicalDevice>) {
208 return Tag_VkPhysicalDevice;
209 } else if constexpr (std::is_same_v<VkObjectT, VkPipeline>) {
210 return Tag_VkPipeline;
211 } else if constexpr (std::is_same_v<VkObjectT, VkPipelineCache>) {
212 return Tag_VkPipelineCache;
213 } else if constexpr (std::is_same_v<VkObjectT, VkPipelineLayout>) {
214 return Tag_VkPipelineLayout;
215 } else if constexpr (std::is_same_v<VkObjectT, VkPrivateDataSlot>) {
216 return Tag_VkPrivateDataSlot;
217 } else if constexpr (std::is_same_v<VkObjectT, VkQueryPool>) {
218 return Tag_VkQueryPool;
219 } else if constexpr (std::is_same_v<VkObjectT, VkQueue>) {
220 return Tag_VkQueue;
221 } else if constexpr (std::is_same_v<VkObjectT, VkRenderPass>) {
222 return Tag_VkRenderPass;
223 } else if constexpr (std::is_same_v<VkObjectT, VkSampler>) {
224 return Tag_VkSampler;
225 } else if constexpr (std::is_same_v<VkObjectT, VkSamplerYcbcrConversion>) {
226 return Tag_VkSamplerYcbcrConversion;
227 } else if constexpr (std::is_same_v<VkObjectT, VkSemaphore>) {
228 return Tag_VkSemaphore;
229 } else if constexpr (std::is_same_v<VkObjectT, VkShaderModule>) {
230 return Tag_VkShaderModule;
231 } else if constexpr (std::is_same_v<VkObjectT, VkSurfaceKHR>) {
232 return Tag_VkSurfaceKHR;
233 } else if constexpr (std::is_same_v<VkObjectT, VkSwapchainKHR>) {
234 return Tag_VkSwapchainKHR;
235 } else if constexpr (std::is_same_v<VkObjectT, VkValidationCacheEXT>) {
236 return Tag_VkValidationCacheEXT;
237 } else {
238 static_assert(sizeof(VkObjectT) == 0,
239 "Unhandled VkObjectT. Please update BoxedHandleTypeTag.");
240 }
241 }
242
243 template <typename VkObjectT>
GetTypeStr()244 constexpr const char* GetTypeStr() {
245 if constexpr (std::is_same_v<VkObjectT, VkAccelerationStructureKHR>) {
246 return "VkAccelerationStructureKHR";
247 } else if constexpr (std::is_same_v<VkObjectT, VkAccelerationStructureNV>) {
248 return "VkAccelerationStructureNV";
249 } else if constexpr (std::is_same_v<VkObjectT, VkBuffer>) {
250 return "VkBuffer";
251 } else if constexpr (std::is_same_v<VkObjectT, VkBufferView>) {
252 return "VkBufferView";
253 } else if constexpr (std::is_same_v<VkObjectT, VkCommandBuffer>) {
254 return "VkCommandBuffer";
255 } else if constexpr (std::is_same_v<VkObjectT, VkCommandPool>) {
256 return "VkCommandPool";
257 } else if constexpr (std::is_same_v<VkObjectT, VkCuFunctionNVX>) {
258 return "VkCuFunctionNVX";
259 } else if constexpr (std::is_same_v<VkObjectT, VkCuModuleNVX>) {
260 return "VkCuModuleNVX";
261 } else if constexpr (std::is_same_v<VkObjectT, VkDebugReportCallbackEXT>) {
262 return "VkDebugReportCallbackEXT";
263 } else if constexpr (std::is_same_v<VkObjectT, VkDebugUtilsMessengerEXT>) {
264 return "VkDebugUtilsMessengerEXT";
265 } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorPool>) {
266 return "VkDescriptorPool";
267 } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorSet>) {
268 return "VkDescriptorSet";
269 } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorSetLayout>) {
270 return "VkDescriptorSetLayout";
271 } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorUpdateTemplate>) {
272 return "VkDescriptorUpdateTemplate";
273 } else if constexpr (std::is_same_v<VkObjectT, VkDevice>) {
274 return "VkDevice";
275 } else if constexpr (std::is_same_v<VkObjectT, VkDeviceMemory>) {
276 return "VkDeviceMemory";
277 } else if constexpr (std::is_same_v<VkObjectT, VkDisplayKHR>) {
278 return "VkDisplayKHR";
279 } else if constexpr (std::is_same_v<VkObjectT, VkDisplayModeKHR>) {
280 return "VkDisplayModeKHR";
281 } else if constexpr (std::is_same_v<VkObjectT, VkEvent>) {
282 return "VkEvent";
283 } else if constexpr (std::is_same_v<VkObjectT, VkFence>) {
284 return "VkFence";
285 } else if constexpr (std::is_same_v<VkObjectT, VkFramebuffer>) {
286 return "VkFramebuffer";
287 } else if constexpr (std::is_same_v<VkObjectT, VkImage>) {
288 return "VkImage";
289 } else if constexpr (std::is_same_v<VkObjectT, VkImageView>) {
290 return "VkImageView";
291 } else if constexpr (std::is_same_v<VkObjectT, VkIndirectCommandsLayoutNV>) {
292 return "VkIndirectCommandsLayoutNV";
293 } else if constexpr (std::is_same_v<VkObjectT, VkInstance>) {
294 return "VkInstance";
295 } else if constexpr (std::is_same_v<VkObjectT, VkMicromapEXT>) {
296 return "VkMicromapEXT";
297 } else if constexpr (std::is_same_v<VkObjectT, VkPhysicalDevice>) {
298 return "VkPhysicalDevice";
299 } else if constexpr (std::is_same_v<VkObjectT, VkPipeline>) {
300 return "VkPipeline";
301 } else if constexpr (std::is_same_v<VkObjectT, VkPipelineCache>) {
302 return "VkPipelineCache";
303 } else if constexpr (std::is_same_v<VkObjectT, VkPipelineLayout>) {
304 return "VkPipelineLayout";
305 } else if constexpr (std::is_same_v<VkObjectT, VkPrivateDataSlot>) {
306 return "VkPrivateDataSlot";
307 } else if constexpr (std::is_same_v<VkObjectT, VkQueryPool>) {
308 return "VkQueryPool";
309 } else if constexpr (std::is_same_v<VkObjectT, VkQueue>) {
310 return "VkQueue";
311 } else if constexpr (std::is_same_v<VkObjectT, VkRenderPass>) {
312 return "VkRenderPass";
313 } else if constexpr (std::is_same_v<VkObjectT, VkSampler>) {
314 return "VkSampler";
315 } else if constexpr (std::is_same_v<VkObjectT, VkSamplerYcbcrConversion>) {
316 return "VkSamplerYcbcrConversion";
317 } else if constexpr (std::is_same_v<VkObjectT, VkSemaphore>) {
318 return "VkSemaphore";
319 } else if constexpr (std::is_same_v<VkObjectT, VkShaderModule>) {
320 return "VkShaderModule";
321 } else if constexpr (std::is_same_v<VkObjectT, VkSurfaceKHR>) {
322 return "VkSurfaceKHR";
323 } else if constexpr (std::is_same_v<VkObjectT, VkSwapchainKHR>) {
324 return "VkSwapchainKHR";
325 } else if constexpr (std::is_same_v<VkObjectT, VkValidationCacheEXT>) {
326 return "VkValidationCacheEXT";
327 } else {
328 static_assert(sizeof(VkObjectT) == 0,
329 "Unhandled VkObjectT. Please update BoxedHandleTypeTag.");
330 }
331 }
332
333 template <typename VkObjectT>
new_boxed_VkType(VkObjectT underlying,bool dispatchable=false,VulkanDispatch * dispatch=nullptr,bool ownsDispatch=false)334 VkObjectT new_boxed_VkType(VkObjectT underlying, bool dispatchable = false, VulkanDispatch* dispatch = nullptr, bool ownsDispatch = false) {
335 BoxedHandleInfo info;
336 info.underlying = (uint64_t)underlying;
337 if (dispatchable) {
338 if (dispatch != nullptr) {
339 info.dispatch = dispatch;
340 } else {
341 info.dispatch = new VulkanDispatch();
342 }
343 info.ownDispatch = ownsDispatch;
344 info.ordMaintInfo = new OrderMaintenanceInfo();
345 info.readStream = nullptr;
346 }
347 return (VkObjectT)sBoxedHandleManager.add(info, GetTag<VkObjectT>());
348 }
349
350 template <typename VkObjectT>
delete_VkType(VkObjectT boxed)351 void delete_VkType(VkObjectT boxed) {
352 if (boxed == VK_NULL_HANDLE) {
353 return;
354 }
355
356 BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed);
357 if (info == nullptr) {
358 return;
359 }
360
361 releaseOrderMaintInfo(info->ordMaintInfo);
362
363 if (info->readStream) {
364 sReadStreamRegistry.push(info->readStream);
365 info->readStream = nullptr;
366 }
367
368 sBoxedHandleManager.remove((uint64_t)boxed);
369 }
370
371 template <typename VkObjectT>
delayed_delete_VkType(VkObjectT boxed,VkDevice device,std::function<void ()> callback)372 void delayed_delete_VkType(VkObjectT boxed, VkDevice device, std::function<void()> callback) {
373 if (boxed == VK_NULL_HANDLE) {
374 return;
375 }
376
377 sBoxedHandleManager.removeDelayed((uint64_t)boxed, device, std::move(callback));
378 }
379
380 // Custom unbox_* functions or GOLDFISH_VK_LIST_DISPATCHABLE_CUSTOM_UNBOX_HANDLE_TYPES
381 // VkQueue objects can be virtual, meaning that multiple boxed queues can map into a single
382 // physical queue on the host GPU. Some conversion is needed for unboxing to physical.
unbox_VkQueueImpl(VkQueue boxed)383 VkQueue unbox_VkQueueImpl(VkQueue boxed) {
384 BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed);
385 if (!info) {
386 return VK_NULL_HANDLE;
387 }
388 const uint64_t unboxedQueue64 = info->underlying;
389
390 // Use VulkanVirtualQueue directly to avoid locking for hasVirtualGraphicsQueue call.
391 if (VkDecoderGlobalState::get()->getFeatures().VulkanVirtualQueue.enabled) {
392 // Clear virtual bit and unbox into the actual physical queue handle
393 return (VkQueue)(unboxedQueue64 & ~QueueInfo::kVirtualQueueBit);
394 }
395
396 return (VkQueue)(unboxedQueue64);
397 }
398
399 template <typename VkObjectT>
unbox_VkType(VkObjectT boxed)400 VkObjectT unbox_VkType(VkObjectT boxed) {
401 if (boxed == VK_NULL_HANDLE) {
402 return VK_NULL_HANDLE;
403 }
404
405 VkObjectT unboxed = VK_NULL_HANDLE;
406
407 if constexpr (std::is_same_v<VkObjectT, VkQueue>) {
408 unboxed = unbox_VkQueueImpl(boxed);
409 } else {
410 BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed);
411 if (info == nullptr) {
412 if constexpr (std::is_same_v<VkObjectT, VkCommandBuffer> ||
413 std::is_same_v<VkObjectT, VkDevice> ||
414 std::is_same_v<VkObjectT, VkInstance> ||
415 std::is_same_v<VkObjectT, VkPhysicalDevice> ||
416 std::is_same_v<VkObjectT, VkQueue>) {
417 ERR("Failed to unbox %s %p", GetTypeStr<VkObjectT>(), boxed);
418 } else if constexpr (std::is_same_v<VkObjectT, VkFence>) {
419 // TODO: investigate.
420 } else {
421 GFXSTREAM_ABORT(FatalError(ABORT_REASON_OTHER))
422 << "Failed to unbox "
423 << GetTypeStr<VkObjectT>()
424 << " "
425 << boxed
426 << ", not found.";
427 }
428 unboxed = VK_NULL_HANDLE;
429 } else {
430 unboxed = (VkObjectT)info->underlying;
431 }
432 }
433
434 return unboxed;
435 }
436
437 template <typename VkObjectT>
try_unbox_VkType(VkObjectT boxed)438 VkObjectT try_unbox_VkType(VkObjectT boxed) {
439 if (boxed == VK_NULL_HANDLE) {
440 return VK_NULL_HANDLE;
441 }
442
443 VkObjectT unboxed = VK_NULL_HANDLE;
444
445 if constexpr (std::is_same_v<VkObjectT, VkQueue>) {
446 unboxed = unbox_VkQueueImpl(boxed);
447 } else {
448 BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed);
449 if (info != nullptr) {
450 unboxed = (VkObjectT)info->underlying;
451 }
452 }
453
454 if (unboxed == VK_NULL_HANDLE) {
455 WARN("Failed to try unbox %s %p", GetTypeStr<VkObjectT>(), boxed);
456 }
457
458 return unboxed;
459 }
460
461 template <typename VkObjectT>
unboxed_to_boxed_non_dispatchable_VkType(VkObjectT unboxed)462 VkObjectT unboxed_to_boxed_non_dispatchable_VkType(VkObjectT unboxed) {
463 if (unboxed == VK_NULL_HANDLE) {
464 return VK_NULL_HANDLE;
465 }
466
467 return (VkObjectT)sBoxedHandleManager.getBoxedFromUnboxed((uint64_t)(uintptr_t)unboxed);
468 }
469
470 template <typename VkObjectT>
set_boxed_non_dispatchable_VkType(VkObjectT boxed,VkObjectT new_unboxed)471 void set_boxed_non_dispatchable_VkType(VkObjectT boxed, VkObjectT new_unboxed) {
472 BoxedHandleInfo info;
473 info.underlying = (uint64_t)new_unboxed;
474 sBoxedHandleManager.update((uint64_t)boxed, info, GetTag<VkObjectT>());
475 }
476
477 template <typename VkObjectT>
get_order_maintenance_info_VkType(VkObjectT boxed)478 OrderMaintenanceInfo* get_order_maintenance_info_VkType(VkObjectT boxed) {
479 BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed);
480 if (info == nullptr) {
481 return nullptr;
482 }
483
484 if (info->ordMaintInfo == nullptr) {
485 return nullptr;
486 }
487
488 acquireOrderMaintInfo(info->ordMaintInfo);
489
490 return info->ordMaintInfo;
491 }
492
493 template <typename VkObjectT>
get_read_stream_VkType(VkObjectT boxed)494 VulkanMemReadingStream* get_read_stream_VkType(VkObjectT boxed) {
495 BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed);
496 if (info == nullptr) {
497 return nullptr;
498 }
499
500 if (info->readStream == nullptr) {
501 info->readStream = sReadStreamRegistry.pop(VkDecoderGlobalState::get()->getFeatures());
502 }
503
504 return info->readStream;
505 }
506
507 template <typename VkObjectT>
get_dispatch_VkType(VkObjectT boxed)508 VulkanDispatch* get_dispatch_VkType(VkObjectT boxed) {
509 BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed);
510 if (info == nullptr) {
511 ERR("Failed to unbox %s %p", GetTypeStr<VkObjectT>(), boxed);
512 return nullptr;
513 }
514 return info->dispatch;
515 }
516
517 ///////////////////////////////////////////////////////////////////////////////
518 ////////////// DISPATCHABLE TYPES //////////////
519 ///////////////////////////////////////////////////////////////////////////////
520
new_boxed_VkInstance(VkInstance unboxed,VulkanDispatch * dispatch,bool ownsDispatch)521 VkInstance new_boxed_VkInstance(VkInstance unboxed, VulkanDispatch* dispatch, bool ownsDispatch) {
522 return new_boxed_VkType<VkInstance>(unboxed, /*dispatchable=*/true, dispatch, ownsDispatch);
523 }
524
delete_VkInstance(VkInstance boxed)525 void delete_VkInstance(VkInstance boxed) {
526 delete_VkType(boxed);
527 }
528
unbox_VkInstance(VkInstance boxed)529 VkInstance unbox_VkInstance(VkInstance boxed) {
530 return unbox_VkType<VkInstance>(boxed);
531 }
532
try_unbox_VkInstance(VkInstance boxed)533 VkInstance try_unbox_VkInstance(VkInstance boxed) {
534 return try_unbox_VkType<VkInstance>(boxed);
535 }
536
unboxed_to_boxed_VkInstance(VkInstance unboxed)537 VkInstance unboxed_to_boxed_VkInstance(VkInstance unboxed) {
538 return unboxed_to_boxed_non_dispatchable_VkType<VkInstance>(unboxed);
539 }
540
ordmaint_VkInstance(VkInstance boxed)541 OrderMaintenanceInfo* ordmaint_VkInstance(VkInstance boxed) {
542 return get_order_maintenance_info_VkType<VkInstance>(boxed);
543 }
544
readstream_VkInstance(VkInstance boxed)545 VulkanMemReadingStream* readstream_VkInstance(VkInstance boxed) {
546 return get_read_stream_VkType<VkInstance>(boxed);
547 }
548
dispatch_VkInstance(VkInstance boxed)549 VulkanDispatch* dispatch_VkInstance(VkInstance boxed) {
550 return get_dispatch_VkType<VkInstance>(boxed);
551 }
552
new_boxed_VkPhysicalDevice(VkPhysicalDevice unboxed,VulkanDispatch * dispatch,bool ownsDispatch)553 VkPhysicalDevice new_boxed_VkPhysicalDevice(VkPhysicalDevice unboxed, VulkanDispatch* dispatch, bool ownsDispatch) {
554 return new_boxed_VkType<VkPhysicalDevice>(unboxed, /*dispatchable=*/true, dispatch, ownsDispatch);
555 }
556
delete_VkPhysicalDevice(VkPhysicalDevice boxed)557 void delete_VkPhysicalDevice(VkPhysicalDevice boxed) {
558 delete_VkType(boxed);
559 }
560
unbox_VkPhysicalDevice(VkPhysicalDevice boxed)561 VkPhysicalDevice unbox_VkPhysicalDevice(VkPhysicalDevice boxed) {
562 return unbox_VkType<VkPhysicalDevice>(boxed);
563 }
564
try_unbox_VkPhysicalDevice(VkPhysicalDevice boxed)565 VkPhysicalDevice try_unbox_VkPhysicalDevice(VkPhysicalDevice boxed) {
566 return try_unbox_VkType<VkPhysicalDevice>(boxed);
567 }
568
unboxed_to_boxed_VkPhysicalDevice(VkPhysicalDevice unboxed)569 VkPhysicalDevice unboxed_to_boxed_VkPhysicalDevice(VkPhysicalDevice unboxed) {
570 return unboxed_to_boxed_non_dispatchable_VkType<VkPhysicalDevice>(unboxed);
571 }
572
ordmaint_VkPhysicalDevice(VkPhysicalDevice boxed)573 OrderMaintenanceInfo* ordmaint_VkPhysicalDevice(VkPhysicalDevice boxed) {
574 return get_order_maintenance_info_VkType<VkPhysicalDevice>(boxed);
575 }
576
readstream_VkPhysicalDevice(VkPhysicalDevice boxed)577 VulkanMemReadingStream* readstream_VkPhysicalDevice(VkPhysicalDevice boxed) {
578 return get_read_stream_VkType<VkPhysicalDevice>(boxed);
579 }
580
dispatch_VkPhysicalDevice(VkPhysicalDevice boxed)581 VulkanDispatch* dispatch_VkPhysicalDevice(VkPhysicalDevice boxed) {
582 return get_dispatch_VkType<VkPhysicalDevice>(boxed);
583 }
584
new_boxed_VkDevice(VkDevice unboxed,VulkanDispatch * dispatch,bool ownsDispatch)585 VkDevice new_boxed_VkDevice(VkDevice unboxed, VulkanDispatch* dispatch, bool ownsDispatch) {
586 return new_boxed_VkType<VkDevice>(unboxed, /*dispatchable=*/true, dispatch, ownsDispatch);
587 }
588
delete_VkDevice(VkDevice boxed)589 void delete_VkDevice(VkDevice boxed) {
590 delete_VkType(boxed);
591 }
592
unbox_VkDevice(VkDevice boxed)593 VkDevice unbox_VkDevice(VkDevice boxed) {
594 return unbox_VkType<VkDevice>(boxed);
595 }
596
try_unbox_VkDevice(VkDevice boxed)597 VkDevice try_unbox_VkDevice(VkDevice boxed) {
598 return try_unbox_VkType<VkDevice>(boxed);
599 }
600
unboxed_to_boxed_VkDevice(VkDevice unboxed)601 VkDevice unboxed_to_boxed_VkDevice(VkDevice unboxed) {
602 return unboxed_to_boxed_non_dispatchable_VkType<VkDevice>(unboxed);
603 }
604
ordmaint_VkDevice(VkDevice boxed)605 OrderMaintenanceInfo* ordmaint_VkDevice(VkDevice boxed) {
606 return get_order_maintenance_info_VkType<VkDevice>(boxed);
607 }
608
readstream_VkDevice(VkDevice boxed)609 VulkanMemReadingStream* readstream_VkDevice(VkDevice boxed) {
610 return get_read_stream_VkType<VkDevice>(boxed);
611 }
612
dispatch_VkDevice(VkDevice boxed)613 VulkanDispatch* dispatch_VkDevice(VkDevice boxed) {
614 return get_dispatch_VkType<VkDevice>(boxed);
615 }
616
new_boxed_VkCommandBuffer(VkCommandBuffer unboxed,VulkanDispatch * dispatch,bool ownsDispatch)617 VkCommandBuffer new_boxed_VkCommandBuffer(VkCommandBuffer unboxed, VulkanDispatch* dispatch, bool ownsDispatch) {
618 return new_boxed_VkType<VkCommandBuffer>(unboxed, /*dispatchable=*/true, dispatch, ownsDispatch);
619 }
620
delete_VkCommandBuffer(VkCommandBuffer boxed)621 void delete_VkCommandBuffer(VkCommandBuffer boxed) {
622 delete_VkType(boxed);
623 }
624
unbox_VkCommandBuffer(VkCommandBuffer boxed)625 VkCommandBuffer unbox_VkCommandBuffer(VkCommandBuffer boxed) {
626 return unbox_VkType<VkCommandBuffer>(boxed);
627 }
628
try_unbox_VkCommandBuffer(VkCommandBuffer boxed)629 VkCommandBuffer try_unbox_VkCommandBuffer(VkCommandBuffer boxed) {
630 return try_unbox_VkType<VkCommandBuffer>(boxed);
631 }
632
unboxed_to_boxed_VkCommandBuffer(VkCommandBuffer unboxed)633 VkCommandBuffer unboxed_to_boxed_VkCommandBuffer(VkCommandBuffer unboxed) {
634 return unboxed_to_boxed_non_dispatchable_VkType<VkCommandBuffer>(unboxed);
635 }
636
ordmaint_VkCommandBuffer(VkCommandBuffer boxed)637 OrderMaintenanceInfo* ordmaint_VkCommandBuffer(VkCommandBuffer boxed) {
638 return get_order_maintenance_info_VkType<VkCommandBuffer>(boxed);
639 }
640
readstream_VkCommandBuffer(VkCommandBuffer boxed)641 VulkanMemReadingStream* readstream_VkCommandBuffer(VkCommandBuffer boxed) {
642 return get_read_stream_VkType<VkCommandBuffer>(boxed);
643 }
644
dispatch_VkCommandBuffer(VkCommandBuffer boxed)645 VulkanDispatch* dispatch_VkCommandBuffer(VkCommandBuffer boxed) {
646 return get_dispatch_VkType<VkCommandBuffer>(boxed);
647 }
648
new_boxed_VkQueue(VkQueue unboxed,VulkanDispatch * dispatch,bool ownsDispatch)649 VkQueue new_boxed_VkQueue(VkQueue unboxed, VulkanDispatch* dispatch, bool ownsDispatch) {
650 return new_boxed_VkType<VkQueue>(unboxed, /*dispatchable=*/true, dispatch, ownsDispatch);
651 }
652
delete_VkQueue(VkQueue boxed)653 void delete_VkQueue(VkQueue boxed) {
654 delete_VkType(boxed);
655 }
656
unbox_VkQueue(VkQueue boxed)657 VkQueue unbox_VkQueue(VkQueue boxed) {
658 return unbox_VkType<VkQueue>(boxed);
659 }
660
try_unbox_VkQueue(VkQueue boxed)661 VkQueue try_unbox_VkQueue(VkQueue boxed) {
662 return try_unbox_VkType<VkQueue>(boxed);
663 }
664
unboxed_to_boxed_VkQueue(VkQueue unboxed)665 VkQueue unboxed_to_boxed_VkQueue(VkQueue unboxed) {
666 return unboxed_to_boxed_non_dispatchable_VkType<VkQueue>(unboxed);
667 }
668
ordmaint_VkQueue(VkQueue boxed)669 OrderMaintenanceInfo* ordmaint_VkQueue(VkQueue boxed) {
670 return get_order_maintenance_info_VkType<VkQueue>(boxed);
671 }
672
readstream_VkQueue(VkQueue boxed)673 VulkanMemReadingStream* readstream_VkQueue(VkQueue boxed) {
674 return get_read_stream_VkType<VkQueue>(boxed);
675 }
676
dispatch_VkQueue(VkQueue boxed)677 VulkanDispatch* dispatch_VkQueue(VkQueue boxed) {
678 return get_dispatch_VkType<VkQueue>(boxed);
679 }
680
681 ///////////////////////////////////////////////////////////////////////////////
682 ////////////// NON DISPATCHABLE TYPES //////////////
683 ///////////////////////////////////////////////////////////////////////////////
684
new_boxed_non_dispatchable_VkAccelerationStructureKHR(VkAccelerationStructureKHR unboxed)685 VkAccelerationStructureKHR new_boxed_non_dispatchable_VkAccelerationStructureKHR(VkAccelerationStructureKHR unboxed) {
686 return new_boxed_VkType<VkAccelerationStructureKHR>(unboxed);
687 }
688
delete_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed)689 void delete_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed) {
690 delete_VkType(boxed);
691 }
692
delayed_delete_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed,VkDevice device,std::function<void ()> callback)693 void delayed_delete_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed, VkDevice device, std::function<void()> callback) {
694 delayed_delete_VkType(boxed, device, std::move(callback));
695 }
696
unbox_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed)697 VkAccelerationStructureKHR unbox_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed) {
698 return unbox_VkType<VkAccelerationStructureKHR>(boxed);
699 }
700
try_unbox_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed)701 VkAccelerationStructureKHR try_unbox_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed) {
702 return try_unbox_VkType<VkAccelerationStructureKHR>(boxed);
703 }
704
unboxed_to_boxed_non_dispatchable_VkAccelerationStructureKHR(VkAccelerationStructureKHR unboxed)705 VkAccelerationStructureKHR unboxed_to_boxed_non_dispatchable_VkAccelerationStructureKHR(VkAccelerationStructureKHR unboxed) {
706 return unboxed_to_boxed_non_dispatchable_VkType<VkAccelerationStructureKHR>(unboxed);
707 }
708
set_boxed_non_dispatchable_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed,VkAccelerationStructureKHR new_unboxed)709 void set_boxed_non_dispatchable_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed, VkAccelerationStructureKHR new_unboxed) {
710 set_boxed_non_dispatchable_VkType<VkAccelerationStructureKHR>(boxed, new_unboxed);
711 }
712
new_boxed_non_dispatchable_VkAccelerationStructureNV(VkAccelerationStructureNV unboxed)713 VkAccelerationStructureNV new_boxed_non_dispatchable_VkAccelerationStructureNV(VkAccelerationStructureNV unboxed) {
714 return new_boxed_VkType<VkAccelerationStructureNV>(unboxed);
715 }
716
delete_VkAccelerationStructureNV(VkAccelerationStructureNV boxed)717 void delete_VkAccelerationStructureNV(VkAccelerationStructureNV boxed) {
718 delete_VkType(boxed);
719 }
720
delayed_delete_VkAccelerationStructureNV(VkAccelerationStructureNV boxed,VkDevice device,std::function<void ()> callback)721 void delayed_delete_VkAccelerationStructureNV(VkAccelerationStructureNV boxed, VkDevice device, std::function<void()> callback) {
722 delayed_delete_VkType(boxed, device, std::move(callback));
723 }
724
unbox_VkAccelerationStructureNV(VkAccelerationStructureNV boxed)725 VkAccelerationStructureNV unbox_VkAccelerationStructureNV(VkAccelerationStructureNV boxed) {
726 return unbox_VkType<VkAccelerationStructureNV>(boxed);
727 }
728
try_unbox_VkAccelerationStructureNV(VkAccelerationStructureNV boxed)729 VkAccelerationStructureNV try_unbox_VkAccelerationStructureNV(VkAccelerationStructureNV boxed) {
730 return try_unbox_VkType<VkAccelerationStructureNV>(boxed);
731 }
732
unboxed_to_boxed_non_dispatchable_VkAccelerationStructureNV(VkAccelerationStructureNV unboxed)733 VkAccelerationStructureNV unboxed_to_boxed_non_dispatchable_VkAccelerationStructureNV(VkAccelerationStructureNV unboxed) {
734 return unboxed_to_boxed_non_dispatchable_VkType<VkAccelerationStructureNV>(unboxed);
735 }
736
set_boxed_non_dispatchable_VkAccelerationStructureNV(VkAccelerationStructureNV boxed,VkAccelerationStructureNV new_unboxed)737 void set_boxed_non_dispatchable_VkAccelerationStructureNV(VkAccelerationStructureNV boxed, VkAccelerationStructureNV new_unboxed) {
738 set_boxed_non_dispatchable_VkType<VkAccelerationStructureNV>(boxed, new_unboxed);
739 }
740
new_boxed_non_dispatchable_VkBuffer(VkBuffer unboxed)741 VkBuffer new_boxed_non_dispatchable_VkBuffer(VkBuffer unboxed) {
742 return new_boxed_VkType<VkBuffer>(unboxed);
743 }
744
delete_VkBuffer(VkBuffer boxed)745 void delete_VkBuffer(VkBuffer boxed) {
746 delete_VkType(boxed);
747 }
748
delayed_delete_VkBuffer(VkBuffer boxed,VkDevice device,std::function<void ()> callback)749 void delayed_delete_VkBuffer(VkBuffer boxed, VkDevice device, std::function<void()> callback) {
750 delayed_delete_VkType(boxed, device, std::move(callback));
751 }
752
unbox_VkBuffer(VkBuffer boxed)753 VkBuffer unbox_VkBuffer(VkBuffer boxed) {
754 return unbox_VkType<VkBuffer>(boxed);
755 }
756
try_unbox_VkBuffer(VkBuffer boxed)757 VkBuffer try_unbox_VkBuffer(VkBuffer boxed) {
758 return try_unbox_VkType<VkBuffer>(boxed);
759 }
760
unboxed_to_boxed_non_dispatchable_VkBuffer(VkBuffer unboxed)761 VkBuffer unboxed_to_boxed_non_dispatchable_VkBuffer(VkBuffer unboxed) {
762 return unboxed_to_boxed_non_dispatchable_VkType<VkBuffer>(unboxed);
763 }
764
set_boxed_non_dispatchable_VkBuffer(VkBuffer boxed,VkBuffer new_unboxed)765 void set_boxed_non_dispatchable_VkBuffer(VkBuffer boxed, VkBuffer new_unboxed) {
766 set_boxed_non_dispatchable_VkType<VkBuffer>(boxed, new_unboxed);
767 }
768
new_boxed_non_dispatchable_VkBufferView(VkBufferView unboxed)769 VkBufferView new_boxed_non_dispatchable_VkBufferView(VkBufferView unboxed) {
770 return new_boxed_VkType<VkBufferView>(unboxed);
771 }
772
delete_VkBufferView(VkBufferView boxed)773 void delete_VkBufferView(VkBufferView boxed) {
774 delete_VkType(boxed);
775 }
776
delayed_delete_VkBufferView(VkBufferView boxed,VkDevice device,std::function<void ()> callback)777 void delayed_delete_VkBufferView(VkBufferView boxed, VkDevice device, std::function<void()> callback) {
778 delayed_delete_VkType(boxed, device, std::move(callback));
779 }
780
unbox_VkBufferView(VkBufferView boxed)781 VkBufferView unbox_VkBufferView(VkBufferView boxed) {
782 return unbox_VkType<VkBufferView>(boxed);
783 }
784
try_unbox_VkBufferView(VkBufferView boxed)785 VkBufferView try_unbox_VkBufferView(VkBufferView boxed) {
786 return try_unbox_VkType<VkBufferView>(boxed);
787 }
788
unboxed_to_boxed_non_dispatchable_VkBufferView(VkBufferView unboxed)789 VkBufferView unboxed_to_boxed_non_dispatchable_VkBufferView(VkBufferView unboxed) {
790 return unboxed_to_boxed_non_dispatchable_VkType<VkBufferView>(unboxed);
791 }
792
set_boxed_non_dispatchable_VkBufferView(VkBufferView boxed,VkBufferView new_unboxed)793 void set_boxed_non_dispatchable_VkBufferView(VkBufferView boxed, VkBufferView new_unboxed) {
794 set_boxed_non_dispatchable_VkType<VkBufferView>(boxed, new_unboxed);
795 }
796
new_boxed_non_dispatchable_VkCommandPool(VkCommandPool unboxed)797 VkCommandPool new_boxed_non_dispatchable_VkCommandPool(VkCommandPool unboxed) {
798 return new_boxed_VkType<VkCommandPool>(unboxed);
799 }
800
delete_VkCommandPool(VkCommandPool boxed)801 void delete_VkCommandPool(VkCommandPool boxed) {
802 delete_VkType(boxed);
803 }
804
delayed_delete_VkCommandPool(VkCommandPool boxed,VkDevice device,std::function<void ()> callback)805 void delayed_delete_VkCommandPool(VkCommandPool boxed, VkDevice device, std::function<void()> callback) {
806 delayed_delete_VkType(boxed, device, std::move(callback));
807 }
808
unbox_VkCommandPool(VkCommandPool boxed)809 VkCommandPool unbox_VkCommandPool(VkCommandPool boxed) {
810 return unbox_VkType<VkCommandPool>(boxed);
811 }
812
try_unbox_VkCommandPool(VkCommandPool boxed)813 VkCommandPool try_unbox_VkCommandPool(VkCommandPool boxed) {
814 return try_unbox_VkType<VkCommandPool>(boxed);
815 }
816
unboxed_to_boxed_non_dispatchable_VkCommandPool(VkCommandPool unboxed)817 VkCommandPool unboxed_to_boxed_non_dispatchable_VkCommandPool(VkCommandPool unboxed) {
818 return unboxed_to_boxed_non_dispatchable_VkType<VkCommandPool>(unboxed);
819 }
820
set_boxed_non_dispatchable_VkCommandPool(VkCommandPool boxed,VkCommandPool new_unboxed)821 void set_boxed_non_dispatchable_VkCommandPool(VkCommandPool boxed, VkCommandPool new_unboxed) {
822 set_boxed_non_dispatchable_VkType<VkCommandPool>(boxed, new_unboxed);
823 }
824
new_boxed_non_dispatchable_VkCuFunctionNVX(VkCuFunctionNVX unboxed)825 VkCuFunctionNVX new_boxed_non_dispatchable_VkCuFunctionNVX(VkCuFunctionNVX unboxed) {
826 return new_boxed_VkType<VkCuFunctionNVX>(unboxed);
827 }
828
delete_VkCuFunctionNVX(VkCuFunctionNVX boxed)829 void delete_VkCuFunctionNVX(VkCuFunctionNVX boxed) {
830 delete_VkType(boxed);
831 }
832
delayed_delete_VkCuFunctionNVX(VkCuFunctionNVX boxed,VkDevice device,std::function<void ()> callback)833 void delayed_delete_VkCuFunctionNVX(VkCuFunctionNVX boxed, VkDevice device, std::function<void()> callback) {
834 delayed_delete_VkType(boxed, device, std::move(callback));
835 }
836
unbox_VkCuFunctionNVX(VkCuFunctionNVX boxed)837 VkCuFunctionNVX unbox_VkCuFunctionNVX(VkCuFunctionNVX boxed) {
838 return unbox_VkType<VkCuFunctionNVX>(boxed);
839 }
840
try_unbox_VkCuFunctionNVX(VkCuFunctionNVX boxed)841 VkCuFunctionNVX try_unbox_VkCuFunctionNVX(VkCuFunctionNVX boxed) {
842 return try_unbox_VkType<VkCuFunctionNVX>(boxed);
843 }
844
unboxed_to_boxed_non_dispatchable_VkCuFunctionNVX(VkCuFunctionNVX unboxed)845 VkCuFunctionNVX unboxed_to_boxed_non_dispatchable_VkCuFunctionNVX(VkCuFunctionNVX unboxed) {
846 return unboxed_to_boxed_non_dispatchable_VkType<VkCuFunctionNVX>(unboxed);
847 }
848
set_boxed_non_dispatchable_VkCuFunctionNVX(VkCuFunctionNVX boxed,VkCuFunctionNVX new_unboxed)849 void set_boxed_non_dispatchable_VkCuFunctionNVX(VkCuFunctionNVX boxed, VkCuFunctionNVX new_unboxed) {
850 set_boxed_non_dispatchable_VkType<VkCuFunctionNVX>(boxed, new_unboxed);
851 }
852
new_boxed_non_dispatchable_VkCuModuleNVX(VkCuModuleNVX unboxed)853 VkCuModuleNVX new_boxed_non_dispatchable_VkCuModuleNVX(VkCuModuleNVX unboxed) {
854 return new_boxed_VkType<VkCuModuleNVX>(unboxed);
855 }
856
delete_VkCuModuleNVX(VkCuModuleNVX boxed)857 void delete_VkCuModuleNVX(VkCuModuleNVX boxed) {
858 delete_VkType(boxed);
859 }
860
delayed_delete_VkCuModuleNVX(VkCuModuleNVX boxed,VkDevice device,std::function<void ()> callback)861 void delayed_delete_VkCuModuleNVX(VkCuModuleNVX boxed, VkDevice device, std::function<void()> callback) {
862 delayed_delete_VkType(boxed, device, std::move(callback));
863 }
864
unbox_VkCuModuleNVX(VkCuModuleNVX boxed)865 VkCuModuleNVX unbox_VkCuModuleNVX(VkCuModuleNVX boxed) {
866 return unbox_VkType<VkCuModuleNVX>(boxed);
867 }
868
try_unbox_VkCuModuleNVX(VkCuModuleNVX boxed)869 VkCuModuleNVX try_unbox_VkCuModuleNVX(VkCuModuleNVX boxed) {
870 return try_unbox_VkType<VkCuModuleNVX>(boxed);
871 }
872
unboxed_to_boxed_non_dispatchable_VkCuModuleNVX(VkCuModuleNVX unboxed)873 VkCuModuleNVX unboxed_to_boxed_non_dispatchable_VkCuModuleNVX(VkCuModuleNVX unboxed) {
874 return unboxed_to_boxed_non_dispatchable_VkType<VkCuModuleNVX>(unboxed);
875 }
876
set_boxed_non_dispatchable_VkCuModuleNVX(VkCuModuleNVX boxed,VkCuModuleNVX new_unboxed)877 void set_boxed_non_dispatchable_VkCuModuleNVX(VkCuModuleNVX boxed, VkCuModuleNVX new_unboxed) {
878 set_boxed_non_dispatchable_VkType<VkCuModuleNVX>(boxed, new_unboxed);
879 }
880
new_boxed_non_dispatchable_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT unboxed)881 VkDebugReportCallbackEXT new_boxed_non_dispatchable_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT unboxed) {
882 return new_boxed_VkType<VkDebugReportCallbackEXT>(unboxed);
883 }
884
delete_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed)885 void delete_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed) {
886 delete_VkType(boxed);
887 }
888
delayed_delete_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed,VkDevice device,std::function<void ()> callback)889 void delayed_delete_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed, VkDevice device, std::function<void()> callback) {
890 delayed_delete_VkType(boxed, device, std::move(callback));
891 }
892
unbox_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed)893 VkDebugReportCallbackEXT unbox_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed) {
894 return unbox_VkType<VkDebugReportCallbackEXT>(boxed);
895 }
896
try_unbox_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed)897 VkDebugReportCallbackEXT try_unbox_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed) {
898 return try_unbox_VkType<VkDebugReportCallbackEXT>(boxed);
899 }
900
unboxed_to_boxed_non_dispatchable_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT unboxed)901 VkDebugReportCallbackEXT unboxed_to_boxed_non_dispatchable_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT unboxed) {
902 return unboxed_to_boxed_non_dispatchable_VkType<VkDebugReportCallbackEXT>(unboxed);
903 }
904
set_boxed_non_dispatchable_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed,VkDebugReportCallbackEXT new_unboxed)905 void set_boxed_non_dispatchable_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed, VkDebugReportCallbackEXT new_unboxed) {
906 set_boxed_non_dispatchable_VkType<VkDebugReportCallbackEXT>(boxed, new_unboxed);
907 }
908
new_boxed_non_dispatchable_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT unboxed)909 VkDebugUtilsMessengerEXT new_boxed_non_dispatchable_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT unboxed) {
910 return new_boxed_VkType<VkDebugUtilsMessengerEXT>(unboxed);
911 }
912
delete_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed)913 void delete_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed) {
914 delete_VkType(boxed);
915 }
916
delayed_delete_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed,VkDevice device,std::function<void ()> callback)917 void delayed_delete_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed, VkDevice device, std::function<void()> callback) {
918 delayed_delete_VkType(boxed, device, std::move(callback));
919 }
920
unbox_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed)921 VkDebugUtilsMessengerEXT unbox_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed) {
922 return unbox_VkType<VkDebugUtilsMessengerEXT>(boxed);
923 }
924
try_unbox_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed)925 VkDebugUtilsMessengerEXT try_unbox_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed) {
926 return try_unbox_VkType<VkDebugUtilsMessengerEXT>(boxed);
927 }
928
unboxed_to_boxed_non_dispatchable_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT unboxed)929 VkDebugUtilsMessengerEXT unboxed_to_boxed_non_dispatchable_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT unboxed) {
930 return unboxed_to_boxed_non_dispatchable_VkType<VkDebugUtilsMessengerEXT>(unboxed);
931 }
932
set_boxed_non_dispatchable_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed,VkDebugUtilsMessengerEXT new_unboxed)933 void set_boxed_non_dispatchable_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed, VkDebugUtilsMessengerEXT new_unboxed) {
934 set_boxed_non_dispatchable_VkType<VkDebugUtilsMessengerEXT>(boxed, new_unboxed);
935 }
936
new_boxed_non_dispatchable_VkDescriptorPool(VkDescriptorPool unboxed)937 VkDescriptorPool new_boxed_non_dispatchable_VkDescriptorPool(VkDescriptorPool unboxed) {
938 return new_boxed_VkType<VkDescriptorPool>(unboxed);
939 }
940
delete_VkDescriptorPool(VkDescriptorPool boxed)941 void delete_VkDescriptorPool(VkDescriptorPool boxed) {
942 delete_VkType(boxed);
943 }
944
delayed_delete_VkDescriptorPool(VkDescriptorPool boxed,VkDevice device,std::function<void ()> callback)945 void delayed_delete_VkDescriptorPool(VkDescriptorPool boxed, VkDevice device, std::function<void()> callback) {
946 delayed_delete_VkType(boxed, device, std::move(callback));
947 }
948
unbox_VkDescriptorPool(VkDescriptorPool boxed)949 VkDescriptorPool unbox_VkDescriptorPool(VkDescriptorPool boxed) {
950 return unbox_VkType<VkDescriptorPool>(boxed);
951 }
952
try_unbox_VkDescriptorPool(VkDescriptorPool boxed)953 VkDescriptorPool try_unbox_VkDescriptorPool(VkDescriptorPool boxed) {
954 return try_unbox_VkType<VkDescriptorPool>(boxed);
955 }
956
unboxed_to_boxed_non_dispatchable_VkDescriptorPool(VkDescriptorPool unboxed)957 VkDescriptorPool unboxed_to_boxed_non_dispatchable_VkDescriptorPool(VkDescriptorPool unboxed) {
958 return unboxed_to_boxed_non_dispatchable_VkType<VkDescriptorPool>(unboxed);
959 }
960
set_boxed_non_dispatchable_VkDescriptorPool(VkDescriptorPool boxed,VkDescriptorPool new_unboxed)961 void set_boxed_non_dispatchable_VkDescriptorPool(VkDescriptorPool boxed, VkDescriptorPool new_unboxed) {
962 set_boxed_non_dispatchable_VkType<VkDescriptorPool>(boxed, new_unboxed);
963 }
964
new_boxed_non_dispatchable_VkDescriptorSet(VkDescriptorSet unboxed)965 VkDescriptorSet new_boxed_non_dispatchable_VkDescriptorSet(VkDescriptorSet unboxed) {
966 return new_boxed_VkType<VkDescriptorSet>(unboxed);
967 }
968
delete_VkDescriptorSet(VkDescriptorSet boxed)969 void delete_VkDescriptorSet(VkDescriptorSet boxed) {
970 delete_VkType(boxed);
971 }
972
delayed_delete_VkDescriptorSet(VkDescriptorSet boxed,VkDevice device,std::function<void ()> callback)973 void delayed_delete_VkDescriptorSet(VkDescriptorSet boxed, VkDevice device, std::function<void()> callback) {
974 delayed_delete_VkType(boxed, device, std::move(callback));
975 }
976
unbox_VkDescriptorSet(VkDescriptorSet boxed)977 VkDescriptorSet unbox_VkDescriptorSet(VkDescriptorSet boxed) {
978 return unbox_VkType<VkDescriptorSet>(boxed);
979 }
980
try_unbox_VkDescriptorSet(VkDescriptorSet boxed)981 VkDescriptorSet try_unbox_VkDescriptorSet(VkDescriptorSet boxed) {
982 return try_unbox_VkType<VkDescriptorSet>(boxed);
983 }
984
unboxed_to_boxed_non_dispatchable_VkDescriptorSet(VkDescriptorSet unboxed)985 VkDescriptorSet unboxed_to_boxed_non_dispatchable_VkDescriptorSet(VkDescriptorSet unboxed) {
986 return unboxed_to_boxed_non_dispatchable_VkType<VkDescriptorSet>(unboxed);
987 }
988
set_boxed_non_dispatchable_VkDescriptorSet(VkDescriptorSet boxed,VkDescriptorSet new_unboxed)989 void set_boxed_non_dispatchable_VkDescriptorSet(VkDescriptorSet boxed, VkDescriptorSet new_unboxed) {
990 set_boxed_non_dispatchable_VkType<VkDescriptorSet>(boxed, new_unboxed);
991 }
992
new_boxed_non_dispatchable_VkDescriptorSetLayout(VkDescriptorSetLayout unboxed)993 VkDescriptorSetLayout new_boxed_non_dispatchable_VkDescriptorSetLayout(VkDescriptorSetLayout unboxed) {
994 return new_boxed_VkType<VkDescriptorSetLayout>(unboxed);
995 }
996
delete_VkDescriptorSetLayout(VkDescriptorSetLayout boxed)997 void delete_VkDescriptorSetLayout(VkDescriptorSetLayout boxed) {
998 delete_VkType(boxed);
999 }
1000
delayed_delete_VkDescriptorSetLayout(VkDescriptorSetLayout boxed,VkDevice device,std::function<void ()> callback)1001 void delayed_delete_VkDescriptorSetLayout(VkDescriptorSetLayout boxed, VkDevice device, std::function<void()> callback) {
1002 delayed_delete_VkType(boxed, device, std::move(callback));
1003 }
1004
unbox_VkDescriptorSetLayout(VkDescriptorSetLayout boxed)1005 VkDescriptorSetLayout unbox_VkDescriptorSetLayout(VkDescriptorSetLayout boxed) {
1006 return unbox_VkType<VkDescriptorSetLayout>(boxed);
1007 }
1008
try_unbox_VkDescriptorSetLayout(VkDescriptorSetLayout boxed)1009 VkDescriptorSetLayout try_unbox_VkDescriptorSetLayout(VkDescriptorSetLayout boxed) {
1010 return try_unbox_VkType<VkDescriptorSetLayout>(boxed);
1011 }
1012
unboxed_to_boxed_non_dispatchable_VkDescriptorSetLayout(VkDescriptorSetLayout unboxed)1013 VkDescriptorSetLayout unboxed_to_boxed_non_dispatchable_VkDescriptorSetLayout(VkDescriptorSetLayout unboxed) {
1014 return unboxed_to_boxed_non_dispatchable_VkType<VkDescriptorSetLayout>(unboxed);
1015 }
1016
set_boxed_non_dispatchable_VkDescriptorSetLayout(VkDescriptorSetLayout boxed,VkDescriptorSetLayout new_unboxed)1017 void set_boxed_non_dispatchable_VkDescriptorSetLayout(VkDescriptorSetLayout boxed, VkDescriptorSetLayout new_unboxed) {
1018 set_boxed_non_dispatchable_VkType<VkDescriptorSetLayout>(boxed, new_unboxed);
1019 }
1020
new_boxed_non_dispatchable_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate unboxed)1021 VkDescriptorUpdateTemplate new_boxed_non_dispatchable_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate unboxed) {
1022 return new_boxed_VkType<VkDescriptorUpdateTemplate>(unboxed);
1023 }
1024
delete_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed)1025 void delete_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed) {
1026 delete_VkType(boxed);
1027 }
1028
delayed_delete_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed,VkDevice device,std::function<void ()> callback)1029 void delayed_delete_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed, VkDevice device, std::function<void()> callback) {
1030 delayed_delete_VkType(boxed, device, std::move(callback));
1031 }
1032
unbox_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed)1033 VkDescriptorUpdateTemplate unbox_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed) {
1034 return unbox_VkType<VkDescriptorUpdateTemplate>(boxed);
1035 }
1036
try_unbox_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed)1037 VkDescriptorUpdateTemplate try_unbox_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed) {
1038 return try_unbox_VkType<VkDescriptorUpdateTemplate>(boxed);
1039 }
1040
unboxed_to_boxed_non_dispatchable_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate unboxed)1041 VkDescriptorUpdateTemplate unboxed_to_boxed_non_dispatchable_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate unboxed) {
1042 return unboxed_to_boxed_non_dispatchable_VkType<VkDescriptorUpdateTemplate>(unboxed);
1043 }
1044
set_boxed_non_dispatchable_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed,VkDescriptorUpdateTemplate new_unboxed)1045 void set_boxed_non_dispatchable_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed, VkDescriptorUpdateTemplate new_unboxed) {
1046 set_boxed_non_dispatchable_VkType<VkDescriptorUpdateTemplate>(boxed, new_unboxed);
1047 }
1048
new_boxed_non_dispatchable_VkDeviceMemory(VkDeviceMemory unboxed)1049 VkDeviceMemory new_boxed_non_dispatchable_VkDeviceMemory(VkDeviceMemory unboxed) {
1050 return new_boxed_VkType<VkDeviceMemory>(unboxed);
1051 }
1052
delete_VkDeviceMemory(VkDeviceMemory boxed)1053 void delete_VkDeviceMemory(VkDeviceMemory boxed) {
1054 delete_VkType(boxed);
1055 }
1056
delayed_delete_VkDeviceMemory(VkDeviceMemory boxed,VkDevice device,std::function<void ()> callback)1057 void delayed_delete_VkDeviceMemory(VkDeviceMemory boxed, VkDevice device, std::function<void()> callback) {
1058 delayed_delete_VkType(boxed, device, std::move(callback));
1059 }
1060
unbox_VkDeviceMemory(VkDeviceMemory boxed)1061 VkDeviceMemory unbox_VkDeviceMemory(VkDeviceMemory boxed) {
1062 return unbox_VkType<VkDeviceMemory>(boxed);
1063 }
1064
try_unbox_VkDeviceMemory(VkDeviceMemory boxed)1065 VkDeviceMemory try_unbox_VkDeviceMemory(VkDeviceMemory boxed) {
1066 return try_unbox_VkType<VkDeviceMemory>(boxed);
1067 }
1068
unboxed_to_boxed_non_dispatchable_VkDeviceMemory(VkDeviceMemory unboxed)1069 VkDeviceMemory unboxed_to_boxed_non_dispatchable_VkDeviceMemory(VkDeviceMemory unboxed) {
1070 return unboxed_to_boxed_non_dispatchable_VkType<VkDeviceMemory>(unboxed);
1071 }
1072
set_boxed_non_dispatchable_VkDeviceMemory(VkDeviceMemory boxed,VkDeviceMemory new_unboxed)1073 void set_boxed_non_dispatchable_VkDeviceMemory(VkDeviceMemory boxed, VkDeviceMemory new_unboxed) {
1074 set_boxed_non_dispatchable_VkType<VkDeviceMemory>(boxed, new_unboxed);
1075 }
1076
new_boxed_non_dispatchable_VkDisplayKHR(VkDisplayKHR unboxed)1077 VkDisplayKHR new_boxed_non_dispatchable_VkDisplayKHR(VkDisplayKHR unboxed) {
1078 return new_boxed_VkType<VkDisplayKHR>(unboxed);
1079 }
1080
delete_VkDisplayKHR(VkDisplayKHR boxed)1081 void delete_VkDisplayKHR(VkDisplayKHR boxed) {
1082 delete_VkType(boxed);
1083 }
1084
delayed_delete_VkDisplayKHR(VkDisplayKHR boxed,VkDevice device,std::function<void ()> callback)1085 void delayed_delete_VkDisplayKHR(VkDisplayKHR boxed, VkDevice device, std::function<void()> callback) {
1086 delayed_delete_VkType(boxed, device, std::move(callback));
1087 }
1088
unbox_VkDisplayKHR(VkDisplayKHR boxed)1089 VkDisplayKHR unbox_VkDisplayKHR(VkDisplayKHR boxed) {
1090 return unbox_VkType<VkDisplayKHR>(boxed);
1091 }
1092
try_unbox_VkDisplayKHR(VkDisplayKHR boxed)1093 VkDisplayKHR try_unbox_VkDisplayKHR(VkDisplayKHR boxed) {
1094 return try_unbox_VkType<VkDisplayKHR>(boxed);
1095 }
1096
unboxed_to_boxed_non_dispatchable_VkDisplayKHR(VkDisplayKHR unboxed)1097 VkDisplayKHR unboxed_to_boxed_non_dispatchable_VkDisplayKHR(VkDisplayKHR unboxed) {
1098 return unboxed_to_boxed_non_dispatchable_VkType<VkDisplayKHR>(unboxed);
1099 }
1100
set_boxed_non_dispatchable_VkDisplayKHR(VkDisplayKHR boxed,VkDisplayKHR new_unboxed)1101 void set_boxed_non_dispatchable_VkDisplayKHR(VkDisplayKHR boxed, VkDisplayKHR new_unboxed) {
1102 set_boxed_non_dispatchable_VkType<VkDisplayKHR>(boxed, new_unboxed);
1103 }
1104
new_boxed_non_dispatchable_VkDisplayModeKHR(VkDisplayModeKHR unboxed)1105 VkDisplayModeKHR new_boxed_non_dispatchable_VkDisplayModeKHR(VkDisplayModeKHR unboxed) {
1106 return new_boxed_VkType<VkDisplayModeKHR>(unboxed);
1107 }
1108
delete_VkDisplayModeKHR(VkDisplayModeKHR boxed)1109 void delete_VkDisplayModeKHR(VkDisplayModeKHR boxed) {
1110 delete_VkType(boxed);
1111 }
1112
delayed_delete_VkDisplayModeKHR(VkDisplayModeKHR boxed,VkDevice device,std::function<void ()> callback)1113 void delayed_delete_VkDisplayModeKHR(VkDisplayModeKHR boxed, VkDevice device, std::function<void()> callback) {
1114 delayed_delete_VkType(boxed, device, std::move(callback));
1115 }
1116
unbox_VkDisplayModeKHR(VkDisplayModeKHR boxed)1117 VkDisplayModeKHR unbox_VkDisplayModeKHR(VkDisplayModeKHR boxed) {
1118 return unbox_VkType<VkDisplayModeKHR>(boxed);
1119 }
1120
try_unbox_VkDisplayModeKHR(VkDisplayModeKHR boxed)1121 VkDisplayModeKHR try_unbox_VkDisplayModeKHR(VkDisplayModeKHR boxed) {
1122 return try_unbox_VkType<VkDisplayModeKHR>(boxed);
1123 }
1124
unboxed_to_boxed_non_dispatchable_VkDisplayModeKHR(VkDisplayModeKHR unboxed)1125 VkDisplayModeKHR unboxed_to_boxed_non_dispatchable_VkDisplayModeKHR(VkDisplayModeKHR unboxed) {
1126 return unboxed_to_boxed_non_dispatchable_VkType<VkDisplayModeKHR>(unboxed);
1127 }
1128
set_boxed_non_dispatchable_VkDisplayModeKHR(VkDisplayModeKHR boxed,VkDisplayModeKHR new_unboxed)1129 void set_boxed_non_dispatchable_VkDisplayModeKHR(VkDisplayModeKHR boxed, VkDisplayModeKHR new_unboxed) {
1130 set_boxed_non_dispatchable_VkType<VkDisplayModeKHR>(boxed, new_unboxed);
1131 }
1132
new_boxed_non_dispatchable_VkEvent(VkEvent unboxed)1133 VkEvent new_boxed_non_dispatchable_VkEvent(VkEvent unboxed) {
1134 return new_boxed_VkType<VkEvent>(unboxed);
1135 }
1136
delete_VkEvent(VkEvent boxed)1137 void delete_VkEvent(VkEvent boxed) {
1138 delete_VkType(boxed);
1139 }
1140
delayed_delete_VkEvent(VkEvent boxed,VkDevice device,std::function<void ()> callback)1141 void delayed_delete_VkEvent(VkEvent boxed, VkDevice device, std::function<void()> callback) {
1142 delayed_delete_VkType(boxed, device, std::move(callback));
1143 }
1144
unbox_VkEvent(VkEvent boxed)1145 VkEvent unbox_VkEvent(VkEvent boxed) {
1146 return unbox_VkType<VkEvent>(boxed);
1147 }
1148
try_unbox_VkEvent(VkEvent boxed)1149 VkEvent try_unbox_VkEvent(VkEvent boxed) {
1150 return try_unbox_VkType<VkEvent>(boxed);
1151 }
1152
unboxed_to_boxed_non_dispatchable_VkEvent(VkEvent unboxed)1153 VkEvent unboxed_to_boxed_non_dispatchable_VkEvent(VkEvent unboxed) {
1154 return unboxed_to_boxed_non_dispatchable_VkType<VkEvent>(unboxed);
1155 }
1156
set_boxed_non_dispatchable_VkEvent(VkEvent boxed,VkEvent new_unboxed)1157 void set_boxed_non_dispatchable_VkEvent(VkEvent boxed, VkEvent new_unboxed) {
1158 set_boxed_non_dispatchable_VkType<VkEvent>(boxed, new_unboxed);
1159 }
1160
new_boxed_non_dispatchable_VkFence(VkFence unboxed)1161 VkFence new_boxed_non_dispatchable_VkFence(VkFence unboxed) {
1162 return new_boxed_VkType<VkFence>(unboxed);
1163 }
1164
delete_VkFence(VkFence boxed)1165 void delete_VkFence(VkFence boxed) {
1166 delete_VkType(boxed);
1167 }
1168
delayed_delete_VkFence(VkFence boxed,VkDevice device,std::function<void ()> callback)1169 void delayed_delete_VkFence(VkFence boxed, VkDevice device, std::function<void()> callback) {
1170 delayed_delete_VkType(boxed, device, std::move(callback));
1171 }
1172
unbox_VkFence(VkFence boxed)1173 VkFence unbox_VkFence(VkFence boxed) {
1174 return unbox_VkType<VkFence>(boxed);
1175 }
1176
try_unbox_VkFence(VkFence boxed)1177 VkFence try_unbox_VkFence(VkFence boxed) {
1178 return try_unbox_VkType<VkFence>(boxed);
1179 }
1180
unboxed_to_boxed_non_dispatchable_VkFence(VkFence unboxed)1181 VkFence unboxed_to_boxed_non_dispatchable_VkFence(VkFence unboxed) {
1182 return unboxed_to_boxed_non_dispatchable_VkType<VkFence>(unboxed);
1183 }
1184
set_boxed_non_dispatchable_VkFence(VkFence boxed,VkFence new_unboxed)1185 void set_boxed_non_dispatchable_VkFence(VkFence boxed, VkFence new_unboxed) {
1186 set_boxed_non_dispatchable_VkType<VkFence>(boxed, new_unboxed);
1187 }
1188
new_boxed_non_dispatchable_VkFramebuffer(VkFramebuffer unboxed)1189 VkFramebuffer new_boxed_non_dispatchable_VkFramebuffer(VkFramebuffer unboxed) {
1190 return new_boxed_VkType<VkFramebuffer>(unboxed);
1191 }
1192
delete_VkFramebuffer(VkFramebuffer boxed)1193 void delete_VkFramebuffer(VkFramebuffer boxed) {
1194 delete_VkType(boxed);
1195 }
1196
delayed_delete_VkFramebuffer(VkFramebuffer boxed,VkDevice device,std::function<void ()> callback)1197 void delayed_delete_VkFramebuffer(VkFramebuffer boxed, VkDevice device, std::function<void()> callback) {
1198 delayed_delete_VkType(boxed, device, std::move(callback));
1199 }
1200
unbox_VkFramebuffer(VkFramebuffer boxed)1201 VkFramebuffer unbox_VkFramebuffer(VkFramebuffer boxed) {
1202 return unbox_VkType<VkFramebuffer>(boxed);
1203 }
1204
try_unbox_VkFramebuffer(VkFramebuffer boxed)1205 VkFramebuffer try_unbox_VkFramebuffer(VkFramebuffer boxed) {
1206 return try_unbox_VkType<VkFramebuffer>(boxed);
1207 }
1208
unboxed_to_boxed_non_dispatchable_VkFramebuffer(VkFramebuffer unboxed)1209 VkFramebuffer unboxed_to_boxed_non_dispatchable_VkFramebuffer(VkFramebuffer unboxed) {
1210 return unboxed_to_boxed_non_dispatchable_VkType<VkFramebuffer>(unboxed);
1211 }
1212
set_boxed_non_dispatchable_VkFramebuffer(VkFramebuffer boxed,VkFramebuffer new_unboxed)1213 void set_boxed_non_dispatchable_VkFramebuffer(VkFramebuffer boxed, VkFramebuffer new_unboxed) {
1214 set_boxed_non_dispatchable_VkType<VkFramebuffer>(boxed, new_unboxed);
1215 }
1216
new_boxed_non_dispatchable_VkImage(VkImage unboxed)1217 VkImage new_boxed_non_dispatchable_VkImage(VkImage unboxed) {
1218 return new_boxed_VkType<VkImage>(unboxed);
1219 }
1220
delete_VkImage(VkImage boxed)1221 void delete_VkImage(VkImage boxed) {
1222 delete_VkType(boxed);
1223 }
1224
delayed_delete_VkImage(VkImage boxed,VkDevice device,std::function<void ()> callback)1225 void delayed_delete_VkImage(VkImage boxed, VkDevice device, std::function<void()> callback) {
1226 delayed_delete_VkType(boxed, device, std::move(callback));
1227 }
1228
unbox_VkImage(VkImage boxed)1229 VkImage unbox_VkImage(VkImage boxed) {
1230 return unbox_VkType<VkImage>(boxed);
1231 }
1232
try_unbox_VkImage(VkImage boxed)1233 VkImage try_unbox_VkImage(VkImage boxed) {
1234 return try_unbox_VkType<VkImage>(boxed);
1235 }
1236
unboxed_to_boxed_non_dispatchable_VkImage(VkImage unboxed)1237 VkImage unboxed_to_boxed_non_dispatchable_VkImage(VkImage unboxed) {
1238 return unboxed_to_boxed_non_dispatchable_VkType<VkImage>(unboxed);
1239 }
1240
set_boxed_non_dispatchable_VkImage(VkImage boxed,VkImage new_unboxed)1241 void set_boxed_non_dispatchable_VkImage(VkImage boxed, VkImage new_unboxed) {
1242 set_boxed_non_dispatchable_VkType<VkImage>(boxed, new_unboxed);
1243 }
1244
new_boxed_non_dispatchable_VkImageView(VkImageView unboxed)1245 VkImageView new_boxed_non_dispatchable_VkImageView(VkImageView unboxed) {
1246 return new_boxed_VkType<VkImageView>(unboxed);
1247 }
1248
delete_VkImageView(VkImageView boxed)1249 void delete_VkImageView(VkImageView boxed) {
1250 delete_VkType(boxed);
1251 }
1252
delayed_delete_VkImageView(VkImageView boxed,VkDevice device,std::function<void ()> callback)1253 void delayed_delete_VkImageView(VkImageView boxed, VkDevice device, std::function<void()> callback) {
1254 delayed_delete_VkType(boxed, device, std::move(callback));
1255 }
1256
unbox_VkImageView(VkImageView boxed)1257 VkImageView unbox_VkImageView(VkImageView boxed) {
1258 return unbox_VkType<VkImageView>(boxed);
1259 }
1260
try_unbox_VkImageView(VkImageView boxed)1261 VkImageView try_unbox_VkImageView(VkImageView boxed) {
1262 return try_unbox_VkType<VkImageView>(boxed);
1263 }
1264
unboxed_to_boxed_non_dispatchable_VkImageView(VkImageView unboxed)1265 VkImageView unboxed_to_boxed_non_dispatchable_VkImageView(VkImageView unboxed) {
1266 return unboxed_to_boxed_non_dispatchable_VkType<VkImageView>(unboxed);
1267 }
1268
set_boxed_non_dispatchable_VkImageView(VkImageView boxed,VkImageView new_unboxed)1269 void set_boxed_non_dispatchable_VkImageView(VkImageView boxed, VkImageView new_unboxed) {
1270 set_boxed_non_dispatchable_VkType<VkImageView>(boxed, new_unboxed);
1271 }
1272
new_boxed_non_dispatchable_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV unboxed)1273 VkIndirectCommandsLayoutNV new_boxed_non_dispatchable_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV unboxed) {
1274 return new_boxed_VkType<VkIndirectCommandsLayoutNV>(unboxed);
1275 }
1276
delete_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed)1277 void delete_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed) {
1278 delete_VkType(boxed);
1279 }
1280
delayed_delete_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed,VkDevice device,std::function<void ()> callback)1281 void delayed_delete_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed, VkDevice device, std::function<void()> callback) {
1282 delayed_delete_VkType(boxed, device, std::move(callback));
1283 }
1284
unbox_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed)1285 VkIndirectCommandsLayoutNV unbox_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed) {
1286 return unbox_VkType<VkIndirectCommandsLayoutNV>(boxed);
1287 }
1288
try_unbox_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed)1289 VkIndirectCommandsLayoutNV try_unbox_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed) {
1290 return try_unbox_VkType<VkIndirectCommandsLayoutNV>(boxed);
1291 }
1292
unboxed_to_boxed_non_dispatchable_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV unboxed)1293 VkIndirectCommandsLayoutNV unboxed_to_boxed_non_dispatchable_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV unboxed) {
1294 return unboxed_to_boxed_non_dispatchable_VkType<VkIndirectCommandsLayoutNV>(unboxed);
1295 }
1296
set_boxed_non_dispatchable_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed,VkIndirectCommandsLayoutNV new_unboxed)1297 void set_boxed_non_dispatchable_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed, VkIndirectCommandsLayoutNV new_unboxed) {
1298 set_boxed_non_dispatchable_VkType<VkIndirectCommandsLayoutNV>(boxed, new_unboxed);
1299 }
1300
new_boxed_non_dispatchable_VkMicromapEXT(VkMicromapEXT unboxed)1301 VkMicromapEXT new_boxed_non_dispatchable_VkMicromapEXT(VkMicromapEXT unboxed) {
1302 return new_boxed_VkType<VkMicromapEXT>(unboxed);
1303 }
1304
delete_VkMicromapEXT(VkMicromapEXT boxed)1305 void delete_VkMicromapEXT(VkMicromapEXT boxed) {
1306 delete_VkType(boxed);
1307 }
1308
delayed_delete_VkMicromapEXT(VkMicromapEXT boxed,VkDevice device,std::function<void ()> callback)1309 void delayed_delete_VkMicromapEXT(VkMicromapEXT boxed, VkDevice device, std::function<void()> callback) {
1310 delayed_delete_VkType(boxed, device, std::move(callback));
1311 }
1312
unbox_VkMicromapEXT(VkMicromapEXT boxed)1313 VkMicromapEXT unbox_VkMicromapEXT(VkMicromapEXT boxed) {
1314 return unbox_VkType<VkMicromapEXT>(boxed);
1315 }
1316
try_unbox_VkMicromapEXT(VkMicromapEXT boxed)1317 VkMicromapEXT try_unbox_VkMicromapEXT(VkMicromapEXT boxed) {
1318 return try_unbox_VkType<VkMicromapEXT>(boxed);
1319 }
1320
unboxed_to_boxed_non_dispatchable_VkMicromapEXT(VkMicromapEXT unboxed)1321 VkMicromapEXT unboxed_to_boxed_non_dispatchable_VkMicromapEXT(VkMicromapEXT unboxed) {
1322 return unboxed_to_boxed_non_dispatchable_VkType<VkMicromapEXT>(unboxed);
1323 }
1324
set_boxed_non_dispatchable_VkMicromapEXT(VkMicromapEXT boxed,VkMicromapEXT new_unboxed)1325 void set_boxed_non_dispatchable_VkMicromapEXT(VkMicromapEXT boxed, VkMicromapEXT new_unboxed) {
1326 set_boxed_non_dispatchable_VkType<VkMicromapEXT>(boxed, new_unboxed);
1327 }
1328
new_boxed_non_dispatchable_VkPipeline(VkPipeline unboxed)1329 VkPipeline new_boxed_non_dispatchable_VkPipeline(VkPipeline unboxed) {
1330 return new_boxed_VkType<VkPipeline>(unboxed);
1331 }
1332
delete_VkPipeline(VkPipeline boxed)1333 void delete_VkPipeline(VkPipeline boxed) {
1334 delete_VkType(boxed);
1335 }
1336
delayed_delete_VkPipeline(VkPipeline boxed,VkDevice device,std::function<void ()> callback)1337 void delayed_delete_VkPipeline(VkPipeline boxed, VkDevice device, std::function<void()> callback) {
1338 delayed_delete_VkType(boxed, device, std::move(callback));
1339 }
1340
unbox_VkPipeline(VkPipeline boxed)1341 VkPipeline unbox_VkPipeline(VkPipeline boxed) {
1342 return unbox_VkType<VkPipeline>(boxed);
1343 }
1344
try_unbox_VkPipeline(VkPipeline boxed)1345 VkPipeline try_unbox_VkPipeline(VkPipeline boxed) {
1346 return try_unbox_VkType<VkPipeline>(boxed);
1347 }
1348
unboxed_to_boxed_non_dispatchable_VkPipeline(VkPipeline unboxed)1349 VkPipeline unboxed_to_boxed_non_dispatchable_VkPipeline(VkPipeline unboxed) {
1350 return unboxed_to_boxed_non_dispatchable_VkType<VkPipeline>(unboxed);
1351 }
1352
set_boxed_non_dispatchable_VkPipeline(VkPipeline boxed,VkPipeline new_unboxed)1353 void set_boxed_non_dispatchable_VkPipeline(VkPipeline boxed, VkPipeline new_unboxed) {
1354 set_boxed_non_dispatchable_VkType<VkPipeline>(boxed, new_unboxed);
1355 }
1356
new_boxed_non_dispatchable_VkPipelineCache(VkPipelineCache unboxed)1357 VkPipelineCache new_boxed_non_dispatchable_VkPipelineCache(VkPipelineCache unboxed) {
1358 return new_boxed_VkType<VkPipelineCache>(unboxed);
1359 }
1360
delete_VkPipelineCache(VkPipelineCache boxed)1361 void delete_VkPipelineCache(VkPipelineCache boxed) {
1362 delete_VkType(boxed);
1363 }
1364
delayed_delete_VkPipelineCache(VkPipelineCache boxed,VkDevice device,std::function<void ()> callback)1365 void delayed_delete_VkPipelineCache(VkPipelineCache boxed, VkDevice device, std::function<void()> callback) {
1366 delayed_delete_VkType(boxed, device, std::move(callback));
1367 }
1368
unbox_VkPipelineCache(VkPipelineCache boxed)1369 VkPipelineCache unbox_VkPipelineCache(VkPipelineCache boxed) {
1370 return unbox_VkType<VkPipelineCache>(boxed);
1371 }
1372
try_unbox_VkPipelineCache(VkPipelineCache boxed)1373 VkPipelineCache try_unbox_VkPipelineCache(VkPipelineCache boxed) {
1374 return try_unbox_VkType<VkPipelineCache>(boxed);
1375 }
1376
unboxed_to_boxed_non_dispatchable_VkPipelineCache(VkPipelineCache unboxed)1377 VkPipelineCache unboxed_to_boxed_non_dispatchable_VkPipelineCache(VkPipelineCache unboxed) {
1378 return unboxed_to_boxed_non_dispatchable_VkType<VkPipelineCache>(unboxed);
1379 }
1380
set_boxed_non_dispatchable_VkPipelineCache(VkPipelineCache boxed,VkPipelineCache new_unboxed)1381 void set_boxed_non_dispatchable_VkPipelineCache(VkPipelineCache boxed, VkPipelineCache new_unboxed) {
1382 set_boxed_non_dispatchable_VkType<VkPipelineCache>(boxed, new_unboxed);
1383 }
1384
new_boxed_non_dispatchable_VkPipelineLayout(VkPipelineLayout unboxed)1385 VkPipelineLayout new_boxed_non_dispatchable_VkPipelineLayout(VkPipelineLayout unboxed) {
1386 return new_boxed_VkType<VkPipelineLayout>(unboxed);
1387 }
1388
delete_VkPipelineLayout(VkPipelineLayout boxed)1389 void delete_VkPipelineLayout(VkPipelineLayout boxed) {
1390 delete_VkType(boxed);
1391 }
1392
delayed_delete_VkPipelineLayout(VkPipelineLayout boxed,VkDevice device,std::function<void ()> callback)1393 void delayed_delete_VkPipelineLayout(VkPipelineLayout boxed, VkDevice device, std::function<void()> callback) {
1394 delayed_delete_VkType(boxed, device, std::move(callback));
1395 }
1396
unbox_VkPipelineLayout(VkPipelineLayout boxed)1397 VkPipelineLayout unbox_VkPipelineLayout(VkPipelineLayout boxed) {
1398 return unbox_VkType<VkPipelineLayout>(boxed);
1399 }
1400
try_unbox_VkPipelineLayout(VkPipelineLayout boxed)1401 VkPipelineLayout try_unbox_VkPipelineLayout(VkPipelineLayout boxed) {
1402 return try_unbox_VkType<VkPipelineLayout>(boxed);
1403 }
1404
unboxed_to_boxed_non_dispatchable_VkPipelineLayout(VkPipelineLayout unboxed)1405 VkPipelineLayout unboxed_to_boxed_non_dispatchable_VkPipelineLayout(VkPipelineLayout unboxed) {
1406 return unboxed_to_boxed_non_dispatchable_VkType<VkPipelineLayout>(unboxed);
1407 }
1408
set_boxed_non_dispatchable_VkPipelineLayout(VkPipelineLayout boxed,VkPipelineLayout new_unboxed)1409 void set_boxed_non_dispatchable_VkPipelineLayout(VkPipelineLayout boxed, VkPipelineLayout new_unboxed) {
1410 set_boxed_non_dispatchable_VkType<VkPipelineLayout>(boxed, new_unboxed);
1411 }
1412
new_boxed_non_dispatchable_VkPrivateDataSlot(VkPrivateDataSlot unboxed)1413 VkPrivateDataSlot new_boxed_non_dispatchable_VkPrivateDataSlot(VkPrivateDataSlot unboxed) {
1414 return new_boxed_VkType<VkPrivateDataSlot>(unboxed);
1415 }
1416
delete_VkPrivateDataSlot(VkPrivateDataSlot boxed)1417 void delete_VkPrivateDataSlot(VkPrivateDataSlot boxed) {
1418 delete_VkType(boxed);
1419 }
1420
delayed_delete_VkPrivateDataSlot(VkPrivateDataSlot boxed,VkDevice device,std::function<void ()> callback)1421 void delayed_delete_VkPrivateDataSlot(VkPrivateDataSlot boxed, VkDevice device, std::function<void()> callback) {
1422 delayed_delete_VkType(boxed, device, std::move(callback));
1423 }
1424
unbox_VkPrivateDataSlot(VkPrivateDataSlot boxed)1425 VkPrivateDataSlot unbox_VkPrivateDataSlot(VkPrivateDataSlot boxed) {
1426 return unbox_VkType<VkPrivateDataSlot>(boxed);
1427 }
1428
try_unbox_VkPrivateDataSlot(VkPrivateDataSlot boxed)1429 VkPrivateDataSlot try_unbox_VkPrivateDataSlot(VkPrivateDataSlot boxed) {
1430 return try_unbox_VkType<VkPrivateDataSlot>(boxed);
1431 }
1432
unboxed_to_boxed_non_dispatchable_VkPrivateDataSlot(VkPrivateDataSlot unboxed)1433 VkPrivateDataSlot unboxed_to_boxed_non_dispatchable_VkPrivateDataSlot(VkPrivateDataSlot unboxed) {
1434 return unboxed_to_boxed_non_dispatchable_VkType<VkPrivateDataSlot>(unboxed);
1435 }
1436
set_boxed_non_dispatchable_VkPrivateDataSlot(VkPrivateDataSlot boxed,VkPrivateDataSlot new_unboxed)1437 void set_boxed_non_dispatchable_VkPrivateDataSlot(VkPrivateDataSlot boxed, VkPrivateDataSlot new_unboxed) {
1438 set_boxed_non_dispatchable_VkType<VkPrivateDataSlot>(boxed, new_unboxed);
1439 }
1440
new_boxed_non_dispatchable_VkQueryPool(VkQueryPool unboxed)1441 VkQueryPool new_boxed_non_dispatchable_VkQueryPool(VkQueryPool unboxed) {
1442 return new_boxed_VkType<VkQueryPool>(unboxed);
1443 }
1444
delete_VkQueryPool(VkQueryPool boxed)1445 void delete_VkQueryPool(VkQueryPool boxed) {
1446 delete_VkType(boxed);
1447 }
1448
delayed_delete_VkQueryPool(VkQueryPool boxed,VkDevice device,std::function<void ()> callback)1449 void delayed_delete_VkQueryPool(VkQueryPool boxed, VkDevice device, std::function<void()> callback) {
1450 delayed_delete_VkType(boxed, device, std::move(callback));
1451 }
1452
unbox_VkQueryPool(VkQueryPool boxed)1453 VkQueryPool unbox_VkQueryPool(VkQueryPool boxed) {
1454 return unbox_VkType<VkQueryPool>(boxed);
1455 }
1456
try_unbox_VkQueryPool(VkQueryPool boxed)1457 VkQueryPool try_unbox_VkQueryPool(VkQueryPool boxed) {
1458 return try_unbox_VkType<VkQueryPool>(boxed);
1459 }
1460
unboxed_to_boxed_non_dispatchable_VkQueryPool(VkQueryPool unboxed)1461 VkQueryPool unboxed_to_boxed_non_dispatchable_VkQueryPool(VkQueryPool unboxed) {
1462 return unboxed_to_boxed_non_dispatchable_VkType<VkQueryPool>(unboxed);
1463 }
1464
set_boxed_non_dispatchable_VkQueryPool(VkQueryPool boxed,VkQueryPool new_unboxed)1465 void set_boxed_non_dispatchable_VkQueryPool(VkQueryPool boxed, VkQueryPool new_unboxed) {
1466 set_boxed_non_dispatchable_VkType<VkQueryPool>(boxed, new_unboxed);
1467 }
1468
new_boxed_non_dispatchable_VkRenderPass(VkRenderPass unboxed)1469 VkRenderPass new_boxed_non_dispatchable_VkRenderPass(VkRenderPass unboxed) {
1470 return new_boxed_VkType<VkRenderPass>(unboxed);
1471 }
1472
delete_VkRenderPass(VkRenderPass boxed)1473 void delete_VkRenderPass(VkRenderPass boxed) {
1474 delete_VkType(boxed);
1475 }
1476
delayed_delete_VkRenderPass(VkRenderPass boxed,VkDevice device,std::function<void ()> callback)1477 void delayed_delete_VkRenderPass(VkRenderPass boxed, VkDevice device, std::function<void()> callback) {
1478 delayed_delete_VkType(boxed, device, std::move(callback));
1479 }
1480
unbox_VkRenderPass(VkRenderPass boxed)1481 VkRenderPass unbox_VkRenderPass(VkRenderPass boxed) {
1482 return unbox_VkType<VkRenderPass>(boxed);
1483 }
1484
try_unbox_VkRenderPass(VkRenderPass boxed)1485 VkRenderPass try_unbox_VkRenderPass(VkRenderPass boxed) {
1486 return try_unbox_VkType<VkRenderPass>(boxed);
1487 }
1488
unboxed_to_boxed_non_dispatchable_VkRenderPass(VkRenderPass unboxed)1489 VkRenderPass unboxed_to_boxed_non_dispatchable_VkRenderPass(VkRenderPass unboxed) {
1490 return unboxed_to_boxed_non_dispatchable_VkType<VkRenderPass>(unboxed);
1491 }
1492
set_boxed_non_dispatchable_VkRenderPass(VkRenderPass boxed,VkRenderPass new_unboxed)1493 void set_boxed_non_dispatchable_VkRenderPass(VkRenderPass boxed, VkRenderPass new_unboxed) {
1494 set_boxed_non_dispatchable_VkType<VkRenderPass>(boxed, new_unboxed);
1495 }
1496
new_boxed_non_dispatchable_VkSampler(VkSampler unboxed)1497 VkSampler new_boxed_non_dispatchable_VkSampler(VkSampler unboxed) {
1498 return new_boxed_VkType<VkSampler>(unboxed);
1499 }
1500
delete_VkSampler(VkSampler boxed)1501 void delete_VkSampler(VkSampler boxed) {
1502 delete_VkType(boxed);
1503 }
1504
delayed_delete_VkSampler(VkSampler boxed,VkDevice device,std::function<void ()> callback)1505 void delayed_delete_VkSampler(VkSampler boxed, VkDevice device, std::function<void()> callback) {
1506 delayed_delete_VkType(boxed, device, std::move(callback));
1507 }
1508
unbox_VkSampler(VkSampler boxed)1509 VkSampler unbox_VkSampler(VkSampler boxed) {
1510 return unbox_VkType<VkSampler>(boxed);
1511 }
1512
try_unbox_VkSampler(VkSampler boxed)1513 VkSampler try_unbox_VkSampler(VkSampler boxed) {
1514 return try_unbox_VkType<VkSampler>(boxed);
1515 }
1516
unboxed_to_boxed_non_dispatchable_VkSampler(VkSampler unboxed)1517 VkSampler unboxed_to_boxed_non_dispatchable_VkSampler(VkSampler unboxed) {
1518 return unboxed_to_boxed_non_dispatchable_VkType<VkSampler>(unboxed);
1519 }
1520
set_boxed_non_dispatchable_VkSampler(VkSampler boxed,VkSampler new_unboxed)1521 void set_boxed_non_dispatchable_VkSampler(VkSampler boxed, VkSampler new_unboxed) {
1522 set_boxed_non_dispatchable_VkType<VkSampler>(boxed, new_unboxed);
1523 }
1524
new_boxed_non_dispatchable_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion unboxed)1525 VkSamplerYcbcrConversion new_boxed_non_dispatchable_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion unboxed) {
1526 return new_boxed_VkType<VkSamplerYcbcrConversion>(unboxed);
1527 }
1528
delete_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed)1529 void delete_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed) {
1530 delete_VkType(boxed);
1531 }
1532
delayed_delete_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed,VkDevice device,std::function<void ()> callback)1533 void delayed_delete_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed, VkDevice device, std::function<void()> callback) {
1534 delayed_delete_VkType(boxed, device, std::move(callback));
1535 }
1536
unbox_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed)1537 VkSamplerYcbcrConversion unbox_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed) {
1538 return unbox_VkType<VkSamplerYcbcrConversion>(boxed);
1539 }
1540
try_unbox_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed)1541 VkSamplerYcbcrConversion try_unbox_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed) {
1542 return try_unbox_VkType<VkSamplerYcbcrConversion>(boxed);
1543 }
1544
unboxed_to_boxed_non_dispatchable_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion unboxed)1545 VkSamplerYcbcrConversion unboxed_to_boxed_non_dispatchable_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion unboxed) {
1546 return unboxed_to_boxed_non_dispatchable_VkType<VkSamplerYcbcrConversion>(unboxed);
1547 }
1548
set_boxed_non_dispatchable_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed,VkSamplerYcbcrConversion new_unboxed)1549 void set_boxed_non_dispatchable_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed, VkSamplerYcbcrConversion new_unboxed) {
1550 set_boxed_non_dispatchable_VkType<VkSamplerYcbcrConversion>(boxed, new_unboxed);
1551 }
1552
new_boxed_non_dispatchable_VkSemaphore(VkSemaphore unboxed)1553 VkSemaphore new_boxed_non_dispatchable_VkSemaphore(VkSemaphore unboxed) {
1554 return new_boxed_VkType<VkSemaphore>(unboxed);
1555 }
1556
delete_VkSemaphore(VkSemaphore boxed)1557 void delete_VkSemaphore(VkSemaphore boxed) {
1558 delete_VkType(boxed);
1559 }
1560
delayed_delete_VkSemaphore(VkSemaphore boxed,VkDevice device,std::function<void ()> callback)1561 void delayed_delete_VkSemaphore(VkSemaphore boxed, VkDevice device, std::function<void()> callback) {
1562 delayed_delete_VkType(boxed, device, std::move(callback));
1563 }
1564
unbox_VkSemaphore(VkSemaphore boxed)1565 VkSemaphore unbox_VkSemaphore(VkSemaphore boxed) {
1566 return unbox_VkType<VkSemaphore>(boxed);
1567 }
1568
try_unbox_VkSemaphore(VkSemaphore boxed)1569 VkSemaphore try_unbox_VkSemaphore(VkSemaphore boxed) {
1570 return try_unbox_VkType<VkSemaphore>(boxed);
1571 }
1572
unboxed_to_boxed_non_dispatchable_VkSemaphore(VkSemaphore unboxed)1573 VkSemaphore unboxed_to_boxed_non_dispatchable_VkSemaphore(VkSemaphore unboxed) {
1574 return unboxed_to_boxed_non_dispatchable_VkType<VkSemaphore>(unboxed);
1575 }
1576
set_boxed_non_dispatchable_VkSemaphore(VkSemaphore boxed,VkSemaphore new_unboxed)1577 void set_boxed_non_dispatchable_VkSemaphore(VkSemaphore boxed, VkSemaphore new_unboxed) {
1578 set_boxed_non_dispatchable_VkType<VkSemaphore>(boxed, new_unboxed);
1579 }
1580
new_boxed_non_dispatchable_VkShaderModule(VkShaderModule unboxed)1581 VkShaderModule new_boxed_non_dispatchable_VkShaderModule(VkShaderModule unboxed) {
1582 return new_boxed_VkType<VkShaderModule>(unboxed);
1583 }
1584
delete_VkShaderModule(VkShaderModule boxed)1585 void delete_VkShaderModule(VkShaderModule boxed) {
1586 delete_VkType(boxed);
1587 }
1588
delayed_delete_VkShaderModule(VkShaderModule boxed,VkDevice device,std::function<void ()> callback)1589 void delayed_delete_VkShaderModule(VkShaderModule boxed, VkDevice device, std::function<void()> callback) {
1590 delayed_delete_VkType(boxed, device, std::move(callback));
1591 }
1592
unbox_VkShaderModule(VkShaderModule boxed)1593 VkShaderModule unbox_VkShaderModule(VkShaderModule boxed) {
1594 return unbox_VkType<VkShaderModule>(boxed);
1595 }
1596
try_unbox_VkShaderModule(VkShaderModule boxed)1597 VkShaderModule try_unbox_VkShaderModule(VkShaderModule boxed) {
1598 return try_unbox_VkType<VkShaderModule>(boxed);
1599 }
1600
unboxed_to_boxed_non_dispatchable_VkShaderModule(VkShaderModule unboxed)1601 VkShaderModule unboxed_to_boxed_non_dispatchable_VkShaderModule(VkShaderModule unboxed) {
1602 return unboxed_to_boxed_non_dispatchable_VkType<VkShaderModule>(unboxed);
1603 }
1604
set_boxed_non_dispatchable_VkShaderModule(VkShaderModule boxed,VkShaderModule new_unboxed)1605 void set_boxed_non_dispatchable_VkShaderModule(VkShaderModule boxed, VkShaderModule new_unboxed) {
1606 set_boxed_non_dispatchable_VkType<VkShaderModule>(boxed, new_unboxed);
1607 }
1608
new_boxed_non_dispatchable_VkSurfaceKHR(VkSurfaceKHR unboxed)1609 VkSurfaceKHR new_boxed_non_dispatchable_VkSurfaceKHR(VkSurfaceKHR unboxed) {
1610 return new_boxed_VkType<VkSurfaceKHR>(unboxed);
1611 }
1612
delete_VkSurfaceKHR(VkSurfaceKHR boxed)1613 void delete_VkSurfaceKHR(VkSurfaceKHR boxed) {
1614 delete_VkType(boxed);
1615 }
1616
delayed_delete_VkSurfaceKHR(VkSurfaceKHR boxed,VkDevice device,std::function<void ()> callback)1617 void delayed_delete_VkSurfaceKHR(VkSurfaceKHR boxed, VkDevice device, std::function<void()> callback) {
1618 delayed_delete_VkType(boxed, device, std::move(callback));
1619 }
1620
unbox_VkSurfaceKHR(VkSurfaceKHR boxed)1621 VkSurfaceKHR unbox_VkSurfaceKHR(VkSurfaceKHR boxed) {
1622 return unbox_VkType<VkSurfaceKHR>(boxed);
1623 }
1624
try_unbox_VkSurfaceKHR(VkSurfaceKHR boxed)1625 VkSurfaceKHR try_unbox_VkSurfaceKHR(VkSurfaceKHR boxed) {
1626 return try_unbox_VkType<VkSurfaceKHR>(boxed);
1627 }
1628
unboxed_to_boxed_non_dispatchable_VkSurfaceKHR(VkSurfaceKHR unboxed)1629 VkSurfaceKHR unboxed_to_boxed_non_dispatchable_VkSurfaceKHR(VkSurfaceKHR unboxed) {
1630 return unboxed_to_boxed_non_dispatchable_VkType<VkSurfaceKHR>(unboxed);
1631 }
1632
set_boxed_non_dispatchable_VkSurfaceKHR(VkSurfaceKHR boxed,VkSurfaceKHR new_unboxed)1633 void set_boxed_non_dispatchable_VkSurfaceKHR(VkSurfaceKHR boxed, VkSurfaceKHR new_unboxed) {
1634 set_boxed_non_dispatchable_VkType<VkSurfaceKHR>(boxed, new_unboxed);
1635 }
1636
new_boxed_non_dispatchable_VkSwapchainKHR(VkSwapchainKHR unboxed)1637 VkSwapchainKHR new_boxed_non_dispatchable_VkSwapchainKHR(VkSwapchainKHR unboxed) {
1638 return new_boxed_VkType<VkSwapchainKHR>(unboxed);
1639 }
1640
delete_VkSwapchainKHR(VkSwapchainKHR boxed)1641 void delete_VkSwapchainKHR(VkSwapchainKHR boxed) {
1642 delete_VkType(boxed);
1643 }
1644
delayed_delete_VkSwapchainKHR(VkSwapchainKHR boxed,VkDevice device,std::function<void ()> callback)1645 void delayed_delete_VkSwapchainKHR(VkSwapchainKHR boxed, VkDevice device, std::function<void()> callback) {
1646 delayed_delete_VkType(boxed, device, std::move(callback));
1647 }
1648
unbox_VkSwapchainKHR(VkSwapchainKHR boxed)1649 VkSwapchainKHR unbox_VkSwapchainKHR(VkSwapchainKHR boxed) {
1650 return unbox_VkType<VkSwapchainKHR>(boxed);
1651 }
1652
try_unbox_VkSwapchainKHR(VkSwapchainKHR boxed)1653 VkSwapchainKHR try_unbox_VkSwapchainKHR(VkSwapchainKHR boxed) {
1654 return try_unbox_VkType<VkSwapchainKHR>(boxed);
1655 }
1656
unboxed_to_boxed_non_dispatchable_VkSwapchainKHR(VkSwapchainKHR unboxed)1657 VkSwapchainKHR unboxed_to_boxed_non_dispatchable_VkSwapchainKHR(VkSwapchainKHR unboxed) {
1658 return unboxed_to_boxed_non_dispatchable_VkType<VkSwapchainKHR>(unboxed);
1659 }
1660
set_boxed_non_dispatchable_VkSwapchainKHR(VkSwapchainKHR boxed,VkSwapchainKHR new_unboxed)1661 void set_boxed_non_dispatchable_VkSwapchainKHR(VkSwapchainKHR boxed, VkSwapchainKHR new_unboxed) {
1662 set_boxed_non_dispatchable_VkType<VkSwapchainKHR>(boxed, new_unboxed);
1663 }
1664
new_boxed_non_dispatchable_VkValidationCacheEXT(VkValidationCacheEXT unboxed)1665 VkValidationCacheEXT new_boxed_non_dispatchable_VkValidationCacheEXT(VkValidationCacheEXT unboxed) {
1666 return new_boxed_VkType<VkValidationCacheEXT>(unboxed);
1667 }
1668
delete_VkValidationCacheEXT(VkValidationCacheEXT boxed)1669 void delete_VkValidationCacheEXT(VkValidationCacheEXT boxed) {
1670 delete_VkType(boxed);
1671 }
1672
delayed_delete_VkValidationCacheEXT(VkValidationCacheEXT boxed,VkDevice device,std::function<void ()> callback)1673 void delayed_delete_VkValidationCacheEXT(VkValidationCacheEXT boxed, VkDevice device, std::function<void()> callback) {
1674 delayed_delete_VkType(boxed, device, std::move(callback));
1675 }
1676
unbox_VkValidationCacheEXT(VkValidationCacheEXT boxed)1677 VkValidationCacheEXT unbox_VkValidationCacheEXT(VkValidationCacheEXT boxed) {
1678 return unbox_VkType<VkValidationCacheEXT>(boxed);
1679 }
1680
try_unbox_VkValidationCacheEXT(VkValidationCacheEXT boxed)1681 VkValidationCacheEXT try_unbox_VkValidationCacheEXT(VkValidationCacheEXT boxed) {
1682 return try_unbox_VkType<VkValidationCacheEXT>(boxed);
1683 }
1684
unboxed_to_boxed_non_dispatchable_VkValidationCacheEXT(VkValidationCacheEXT unboxed)1685 VkValidationCacheEXT unboxed_to_boxed_non_dispatchable_VkValidationCacheEXT(VkValidationCacheEXT unboxed) {
1686 return unboxed_to_boxed_non_dispatchable_VkType<VkValidationCacheEXT>(unboxed);
1687 }
1688
set_boxed_non_dispatchable_VkValidationCacheEXT(VkValidationCacheEXT boxed,VkValidationCacheEXT new_unboxed)1689 void set_boxed_non_dispatchable_VkValidationCacheEXT(VkValidationCacheEXT boxed, VkValidationCacheEXT new_unboxed) {
1690 set_boxed_non_dispatchable_VkType<VkValidationCacheEXT>(boxed, new_unboxed);
1691 }
1692
1693 } // namespace vk
1694 } // namespace gfxstream
1695