1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15
16 // Autogenerated module VkEncoder
17 // (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
18 // Please do not modify directly;
19 // re-run android/scripts/generate-vulkan-sources.sh,
20 // or directly from Python by defining:
21 // VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
22 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
23 // python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
24
25 #include "VkEncoder.h"
26
27
28 #include "IOStream.h"
29 #include "Resources.h"
30 #include "ResourceTracker.h"
31 #include "Validation.h"
32 #include "VulkanStreamGuest.h"
33
34 #include "android/base/AlignedBuf.h"
35 #include "android/base/Pool.h"
36
37 #include <cutils/properties.h>
38
39 #include "goldfish_vk_marshaling_guest.h"
40 #include "goldfish_vk_deepcopy_guest.h"
41 #include "goldfish_vk_handlemap_guest.h"
42 #include "goldfish_vk_private_defs.h"
43 #include "goldfish_vk_transform_guest.h"
44
45
46 namespace goldfish_vk {
47
48
49
50 using namespace goldfish_vk;
51
52 using android::aligned_buf_alloc;
53 using android::aligned_buf_free;
54 using android::base::Pool;
55
56 class VkEncoder::Impl {
57 public:
Impl(IOStream * stream)58 Impl(IOStream* stream) : m_stream(stream), m_logEncodes(false) {
59 const char* emuVkLogEncodesPropName = "qemu.vk.log";
60 char encodeProp[PROPERTY_VALUE_MAX];
61 if (property_get(emuVkLogEncodesPropName, encodeProp, nullptr) > 0) {
62 m_logEncodes = atoi(encodeProp) > 0;
63 }
64 }
countingStream()65 VulkanCountingStream* countingStream() { return &m_countingStream; }
stream()66 VulkanStreamGuest* stream() { return &m_stream; }
pool()67 Pool* pool() { return &m_pool; }
resources()68 ResourceTracker* resources() { return ResourceTracker::get(); }
validation()69 Validation* validation() { return &m_validation; }
70
log(const char * text)71 void log(const char* text) {
72 if (!m_logEncodes) return;
73 ALOGD("encoder log: %s", text);
74 }
75 private:
76 VulkanCountingStream m_countingStream;
77 VulkanStreamGuest m_stream;
78 Pool m_pool { 8, 4096, 64 };
79
80 Validation m_validation;
81 bool m_logEncodes;
82 };
83
VkEncoder(IOStream * stream)84 VkEncoder::VkEncoder(IOStream *stream) :
85 mImpl(new VkEncoder::Impl(stream)) { }
86
87 #define VALIDATE_RET(retType, success, validate) \
88 retType goldfish_vk_validateResult = validate; \
89 if (goldfish_vk_validateResult != success) return goldfish_vk_validateResult; \
90
91 #define VALIDATE_VOID(validate) \
92 VkResult goldfish_vk_validateResult = validate; \
93 if (goldfish_vk_validateResult != VK_SUCCESS) return; \
94
95 #ifdef VK_VERSION_1_0
vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance)96 VkResult VkEncoder::vkCreateInstance(
97 const VkInstanceCreateInfo* pCreateInfo,
98 const VkAllocationCallbacks* pAllocator,
99 VkInstance* pInstance)
100 {
101 AEMU_SCOPED_TRACE("vkCreateInstance encode");
102 mImpl->log("start vkCreateInstance");
103 auto stream = mImpl->stream();
104 auto countingStream = mImpl->countingStream();
105 auto resources = mImpl->resources();
106 auto pool = mImpl->pool();
107 stream->setHandleMapping(resources->unwrapMapping());
108 VkInstanceCreateInfo* local_pCreateInfo;
109 VkAllocationCallbacks* local_pAllocator;
110 local_pCreateInfo = nullptr;
111 if (pCreateInfo)
112 {
113 local_pCreateInfo = (VkInstanceCreateInfo*)pool->alloc(sizeof(const VkInstanceCreateInfo));
114 deepcopy_VkInstanceCreateInfo(pool, pCreateInfo, (VkInstanceCreateInfo*)(local_pCreateInfo));
115 }
116 local_pAllocator = nullptr;
117 if (pAllocator)
118 {
119 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
120 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
121 }
122 local_pAllocator = nullptr;
123 if (local_pCreateInfo)
124 {
125 transform_tohost_VkInstanceCreateInfo(mImpl->resources(), (VkInstanceCreateInfo*)(local_pCreateInfo));
126 }
127 if (local_pAllocator)
128 {
129 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
130 }
131 countingStream->rewind();
132 {
133 marshal_VkInstanceCreateInfo(countingStream, (VkInstanceCreateInfo*)(local_pCreateInfo));
134 // WARNING PTR CHECK
135 uint64_t cgen_var_0 = (uint64_t)(uintptr_t)local_pAllocator;
136 countingStream->putBe64(cgen_var_0);
137 if (local_pAllocator)
138 {
139 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
140 }
141 uint64_t cgen_var_1;
142 countingStream->handleMapping()->mapHandles_VkInstance_u64(pInstance, &cgen_var_1, 1);
143 countingStream->write((uint64_t*)&cgen_var_1, 8);
144 }
145 uint32_t packetSize_vkCreateInstance = 4 + 4 + (uint32_t)countingStream->bytesWritten();
146 countingStream->rewind();
147 uint32_t opcode_vkCreateInstance = OP_vkCreateInstance;
148 stream->write(&opcode_vkCreateInstance, sizeof(uint32_t));
149 stream->write(&packetSize_vkCreateInstance, sizeof(uint32_t));
150 marshal_VkInstanceCreateInfo(stream, (VkInstanceCreateInfo*)(local_pCreateInfo));
151 // WARNING PTR CHECK
152 uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
153 stream->putBe64(cgen_var_2);
154 if (local_pAllocator)
155 {
156 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
157 }
158 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
159 uint64_t cgen_var_3;
160 stream->handleMapping()->mapHandles_VkInstance_u64(pInstance, &cgen_var_3, 1);
161 stream->write((uint64_t*)&cgen_var_3, 8);
162 stream->setHandleMapping(resources->unwrapMapping());
163 AEMU_SCOPED_TRACE("vkCreateInstance readParams");
164 stream->setHandleMapping(resources->createMapping());
165 uint64_t cgen_var_4;
166 stream->read((uint64_t*)&cgen_var_4, 8);
167 stream->handleMapping()->mapHandles_u64_VkInstance(&cgen_var_4, (VkInstance*)pInstance, 1);
168 stream->unsetHandleMapping();
169 AEMU_SCOPED_TRACE("vkCreateInstance returnUnmarshal");
170 VkResult vkCreateInstance_VkResult_return = (VkResult)0;
171 stream->read(&vkCreateInstance_VkResult_return, sizeof(VkResult));
172 countingStream->clearPool();
173 stream->clearPool();
174 pool->freeAll();
175 mImpl->resources()->on_vkCreateInstance(this, vkCreateInstance_VkResult_return, pCreateInfo, pAllocator, pInstance);
176 mImpl->log("finish vkCreateInstance");;
177 return vkCreateInstance_VkResult_return;
178 }
179
vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator)180 void VkEncoder::vkDestroyInstance(
181 VkInstance instance,
182 const VkAllocationCallbacks* pAllocator)
183 {
184 AEMU_SCOPED_TRACE("vkDestroyInstance encode");
185 mImpl->log("start vkDestroyInstance");
186 auto stream = mImpl->stream();
187 auto countingStream = mImpl->countingStream();
188 auto resources = mImpl->resources();
189 auto pool = mImpl->pool();
190 stream->setHandleMapping(resources->unwrapMapping());
191 VkInstance local_instance;
192 VkAllocationCallbacks* local_pAllocator;
193 local_instance = instance;
194 local_pAllocator = nullptr;
195 if (pAllocator)
196 {
197 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
198 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
199 }
200 local_pAllocator = nullptr;
201 if (local_pAllocator)
202 {
203 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
204 }
205 countingStream->rewind();
206 {
207 uint64_t cgen_var_5;
208 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_5, 1);
209 countingStream->write((uint64_t*)&cgen_var_5, 1 * 8);
210 // WARNING PTR CHECK
211 uint64_t cgen_var_6 = (uint64_t)(uintptr_t)local_pAllocator;
212 countingStream->putBe64(cgen_var_6);
213 if (local_pAllocator)
214 {
215 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
216 }
217 }
218 uint32_t packetSize_vkDestroyInstance = 4 + 4 + (uint32_t)countingStream->bytesWritten();
219 countingStream->rewind();
220 uint32_t opcode_vkDestroyInstance = OP_vkDestroyInstance;
221 stream->write(&opcode_vkDestroyInstance, sizeof(uint32_t));
222 stream->write(&packetSize_vkDestroyInstance, sizeof(uint32_t));
223 uint64_t cgen_var_7;
224 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_7, 1);
225 stream->write((uint64_t*)&cgen_var_7, 1 * 8);
226 // WARNING PTR CHECK
227 uint64_t cgen_var_8 = (uint64_t)(uintptr_t)local_pAllocator;
228 stream->putBe64(cgen_var_8);
229 if (local_pAllocator)
230 {
231 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
232 }
233 AEMU_SCOPED_TRACE("vkDestroyInstance readParams");
234 AEMU_SCOPED_TRACE("vkDestroyInstance returnUnmarshal");
235 resources->destroyMapping()->mapHandles_VkInstance((VkInstance*)&instance);
236 mImpl->log("finish vkDestroyInstance");;
237 }
238
vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices)239 VkResult VkEncoder::vkEnumeratePhysicalDevices(
240 VkInstance instance,
241 uint32_t* pPhysicalDeviceCount,
242 VkPhysicalDevice* pPhysicalDevices)
243 {
244 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices encode");
245 mImpl->log("start vkEnumeratePhysicalDevices");
246 auto stream = mImpl->stream();
247 auto countingStream = mImpl->countingStream();
248 auto resources = mImpl->resources();
249 auto pool = mImpl->pool();
250 stream->setHandleMapping(resources->unwrapMapping());
251 VkInstance local_instance;
252 local_instance = instance;
253 countingStream->rewind();
254 {
255 uint64_t cgen_var_9;
256 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_9, 1);
257 countingStream->write((uint64_t*)&cgen_var_9, 1 * 8);
258 // WARNING PTR CHECK
259 uint64_t cgen_var_10 = (uint64_t)(uintptr_t)pPhysicalDeviceCount;
260 countingStream->putBe64(cgen_var_10);
261 if (pPhysicalDeviceCount)
262 {
263 countingStream->write((uint32_t*)pPhysicalDeviceCount, sizeof(uint32_t));
264 }
265 // WARNING PTR CHECK
266 uint64_t cgen_var_11 = (uint64_t)(uintptr_t)pPhysicalDevices;
267 countingStream->putBe64(cgen_var_11);
268 if (pPhysicalDevices)
269 {
270 if ((*(pPhysicalDeviceCount)))
271 {
272 uint64_t* cgen_var_12;
273 countingStream->alloc((void**)&cgen_var_12, (*(pPhysicalDeviceCount)) * 8);
274 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(pPhysicalDevices, cgen_var_12, (*(pPhysicalDeviceCount)));
275 countingStream->write((uint64_t*)cgen_var_12, (*(pPhysicalDeviceCount)) * 8);
276 }
277 }
278 }
279 uint32_t packetSize_vkEnumeratePhysicalDevices = 4 + 4 + (uint32_t)countingStream->bytesWritten();
280 countingStream->rewind();
281 uint32_t opcode_vkEnumeratePhysicalDevices = OP_vkEnumeratePhysicalDevices;
282 stream->write(&opcode_vkEnumeratePhysicalDevices, sizeof(uint32_t));
283 stream->write(&packetSize_vkEnumeratePhysicalDevices, sizeof(uint32_t));
284 uint64_t cgen_var_13;
285 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_13, 1);
286 stream->write((uint64_t*)&cgen_var_13, 1 * 8);
287 // WARNING PTR CHECK
288 uint64_t cgen_var_14 = (uint64_t)(uintptr_t)pPhysicalDeviceCount;
289 stream->putBe64(cgen_var_14);
290 if (pPhysicalDeviceCount)
291 {
292 stream->write((uint32_t*)pPhysicalDeviceCount, sizeof(uint32_t));
293 }
294 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
295 // WARNING PTR CHECK
296 uint64_t cgen_var_15 = (uint64_t)(uintptr_t)pPhysicalDevices;
297 stream->putBe64(cgen_var_15);
298 if (pPhysicalDevices)
299 {
300 if ((*(pPhysicalDeviceCount)))
301 {
302 uint64_t* cgen_var_16;
303 stream->alloc((void**)&cgen_var_16, (*(pPhysicalDeviceCount)) * 8);
304 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(pPhysicalDevices, cgen_var_16, (*(pPhysicalDeviceCount)));
305 stream->write((uint64_t*)cgen_var_16, (*(pPhysicalDeviceCount)) * 8);
306 }
307 }
308 stream->setHandleMapping(resources->unwrapMapping());
309 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices readParams");
310 // WARNING PTR CHECK
311 uint32_t* check_pPhysicalDeviceCount;
312 check_pPhysicalDeviceCount = (uint32_t*)(uintptr_t)stream->getBe64();
313 if (pPhysicalDeviceCount)
314 {
315 if (!(check_pPhysicalDeviceCount))
316 {
317 fprintf(stderr, "fatal: pPhysicalDeviceCount inconsistent between guest and host\n");
318 }
319 stream->read((uint32_t*)pPhysicalDeviceCount, sizeof(uint32_t));
320 }
321 stream->setHandleMapping(resources->createMapping());
322 // WARNING PTR CHECK
323 VkPhysicalDevice* check_pPhysicalDevices;
324 check_pPhysicalDevices = (VkPhysicalDevice*)(uintptr_t)stream->getBe64();
325 if (pPhysicalDevices)
326 {
327 if (!(check_pPhysicalDevices))
328 {
329 fprintf(stderr, "fatal: pPhysicalDevices inconsistent between guest and host\n");
330 }
331 if ((*(pPhysicalDeviceCount)))
332 {
333 uint64_t* cgen_var_19;
334 stream->alloc((void**)&cgen_var_19, (*(pPhysicalDeviceCount)) * 8);
335 stream->read((uint64_t*)cgen_var_19, (*(pPhysicalDeviceCount)) * 8);
336 stream->handleMapping()->mapHandles_u64_VkPhysicalDevice(cgen_var_19, (VkPhysicalDevice*)pPhysicalDevices, (*(pPhysicalDeviceCount)));
337 }
338 }
339 stream->unsetHandleMapping();
340 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices returnUnmarshal");
341 VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
342 stream->read(&vkEnumeratePhysicalDevices_VkResult_return, sizeof(VkResult));
343 countingStream->clearPool();
344 stream->clearPool();
345 pool->freeAll();
346 mImpl->log("finish vkEnumeratePhysicalDevices");;
347 return vkEnumeratePhysicalDevices_VkResult_return;
348 }
349
vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures)350 void VkEncoder::vkGetPhysicalDeviceFeatures(
351 VkPhysicalDevice physicalDevice,
352 VkPhysicalDeviceFeatures* pFeatures)
353 {
354 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures encode");
355 mImpl->log("start vkGetPhysicalDeviceFeatures");
356 auto stream = mImpl->stream();
357 auto countingStream = mImpl->countingStream();
358 auto resources = mImpl->resources();
359 auto pool = mImpl->pool();
360 stream->setHandleMapping(resources->unwrapMapping());
361 VkPhysicalDevice local_physicalDevice;
362 local_physicalDevice = physicalDevice;
363 countingStream->rewind();
364 {
365 uint64_t cgen_var_20;
366 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_20, 1);
367 countingStream->write((uint64_t*)&cgen_var_20, 1 * 8);
368 marshal_VkPhysicalDeviceFeatures(countingStream, (VkPhysicalDeviceFeatures*)(pFeatures));
369 }
370 uint32_t packetSize_vkGetPhysicalDeviceFeatures = 4 + 4 + (uint32_t)countingStream->bytesWritten();
371 countingStream->rewind();
372 uint32_t opcode_vkGetPhysicalDeviceFeatures = OP_vkGetPhysicalDeviceFeatures;
373 stream->write(&opcode_vkGetPhysicalDeviceFeatures, sizeof(uint32_t));
374 stream->write(&packetSize_vkGetPhysicalDeviceFeatures, sizeof(uint32_t));
375 uint64_t cgen_var_21;
376 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_21, 1);
377 stream->write((uint64_t*)&cgen_var_21, 1 * 8);
378 marshal_VkPhysicalDeviceFeatures(stream, (VkPhysicalDeviceFeatures*)(pFeatures));
379 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures readParams");
380 unmarshal_VkPhysicalDeviceFeatures(stream, (VkPhysicalDeviceFeatures*)(pFeatures));
381 if (pFeatures)
382 {
383 transform_fromhost_VkPhysicalDeviceFeatures(mImpl->resources(), (VkPhysicalDeviceFeatures*)(pFeatures));
384 }
385 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures returnUnmarshal");
386 mImpl->log("finish vkGetPhysicalDeviceFeatures");;
387 }
388
vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties)389 void VkEncoder::vkGetPhysicalDeviceFormatProperties(
390 VkPhysicalDevice physicalDevice,
391 VkFormat format,
392 VkFormatProperties* pFormatProperties)
393 {
394 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties encode");
395 mImpl->log("start vkGetPhysicalDeviceFormatProperties");
396 auto stream = mImpl->stream();
397 auto countingStream = mImpl->countingStream();
398 auto resources = mImpl->resources();
399 auto pool = mImpl->pool();
400 stream->setHandleMapping(resources->unwrapMapping());
401 VkPhysicalDevice local_physicalDevice;
402 VkFormat local_format;
403 local_physicalDevice = physicalDevice;
404 local_format = format;
405 countingStream->rewind();
406 {
407 uint64_t cgen_var_22;
408 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_22, 1);
409 countingStream->write((uint64_t*)&cgen_var_22, 1 * 8);
410 countingStream->write((VkFormat*)&local_format, sizeof(VkFormat));
411 marshal_VkFormatProperties(countingStream, (VkFormatProperties*)(pFormatProperties));
412 }
413 uint32_t packetSize_vkGetPhysicalDeviceFormatProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
414 countingStream->rewind();
415 uint32_t opcode_vkGetPhysicalDeviceFormatProperties = OP_vkGetPhysicalDeviceFormatProperties;
416 stream->write(&opcode_vkGetPhysicalDeviceFormatProperties, sizeof(uint32_t));
417 stream->write(&packetSize_vkGetPhysicalDeviceFormatProperties, sizeof(uint32_t));
418 uint64_t cgen_var_23;
419 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_23, 1);
420 stream->write((uint64_t*)&cgen_var_23, 1 * 8);
421 stream->write((VkFormat*)&local_format, sizeof(VkFormat));
422 marshal_VkFormatProperties(stream, (VkFormatProperties*)(pFormatProperties));
423 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties readParams");
424 unmarshal_VkFormatProperties(stream, (VkFormatProperties*)(pFormatProperties));
425 if (pFormatProperties)
426 {
427 transform_fromhost_VkFormatProperties(mImpl->resources(), (VkFormatProperties*)(pFormatProperties));
428 }
429 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties returnUnmarshal");
430 mImpl->log("finish vkGetPhysicalDeviceFormatProperties");;
431 }
432
vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties)433 VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties(
434 VkPhysicalDevice physicalDevice,
435 VkFormat format,
436 VkImageType type,
437 VkImageTiling tiling,
438 VkImageUsageFlags usage,
439 VkImageCreateFlags flags,
440 VkImageFormatProperties* pImageFormatProperties)
441 {
442 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties encode");
443 mImpl->log("start vkGetPhysicalDeviceImageFormatProperties");
444 auto stream = mImpl->stream();
445 auto countingStream = mImpl->countingStream();
446 auto resources = mImpl->resources();
447 auto pool = mImpl->pool();
448 stream->setHandleMapping(resources->unwrapMapping());
449 VkPhysicalDevice local_physicalDevice;
450 VkFormat local_format;
451 VkImageType local_type;
452 VkImageTiling local_tiling;
453 VkImageUsageFlags local_usage;
454 VkImageCreateFlags local_flags;
455 local_physicalDevice = physicalDevice;
456 local_format = format;
457 local_type = type;
458 local_tiling = tiling;
459 local_usage = usage;
460 local_flags = flags;
461 countingStream->rewind();
462 {
463 uint64_t cgen_var_24;
464 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_24, 1);
465 countingStream->write((uint64_t*)&cgen_var_24, 1 * 8);
466 countingStream->write((VkFormat*)&local_format, sizeof(VkFormat));
467 countingStream->write((VkImageType*)&local_type, sizeof(VkImageType));
468 countingStream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling));
469 countingStream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags));
470 countingStream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags));
471 marshal_VkImageFormatProperties(countingStream, (VkImageFormatProperties*)(pImageFormatProperties));
472 }
473 uint32_t packetSize_vkGetPhysicalDeviceImageFormatProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
474 countingStream->rewind();
475 uint32_t opcode_vkGetPhysicalDeviceImageFormatProperties = OP_vkGetPhysicalDeviceImageFormatProperties;
476 stream->write(&opcode_vkGetPhysicalDeviceImageFormatProperties, sizeof(uint32_t));
477 stream->write(&packetSize_vkGetPhysicalDeviceImageFormatProperties, sizeof(uint32_t));
478 uint64_t cgen_var_25;
479 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_25, 1);
480 stream->write((uint64_t*)&cgen_var_25, 1 * 8);
481 stream->write((VkFormat*)&local_format, sizeof(VkFormat));
482 stream->write((VkImageType*)&local_type, sizeof(VkImageType));
483 stream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling));
484 stream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags));
485 stream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags));
486 marshal_VkImageFormatProperties(stream, (VkImageFormatProperties*)(pImageFormatProperties));
487 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties readParams");
488 unmarshal_VkImageFormatProperties(stream, (VkImageFormatProperties*)(pImageFormatProperties));
489 if (pImageFormatProperties)
490 {
491 transform_fromhost_VkImageFormatProperties(mImpl->resources(), (VkImageFormatProperties*)(pImageFormatProperties));
492 }
493 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties returnUnmarshal");
494 VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
495 stream->read(&vkGetPhysicalDeviceImageFormatProperties_VkResult_return, sizeof(VkResult));
496 countingStream->clearPool();
497 stream->clearPool();
498 pool->freeAll();
499 mImpl->log("finish vkGetPhysicalDeviceImageFormatProperties");;
500 return vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
501 }
502
vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties)503 void VkEncoder::vkGetPhysicalDeviceProperties(
504 VkPhysicalDevice physicalDevice,
505 VkPhysicalDeviceProperties* pProperties)
506 {
507 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties encode");
508 mImpl->log("start vkGetPhysicalDeviceProperties");
509 auto stream = mImpl->stream();
510 auto countingStream = mImpl->countingStream();
511 auto resources = mImpl->resources();
512 auto pool = mImpl->pool();
513 stream->setHandleMapping(resources->unwrapMapping());
514 VkPhysicalDevice local_physicalDevice;
515 local_physicalDevice = physicalDevice;
516 countingStream->rewind();
517 {
518 uint64_t cgen_var_26;
519 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_26, 1);
520 countingStream->write((uint64_t*)&cgen_var_26, 1 * 8);
521 marshal_VkPhysicalDeviceProperties(countingStream, (VkPhysicalDeviceProperties*)(pProperties));
522 }
523 uint32_t packetSize_vkGetPhysicalDeviceProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
524 countingStream->rewind();
525 uint32_t opcode_vkGetPhysicalDeviceProperties = OP_vkGetPhysicalDeviceProperties;
526 stream->write(&opcode_vkGetPhysicalDeviceProperties, sizeof(uint32_t));
527 stream->write(&packetSize_vkGetPhysicalDeviceProperties, sizeof(uint32_t));
528 uint64_t cgen_var_27;
529 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_27, 1);
530 stream->write((uint64_t*)&cgen_var_27, 1 * 8);
531 marshal_VkPhysicalDeviceProperties(stream, (VkPhysicalDeviceProperties*)(pProperties));
532 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties readParams");
533 unmarshal_VkPhysicalDeviceProperties(stream, (VkPhysicalDeviceProperties*)(pProperties));
534 if (pProperties)
535 {
536 transform_fromhost_VkPhysicalDeviceProperties(mImpl->resources(), (VkPhysicalDeviceProperties*)(pProperties));
537 }
538 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties returnUnmarshal");
539 mImpl->log("finish vkGetPhysicalDeviceProperties");;
540 }
541
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties)542 void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties(
543 VkPhysicalDevice physicalDevice,
544 uint32_t* pQueueFamilyPropertyCount,
545 VkQueueFamilyProperties* pQueueFamilyProperties)
546 {
547 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties encode");
548 mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties");
549 auto stream = mImpl->stream();
550 auto countingStream = mImpl->countingStream();
551 auto resources = mImpl->resources();
552 auto pool = mImpl->pool();
553 stream->setHandleMapping(resources->unwrapMapping());
554 VkPhysicalDevice local_physicalDevice;
555 local_physicalDevice = physicalDevice;
556 countingStream->rewind();
557 {
558 uint64_t cgen_var_28;
559 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_28, 1);
560 countingStream->write((uint64_t*)&cgen_var_28, 1 * 8);
561 // WARNING PTR CHECK
562 uint64_t cgen_var_29 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
563 countingStream->putBe64(cgen_var_29);
564 if (pQueueFamilyPropertyCount)
565 {
566 countingStream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t));
567 }
568 // WARNING PTR CHECK
569 uint64_t cgen_var_30 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
570 countingStream->putBe64(cgen_var_30);
571 if (pQueueFamilyProperties)
572 {
573 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
574 {
575 marshal_VkQueueFamilyProperties(countingStream, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
576 }
577 }
578 }
579 uint32_t packetSize_vkGetPhysicalDeviceQueueFamilyProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
580 countingStream->rewind();
581 uint32_t opcode_vkGetPhysicalDeviceQueueFamilyProperties = OP_vkGetPhysicalDeviceQueueFamilyProperties;
582 stream->write(&opcode_vkGetPhysicalDeviceQueueFamilyProperties, sizeof(uint32_t));
583 stream->write(&packetSize_vkGetPhysicalDeviceQueueFamilyProperties, sizeof(uint32_t));
584 uint64_t cgen_var_31;
585 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_31, 1);
586 stream->write((uint64_t*)&cgen_var_31, 1 * 8);
587 // WARNING PTR CHECK
588 uint64_t cgen_var_32 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
589 stream->putBe64(cgen_var_32);
590 if (pQueueFamilyPropertyCount)
591 {
592 stream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t));
593 }
594 // WARNING PTR CHECK
595 uint64_t cgen_var_33 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
596 stream->putBe64(cgen_var_33);
597 if (pQueueFamilyProperties)
598 {
599 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
600 {
601 marshal_VkQueueFamilyProperties(stream, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
602 }
603 }
604 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties readParams");
605 // WARNING PTR CHECK
606 uint32_t* check_pQueueFamilyPropertyCount;
607 check_pQueueFamilyPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
608 if (pQueueFamilyPropertyCount)
609 {
610 if (!(check_pQueueFamilyPropertyCount))
611 {
612 fprintf(stderr, "fatal: pQueueFamilyPropertyCount inconsistent between guest and host\n");
613 }
614 stream->read((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t));
615 }
616 // WARNING PTR CHECK
617 VkQueueFamilyProperties* check_pQueueFamilyProperties;
618 check_pQueueFamilyProperties = (VkQueueFamilyProperties*)(uintptr_t)stream->getBe64();
619 if (pQueueFamilyProperties)
620 {
621 if (!(check_pQueueFamilyProperties))
622 {
623 fprintf(stderr, "fatal: pQueueFamilyProperties inconsistent between guest and host\n");
624 }
625 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
626 {
627 unmarshal_VkQueueFamilyProperties(stream, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
628 }
629 }
630 if (pQueueFamilyProperties)
631 {
632 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
633 {
634 transform_fromhost_VkQueueFamilyProperties(mImpl->resources(), (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
635 }
636 }
637 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties returnUnmarshal");
638 mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties");;
639 }
640
vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties)641 void VkEncoder::vkGetPhysicalDeviceMemoryProperties(
642 VkPhysicalDevice physicalDevice,
643 VkPhysicalDeviceMemoryProperties* pMemoryProperties)
644 {
645 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties encode");
646 mImpl->log("start vkGetPhysicalDeviceMemoryProperties");
647 auto stream = mImpl->stream();
648 auto countingStream = mImpl->countingStream();
649 auto resources = mImpl->resources();
650 auto pool = mImpl->pool();
651 stream->setHandleMapping(resources->unwrapMapping());
652 VkPhysicalDevice local_physicalDevice;
653 local_physicalDevice = physicalDevice;
654 countingStream->rewind();
655 {
656 uint64_t cgen_var_36;
657 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_36, 1);
658 countingStream->write((uint64_t*)&cgen_var_36, 1 * 8);
659 marshal_VkPhysicalDeviceMemoryProperties(countingStream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
660 }
661 uint32_t packetSize_vkGetPhysicalDeviceMemoryProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
662 countingStream->rewind();
663 uint32_t opcode_vkGetPhysicalDeviceMemoryProperties = OP_vkGetPhysicalDeviceMemoryProperties;
664 stream->write(&opcode_vkGetPhysicalDeviceMemoryProperties, sizeof(uint32_t));
665 stream->write(&packetSize_vkGetPhysicalDeviceMemoryProperties, sizeof(uint32_t));
666 uint64_t cgen_var_37;
667 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_37, 1);
668 stream->write((uint64_t*)&cgen_var_37, 1 * 8);
669 marshal_VkPhysicalDeviceMemoryProperties(stream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
670 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties readParams");
671 unmarshal_VkPhysicalDeviceMemoryProperties(stream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
672 if (pMemoryProperties)
673 {
674 transform_fromhost_VkPhysicalDeviceMemoryProperties(mImpl->resources(), (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
675 }
676 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties returnUnmarshal");
677 mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties(this, physicalDevice, pMemoryProperties);
678 mImpl->log("finish vkGetPhysicalDeviceMemoryProperties");;
679 }
680
vkGetInstanceProcAddr(VkInstance instance,const char * pName)681 PFN_vkVoidFunction VkEncoder::vkGetInstanceProcAddr(
682 VkInstance instance,
683 const char* pName)
684 {
685 AEMU_SCOPED_TRACE("vkGetInstanceProcAddr encode");
686 mImpl->log("start vkGetInstanceProcAddr");
687 auto stream = mImpl->stream();
688 auto countingStream = mImpl->countingStream();
689 auto resources = mImpl->resources();
690 auto pool = mImpl->pool();
691 stream->setHandleMapping(resources->unwrapMapping());
692 VkInstance local_instance;
693 char* local_pName;
694 local_instance = instance;
695 local_pName = nullptr;
696 if (pName)
697 {
698 local_pName = pool->strDup(pName);
699 }
700 countingStream->rewind();
701 {
702 uint64_t cgen_var_38;
703 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_38, 1);
704 countingStream->write((uint64_t*)&cgen_var_38, 1 * 8);
705 countingStream->putString(local_pName);
706 }
707 uint32_t packetSize_vkGetInstanceProcAddr = 4 + 4 + (uint32_t)countingStream->bytesWritten();
708 countingStream->rewind();
709 uint32_t opcode_vkGetInstanceProcAddr = OP_vkGetInstanceProcAddr;
710 stream->write(&opcode_vkGetInstanceProcAddr, sizeof(uint32_t));
711 stream->write(&packetSize_vkGetInstanceProcAddr, sizeof(uint32_t));
712 uint64_t cgen_var_39;
713 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_39, 1);
714 stream->write((uint64_t*)&cgen_var_39, 1 * 8);
715 stream->putString(local_pName);
716 AEMU_SCOPED_TRACE("vkGetInstanceProcAddr readParams");
717 AEMU_SCOPED_TRACE("vkGetInstanceProcAddr returnUnmarshal");
718 PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
719 stream->read(&vkGetInstanceProcAddr_PFN_vkVoidFunction_return, sizeof(PFN_vkVoidFunction));
720 countingStream->clearPool();
721 stream->clearPool();
722 pool->freeAll();
723 mImpl->log("finish vkGetInstanceProcAddr");;
724 return vkGetInstanceProcAddr_PFN_vkVoidFunction_return;
725 }
726
vkGetDeviceProcAddr(VkDevice device,const char * pName)727 PFN_vkVoidFunction VkEncoder::vkGetDeviceProcAddr(
728 VkDevice device,
729 const char* pName)
730 {
731 AEMU_SCOPED_TRACE("vkGetDeviceProcAddr encode");
732 mImpl->log("start vkGetDeviceProcAddr");
733 auto stream = mImpl->stream();
734 auto countingStream = mImpl->countingStream();
735 auto resources = mImpl->resources();
736 auto pool = mImpl->pool();
737 stream->setHandleMapping(resources->unwrapMapping());
738 VkDevice local_device;
739 char* local_pName;
740 local_device = device;
741 local_pName = nullptr;
742 if (pName)
743 {
744 local_pName = pool->strDup(pName);
745 }
746 countingStream->rewind();
747 {
748 uint64_t cgen_var_40;
749 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_40, 1);
750 countingStream->write((uint64_t*)&cgen_var_40, 1 * 8);
751 countingStream->putString(local_pName);
752 }
753 uint32_t packetSize_vkGetDeviceProcAddr = 4 + 4 + (uint32_t)countingStream->bytesWritten();
754 countingStream->rewind();
755 uint32_t opcode_vkGetDeviceProcAddr = OP_vkGetDeviceProcAddr;
756 stream->write(&opcode_vkGetDeviceProcAddr, sizeof(uint32_t));
757 stream->write(&packetSize_vkGetDeviceProcAddr, sizeof(uint32_t));
758 uint64_t cgen_var_41;
759 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_41, 1);
760 stream->write((uint64_t*)&cgen_var_41, 1 * 8);
761 stream->putString(local_pName);
762 AEMU_SCOPED_TRACE("vkGetDeviceProcAddr readParams");
763 AEMU_SCOPED_TRACE("vkGetDeviceProcAddr returnUnmarshal");
764 PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
765 stream->read(&vkGetDeviceProcAddr_PFN_vkVoidFunction_return, sizeof(PFN_vkVoidFunction));
766 countingStream->clearPool();
767 stream->clearPool();
768 pool->freeAll();
769 mImpl->log("finish vkGetDeviceProcAddr");;
770 return vkGetDeviceProcAddr_PFN_vkVoidFunction_return;
771 }
772
vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice)773 VkResult VkEncoder::vkCreateDevice(
774 VkPhysicalDevice physicalDevice,
775 const VkDeviceCreateInfo* pCreateInfo,
776 const VkAllocationCallbacks* pAllocator,
777 VkDevice* pDevice)
778 {
779 AEMU_SCOPED_TRACE("vkCreateDevice encode");
780 mImpl->log("start vkCreateDevice");
781 auto stream = mImpl->stream();
782 auto countingStream = mImpl->countingStream();
783 auto resources = mImpl->resources();
784 auto pool = mImpl->pool();
785 stream->setHandleMapping(resources->unwrapMapping());
786 VkPhysicalDevice local_physicalDevice;
787 VkDeviceCreateInfo* local_pCreateInfo;
788 VkAllocationCallbacks* local_pAllocator;
789 local_physicalDevice = physicalDevice;
790 local_pCreateInfo = nullptr;
791 if (pCreateInfo)
792 {
793 local_pCreateInfo = (VkDeviceCreateInfo*)pool->alloc(sizeof(const VkDeviceCreateInfo));
794 deepcopy_VkDeviceCreateInfo(pool, pCreateInfo, (VkDeviceCreateInfo*)(local_pCreateInfo));
795 }
796 local_pAllocator = nullptr;
797 if (pAllocator)
798 {
799 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
800 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
801 }
802 local_pAllocator = nullptr;
803 if (local_pCreateInfo)
804 {
805 transform_tohost_VkDeviceCreateInfo(mImpl->resources(), (VkDeviceCreateInfo*)(local_pCreateInfo));
806 }
807 if (local_pAllocator)
808 {
809 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
810 }
811 countingStream->rewind();
812 {
813 uint64_t cgen_var_42;
814 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_42, 1);
815 countingStream->write((uint64_t*)&cgen_var_42, 1 * 8);
816 marshal_VkDeviceCreateInfo(countingStream, (VkDeviceCreateInfo*)(local_pCreateInfo));
817 // WARNING PTR CHECK
818 uint64_t cgen_var_43 = (uint64_t)(uintptr_t)local_pAllocator;
819 countingStream->putBe64(cgen_var_43);
820 if (local_pAllocator)
821 {
822 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
823 }
824 uint64_t cgen_var_44;
825 countingStream->handleMapping()->mapHandles_VkDevice_u64(pDevice, &cgen_var_44, 1);
826 countingStream->write((uint64_t*)&cgen_var_44, 8);
827 }
828 uint32_t packetSize_vkCreateDevice = 4 + 4 + (uint32_t)countingStream->bytesWritten();
829 countingStream->rewind();
830 uint32_t opcode_vkCreateDevice = OP_vkCreateDevice;
831 stream->write(&opcode_vkCreateDevice, sizeof(uint32_t));
832 stream->write(&packetSize_vkCreateDevice, sizeof(uint32_t));
833 uint64_t cgen_var_45;
834 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_45, 1);
835 stream->write((uint64_t*)&cgen_var_45, 1 * 8);
836 marshal_VkDeviceCreateInfo(stream, (VkDeviceCreateInfo*)(local_pCreateInfo));
837 // WARNING PTR CHECK
838 uint64_t cgen_var_46 = (uint64_t)(uintptr_t)local_pAllocator;
839 stream->putBe64(cgen_var_46);
840 if (local_pAllocator)
841 {
842 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
843 }
844 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
845 uint64_t cgen_var_47;
846 stream->handleMapping()->mapHandles_VkDevice_u64(pDevice, &cgen_var_47, 1);
847 stream->write((uint64_t*)&cgen_var_47, 8);
848 stream->setHandleMapping(resources->unwrapMapping());
849 AEMU_SCOPED_TRACE("vkCreateDevice readParams");
850 stream->setHandleMapping(resources->createMapping());
851 uint64_t cgen_var_48;
852 stream->read((uint64_t*)&cgen_var_48, 8);
853 stream->handleMapping()->mapHandles_u64_VkDevice(&cgen_var_48, (VkDevice*)pDevice, 1);
854 stream->unsetHandleMapping();
855 AEMU_SCOPED_TRACE("vkCreateDevice returnUnmarshal");
856 VkResult vkCreateDevice_VkResult_return = (VkResult)0;
857 stream->read(&vkCreateDevice_VkResult_return, sizeof(VkResult));
858 countingStream->clearPool();
859 stream->clearPool();
860 pool->freeAll();
861 mImpl->resources()->on_vkCreateDevice(this, vkCreateDevice_VkResult_return, physicalDevice, pCreateInfo, pAllocator, pDevice);
862 mImpl->log("finish vkCreateDevice");;
863 return vkCreateDevice_VkResult_return;
864 }
865
vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator)866 void VkEncoder::vkDestroyDevice(
867 VkDevice device,
868 const VkAllocationCallbacks* pAllocator)
869 {
870 AEMU_SCOPED_TRACE("vkDestroyDevice encode");
871 mImpl->log("start vkDestroyDevice");
872 mImpl->resources()->on_vkDestroyDevice_pre(this, device, pAllocator);
873 auto stream = mImpl->stream();
874 auto countingStream = mImpl->countingStream();
875 auto resources = mImpl->resources();
876 auto pool = mImpl->pool();
877 stream->setHandleMapping(resources->unwrapMapping());
878 VkDevice local_device;
879 VkAllocationCallbacks* local_pAllocator;
880 local_device = device;
881 local_pAllocator = nullptr;
882 if (pAllocator)
883 {
884 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
885 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
886 }
887 local_pAllocator = nullptr;
888 if (local_pAllocator)
889 {
890 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
891 }
892 countingStream->rewind();
893 {
894 uint64_t cgen_var_49;
895 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_49, 1);
896 countingStream->write((uint64_t*)&cgen_var_49, 1 * 8);
897 // WARNING PTR CHECK
898 uint64_t cgen_var_50 = (uint64_t)(uintptr_t)local_pAllocator;
899 countingStream->putBe64(cgen_var_50);
900 if (local_pAllocator)
901 {
902 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
903 }
904 }
905 uint32_t packetSize_vkDestroyDevice = 4 + 4 + (uint32_t)countingStream->bytesWritten();
906 countingStream->rewind();
907 uint32_t opcode_vkDestroyDevice = OP_vkDestroyDevice;
908 stream->write(&opcode_vkDestroyDevice, sizeof(uint32_t));
909 stream->write(&packetSize_vkDestroyDevice, sizeof(uint32_t));
910 uint64_t cgen_var_51;
911 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_51, 1);
912 stream->write((uint64_t*)&cgen_var_51, 1 * 8);
913 // WARNING PTR CHECK
914 uint64_t cgen_var_52 = (uint64_t)(uintptr_t)local_pAllocator;
915 stream->putBe64(cgen_var_52);
916 if (local_pAllocator)
917 {
918 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
919 }
920 AEMU_SCOPED_TRACE("vkDestroyDevice readParams");
921 AEMU_SCOPED_TRACE("vkDestroyDevice returnUnmarshal");
922 resources->destroyMapping()->mapHandles_VkDevice((VkDevice*)&device);
923 stream->flush();
924 mImpl->log("finish vkDestroyDevice");;
925 }
926
vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)927 VkResult VkEncoder::vkEnumerateInstanceExtensionProperties(
928 const char* pLayerName,
929 uint32_t* pPropertyCount,
930 VkExtensionProperties* pProperties)
931 {
932 AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties encode");
933 mImpl->log("start vkEnumerateInstanceExtensionProperties");
934 auto stream = mImpl->stream();
935 auto countingStream = mImpl->countingStream();
936 auto resources = mImpl->resources();
937 auto pool = mImpl->pool();
938 stream->setHandleMapping(resources->unwrapMapping());
939 char* local_pLayerName;
940 local_pLayerName = nullptr;
941 if (pLayerName)
942 {
943 local_pLayerName = pool->strDup(pLayerName);
944 }
945 countingStream->rewind();
946 {
947 countingStream->putString(local_pLayerName);
948 // WARNING PTR CHECK
949 uint64_t cgen_var_53 = (uint64_t)(uintptr_t)pPropertyCount;
950 countingStream->putBe64(cgen_var_53);
951 if (pPropertyCount)
952 {
953 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
954 }
955 // WARNING PTR CHECK
956 uint64_t cgen_var_54 = (uint64_t)(uintptr_t)pProperties;
957 countingStream->putBe64(cgen_var_54);
958 if (pProperties)
959 {
960 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
961 {
962 marshal_VkExtensionProperties(countingStream, (VkExtensionProperties*)(pProperties + i));
963 }
964 }
965 }
966 uint32_t packetSize_vkEnumerateInstanceExtensionProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
967 countingStream->rewind();
968 uint32_t opcode_vkEnumerateInstanceExtensionProperties = OP_vkEnumerateInstanceExtensionProperties;
969 stream->write(&opcode_vkEnumerateInstanceExtensionProperties, sizeof(uint32_t));
970 stream->write(&packetSize_vkEnumerateInstanceExtensionProperties, sizeof(uint32_t));
971 stream->putString(local_pLayerName);
972 // WARNING PTR CHECK
973 uint64_t cgen_var_55 = (uint64_t)(uintptr_t)pPropertyCount;
974 stream->putBe64(cgen_var_55);
975 if (pPropertyCount)
976 {
977 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
978 }
979 // WARNING PTR CHECK
980 uint64_t cgen_var_56 = (uint64_t)(uintptr_t)pProperties;
981 stream->putBe64(cgen_var_56);
982 if (pProperties)
983 {
984 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
985 {
986 marshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
987 }
988 }
989 AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties readParams");
990 // WARNING PTR CHECK
991 uint32_t* check_pPropertyCount;
992 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
993 if (pPropertyCount)
994 {
995 if (!(check_pPropertyCount))
996 {
997 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
998 }
999 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
1000 }
1001 // WARNING PTR CHECK
1002 VkExtensionProperties* check_pProperties;
1003 check_pProperties = (VkExtensionProperties*)(uintptr_t)stream->getBe64();
1004 if (pProperties)
1005 {
1006 if (!(check_pProperties))
1007 {
1008 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
1009 }
1010 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1011 {
1012 unmarshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
1013 }
1014 }
1015 if (pProperties)
1016 {
1017 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1018 {
1019 transform_fromhost_VkExtensionProperties(mImpl->resources(), (VkExtensionProperties*)(pProperties + i));
1020 }
1021 }
1022 AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties returnUnmarshal");
1023 VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
1024 stream->read(&vkEnumerateInstanceExtensionProperties_VkResult_return, sizeof(VkResult));
1025 countingStream->clearPool();
1026 stream->clearPool();
1027 pool->freeAll();
1028 mImpl->log("finish vkEnumerateInstanceExtensionProperties");;
1029 return vkEnumerateInstanceExtensionProperties_VkResult_return;
1030 }
1031
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)1032 VkResult VkEncoder::vkEnumerateDeviceExtensionProperties(
1033 VkPhysicalDevice physicalDevice,
1034 const char* pLayerName,
1035 uint32_t* pPropertyCount,
1036 VkExtensionProperties* pProperties)
1037 {
1038 AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties encode");
1039 mImpl->log("start vkEnumerateDeviceExtensionProperties");
1040 auto stream = mImpl->stream();
1041 auto countingStream = mImpl->countingStream();
1042 auto resources = mImpl->resources();
1043 auto pool = mImpl->pool();
1044 stream->setHandleMapping(resources->unwrapMapping());
1045 VkPhysicalDevice local_physicalDevice;
1046 char* local_pLayerName;
1047 local_physicalDevice = physicalDevice;
1048 local_pLayerName = nullptr;
1049 if (pLayerName)
1050 {
1051 local_pLayerName = pool->strDup(pLayerName);
1052 }
1053 countingStream->rewind();
1054 {
1055 uint64_t cgen_var_59;
1056 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_59, 1);
1057 countingStream->write((uint64_t*)&cgen_var_59, 1 * 8);
1058 countingStream->putString(local_pLayerName);
1059 // WARNING PTR CHECK
1060 uint64_t cgen_var_60 = (uint64_t)(uintptr_t)pPropertyCount;
1061 countingStream->putBe64(cgen_var_60);
1062 if (pPropertyCount)
1063 {
1064 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
1065 }
1066 // WARNING PTR CHECK
1067 uint64_t cgen_var_61 = (uint64_t)(uintptr_t)pProperties;
1068 countingStream->putBe64(cgen_var_61);
1069 if (pProperties)
1070 {
1071 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1072 {
1073 marshal_VkExtensionProperties(countingStream, (VkExtensionProperties*)(pProperties + i));
1074 }
1075 }
1076 }
1077 uint32_t packetSize_vkEnumerateDeviceExtensionProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1078 countingStream->rewind();
1079 uint32_t opcode_vkEnumerateDeviceExtensionProperties = OP_vkEnumerateDeviceExtensionProperties;
1080 stream->write(&opcode_vkEnumerateDeviceExtensionProperties, sizeof(uint32_t));
1081 stream->write(&packetSize_vkEnumerateDeviceExtensionProperties, sizeof(uint32_t));
1082 uint64_t cgen_var_62;
1083 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_62, 1);
1084 stream->write((uint64_t*)&cgen_var_62, 1 * 8);
1085 stream->putString(local_pLayerName);
1086 // WARNING PTR CHECK
1087 uint64_t cgen_var_63 = (uint64_t)(uintptr_t)pPropertyCount;
1088 stream->putBe64(cgen_var_63);
1089 if (pPropertyCount)
1090 {
1091 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
1092 }
1093 // WARNING PTR CHECK
1094 uint64_t cgen_var_64 = (uint64_t)(uintptr_t)pProperties;
1095 stream->putBe64(cgen_var_64);
1096 if (pProperties)
1097 {
1098 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1099 {
1100 marshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
1101 }
1102 }
1103 AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties readParams");
1104 // WARNING PTR CHECK
1105 uint32_t* check_pPropertyCount;
1106 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
1107 if (pPropertyCount)
1108 {
1109 if (!(check_pPropertyCount))
1110 {
1111 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
1112 }
1113 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
1114 }
1115 // WARNING PTR CHECK
1116 VkExtensionProperties* check_pProperties;
1117 check_pProperties = (VkExtensionProperties*)(uintptr_t)stream->getBe64();
1118 if (pProperties)
1119 {
1120 if (!(check_pProperties))
1121 {
1122 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
1123 }
1124 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1125 {
1126 unmarshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
1127 }
1128 }
1129 if (pProperties)
1130 {
1131 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1132 {
1133 transform_fromhost_VkExtensionProperties(mImpl->resources(), (VkExtensionProperties*)(pProperties + i));
1134 }
1135 }
1136 AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties returnUnmarshal");
1137 VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
1138 stream->read(&vkEnumerateDeviceExtensionProperties_VkResult_return, sizeof(VkResult));
1139 countingStream->clearPool();
1140 stream->clearPool();
1141 pool->freeAll();
1142 mImpl->log("finish vkEnumerateDeviceExtensionProperties");;
1143 return vkEnumerateDeviceExtensionProperties_VkResult_return;
1144 }
1145
vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties)1146 VkResult VkEncoder::vkEnumerateInstanceLayerProperties(
1147 uint32_t* pPropertyCount,
1148 VkLayerProperties* pProperties)
1149 {
1150 AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties encode");
1151 mImpl->log("start vkEnumerateInstanceLayerProperties");
1152 auto stream = mImpl->stream();
1153 auto countingStream = mImpl->countingStream();
1154 auto resources = mImpl->resources();
1155 auto pool = mImpl->pool();
1156 stream->setHandleMapping(resources->unwrapMapping());
1157 countingStream->rewind();
1158 {
1159 // WARNING PTR CHECK
1160 uint64_t cgen_var_67 = (uint64_t)(uintptr_t)pPropertyCount;
1161 countingStream->putBe64(cgen_var_67);
1162 if (pPropertyCount)
1163 {
1164 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
1165 }
1166 // WARNING PTR CHECK
1167 uint64_t cgen_var_68 = (uint64_t)(uintptr_t)pProperties;
1168 countingStream->putBe64(cgen_var_68);
1169 if (pProperties)
1170 {
1171 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1172 {
1173 marshal_VkLayerProperties(countingStream, (VkLayerProperties*)(pProperties + i));
1174 }
1175 }
1176 }
1177 uint32_t packetSize_vkEnumerateInstanceLayerProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1178 countingStream->rewind();
1179 uint32_t opcode_vkEnumerateInstanceLayerProperties = OP_vkEnumerateInstanceLayerProperties;
1180 stream->write(&opcode_vkEnumerateInstanceLayerProperties, sizeof(uint32_t));
1181 stream->write(&packetSize_vkEnumerateInstanceLayerProperties, sizeof(uint32_t));
1182 // WARNING PTR CHECK
1183 uint64_t cgen_var_69 = (uint64_t)(uintptr_t)pPropertyCount;
1184 stream->putBe64(cgen_var_69);
1185 if (pPropertyCount)
1186 {
1187 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
1188 }
1189 // WARNING PTR CHECK
1190 uint64_t cgen_var_70 = (uint64_t)(uintptr_t)pProperties;
1191 stream->putBe64(cgen_var_70);
1192 if (pProperties)
1193 {
1194 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1195 {
1196 marshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
1197 }
1198 }
1199 AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties readParams");
1200 // WARNING PTR CHECK
1201 uint32_t* check_pPropertyCount;
1202 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
1203 if (pPropertyCount)
1204 {
1205 if (!(check_pPropertyCount))
1206 {
1207 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
1208 }
1209 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
1210 }
1211 // WARNING PTR CHECK
1212 VkLayerProperties* check_pProperties;
1213 check_pProperties = (VkLayerProperties*)(uintptr_t)stream->getBe64();
1214 if (pProperties)
1215 {
1216 if (!(check_pProperties))
1217 {
1218 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
1219 }
1220 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1221 {
1222 unmarshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
1223 }
1224 }
1225 if (pProperties)
1226 {
1227 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1228 {
1229 transform_fromhost_VkLayerProperties(mImpl->resources(), (VkLayerProperties*)(pProperties + i));
1230 }
1231 }
1232 AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties returnUnmarshal");
1233 VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
1234 stream->read(&vkEnumerateInstanceLayerProperties_VkResult_return, sizeof(VkResult));
1235 countingStream->clearPool();
1236 stream->clearPool();
1237 pool->freeAll();
1238 mImpl->log("finish vkEnumerateInstanceLayerProperties");;
1239 return vkEnumerateInstanceLayerProperties_VkResult_return;
1240 }
1241
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties)1242 VkResult VkEncoder::vkEnumerateDeviceLayerProperties(
1243 VkPhysicalDevice physicalDevice,
1244 uint32_t* pPropertyCount,
1245 VkLayerProperties* pProperties)
1246 {
1247 AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties encode");
1248 mImpl->log("start vkEnumerateDeviceLayerProperties");
1249 auto stream = mImpl->stream();
1250 auto countingStream = mImpl->countingStream();
1251 auto resources = mImpl->resources();
1252 auto pool = mImpl->pool();
1253 stream->setHandleMapping(resources->unwrapMapping());
1254 VkPhysicalDevice local_physicalDevice;
1255 local_physicalDevice = physicalDevice;
1256 countingStream->rewind();
1257 {
1258 uint64_t cgen_var_73;
1259 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_73, 1);
1260 countingStream->write((uint64_t*)&cgen_var_73, 1 * 8);
1261 // WARNING PTR CHECK
1262 uint64_t cgen_var_74 = (uint64_t)(uintptr_t)pPropertyCount;
1263 countingStream->putBe64(cgen_var_74);
1264 if (pPropertyCount)
1265 {
1266 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
1267 }
1268 // WARNING PTR CHECK
1269 uint64_t cgen_var_75 = (uint64_t)(uintptr_t)pProperties;
1270 countingStream->putBe64(cgen_var_75);
1271 if (pProperties)
1272 {
1273 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1274 {
1275 marshal_VkLayerProperties(countingStream, (VkLayerProperties*)(pProperties + i));
1276 }
1277 }
1278 }
1279 uint32_t packetSize_vkEnumerateDeviceLayerProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1280 countingStream->rewind();
1281 uint32_t opcode_vkEnumerateDeviceLayerProperties = OP_vkEnumerateDeviceLayerProperties;
1282 stream->write(&opcode_vkEnumerateDeviceLayerProperties, sizeof(uint32_t));
1283 stream->write(&packetSize_vkEnumerateDeviceLayerProperties, sizeof(uint32_t));
1284 uint64_t cgen_var_76;
1285 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_76, 1);
1286 stream->write((uint64_t*)&cgen_var_76, 1 * 8);
1287 // WARNING PTR CHECK
1288 uint64_t cgen_var_77 = (uint64_t)(uintptr_t)pPropertyCount;
1289 stream->putBe64(cgen_var_77);
1290 if (pPropertyCount)
1291 {
1292 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
1293 }
1294 // WARNING PTR CHECK
1295 uint64_t cgen_var_78 = (uint64_t)(uintptr_t)pProperties;
1296 stream->putBe64(cgen_var_78);
1297 if (pProperties)
1298 {
1299 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1300 {
1301 marshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
1302 }
1303 }
1304 AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties readParams");
1305 // WARNING PTR CHECK
1306 uint32_t* check_pPropertyCount;
1307 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
1308 if (pPropertyCount)
1309 {
1310 if (!(check_pPropertyCount))
1311 {
1312 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
1313 }
1314 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
1315 }
1316 // WARNING PTR CHECK
1317 VkLayerProperties* check_pProperties;
1318 check_pProperties = (VkLayerProperties*)(uintptr_t)stream->getBe64();
1319 if (pProperties)
1320 {
1321 if (!(check_pProperties))
1322 {
1323 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
1324 }
1325 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1326 {
1327 unmarshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
1328 }
1329 }
1330 if (pProperties)
1331 {
1332 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
1333 {
1334 transform_fromhost_VkLayerProperties(mImpl->resources(), (VkLayerProperties*)(pProperties + i));
1335 }
1336 }
1337 AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties returnUnmarshal");
1338 VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
1339 stream->read(&vkEnumerateDeviceLayerProperties_VkResult_return, sizeof(VkResult));
1340 countingStream->clearPool();
1341 stream->clearPool();
1342 pool->freeAll();
1343 mImpl->log("finish vkEnumerateDeviceLayerProperties");;
1344 return vkEnumerateDeviceLayerProperties_VkResult_return;
1345 }
1346
vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue)1347 void VkEncoder::vkGetDeviceQueue(
1348 VkDevice device,
1349 uint32_t queueFamilyIndex,
1350 uint32_t queueIndex,
1351 VkQueue* pQueue)
1352 {
1353 AEMU_SCOPED_TRACE("vkGetDeviceQueue encode");
1354 mImpl->log("start vkGetDeviceQueue");
1355 auto stream = mImpl->stream();
1356 auto countingStream = mImpl->countingStream();
1357 auto resources = mImpl->resources();
1358 auto pool = mImpl->pool();
1359 stream->setHandleMapping(resources->unwrapMapping());
1360 VkDevice local_device;
1361 uint32_t local_queueFamilyIndex;
1362 uint32_t local_queueIndex;
1363 local_device = device;
1364 local_queueFamilyIndex = queueFamilyIndex;
1365 local_queueIndex = queueIndex;
1366 countingStream->rewind();
1367 {
1368 uint64_t cgen_var_81;
1369 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_81, 1);
1370 countingStream->write((uint64_t*)&cgen_var_81, 1 * 8);
1371 countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
1372 countingStream->write((uint32_t*)&local_queueIndex, sizeof(uint32_t));
1373 uint64_t cgen_var_82;
1374 countingStream->handleMapping()->mapHandles_VkQueue_u64(pQueue, &cgen_var_82, 1);
1375 countingStream->write((uint64_t*)&cgen_var_82, 8);
1376 }
1377 uint32_t packetSize_vkGetDeviceQueue = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1378 countingStream->rewind();
1379 uint32_t opcode_vkGetDeviceQueue = OP_vkGetDeviceQueue;
1380 stream->write(&opcode_vkGetDeviceQueue, sizeof(uint32_t));
1381 stream->write(&packetSize_vkGetDeviceQueue, sizeof(uint32_t));
1382 uint64_t cgen_var_83;
1383 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_83, 1);
1384 stream->write((uint64_t*)&cgen_var_83, 1 * 8);
1385 stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
1386 stream->write((uint32_t*)&local_queueIndex, sizeof(uint32_t));
1387 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
1388 uint64_t cgen_var_84;
1389 stream->handleMapping()->mapHandles_VkQueue_u64(pQueue, &cgen_var_84, 1);
1390 stream->write((uint64_t*)&cgen_var_84, 8);
1391 stream->setHandleMapping(resources->unwrapMapping());
1392 AEMU_SCOPED_TRACE("vkGetDeviceQueue readParams");
1393 stream->setHandleMapping(resources->createMapping());
1394 uint64_t cgen_var_85;
1395 stream->read((uint64_t*)&cgen_var_85, 8);
1396 stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_85, (VkQueue*)pQueue, 1);
1397 stream->unsetHandleMapping();
1398 AEMU_SCOPED_TRACE("vkGetDeviceQueue returnUnmarshal");
1399 mImpl->log("finish vkGetDeviceQueue");;
1400 }
1401
vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)1402 VkResult VkEncoder::vkQueueSubmit(
1403 VkQueue queue,
1404 uint32_t submitCount,
1405 const VkSubmitInfo* pSubmits,
1406 VkFence fence)
1407 {
1408 AEMU_SCOPED_TRACE("vkQueueSubmit encode");
1409 mImpl->log("start vkQueueSubmit");
1410 auto stream = mImpl->stream();
1411 auto countingStream = mImpl->countingStream();
1412 auto resources = mImpl->resources();
1413 auto pool = mImpl->pool();
1414 stream->setHandleMapping(resources->unwrapMapping());
1415 VkQueue local_queue;
1416 uint32_t local_submitCount;
1417 VkSubmitInfo* local_pSubmits;
1418 VkFence local_fence;
1419 local_queue = queue;
1420 local_submitCount = submitCount;
1421 local_pSubmits = nullptr;
1422 if (pSubmits)
1423 {
1424 local_pSubmits = (VkSubmitInfo*)pool->alloc(((submitCount)) * sizeof(const VkSubmitInfo));
1425 for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i)
1426 {
1427 deepcopy_VkSubmitInfo(pool, pSubmits + i, (VkSubmitInfo*)(local_pSubmits + i));
1428 }
1429 }
1430 local_fence = fence;
1431 if (local_pSubmits)
1432 {
1433 for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i)
1434 {
1435 transform_tohost_VkSubmitInfo(mImpl->resources(), (VkSubmitInfo*)(local_pSubmits + i));
1436 }
1437 }
1438 countingStream->rewind();
1439 {
1440 uint64_t cgen_var_86;
1441 countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_86, 1);
1442 countingStream->write((uint64_t*)&cgen_var_86, 1 * 8);
1443 countingStream->write((uint32_t*)&local_submitCount, sizeof(uint32_t));
1444 for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i)
1445 {
1446 marshal_VkSubmitInfo(countingStream, (VkSubmitInfo*)(local_pSubmits + i));
1447 }
1448 uint64_t cgen_var_87;
1449 countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_87, 1);
1450 countingStream->write((uint64_t*)&cgen_var_87, 1 * 8);
1451 }
1452 uint32_t packetSize_vkQueueSubmit = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1453 countingStream->rewind();
1454 uint32_t opcode_vkQueueSubmit = OP_vkQueueSubmit;
1455 stream->write(&opcode_vkQueueSubmit, sizeof(uint32_t));
1456 stream->write(&packetSize_vkQueueSubmit, sizeof(uint32_t));
1457 uint64_t cgen_var_88;
1458 stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_88, 1);
1459 stream->write((uint64_t*)&cgen_var_88, 1 * 8);
1460 stream->write((uint32_t*)&local_submitCount, sizeof(uint32_t));
1461 for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i)
1462 {
1463 marshal_VkSubmitInfo(stream, (VkSubmitInfo*)(local_pSubmits + i));
1464 }
1465 uint64_t cgen_var_89;
1466 stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_89, 1);
1467 stream->write((uint64_t*)&cgen_var_89, 1 * 8);
1468 AEMU_SCOPED_TRACE("vkQueueSubmit readParams");
1469 AEMU_SCOPED_TRACE("vkQueueSubmit returnUnmarshal");
1470 VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
1471 stream->read(&vkQueueSubmit_VkResult_return, sizeof(VkResult));
1472 countingStream->clearPool();
1473 stream->clearPool();
1474 pool->freeAll();
1475 mImpl->log("finish vkQueueSubmit");;
1476 return vkQueueSubmit_VkResult_return;
1477 }
1478
vkQueueWaitIdle(VkQueue queue)1479 VkResult VkEncoder::vkQueueWaitIdle(
1480 VkQueue queue)
1481 {
1482 AEMU_SCOPED_TRACE("vkQueueWaitIdle encode");
1483 mImpl->log("start vkQueueWaitIdle");
1484 auto stream = mImpl->stream();
1485 auto countingStream = mImpl->countingStream();
1486 auto resources = mImpl->resources();
1487 auto pool = mImpl->pool();
1488 stream->setHandleMapping(resources->unwrapMapping());
1489 VkQueue local_queue;
1490 local_queue = queue;
1491 countingStream->rewind();
1492 {
1493 uint64_t cgen_var_90;
1494 countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_90, 1);
1495 countingStream->write((uint64_t*)&cgen_var_90, 1 * 8);
1496 }
1497 uint32_t packetSize_vkQueueWaitIdle = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1498 countingStream->rewind();
1499 uint32_t opcode_vkQueueWaitIdle = OP_vkQueueWaitIdle;
1500 stream->write(&opcode_vkQueueWaitIdle, sizeof(uint32_t));
1501 stream->write(&packetSize_vkQueueWaitIdle, sizeof(uint32_t));
1502 uint64_t cgen_var_91;
1503 stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_91, 1);
1504 stream->write((uint64_t*)&cgen_var_91, 1 * 8);
1505 AEMU_SCOPED_TRACE("vkQueueWaitIdle readParams");
1506 AEMU_SCOPED_TRACE("vkQueueWaitIdle returnUnmarshal");
1507 VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
1508 stream->read(&vkQueueWaitIdle_VkResult_return, sizeof(VkResult));
1509 countingStream->clearPool();
1510 stream->clearPool();
1511 pool->freeAll();
1512 mImpl->log("finish vkQueueWaitIdle");;
1513 return vkQueueWaitIdle_VkResult_return;
1514 }
1515
vkDeviceWaitIdle(VkDevice device)1516 VkResult VkEncoder::vkDeviceWaitIdle(
1517 VkDevice device)
1518 {
1519 AEMU_SCOPED_TRACE("vkDeviceWaitIdle encode");
1520 mImpl->log("start vkDeviceWaitIdle");
1521 auto stream = mImpl->stream();
1522 auto countingStream = mImpl->countingStream();
1523 auto resources = mImpl->resources();
1524 auto pool = mImpl->pool();
1525 stream->setHandleMapping(resources->unwrapMapping());
1526 VkDevice local_device;
1527 local_device = device;
1528 countingStream->rewind();
1529 {
1530 uint64_t cgen_var_92;
1531 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_92, 1);
1532 countingStream->write((uint64_t*)&cgen_var_92, 1 * 8);
1533 }
1534 uint32_t packetSize_vkDeviceWaitIdle = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1535 countingStream->rewind();
1536 uint32_t opcode_vkDeviceWaitIdle = OP_vkDeviceWaitIdle;
1537 stream->write(&opcode_vkDeviceWaitIdle, sizeof(uint32_t));
1538 stream->write(&packetSize_vkDeviceWaitIdle, sizeof(uint32_t));
1539 uint64_t cgen_var_93;
1540 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_93, 1);
1541 stream->write((uint64_t*)&cgen_var_93, 1 * 8);
1542 AEMU_SCOPED_TRACE("vkDeviceWaitIdle readParams");
1543 AEMU_SCOPED_TRACE("vkDeviceWaitIdle returnUnmarshal");
1544 VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
1545 stream->read(&vkDeviceWaitIdle_VkResult_return, sizeof(VkResult));
1546 countingStream->clearPool();
1547 stream->clearPool();
1548 pool->freeAll();
1549 mImpl->log("finish vkDeviceWaitIdle");;
1550 return vkDeviceWaitIdle_VkResult_return;
1551 }
1552
vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory)1553 VkResult VkEncoder::vkAllocateMemory(
1554 VkDevice device,
1555 const VkMemoryAllocateInfo* pAllocateInfo,
1556 const VkAllocationCallbacks* pAllocator,
1557 VkDeviceMemory* pMemory)
1558 {
1559 AEMU_SCOPED_TRACE("vkAllocateMemory encode");
1560 mImpl->log("start vkAllocateMemory");
1561 auto stream = mImpl->stream();
1562 auto countingStream = mImpl->countingStream();
1563 auto resources = mImpl->resources();
1564 auto pool = mImpl->pool();
1565 stream->setHandleMapping(resources->unwrapMapping());
1566 VkDevice local_device;
1567 VkMemoryAllocateInfo* local_pAllocateInfo;
1568 VkAllocationCallbacks* local_pAllocator;
1569 local_device = device;
1570 local_pAllocateInfo = nullptr;
1571 if (pAllocateInfo)
1572 {
1573 local_pAllocateInfo = (VkMemoryAllocateInfo*)pool->alloc(sizeof(const VkMemoryAllocateInfo));
1574 deepcopy_VkMemoryAllocateInfo(pool, pAllocateInfo, (VkMemoryAllocateInfo*)(local_pAllocateInfo));
1575 }
1576 local_pAllocator = nullptr;
1577 if (pAllocator)
1578 {
1579 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
1580 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
1581 }
1582 local_pAllocator = nullptr;
1583 if (local_pAllocateInfo)
1584 {
1585 transform_tohost_VkMemoryAllocateInfo(mImpl->resources(), (VkMemoryAllocateInfo*)(local_pAllocateInfo));
1586 }
1587 if (local_pAllocator)
1588 {
1589 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
1590 }
1591 countingStream->rewind();
1592 {
1593 uint64_t cgen_var_94;
1594 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_94, 1);
1595 countingStream->write((uint64_t*)&cgen_var_94, 1 * 8);
1596 marshal_VkMemoryAllocateInfo(countingStream, (VkMemoryAllocateInfo*)(local_pAllocateInfo));
1597 // WARNING PTR CHECK
1598 uint64_t cgen_var_95 = (uint64_t)(uintptr_t)local_pAllocator;
1599 countingStream->putBe64(cgen_var_95);
1600 if (local_pAllocator)
1601 {
1602 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
1603 }
1604 uint64_t cgen_var_96;
1605 countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(pMemory, &cgen_var_96, 1);
1606 countingStream->write((uint64_t*)&cgen_var_96, 8);
1607 }
1608 uint32_t packetSize_vkAllocateMemory = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1609 countingStream->rewind();
1610 uint32_t opcode_vkAllocateMemory = OP_vkAllocateMemory;
1611 stream->write(&opcode_vkAllocateMemory, sizeof(uint32_t));
1612 stream->write(&packetSize_vkAllocateMemory, sizeof(uint32_t));
1613 uint64_t cgen_var_97;
1614 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_97, 1);
1615 stream->write((uint64_t*)&cgen_var_97, 1 * 8);
1616 marshal_VkMemoryAllocateInfo(stream, (VkMemoryAllocateInfo*)(local_pAllocateInfo));
1617 // WARNING PTR CHECK
1618 uint64_t cgen_var_98 = (uint64_t)(uintptr_t)local_pAllocator;
1619 stream->putBe64(cgen_var_98);
1620 if (local_pAllocator)
1621 {
1622 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
1623 }
1624 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
1625 uint64_t cgen_var_99;
1626 stream->handleMapping()->mapHandles_VkDeviceMemory_u64(pMemory, &cgen_var_99, 1);
1627 stream->write((uint64_t*)&cgen_var_99, 8);
1628 stream->setHandleMapping(resources->unwrapMapping());
1629 AEMU_SCOPED_TRACE("vkAllocateMemory readParams");
1630 stream->setHandleMapping(resources->createMapping());
1631 uint64_t cgen_var_100;
1632 stream->read((uint64_t*)&cgen_var_100, 8);
1633 stream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_100, (VkDeviceMemory*)pMemory, 1);
1634 stream->unsetHandleMapping();
1635 AEMU_SCOPED_TRACE("vkAllocateMemory returnUnmarshal");
1636 VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
1637 stream->read(&vkAllocateMemory_VkResult_return, sizeof(VkResult));
1638 countingStream->clearPool();
1639 stream->clearPool();
1640 pool->freeAll();
1641 mImpl->log("finish vkAllocateMemory");;
1642 return vkAllocateMemory_VkResult_return;
1643 }
1644
vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)1645 void VkEncoder::vkFreeMemory(
1646 VkDevice device,
1647 VkDeviceMemory memory,
1648 const VkAllocationCallbacks* pAllocator)
1649 {
1650 AEMU_SCOPED_TRACE("vkFreeMemory encode");
1651 mImpl->log("start vkFreeMemory");
1652 auto stream = mImpl->stream();
1653 auto countingStream = mImpl->countingStream();
1654 auto resources = mImpl->resources();
1655 auto pool = mImpl->pool();
1656 stream->setHandleMapping(resources->unwrapMapping());
1657 VkDevice local_device;
1658 VkDeviceMemory local_memory;
1659 VkAllocationCallbacks* local_pAllocator;
1660 local_device = device;
1661 local_memory = memory;
1662 local_pAllocator = nullptr;
1663 if (pAllocator)
1664 {
1665 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
1666 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
1667 }
1668 local_pAllocator = nullptr;
1669 mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
1670 countingStream->rewind();
1671 {
1672 uint64_t cgen_var_101;
1673 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_101, 1);
1674 countingStream->write((uint64_t*)&cgen_var_101, 1 * 8);
1675 uint64_t cgen_var_102;
1676 countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_102, 1);
1677 countingStream->write((uint64_t*)&cgen_var_102, 1 * 8);
1678 // WARNING PTR CHECK
1679 uint64_t cgen_var_103 = (uint64_t)(uintptr_t)local_pAllocator;
1680 countingStream->putBe64(cgen_var_103);
1681 if (local_pAllocator)
1682 {
1683 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
1684 }
1685 }
1686 uint32_t packetSize_vkFreeMemory = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1687 countingStream->rewind();
1688 uint32_t opcode_vkFreeMemory = OP_vkFreeMemory;
1689 stream->write(&opcode_vkFreeMemory, sizeof(uint32_t));
1690 stream->write(&packetSize_vkFreeMemory, sizeof(uint32_t));
1691 uint64_t cgen_var_104;
1692 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_104, 1);
1693 stream->write((uint64_t*)&cgen_var_104, 1 * 8);
1694 uint64_t cgen_var_105;
1695 stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_105, 1);
1696 stream->write((uint64_t*)&cgen_var_105, 1 * 8);
1697 // WARNING PTR CHECK
1698 uint64_t cgen_var_106 = (uint64_t)(uintptr_t)local_pAllocator;
1699 stream->putBe64(cgen_var_106);
1700 if (local_pAllocator)
1701 {
1702 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
1703 }
1704 AEMU_SCOPED_TRACE("vkFreeMemory readParams");
1705 AEMU_SCOPED_TRACE("vkFreeMemory returnUnmarshal");
1706 resources->destroyMapping()->mapHandles_VkDeviceMemory((VkDeviceMemory*)&memory);
1707 mImpl->log("finish vkFreeMemory");;
1708 }
1709
vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData)1710 VkResult VkEncoder::vkMapMemory(
1711 VkDevice device,
1712 VkDeviceMemory memory,
1713 VkDeviceSize offset,
1714 VkDeviceSize size,
1715 VkMemoryMapFlags flags,
1716 void** ppData)
1717 {
1718 AEMU_SCOPED_TRACE("vkMapMemory resourceEvent");
1719 VkResult vkMapMemory_VkResult_return = (VkResult)0;
1720 vkMapMemory_VkResult_return = mImpl->resources()->on_vkMapMemory(this, VK_SUCCESS, device, memory, offset, size, flags, ppData);
1721 mImpl->log("finish vkMapMemory");;
1722 return vkMapMemory_VkResult_return;
1723 }
1724
vkUnmapMemory(VkDevice device,VkDeviceMemory memory)1725 void VkEncoder::vkUnmapMemory(
1726 VkDevice device,
1727 VkDeviceMemory memory)
1728 {
1729 AEMU_SCOPED_TRACE("vkUnmapMemory resourceEvent");
1730 mImpl->resources()->on_vkUnmapMemory(this, device, memory);
1731 }
1732
vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)1733 VkResult VkEncoder::vkFlushMappedMemoryRanges(
1734 VkDevice device,
1735 uint32_t memoryRangeCount,
1736 const VkMappedMemoryRange* pMemoryRanges)
1737 {
1738 AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges encode");
1739 mImpl->log("start vkFlushMappedMemoryRanges");
1740 VALIDATE_RET(VkResult, VK_SUCCESS, mImpl->validation()->on_vkFlushMappedMemoryRanges(this, VK_SUCCESS, device, memoryRangeCount, pMemoryRanges));
1741 auto stream = mImpl->stream();
1742 auto countingStream = mImpl->countingStream();
1743 auto resources = mImpl->resources();
1744 auto pool = mImpl->pool();
1745 stream->setHandleMapping(resources->unwrapMapping());
1746 VkDevice local_device;
1747 uint32_t local_memoryRangeCount;
1748 VkMappedMemoryRange* local_pMemoryRanges;
1749 local_device = device;
1750 local_memoryRangeCount = memoryRangeCount;
1751 local_pMemoryRanges = nullptr;
1752 if (pMemoryRanges)
1753 {
1754 local_pMemoryRanges = (VkMappedMemoryRange*)pool->alloc(((memoryRangeCount)) * sizeof(const VkMappedMemoryRange));
1755 for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
1756 {
1757 deepcopy_VkMappedMemoryRange(pool, pMemoryRanges + i, (VkMappedMemoryRange*)(local_pMemoryRanges + i));
1758 }
1759 }
1760 if (local_pMemoryRanges)
1761 {
1762 for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
1763 {
1764 transform_tohost_VkMappedMemoryRange(mImpl->resources(), (VkMappedMemoryRange*)(local_pMemoryRanges + i));
1765 }
1766 }
1767 countingStream->rewind();
1768 {
1769 uint64_t cgen_var_107;
1770 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_107, 1);
1771 countingStream->write((uint64_t*)&cgen_var_107, 1 * 8);
1772 countingStream->write((uint32_t*)&local_memoryRangeCount, sizeof(uint32_t));
1773 for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
1774 {
1775 marshal_VkMappedMemoryRange(countingStream, (VkMappedMemoryRange*)(local_pMemoryRanges + i));
1776 }
1777 }
1778 if (!resources->usingDirectMapping())
1779 {
1780 for (uint32_t i = 0; i < memoryRangeCount; ++i)
1781 {
1782 auto range = pMemoryRanges[i];
1783 auto memory = pMemoryRanges[i].memory;
1784 auto size = pMemoryRanges[i].size;
1785 auto offset = pMemoryRanges[i].offset;
1786 uint64_t streamSize = 0;
1787 if (!memory) { countingStream->write(&streamSize, sizeof(uint64_t)); continue; };
1788 auto hostPtr = resources->getMappedPointer(memory);
1789 auto actualSize = size == VK_WHOLE_SIZE ? resources->getMappedSize(memory) : size;
1790 if (!hostPtr) { countingStream->write(&streamSize, sizeof(uint64_t)); continue; };
1791 streamSize = actualSize;
1792 countingStream->write(&streamSize, sizeof(uint64_t));
1793 uint8_t* targetRange = hostPtr + offset;
1794 countingStream->write(targetRange, actualSize);
1795 }
1796 }
1797 uint32_t packetSize_vkFlushMappedMemoryRanges = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1798 countingStream->rewind();
1799 uint32_t opcode_vkFlushMappedMemoryRanges = OP_vkFlushMappedMemoryRanges;
1800 stream->write(&opcode_vkFlushMappedMemoryRanges, sizeof(uint32_t));
1801 stream->write(&packetSize_vkFlushMappedMemoryRanges, sizeof(uint32_t));
1802 uint64_t cgen_var_108;
1803 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_108, 1);
1804 stream->write((uint64_t*)&cgen_var_108, 1 * 8);
1805 stream->write((uint32_t*)&local_memoryRangeCount, sizeof(uint32_t));
1806 for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
1807 {
1808 marshal_VkMappedMemoryRange(stream, (VkMappedMemoryRange*)(local_pMemoryRanges + i));
1809 }
1810 if (!resources->usingDirectMapping())
1811 {
1812 for (uint32_t i = 0; i < memoryRangeCount; ++i)
1813 {
1814 auto range = pMemoryRanges[i];
1815 auto memory = pMemoryRanges[i].memory;
1816 auto size = pMemoryRanges[i].size;
1817 auto offset = pMemoryRanges[i].offset;
1818 uint64_t streamSize = 0;
1819 if (!memory) { stream->write(&streamSize, sizeof(uint64_t)); continue; };
1820 auto hostPtr = resources->getMappedPointer(memory);
1821 auto actualSize = size == VK_WHOLE_SIZE ? resources->getMappedSize(memory) : size;
1822 if (!hostPtr) { stream->write(&streamSize, sizeof(uint64_t)); continue; };
1823 streamSize = actualSize;
1824 stream->write(&streamSize, sizeof(uint64_t));
1825 uint8_t* targetRange = hostPtr + offset;
1826 stream->write(targetRange, actualSize);
1827 }
1828 }
1829 AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges readParams");
1830 AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges returnUnmarshal");
1831 VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
1832 stream->read(&vkFlushMappedMemoryRanges_VkResult_return, sizeof(VkResult));
1833 countingStream->clearPool();
1834 stream->clearPool();
1835 pool->freeAll();
1836 mImpl->log("finish vkFlushMappedMemoryRanges");;
1837 return vkFlushMappedMemoryRanges_VkResult_return;
1838 }
1839
vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)1840 VkResult VkEncoder::vkInvalidateMappedMemoryRanges(
1841 VkDevice device,
1842 uint32_t memoryRangeCount,
1843 const VkMappedMemoryRange* pMemoryRanges)
1844 {
1845 AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges encode");
1846 mImpl->log("start vkInvalidateMappedMemoryRanges");
1847 VALIDATE_RET(VkResult, VK_SUCCESS, mImpl->validation()->on_vkInvalidateMappedMemoryRanges(this, VK_SUCCESS, device, memoryRangeCount, pMemoryRanges));
1848 auto stream = mImpl->stream();
1849 auto countingStream = mImpl->countingStream();
1850 auto resources = mImpl->resources();
1851 auto pool = mImpl->pool();
1852 stream->setHandleMapping(resources->unwrapMapping());
1853 VkDevice local_device;
1854 uint32_t local_memoryRangeCount;
1855 VkMappedMemoryRange* local_pMemoryRanges;
1856 local_device = device;
1857 local_memoryRangeCount = memoryRangeCount;
1858 local_pMemoryRanges = nullptr;
1859 if (pMemoryRanges)
1860 {
1861 local_pMemoryRanges = (VkMappedMemoryRange*)pool->alloc(((memoryRangeCount)) * sizeof(const VkMappedMemoryRange));
1862 for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
1863 {
1864 deepcopy_VkMappedMemoryRange(pool, pMemoryRanges + i, (VkMappedMemoryRange*)(local_pMemoryRanges + i));
1865 }
1866 }
1867 if (local_pMemoryRanges)
1868 {
1869 for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
1870 {
1871 transform_tohost_VkMappedMemoryRange(mImpl->resources(), (VkMappedMemoryRange*)(local_pMemoryRanges + i));
1872 }
1873 }
1874 countingStream->rewind();
1875 {
1876 uint64_t cgen_var_109;
1877 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_109, 1);
1878 countingStream->write((uint64_t*)&cgen_var_109, 1 * 8);
1879 countingStream->write((uint32_t*)&local_memoryRangeCount, sizeof(uint32_t));
1880 for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
1881 {
1882 marshal_VkMappedMemoryRange(countingStream, (VkMappedMemoryRange*)(local_pMemoryRanges + i));
1883 }
1884 }
1885 uint32_t packetSize_vkInvalidateMappedMemoryRanges = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1886 countingStream->rewind();
1887 uint32_t opcode_vkInvalidateMappedMemoryRanges = OP_vkInvalidateMappedMemoryRanges;
1888 stream->write(&opcode_vkInvalidateMappedMemoryRanges, sizeof(uint32_t));
1889 stream->write(&packetSize_vkInvalidateMappedMemoryRanges, sizeof(uint32_t));
1890 uint64_t cgen_var_110;
1891 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_110, 1);
1892 stream->write((uint64_t*)&cgen_var_110, 1 * 8);
1893 stream->write((uint32_t*)&local_memoryRangeCount, sizeof(uint32_t));
1894 for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
1895 {
1896 marshal_VkMappedMemoryRange(stream, (VkMappedMemoryRange*)(local_pMemoryRanges + i));
1897 }
1898 AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges readParams");
1899 AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges returnUnmarshal");
1900 VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
1901 stream->read(&vkInvalidateMappedMemoryRanges_VkResult_return, sizeof(VkResult));
1902 countingStream->clearPool();
1903 stream->clearPool();
1904 pool->freeAll();
1905 if (!resources->usingDirectMapping())
1906 {
1907 for (uint32_t i = 0; i < memoryRangeCount; ++i)
1908 {
1909 auto range = pMemoryRanges[i];
1910 auto memory = pMemoryRanges[i].memory;
1911 auto size = pMemoryRanges[i].size;
1912 auto offset = pMemoryRanges[i].offset;
1913 uint64_t streamSize = 0;
1914 if (!memory) { stream->read(&streamSize, sizeof(uint64_t)); continue; };
1915 auto hostPtr = resources->getMappedPointer(memory);
1916 auto actualSize = size == VK_WHOLE_SIZE ? resources->getMappedSize(memory) : size;
1917 if (!hostPtr) { stream->read(&streamSize, sizeof(uint64_t)); continue; };
1918 streamSize = actualSize;
1919 stream->read(&streamSize, sizeof(uint64_t));
1920 uint8_t* targetRange = hostPtr + offset;
1921 stream->read(targetRange, actualSize);
1922 }
1923 }
1924 mImpl->log("finish vkInvalidateMappedMemoryRanges");;
1925 return vkInvalidateMappedMemoryRanges_VkResult_return;
1926 }
1927
vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)1928 void VkEncoder::vkGetDeviceMemoryCommitment(
1929 VkDevice device,
1930 VkDeviceMemory memory,
1931 VkDeviceSize* pCommittedMemoryInBytes)
1932 {
1933 AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment encode");
1934 mImpl->log("start vkGetDeviceMemoryCommitment");
1935 auto stream = mImpl->stream();
1936 auto countingStream = mImpl->countingStream();
1937 auto resources = mImpl->resources();
1938 auto pool = mImpl->pool();
1939 stream->setHandleMapping(resources->unwrapMapping());
1940 VkDevice local_device;
1941 VkDeviceMemory local_memory;
1942 local_device = device;
1943 local_memory = memory;
1944 mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
1945 countingStream->rewind();
1946 {
1947 uint64_t cgen_var_111;
1948 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_111, 1);
1949 countingStream->write((uint64_t*)&cgen_var_111, 1 * 8);
1950 uint64_t cgen_var_112;
1951 countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_112, 1);
1952 countingStream->write((uint64_t*)&cgen_var_112, 1 * 8);
1953 countingStream->write((VkDeviceSize*)pCommittedMemoryInBytes, sizeof(VkDeviceSize));
1954 }
1955 uint32_t packetSize_vkGetDeviceMemoryCommitment = 4 + 4 + (uint32_t)countingStream->bytesWritten();
1956 countingStream->rewind();
1957 uint32_t opcode_vkGetDeviceMemoryCommitment = OP_vkGetDeviceMemoryCommitment;
1958 stream->write(&opcode_vkGetDeviceMemoryCommitment, sizeof(uint32_t));
1959 stream->write(&packetSize_vkGetDeviceMemoryCommitment, sizeof(uint32_t));
1960 uint64_t cgen_var_113;
1961 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_113, 1);
1962 stream->write((uint64_t*)&cgen_var_113, 1 * 8);
1963 uint64_t cgen_var_114;
1964 stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_114, 1);
1965 stream->write((uint64_t*)&cgen_var_114, 1 * 8);
1966 stream->write((VkDeviceSize*)pCommittedMemoryInBytes, sizeof(VkDeviceSize));
1967 AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment readParams");
1968 stream->read((VkDeviceSize*)pCommittedMemoryInBytes, sizeof(VkDeviceSize));
1969 AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment returnUnmarshal");
1970 mImpl->log("finish vkGetDeviceMemoryCommitment");;
1971 }
1972
vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)1973 VkResult VkEncoder::vkBindBufferMemory(
1974 VkDevice device,
1975 VkBuffer buffer,
1976 VkDeviceMemory memory,
1977 VkDeviceSize memoryOffset)
1978 {
1979 AEMU_SCOPED_TRACE("vkBindBufferMemory encode");
1980 mImpl->log("start vkBindBufferMemory");
1981 auto stream = mImpl->stream();
1982 auto countingStream = mImpl->countingStream();
1983 auto resources = mImpl->resources();
1984 auto pool = mImpl->pool();
1985 stream->setHandleMapping(resources->unwrapMapping());
1986 VkDevice local_device;
1987 VkBuffer local_buffer;
1988 VkDeviceMemory local_memory;
1989 VkDeviceSize local_memoryOffset;
1990 local_device = device;
1991 local_buffer = buffer;
1992 local_memory = memory;
1993 local_memoryOffset = memoryOffset;
1994 mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)&local_memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
1995 countingStream->rewind();
1996 {
1997 uint64_t cgen_var_115;
1998 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_115, 1);
1999 countingStream->write((uint64_t*)&cgen_var_115, 1 * 8);
2000 uint64_t cgen_var_116;
2001 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_116, 1);
2002 countingStream->write((uint64_t*)&cgen_var_116, 1 * 8);
2003 uint64_t cgen_var_117;
2004 countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_117, 1);
2005 countingStream->write((uint64_t*)&cgen_var_117, 1 * 8);
2006 countingStream->write((VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize));
2007 }
2008 uint32_t packetSize_vkBindBufferMemory = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2009 countingStream->rewind();
2010 uint32_t opcode_vkBindBufferMemory = OP_vkBindBufferMemory;
2011 stream->write(&opcode_vkBindBufferMemory, sizeof(uint32_t));
2012 stream->write(&packetSize_vkBindBufferMemory, sizeof(uint32_t));
2013 uint64_t cgen_var_118;
2014 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_118, 1);
2015 stream->write((uint64_t*)&cgen_var_118, 1 * 8);
2016 uint64_t cgen_var_119;
2017 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_119, 1);
2018 stream->write((uint64_t*)&cgen_var_119, 1 * 8);
2019 uint64_t cgen_var_120;
2020 stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_120, 1);
2021 stream->write((uint64_t*)&cgen_var_120, 1 * 8);
2022 stream->write((VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize));
2023 AEMU_SCOPED_TRACE("vkBindBufferMemory readParams");
2024 AEMU_SCOPED_TRACE("vkBindBufferMemory returnUnmarshal");
2025 VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
2026 stream->read(&vkBindBufferMemory_VkResult_return, sizeof(VkResult));
2027 countingStream->clearPool();
2028 stream->clearPool();
2029 pool->freeAll();
2030 mImpl->log("finish vkBindBufferMemory");;
2031 return vkBindBufferMemory_VkResult_return;
2032 }
2033
vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset)2034 VkResult VkEncoder::vkBindImageMemory(
2035 VkDevice device,
2036 VkImage image,
2037 VkDeviceMemory memory,
2038 VkDeviceSize memoryOffset)
2039 {
2040 AEMU_SCOPED_TRACE("vkBindImageMemory encode");
2041 mImpl->log("start vkBindImageMemory");
2042 auto stream = mImpl->stream();
2043 auto countingStream = mImpl->countingStream();
2044 auto resources = mImpl->resources();
2045 auto pool = mImpl->pool();
2046 stream->setHandleMapping(resources->unwrapMapping());
2047 VkDevice local_device;
2048 VkImage local_image;
2049 VkDeviceMemory local_memory;
2050 VkDeviceSize local_memoryOffset;
2051 local_device = device;
2052 local_image = image;
2053 local_memory = memory;
2054 local_memoryOffset = memoryOffset;
2055 mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)&local_memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
2056 countingStream->rewind();
2057 {
2058 uint64_t cgen_var_121;
2059 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_121, 1);
2060 countingStream->write((uint64_t*)&cgen_var_121, 1 * 8);
2061 uint64_t cgen_var_122;
2062 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_122, 1);
2063 countingStream->write((uint64_t*)&cgen_var_122, 1 * 8);
2064 uint64_t cgen_var_123;
2065 countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_123, 1);
2066 countingStream->write((uint64_t*)&cgen_var_123, 1 * 8);
2067 countingStream->write((VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize));
2068 }
2069 uint32_t packetSize_vkBindImageMemory = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2070 countingStream->rewind();
2071 uint32_t opcode_vkBindImageMemory = OP_vkBindImageMemory;
2072 stream->write(&opcode_vkBindImageMemory, sizeof(uint32_t));
2073 stream->write(&packetSize_vkBindImageMemory, sizeof(uint32_t));
2074 uint64_t cgen_var_124;
2075 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_124, 1);
2076 stream->write((uint64_t*)&cgen_var_124, 1 * 8);
2077 uint64_t cgen_var_125;
2078 stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_125, 1);
2079 stream->write((uint64_t*)&cgen_var_125, 1 * 8);
2080 uint64_t cgen_var_126;
2081 stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_126, 1);
2082 stream->write((uint64_t*)&cgen_var_126, 1 * 8);
2083 stream->write((VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize));
2084 AEMU_SCOPED_TRACE("vkBindImageMemory readParams");
2085 AEMU_SCOPED_TRACE("vkBindImageMemory returnUnmarshal");
2086 VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
2087 stream->read(&vkBindImageMemory_VkResult_return, sizeof(VkResult));
2088 countingStream->clearPool();
2089 stream->clearPool();
2090 pool->freeAll();
2091 mImpl->log("finish vkBindImageMemory");;
2092 return vkBindImageMemory_VkResult_return;
2093 }
2094
vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)2095 void VkEncoder::vkGetBufferMemoryRequirements(
2096 VkDevice device,
2097 VkBuffer buffer,
2098 VkMemoryRequirements* pMemoryRequirements)
2099 {
2100 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements encode");
2101 mImpl->log("start vkGetBufferMemoryRequirements");
2102 auto stream = mImpl->stream();
2103 auto countingStream = mImpl->countingStream();
2104 auto resources = mImpl->resources();
2105 auto pool = mImpl->pool();
2106 stream->setHandleMapping(resources->unwrapMapping());
2107 VkDevice local_device;
2108 VkBuffer local_buffer;
2109 local_device = device;
2110 local_buffer = buffer;
2111 countingStream->rewind();
2112 {
2113 uint64_t cgen_var_127;
2114 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_127, 1);
2115 countingStream->write((uint64_t*)&cgen_var_127, 1 * 8);
2116 uint64_t cgen_var_128;
2117 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_128, 1);
2118 countingStream->write((uint64_t*)&cgen_var_128, 1 * 8);
2119 marshal_VkMemoryRequirements(countingStream, (VkMemoryRequirements*)(pMemoryRequirements));
2120 }
2121 uint32_t packetSize_vkGetBufferMemoryRequirements = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2122 countingStream->rewind();
2123 uint32_t opcode_vkGetBufferMemoryRequirements = OP_vkGetBufferMemoryRequirements;
2124 stream->write(&opcode_vkGetBufferMemoryRequirements, sizeof(uint32_t));
2125 stream->write(&packetSize_vkGetBufferMemoryRequirements, sizeof(uint32_t));
2126 uint64_t cgen_var_129;
2127 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_129, 1);
2128 stream->write((uint64_t*)&cgen_var_129, 1 * 8);
2129 uint64_t cgen_var_130;
2130 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_130, 1);
2131 stream->write((uint64_t*)&cgen_var_130, 1 * 8);
2132 marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
2133 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements readParams");
2134 unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
2135 if (pMemoryRequirements)
2136 {
2137 transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements));
2138 }
2139 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements returnUnmarshal");
2140 mImpl->log("finish vkGetBufferMemoryRequirements");;
2141 }
2142
vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements)2143 void VkEncoder::vkGetImageMemoryRequirements(
2144 VkDevice device,
2145 VkImage image,
2146 VkMemoryRequirements* pMemoryRequirements)
2147 {
2148 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements encode");
2149 mImpl->log("start vkGetImageMemoryRequirements");
2150 auto stream = mImpl->stream();
2151 auto countingStream = mImpl->countingStream();
2152 auto resources = mImpl->resources();
2153 auto pool = mImpl->pool();
2154 stream->setHandleMapping(resources->unwrapMapping());
2155 VkDevice local_device;
2156 VkImage local_image;
2157 local_device = device;
2158 local_image = image;
2159 countingStream->rewind();
2160 {
2161 uint64_t cgen_var_131;
2162 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_131, 1);
2163 countingStream->write((uint64_t*)&cgen_var_131, 1 * 8);
2164 uint64_t cgen_var_132;
2165 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_132, 1);
2166 countingStream->write((uint64_t*)&cgen_var_132, 1 * 8);
2167 marshal_VkMemoryRequirements(countingStream, (VkMemoryRequirements*)(pMemoryRequirements));
2168 }
2169 uint32_t packetSize_vkGetImageMemoryRequirements = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2170 countingStream->rewind();
2171 uint32_t opcode_vkGetImageMemoryRequirements = OP_vkGetImageMemoryRequirements;
2172 stream->write(&opcode_vkGetImageMemoryRequirements, sizeof(uint32_t));
2173 stream->write(&packetSize_vkGetImageMemoryRequirements, sizeof(uint32_t));
2174 uint64_t cgen_var_133;
2175 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_133, 1);
2176 stream->write((uint64_t*)&cgen_var_133, 1 * 8);
2177 uint64_t cgen_var_134;
2178 stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_134, 1);
2179 stream->write((uint64_t*)&cgen_var_134, 1 * 8);
2180 marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
2181 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements readParams");
2182 unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
2183 if (pMemoryRequirements)
2184 {
2185 transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements));
2186 }
2187 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements returnUnmarshal");
2188 mImpl->log("finish vkGetImageMemoryRequirements");;
2189 }
2190
vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)2191 void VkEncoder::vkGetImageSparseMemoryRequirements(
2192 VkDevice device,
2193 VkImage image,
2194 uint32_t* pSparseMemoryRequirementCount,
2195 VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
2196 {
2197 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements encode");
2198 mImpl->log("start vkGetImageSparseMemoryRequirements");
2199 auto stream = mImpl->stream();
2200 auto countingStream = mImpl->countingStream();
2201 auto resources = mImpl->resources();
2202 auto pool = mImpl->pool();
2203 stream->setHandleMapping(resources->unwrapMapping());
2204 VkDevice local_device;
2205 VkImage local_image;
2206 local_device = device;
2207 local_image = image;
2208 countingStream->rewind();
2209 {
2210 uint64_t cgen_var_135;
2211 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_135, 1);
2212 countingStream->write((uint64_t*)&cgen_var_135, 1 * 8);
2213 uint64_t cgen_var_136;
2214 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_136, 1);
2215 countingStream->write((uint64_t*)&cgen_var_136, 1 * 8);
2216 // WARNING PTR CHECK
2217 uint64_t cgen_var_137 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
2218 countingStream->putBe64(cgen_var_137);
2219 if (pSparseMemoryRequirementCount)
2220 {
2221 countingStream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
2222 }
2223 // WARNING PTR CHECK
2224 uint64_t cgen_var_138 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
2225 countingStream->putBe64(cgen_var_138);
2226 if (pSparseMemoryRequirements)
2227 {
2228 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
2229 {
2230 marshal_VkSparseImageMemoryRequirements(countingStream, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
2231 }
2232 }
2233 }
2234 uint32_t packetSize_vkGetImageSparseMemoryRequirements = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2235 countingStream->rewind();
2236 uint32_t opcode_vkGetImageSparseMemoryRequirements = OP_vkGetImageSparseMemoryRequirements;
2237 stream->write(&opcode_vkGetImageSparseMemoryRequirements, sizeof(uint32_t));
2238 stream->write(&packetSize_vkGetImageSparseMemoryRequirements, sizeof(uint32_t));
2239 uint64_t cgen_var_139;
2240 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_139, 1);
2241 stream->write((uint64_t*)&cgen_var_139, 1 * 8);
2242 uint64_t cgen_var_140;
2243 stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_140, 1);
2244 stream->write((uint64_t*)&cgen_var_140, 1 * 8);
2245 // WARNING PTR CHECK
2246 uint64_t cgen_var_141 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
2247 stream->putBe64(cgen_var_141);
2248 if (pSparseMemoryRequirementCount)
2249 {
2250 stream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
2251 }
2252 // WARNING PTR CHECK
2253 uint64_t cgen_var_142 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
2254 stream->putBe64(cgen_var_142);
2255 if (pSparseMemoryRequirements)
2256 {
2257 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
2258 {
2259 marshal_VkSparseImageMemoryRequirements(stream, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
2260 }
2261 }
2262 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements readParams");
2263 // WARNING PTR CHECK
2264 uint32_t* check_pSparseMemoryRequirementCount;
2265 check_pSparseMemoryRequirementCount = (uint32_t*)(uintptr_t)stream->getBe64();
2266 if (pSparseMemoryRequirementCount)
2267 {
2268 if (!(check_pSparseMemoryRequirementCount))
2269 {
2270 fprintf(stderr, "fatal: pSparseMemoryRequirementCount inconsistent between guest and host\n");
2271 }
2272 stream->read((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
2273 }
2274 // WARNING PTR CHECK
2275 VkSparseImageMemoryRequirements* check_pSparseMemoryRequirements;
2276 check_pSparseMemoryRequirements = (VkSparseImageMemoryRequirements*)(uintptr_t)stream->getBe64();
2277 if (pSparseMemoryRequirements)
2278 {
2279 if (!(check_pSparseMemoryRequirements))
2280 {
2281 fprintf(stderr, "fatal: pSparseMemoryRequirements inconsistent between guest and host\n");
2282 }
2283 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
2284 {
2285 unmarshal_VkSparseImageMemoryRequirements(stream, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
2286 }
2287 }
2288 if (pSparseMemoryRequirements)
2289 {
2290 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
2291 {
2292 transform_fromhost_VkSparseImageMemoryRequirements(mImpl->resources(), (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
2293 }
2294 }
2295 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements returnUnmarshal");
2296 mImpl->log("finish vkGetImageSparseMemoryRequirements");;
2297 }
2298
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties)2299 void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties(
2300 VkPhysicalDevice physicalDevice,
2301 VkFormat format,
2302 VkImageType type,
2303 VkSampleCountFlagBits samples,
2304 VkImageUsageFlags usage,
2305 VkImageTiling tiling,
2306 uint32_t* pPropertyCount,
2307 VkSparseImageFormatProperties* pProperties)
2308 {
2309 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties encode");
2310 mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties");
2311 auto stream = mImpl->stream();
2312 auto countingStream = mImpl->countingStream();
2313 auto resources = mImpl->resources();
2314 auto pool = mImpl->pool();
2315 stream->setHandleMapping(resources->unwrapMapping());
2316 VkPhysicalDevice local_physicalDevice;
2317 VkFormat local_format;
2318 VkImageType local_type;
2319 VkSampleCountFlagBits local_samples;
2320 VkImageUsageFlags local_usage;
2321 VkImageTiling local_tiling;
2322 local_physicalDevice = physicalDevice;
2323 local_format = format;
2324 local_type = type;
2325 local_samples = samples;
2326 local_usage = usage;
2327 local_tiling = tiling;
2328 countingStream->rewind();
2329 {
2330 uint64_t cgen_var_145;
2331 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_145, 1);
2332 countingStream->write((uint64_t*)&cgen_var_145, 1 * 8);
2333 countingStream->write((VkFormat*)&local_format, sizeof(VkFormat));
2334 countingStream->write((VkImageType*)&local_type, sizeof(VkImageType));
2335 countingStream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits));
2336 countingStream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags));
2337 countingStream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling));
2338 // WARNING PTR CHECK
2339 uint64_t cgen_var_146 = (uint64_t)(uintptr_t)pPropertyCount;
2340 countingStream->putBe64(cgen_var_146);
2341 if (pPropertyCount)
2342 {
2343 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
2344 }
2345 // WARNING PTR CHECK
2346 uint64_t cgen_var_147 = (uint64_t)(uintptr_t)pProperties;
2347 countingStream->putBe64(cgen_var_147);
2348 if (pProperties)
2349 {
2350 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
2351 {
2352 marshal_VkSparseImageFormatProperties(countingStream, (VkSparseImageFormatProperties*)(pProperties + i));
2353 }
2354 }
2355 }
2356 uint32_t packetSize_vkGetPhysicalDeviceSparseImageFormatProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2357 countingStream->rewind();
2358 uint32_t opcode_vkGetPhysicalDeviceSparseImageFormatProperties = OP_vkGetPhysicalDeviceSparseImageFormatProperties;
2359 stream->write(&opcode_vkGetPhysicalDeviceSparseImageFormatProperties, sizeof(uint32_t));
2360 stream->write(&packetSize_vkGetPhysicalDeviceSparseImageFormatProperties, sizeof(uint32_t));
2361 uint64_t cgen_var_148;
2362 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_148, 1);
2363 stream->write((uint64_t*)&cgen_var_148, 1 * 8);
2364 stream->write((VkFormat*)&local_format, sizeof(VkFormat));
2365 stream->write((VkImageType*)&local_type, sizeof(VkImageType));
2366 stream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits));
2367 stream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags));
2368 stream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling));
2369 // WARNING PTR CHECK
2370 uint64_t cgen_var_149 = (uint64_t)(uintptr_t)pPropertyCount;
2371 stream->putBe64(cgen_var_149);
2372 if (pPropertyCount)
2373 {
2374 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
2375 }
2376 // WARNING PTR CHECK
2377 uint64_t cgen_var_150 = (uint64_t)(uintptr_t)pProperties;
2378 stream->putBe64(cgen_var_150);
2379 if (pProperties)
2380 {
2381 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
2382 {
2383 marshal_VkSparseImageFormatProperties(stream, (VkSparseImageFormatProperties*)(pProperties + i));
2384 }
2385 }
2386 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties readParams");
2387 // WARNING PTR CHECK
2388 uint32_t* check_pPropertyCount;
2389 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
2390 if (pPropertyCount)
2391 {
2392 if (!(check_pPropertyCount))
2393 {
2394 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
2395 }
2396 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
2397 }
2398 // WARNING PTR CHECK
2399 VkSparseImageFormatProperties* check_pProperties;
2400 check_pProperties = (VkSparseImageFormatProperties*)(uintptr_t)stream->getBe64();
2401 if (pProperties)
2402 {
2403 if (!(check_pProperties))
2404 {
2405 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
2406 }
2407 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
2408 {
2409 unmarshal_VkSparseImageFormatProperties(stream, (VkSparseImageFormatProperties*)(pProperties + i));
2410 }
2411 }
2412 if (pProperties)
2413 {
2414 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
2415 {
2416 transform_fromhost_VkSparseImageFormatProperties(mImpl->resources(), (VkSparseImageFormatProperties*)(pProperties + i));
2417 }
2418 }
2419 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties returnUnmarshal");
2420 mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties");;
2421 }
2422
vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)2423 VkResult VkEncoder::vkQueueBindSparse(
2424 VkQueue queue,
2425 uint32_t bindInfoCount,
2426 const VkBindSparseInfo* pBindInfo,
2427 VkFence fence)
2428 {
2429 AEMU_SCOPED_TRACE("vkQueueBindSparse encode");
2430 mImpl->log("start vkQueueBindSparse");
2431 auto stream = mImpl->stream();
2432 auto countingStream = mImpl->countingStream();
2433 auto resources = mImpl->resources();
2434 auto pool = mImpl->pool();
2435 stream->setHandleMapping(resources->unwrapMapping());
2436 VkQueue local_queue;
2437 uint32_t local_bindInfoCount;
2438 VkBindSparseInfo* local_pBindInfo;
2439 VkFence local_fence;
2440 local_queue = queue;
2441 local_bindInfoCount = bindInfoCount;
2442 local_pBindInfo = nullptr;
2443 if (pBindInfo)
2444 {
2445 local_pBindInfo = (VkBindSparseInfo*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindSparseInfo));
2446 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
2447 {
2448 deepcopy_VkBindSparseInfo(pool, pBindInfo + i, (VkBindSparseInfo*)(local_pBindInfo + i));
2449 }
2450 }
2451 local_fence = fence;
2452 if (local_pBindInfo)
2453 {
2454 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
2455 {
2456 transform_tohost_VkBindSparseInfo(mImpl->resources(), (VkBindSparseInfo*)(local_pBindInfo + i));
2457 }
2458 }
2459 countingStream->rewind();
2460 {
2461 uint64_t cgen_var_153;
2462 countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_153, 1);
2463 countingStream->write((uint64_t*)&cgen_var_153, 1 * 8);
2464 countingStream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
2465 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
2466 {
2467 marshal_VkBindSparseInfo(countingStream, (VkBindSparseInfo*)(local_pBindInfo + i));
2468 }
2469 uint64_t cgen_var_154;
2470 countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_154, 1);
2471 countingStream->write((uint64_t*)&cgen_var_154, 1 * 8);
2472 }
2473 uint32_t packetSize_vkQueueBindSparse = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2474 countingStream->rewind();
2475 uint32_t opcode_vkQueueBindSparse = OP_vkQueueBindSparse;
2476 stream->write(&opcode_vkQueueBindSparse, sizeof(uint32_t));
2477 stream->write(&packetSize_vkQueueBindSparse, sizeof(uint32_t));
2478 uint64_t cgen_var_155;
2479 stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_155, 1);
2480 stream->write((uint64_t*)&cgen_var_155, 1 * 8);
2481 stream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
2482 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
2483 {
2484 marshal_VkBindSparseInfo(stream, (VkBindSparseInfo*)(local_pBindInfo + i));
2485 }
2486 uint64_t cgen_var_156;
2487 stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_156, 1);
2488 stream->write((uint64_t*)&cgen_var_156, 1 * 8);
2489 AEMU_SCOPED_TRACE("vkQueueBindSparse readParams");
2490 AEMU_SCOPED_TRACE("vkQueueBindSparse returnUnmarshal");
2491 VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
2492 stream->read(&vkQueueBindSparse_VkResult_return, sizeof(VkResult));
2493 countingStream->clearPool();
2494 stream->clearPool();
2495 pool->freeAll();
2496 mImpl->log("finish vkQueueBindSparse");;
2497 return vkQueueBindSparse_VkResult_return;
2498 }
2499
vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)2500 VkResult VkEncoder::vkCreateFence(
2501 VkDevice device,
2502 const VkFenceCreateInfo* pCreateInfo,
2503 const VkAllocationCallbacks* pAllocator,
2504 VkFence* pFence)
2505 {
2506 AEMU_SCOPED_TRACE("vkCreateFence encode");
2507 mImpl->log("start vkCreateFence");
2508 auto stream = mImpl->stream();
2509 auto countingStream = mImpl->countingStream();
2510 auto resources = mImpl->resources();
2511 auto pool = mImpl->pool();
2512 stream->setHandleMapping(resources->unwrapMapping());
2513 VkDevice local_device;
2514 VkFenceCreateInfo* local_pCreateInfo;
2515 VkAllocationCallbacks* local_pAllocator;
2516 local_device = device;
2517 local_pCreateInfo = nullptr;
2518 if (pCreateInfo)
2519 {
2520 local_pCreateInfo = (VkFenceCreateInfo*)pool->alloc(sizeof(const VkFenceCreateInfo));
2521 deepcopy_VkFenceCreateInfo(pool, pCreateInfo, (VkFenceCreateInfo*)(local_pCreateInfo));
2522 }
2523 local_pAllocator = nullptr;
2524 if (pAllocator)
2525 {
2526 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
2527 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
2528 }
2529 local_pAllocator = nullptr;
2530 if (local_pCreateInfo)
2531 {
2532 transform_tohost_VkFenceCreateInfo(mImpl->resources(), (VkFenceCreateInfo*)(local_pCreateInfo));
2533 }
2534 if (local_pAllocator)
2535 {
2536 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
2537 }
2538 countingStream->rewind();
2539 {
2540 uint64_t cgen_var_157;
2541 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_157, 1);
2542 countingStream->write((uint64_t*)&cgen_var_157, 1 * 8);
2543 marshal_VkFenceCreateInfo(countingStream, (VkFenceCreateInfo*)(local_pCreateInfo));
2544 // WARNING PTR CHECK
2545 uint64_t cgen_var_158 = (uint64_t)(uintptr_t)local_pAllocator;
2546 countingStream->putBe64(cgen_var_158);
2547 if (local_pAllocator)
2548 {
2549 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
2550 }
2551 uint64_t cgen_var_159;
2552 countingStream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_159, 1);
2553 countingStream->write((uint64_t*)&cgen_var_159, 8);
2554 }
2555 uint32_t packetSize_vkCreateFence = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2556 countingStream->rewind();
2557 uint32_t opcode_vkCreateFence = OP_vkCreateFence;
2558 stream->write(&opcode_vkCreateFence, sizeof(uint32_t));
2559 stream->write(&packetSize_vkCreateFence, sizeof(uint32_t));
2560 uint64_t cgen_var_160;
2561 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_160, 1);
2562 stream->write((uint64_t*)&cgen_var_160, 1 * 8);
2563 marshal_VkFenceCreateInfo(stream, (VkFenceCreateInfo*)(local_pCreateInfo));
2564 // WARNING PTR CHECK
2565 uint64_t cgen_var_161 = (uint64_t)(uintptr_t)local_pAllocator;
2566 stream->putBe64(cgen_var_161);
2567 if (local_pAllocator)
2568 {
2569 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
2570 }
2571 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
2572 uint64_t cgen_var_162;
2573 stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_162, 1);
2574 stream->write((uint64_t*)&cgen_var_162, 8);
2575 stream->setHandleMapping(resources->unwrapMapping());
2576 AEMU_SCOPED_TRACE("vkCreateFence readParams");
2577 stream->setHandleMapping(resources->createMapping());
2578 uint64_t cgen_var_163;
2579 stream->read((uint64_t*)&cgen_var_163, 8);
2580 stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_163, (VkFence*)pFence, 1);
2581 stream->unsetHandleMapping();
2582 AEMU_SCOPED_TRACE("vkCreateFence returnUnmarshal");
2583 VkResult vkCreateFence_VkResult_return = (VkResult)0;
2584 stream->read(&vkCreateFence_VkResult_return, sizeof(VkResult));
2585 countingStream->clearPool();
2586 stream->clearPool();
2587 pool->freeAll();
2588 mImpl->log("finish vkCreateFence");;
2589 return vkCreateFence_VkResult_return;
2590 }
2591
vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)2592 void VkEncoder::vkDestroyFence(
2593 VkDevice device,
2594 VkFence fence,
2595 const VkAllocationCallbacks* pAllocator)
2596 {
2597 AEMU_SCOPED_TRACE("vkDestroyFence encode");
2598 mImpl->log("start vkDestroyFence");
2599 auto stream = mImpl->stream();
2600 auto countingStream = mImpl->countingStream();
2601 auto resources = mImpl->resources();
2602 auto pool = mImpl->pool();
2603 stream->setHandleMapping(resources->unwrapMapping());
2604 VkDevice local_device;
2605 VkFence local_fence;
2606 VkAllocationCallbacks* local_pAllocator;
2607 local_device = device;
2608 local_fence = fence;
2609 local_pAllocator = nullptr;
2610 if (pAllocator)
2611 {
2612 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
2613 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
2614 }
2615 local_pAllocator = nullptr;
2616 if (local_pAllocator)
2617 {
2618 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
2619 }
2620 countingStream->rewind();
2621 {
2622 uint64_t cgen_var_164;
2623 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_164, 1);
2624 countingStream->write((uint64_t*)&cgen_var_164, 1 * 8);
2625 uint64_t cgen_var_165;
2626 countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_165, 1);
2627 countingStream->write((uint64_t*)&cgen_var_165, 1 * 8);
2628 // WARNING PTR CHECK
2629 uint64_t cgen_var_166 = (uint64_t)(uintptr_t)local_pAllocator;
2630 countingStream->putBe64(cgen_var_166);
2631 if (local_pAllocator)
2632 {
2633 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
2634 }
2635 }
2636 uint32_t packetSize_vkDestroyFence = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2637 countingStream->rewind();
2638 uint32_t opcode_vkDestroyFence = OP_vkDestroyFence;
2639 stream->write(&opcode_vkDestroyFence, sizeof(uint32_t));
2640 stream->write(&packetSize_vkDestroyFence, sizeof(uint32_t));
2641 uint64_t cgen_var_167;
2642 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_167, 1);
2643 stream->write((uint64_t*)&cgen_var_167, 1 * 8);
2644 uint64_t cgen_var_168;
2645 stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_168, 1);
2646 stream->write((uint64_t*)&cgen_var_168, 1 * 8);
2647 // WARNING PTR CHECK
2648 uint64_t cgen_var_169 = (uint64_t)(uintptr_t)local_pAllocator;
2649 stream->putBe64(cgen_var_169);
2650 if (local_pAllocator)
2651 {
2652 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
2653 }
2654 AEMU_SCOPED_TRACE("vkDestroyFence readParams");
2655 AEMU_SCOPED_TRACE("vkDestroyFence returnUnmarshal");
2656 resources->destroyMapping()->mapHandles_VkFence((VkFence*)&fence);
2657 mImpl->log("finish vkDestroyFence");;
2658 }
2659
vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences)2660 VkResult VkEncoder::vkResetFences(
2661 VkDevice device,
2662 uint32_t fenceCount,
2663 const VkFence* pFences)
2664 {
2665 AEMU_SCOPED_TRACE("vkResetFences encode");
2666 mImpl->log("start vkResetFences");
2667 auto stream = mImpl->stream();
2668 auto countingStream = mImpl->countingStream();
2669 auto resources = mImpl->resources();
2670 auto pool = mImpl->pool();
2671 stream->setHandleMapping(resources->unwrapMapping());
2672 VkDevice local_device;
2673 uint32_t local_fenceCount;
2674 VkFence* local_pFences;
2675 local_device = device;
2676 local_fenceCount = fenceCount;
2677 local_pFences = nullptr;
2678 if (pFences)
2679 {
2680 local_pFences = (VkFence*)pool->dupArray(pFences, ((fenceCount)) * sizeof(const VkFence));
2681 }
2682 countingStream->rewind();
2683 {
2684 uint64_t cgen_var_170;
2685 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_170, 1);
2686 countingStream->write((uint64_t*)&cgen_var_170, 1 * 8);
2687 countingStream->write((uint32_t*)&local_fenceCount, sizeof(uint32_t));
2688 if (((fenceCount)))
2689 {
2690 uint64_t* cgen_var_171;
2691 countingStream->alloc((void**)&cgen_var_171, ((fenceCount)) * 8);
2692 countingStream->handleMapping()->mapHandles_VkFence_u64(local_pFences, cgen_var_171, ((fenceCount)));
2693 countingStream->write((uint64_t*)cgen_var_171, ((fenceCount)) * 8);
2694 }
2695 }
2696 uint32_t packetSize_vkResetFences = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2697 countingStream->rewind();
2698 uint32_t opcode_vkResetFences = OP_vkResetFences;
2699 stream->write(&opcode_vkResetFences, sizeof(uint32_t));
2700 stream->write(&packetSize_vkResetFences, sizeof(uint32_t));
2701 uint64_t cgen_var_172;
2702 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_172, 1);
2703 stream->write((uint64_t*)&cgen_var_172, 1 * 8);
2704 stream->write((uint32_t*)&local_fenceCount, sizeof(uint32_t));
2705 if (((fenceCount)))
2706 {
2707 uint64_t* cgen_var_173;
2708 stream->alloc((void**)&cgen_var_173, ((fenceCount)) * 8);
2709 stream->handleMapping()->mapHandles_VkFence_u64(local_pFences, cgen_var_173, ((fenceCount)));
2710 stream->write((uint64_t*)cgen_var_173, ((fenceCount)) * 8);
2711 }
2712 AEMU_SCOPED_TRACE("vkResetFences readParams");
2713 AEMU_SCOPED_TRACE("vkResetFences returnUnmarshal");
2714 VkResult vkResetFences_VkResult_return = (VkResult)0;
2715 stream->read(&vkResetFences_VkResult_return, sizeof(VkResult));
2716 countingStream->clearPool();
2717 stream->clearPool();
2718 pool->freeAll();
2719 mImpl->log("finish vkResetFences");;
2720 return vkResetFences_VkResult_return;
2721 }
2722
vkGetFenceStatus(VkDevice device,VkFence fence)2723 VkResult VkEncoder::vkGetFenceStatus(
2724 VkDevice device,
2725 VkFence fence)
2726 {
2727 AEMU_SCOPED_TRACE("vkGetFenceStatus encode");
2728 mImpl->log("start vkGetFenceStatus");
2729 auto stream = mImpl->stream();
2730 auto countingStream = mImpl->countingStream();
2731 auto resources = mImpl->resources();
2732 auto pool = mImpl->pool();
2733 stream->setHandleMapping(resources->unwrapMapping());
2734 VkDevice local_device;
2735 VkFence local_fence;
2736 local_device = device;
2737 local_fence = fence;
2738 countingStream->rewind();
2739 {
2740 uint64_t cgen_var_174;
2741 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_174, 1);
2742 countingStream->write((uint64_t*)&cgen_var_174, 1 * 8);
2743 uint64_t cgen_var_175;
2744 countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_175, 1);
2745 countingStream->write((uint64_t*)&cgen_var_175, 1 * 8);
2746 }
2747 uint32_t packetSize_vkGetFenceStatus = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2748 countingStream->rewind();
2749 uint32_t opcode_vkGetFenceStatus = OP_vkGetFenceStatus;
2750 stream->write(&opcode_vkGetFenceStatus, sizeof(uint32_t));
2751 stream->write(&packetSize_vkGetFenceStatus, sizeof(uint32_t));
2752 uint64_t cgen_var_176;
2753 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_176, 1);
2754 stream->write((uint64_t*)&cgen_var_176, 1 * 8);
2755 uint64_t cgen_var_177;
2756 stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_177, 1);
2757 stream->write((uint64_t*)&cgen_var_177, 1 * 8);
2758 AEMU_SCOPED_TRACE("vkGetFenceStatus readParams");
2759 AEMU_SCOPED_TRACE("vkGetFenceStatus returnUnmarshal");
2760 VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
2761 stream->read(&vkGetFenceStatus_VkResult_return, sizeof(VkResult));
2762 countingStream->clearPool();
2763 stream->clearPool();
2764 pool->freeAll();
2765 mImpl->log("finish vkGetFenceStatus");;
2766 return vkGetFenceStatus_VkResult_return;
2767 }
2768
vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout)2769 VkResult VkEncoder::vkWaitForFences(
2770 VkDevice device,
2771 uint32_t fenceCount,
2772 const VkFence* pFences,
2773 VkBool32 waitAll,
2774 uint64_t timeout)
2775 {
2776 AEMU_SCOPED_TRACE("vkWaitForFences encode");
2777 mImpl->log("start vkWaitForFences");
2778 auto stream = mImpl->stream();
2779 auto countingStream = mImpl->countingStream();
2780 auto resources = mImpl->resources();
2781 auto pool = mImpl->pool();
2782 stream->setHandleMapping(resources->unwrapMapping());
2783 VkDevice local_device;
2784 uint32_t local_fenceCount;
2785 VkFence* local_pFences;
2786 VkBool32 local_waitAll;
2787 uint64_t local_timeout;
2788 local_device = device;
2789 local_fenceCount = fenceCount;
2790 local_pFences = nullptr;
2791 if (pFences)
2792 {
2793 local_pFences = (VkFence*)pool->dupArray(pFences, ((fenceCount)) * sizeof(const VkFence));
2794 }
2795 local_waitAll = waitAll;
2796 local_timeout = timeout;
2797 countingStream->rewind();
2798 {
2799 uint64_t cgen_var_178;
2800 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_178, 1);
2801 countingStream->write((uint64_t*)&cgen_var_178, 1 * 8);
2802 countingStream->write((uint32_t*)&local_fenceCount, sizeof(uint32_t));
2803 if (((fenceCount)))
2804 {
2805 uint64_t* cgen_var_179;
2806 countingStream->alloc((void**)&cgen_var_179, ((fenceCount)) * 8);
2807 countingStream->handleMapping()->mapHandles_VkFence_u64(local_pFences, cgen_var_179, ((fenceCount)));
2808 countingStream->write((uint64_t*)cgen_var_179, ((fenceCount)) * 8);
2809 }
2810 countingStream->write((VkBool32*)&local_waitAll, sizeof(VkBool32));
2811 countingStream->write((uint64_t*)&local_timeout, sizeof(uint64_t));
2812 }
2813 uint32_t packetSize_vkWaitForFences = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2814 countingStream->rewind();
2815 uint32_t opcode_vkWaitForFences = OP_vkWaitForFences;
2816 stream->write(&opcode_vkWaitForFences, sizeof(uint32_t));
2817 stream->write(&packetSize_vkWaitForFences, sizeof(uint32_t));
2818 uint64_t cgen_var_180;
2819 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_180, 1);
2820 stream->write((uint64_t*)&cgen_var_180, 1 * 8);
2821 stream->write((uint32_t*)&local_fenceCount, sizeof(uint32_t));
2822 if (((fenceCount)))
2823 {
2824 uint64_t* cgen_var_181;
2825 stream->alloc((void**)&cgen_var_181, ((fenceCount)) * 8);
2826 stream->handleMapping()->mapHandles_VkFence_u64(local_pFences, cgen_var_181, ((fenceCount)));
2827 stream->write((uint64_t*)cgen_var_181, ((fenceCount)) * 8);
2828 }
2829 stream->write((VkBool32*)&local_waitAll, sizeof(VkBool32));
2830 stream->write((uint64_t*)&local_timeout, sizeof(uint64_t));
2831 AEMU_SCOPED_TRACE("vkWaitForFences readParams");
2832 AEMU_SCOPED_TRACE("vkWaitForFences returnUnmarshal");
2833 VkResult vkWaitForFences_VkResult_return = (VkResult)0;
2834 stream->read(&vkWaitForFences_VkResult_return, sizeof(VkResult));
2835 countingStream->clearPool();
2836 stream->clearPool();
2837 pool->freeAll();
2838 mImpl->log("finish vkWaitForFences");;
2839 return vkWaitForFences_VkResult_return;
2840 }
2841
vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)2842 VkResult VkEncoder::vkCreateSemaphore(
2843 VkDevice device,
2844 const VkSemaphoreCreateInfo* pCreateInfo,
2845 const VkAllocationCallbacks* pAllocator,
2846 VkSemaphore* pSemaphore)
2847 {
2848 AEMU_SCOPED_TRACE("vkCreateSemaphore encode");
2849 mImpl->log("start vkCreateSemaphore");
2850 auto stream = mImpl->stream();
2851 auto countingStream = mImpl->countingStream();
2852 auto resources = mImpl->resources();
2853 auto pool = mImpl->pool();
2854 stream->setHandleMapping(resources->unwrapMapping());
2855 VkDevice local_device;
2856 VkSemaphoreCreateInfo* local_pCreateInfo;
2857 VkAllocationCallbacks* local_pAllocator;
2858 local_device = device;
2859 local_pCreateInfo = nullptr;
2860 if (pCreateInfo)
2861 {
2862 local_pCreateInfo = (VkSemaphoreCreateInfo*)pool->alloc(sizeof(const VkSemaphoreCreateInfo));
2863 deepcopy_VkSemaphoreCreateInfo(pool, pCreateInfo, (VkSemaphoreCreateInfo*)(local_pCreateInfo));
2864 }
2865 local_pAllocator = nullptr;
2866 if (pAllocator)
2867 {
2868 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
2869 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
2870 }
2871 local_pAllocator = nullptr;
2872 if (local_pCreateInfo)
2873 {
2874 transform_tohost_VkSemaphoreCreateInfo(mImpl->resources(), (VkSemaphoreCreateInfo*)(local_pCreateInfo));
2875 }
2876 if (local_pAllocator)
2877 {
2878 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
2879 }
2880 countingStream->rewind();
2881 {
2882 uint64_t cgen_var_182;
2883 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_182, 1);
2884 countingStream->write((uint64_t*)&cgen_var_182, 1 * 8);
2885 marshal_VkSemaphoreCreateInfo(countingStream, (VkSemaphoreCreateInfo*)(local_pCreateInfo));
2886 // WARNING PTR CHECK
2887 uint64_t cgen_var_183 = (uint64_t)(uintptr_t)local_pAllocator;
2888 countingStream->putBe64(cgen_var_183);
2889 if (local_pAllocator)
2890 {
2891 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
2892 }
2893 uint64_t cgen_var_184;
2894 countingStream->handleMapping()->mapHandles_VkSemaphore_u64(pSemaphore, &cgen_var_184, 1);
2895 countingStream->write((uint64_t*)&cgen_var_184, 8);
2896 }
2897 uint32_t packetSize_vkCreateSemaphore = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2898 countingStream->rewind();
2899 uint32_t opcode_vkCreateSemaphore = OP_vkCreateSemaphore;
2900 stream->write(&opcode_vkCreateSemaphore, sizeof(uint32_t));
2901 stream->write(&packetSize_vkCreateSemaphore, sizeof(uint32_t));
2902 uint64_t cgen_var_185;
2903 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_185, 1);
2904 stream->write((uint64_t*)&cgen_var_185, 1 * 8);
2905 marshal_VkSemaphoreCreateInfo(stream, (VkSemaphoreCreateInfo*)(local_pCreateInfo));
2906 // WARNING PTR CHECK
2907 uint64_t cgen_var_186 = (uint64_t)(uintptr_t)local_pAllocator;
2908 stream->putBe64(cgen_var_186);
2909 if (local_pAllocator)
2910 {
2911 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
2912 }
2913 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
2914 uint64_t cgen_var_187;
2915 stream->handleMapping()->mapHandles_VkSemaphore_u64(pSemaphore, &cgen_var_187, 1);
2916 stream->write((uint64_t*)&cgen_var_187, 8);
2917 stream->setHandleMapping(resources->unwrapMapping());
2918 AEMU_SCOPED_TRACE("vkCreateSemaphore readParams");
2919 stream->setHandleMapping(resources->createMapping());
2920 uint64_t cgen_var_188;
2921 stream->read((uint64_t*)&cgen_var_188, 8);
2922 stream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_188, (VkSemaphore*)pSemaphore, 1);
2923 stream->unsetHandleMapping();
2924 AEMU_SCOPED_TRACE("vkCreateSemaphore returnUnmarshal");
2925 VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
2926 stream->read(&vkCreateSemaphore_VkResult_return, sizeof(VkResult));
2927 countingStream->clearPool();
2928 stream->clearPool();
2929 pool->freeAll();
2930 mImpl->log("finish vkCreateSemaphore");;
2931 return vkCreateSemaphore_VkResult_return;
2932 }
2933
vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)2934 void VkEncoder::vkDestroySemaphore(
2935 VkDevice device,
2936 VkSemaphore semaphore,
2937 const VkAllocationCallbacks* pAllocator)
2938 {
2939 AEMU_SCOPED_TRACE("vkDestroySemaphore encode");
2940 mImpl->log("start vkDestroySemaphore");
2941 auto stream = mImpl->stream();
2942 auto countingStream = mImpl->countingStream();
2943 auto resources = mImpl->resources();
2944 auto pool = mImpl->pool();
2945 stream->setHandleMapping(resources->unwrapMapping());
2946 VkDevice local_device;
2947 VkSemaphore local_semaphore;
2948 VkAllocationCallbacks* local_pAllocator;
2949 local_device = device;
2950 local_semaphore = semaphore;
2951 local_pAllocator = nullptr;
2952 if (pAllocator)
2953 {
2954 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
2955 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
2956 }
2957 local_pAllocator = nullptr;
2958 if (local_pAllocator)
2959 {
2960 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
2961 }
2962 countingStream->rewind();
2963 {
2964 uint64_t cgen_var_189;
2965 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_189, 1);
2966 countingStream->write((uint64_t*)&cgen_var_189, 1 * 8);
2967 uint64_t cgen_var_190;
2968 countingStream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_190, 1);
2969 countingStream->write((uint64_t*)&cgen_var_190, 1 * 8);
2970 // WARNING PTR CHECK
2971 uint64_t cgen_var_191 = (uint64_t)(uintptr_t)local_pAllocator;
2972 countingStream->putBe64(cgen_var_191);
2973 if (local_pAllocator)
2974 {
2975 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
2976 }
2977 }
2978 uint32_t packetSize_vkDestroySemaphore = 4 + 4 + (uint32_t)countingStream->bytesWritten();
2979 countingStream->rewind();
2980 uint32_t opcode_vkDestroySemaphore = OP_vkDestroySemaphore;
2981 stream->write(&opcode_vkDestroySemaphore, sizeof(uint32_t));
2982 stream->write(&packetSize_vkDestroySemaphore, sizeof(uint32_t));
2983 uint64_t cgen_var_192;
2984 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_192, 1);
2985 stream->write((uint64_t*)&cgen_var_192, 1 * 8);
2986 uint64_t cgen_var_193;
2987 stream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_193, 1);
2988 stream->write((uint64_t*)&cgen_var_193, 1 * 8);
2989 // WARNING PTR CHECK
2990 uint64_t cgen_var_194 = (uint64_t)(uintptr_t)local_pAllocator;
2991 stream->putBe64(cgen_var_194);
2992 if (local_pAllocator)
2993 {
2994 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
2995 }
2996 AEMU_SCOPED_TRACE("vkDestroySemaphore readParams");
2997 AEMU_SCOPED_TRACE("vkDestroySemaphore returnUnmarshal");
2998 resources->destroyMapping()->mapHandles_VkSemaphore((VkSemaphore*)&semaphore);
2999 mImpl->log("finish vkDestroySemaphore");;
3000 }
3001
vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent)3002 VkResult VkEncoder::vkCreateEvent(
3003 VkDevice device,
3004 const VkEventCreateInfo* pCreateInfo,
3005 const VkAllocationCallbacks* pAllocator,
3006 VkEvent* pEvent)
3007 {
3008 AEMU_SCOPED_TRACE("vkCreateEvent encode");
3009 mImpl->log("start vkCreateEvent");
3010 auto stream = mImpl->stream();
3011 auto countingStream = mImpl->countingStream();
3012 auto resources = mImpl->resources();
3013 auto pool = mImpl->pool();
3014 stream->setHandleMapping(resources->unwrapMapping());
3015 VkDevice local_device;
3016 VkEventCreateInfo* local_pCreateInfo;
3017 VkAllocationCallbacks* local_pAllocator;
3018 local_device = device;
3019 local_pCreateInfo = nullptr;
3020 if (pCreateInfo)
3021 {
3022 local_pCreateInfo = (VkEventCreateInfo*)pool->alloc(sizeof(const VkEventCreateInfo));
3023 deepcopy_VkEventCreateInfo(pool, pCreateInfo, (VkEventCreateInfo*)(local_pCreateInfo));
3024 }
3025 local_pAllocator = nullptr;
3026 if (pAllocator)
3027 {
3028 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
3029 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
3030 }
3031 local_pAllocator = nullptr;
3032 if (local_pCreateInfo)
3033 {
3034 transform_tohost_VkEventCreateInfo(mImpl->resources(), (VkEventCreateInfo*)(local_pCreateInfo));
3035 }
3036 if (local_pAllocator)
3037 {
3038 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
3039 }
3040 countingStream->rewind();
3041 {
3042 uint64_t cgen_var_195;
3043 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_195, 1);
3044 countingStream->write((uint64_t*)&cgen_var_195, 1 * 8);
3045 marshal_VkEventCreateInfo(countingStream, (VkEventCreateInfo*)(local_pCreateInfo));
3046 // WARNING PTR CHECK
3047 uint64_t cgen_var_196 = (uint64_t)(uintptr_t)local_pAllocator;
3048 countingStream->putBe64(cgen_var_196);
3049 if (local_pAllocator)
3050 {
3051 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
3052 }
3053 uint64_t cgen_var_197;
3054 countingStream->handleMapping()->mapHandles_VkEvent_u64(pEvent, &cgen_var_197, 1);
3055 countingStream->write((uint64_t*)&cgen_var_197, 8);
3056 }
3057 uint32_t packetSize_vkCreateEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3058 countingStream->rewind();
3059 uint32_t opcode_vkCreateEvent = OP_vkCreateEvent;
3060 stream->write(&opcode_vkCreateEvent, sizeof(uint32_t));
3061 stream->write(&packetSize_vkCreateEvent, sizeof(uint32_t));
3062 uint64_t cgen_var_198;
3063 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_198, 1);
3064 stream->write((uint64_t*)&cgen_var_198, 1 * 8);
3065 marshal_VkEventCreateInfo(stream, (VkEventCreateInfo*)(local_pCreateInfo));
3066 // WARNING PTR CHECK
3067 uint64_t cgen_var_199 = (uint64_t)(uintptr_t)local_pAllocator;
3068 stream->putBe64(cgen_var_199);
3069 if (local_pAllocator)
3070 {
3071 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
3072 }
3073 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
3074 uint64_t cgen_var_200;
3075 stream->handleMapping()->mapHandles_VkEvent_u64(pEvent, &cgen_var_200, 1);
3076 stream->write((uint64_t*)&cgen_var_200, 8);
3077 stream->setHandleMapping(resources->unwrapMapping());
3078 AEMU_SCOPED_TRACE("vkCreateEvent readParams");
3079 stream->setHandleMapping(resources->createMapping());
3080 uint64_t cgen_var_201;
3081 stream->read((uint64_t*)&cgen_var_201, 8);
3082 stream->handleMapping()->mapHandles_u64_VkEvent(&cgen_var_201, (VkEvent*)pEvent, 1);
3083 stream->unsetHandleMapping();
3084 AEMU_SCOPED_TRACE("vkCreateEvent returnUnmarshal");
3085 VkResult vkCreateEvent_VkResult_return = (VkResult)0;
3086 stream->read(&vkCreateEvent_VkResult_return, sizeof(VkResult));
3087 countingStream->clearPool();
3088 stream->clearPool();
3089 pool->freeAll();
3090 mImpl->log("finish vkCreateEvent");;
3091 return vkCreateEvent_VkResult_return;
3092 }
3093
vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)3094 void VkEncoder::vkDestroyEvent(
3095 VkDevice device,
3096 VkEvent event,
3097 const VkAllocationCallbacks* pAllocator)
3098 {
3099 AEMU_SCOPED_TRACE("vkDestroyEvent encode");
3100 mImpl->log("start vkDestroyEvent");
3101 auto stream = mImpl->stream();
3102 auto countingStream = mImpl->countingStream();
3103 auto resources = mImpl->resources();
3104 auto pool = mImpl->pool();
3105 stream->setHandleMapping(resources->unwrapMapping());
3106 VkDevice local_device;
3107 VkEvent local_event;
3108 VkAllocationCallbacks* local_pAllocator;
3109 local_device = device;
3110 local_event = event;
3111 local_pAllocator = nullptr;
3112 if (pAllocator)
3113 {
3114 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
3115 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
3116 }
3117 local_pAllocator = nullptr;
3118 if (local_pAllocator)
3119 {
3120 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
3121 }
3122 countingStream->rewind();
3123 {
3124 uint64_t cgen_var_202;
3125 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_202, 1);
3126 countingStream->write((uint64_t*)&cgen_var_202, 1 * 8);
3127 uint64_t cgen_var_203;
3128 countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_203, 1);
3129 countingStream->write((uint64_t*)&cgen_var_203, 1 * 8);
3130 // WARNING PTR CHECK
3131 uint64_t cgen_var_204 = (uint64_t)(uintptr_t)local_pAllocator;
3132 countingStream->putBe64(cgen_var_204);
3133 if (local_pAllocator)
3134 {
3135 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
3136 }
3137 }
3138 uint32_t packetSize_vkDestroyEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3139 countingStream->rewind();
3140 uint32_t opcode_vkDestroyEvent = OP_vkDestroyEvent;
3141 stream->write(&opcode_vkDestroyEvent, sizeof(uint32_t));
3142 stream->write(&packetSize_vkDestroyEvent, sizeof(uint32_t));
3143 uint64_t cgen_var_205;
3144 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_205, 1);
3145 stream->write((uint64_t*)&cgen_var_205, 1 * 8);
3146 uint64_t cgen_var_206;
3147 stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_206, 1);
3148 stream->write((uint64_t*)&cgen_var_206, 1 * 8);
3149 // WARNING PTR CHECK
3150 uint64_t cgen_var_207 = (uint64_t)(uintptr_t)local_pAllocator;
3151 stream->putBe64(cgen_var_207);
3152 if (local_pAllocator)
3153 {
3154 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
3155 }
3156 AEMU_SCOPED_TRACE("vkDestroyEvent readParams");
3157 AEMU_SCOPED_TRACE("vkDestroyEvent returnUnmarshal");
3158 resources->destroyMapping()->mapHandles_VkEvent((VkEvent*)&event);
3159 mImpl->log("finish vkDestroyEvent");;
3160 }
3161
vkGetEventStatus(VkDevice device,VkEvent event)3162 VkResult VkEncoder::vkGetEventStatus(
3163 VkDevice device,
3164 VkEvent event)
3165 {
3166 AEMU_SCOPED_TRACE("vkGetEventStatus encode");
3167 mImpl->log("start vkGetEventStatus");
3168 auto stream = mImpl->stream();
3169 auto countingStream = mImpl->countingStream();
3170 auto resources = mImpl->resources();
3171 auto pool = mImpl->pool();
3172 stream->setHandleMapping(resources->unwrapMapping());
3173 VkDevice local_device;
3174 VkEvent local_event;
3175 local_device = device;
3176 local_event = event;
3177 countingStream->rewind();
3178 {
3179 uint64_t cgen_var_208;
3180 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_208, 1);
3181 countingStream->write((uint64_t*)&cgen_var_208, 1 * 8);
3182 uint64_t cgen_var_209;
3183 countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_209, 1);
3184 countingStream->write((uint64_t*)&cgen_var_209, 1 * 8);
3185 }
3186 uint32_t packetSize_vkGetEventStatus = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3187 countingStream->rewind();
3188 uint32_t opcode_vkGetEventStatus = OP_vkGetEventStatus;
3189 stream->write(&opcode_vkGetEventStatus, sizeof(uint32_t));
3190 stream->write(&packetSize_vkGetEventStatus, sizeof(uint32_t));
3191 uint64_t cgen_var_210;
3192 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_210, 1);
3193 stream->write((uint64_t*)&cgen_var_210, 1 * 8);
3194 uint64_t cgen_var_211;
3195 stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_211, 1);
3196 stream->write((uint64_t*)&cgen_var_211, 1 * 8);
3197 AEMU_SCOPED_TRACE("vkGetEventStatus readParams");
3198 AEMU_SCOPED_TRACE("vkGetEventStatus returnUnmarshal");
3199 VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
3200 stream->read(&vkGetEventStatus_VkResult_return, sizeof(VkResult));
3201 countingStream->clearPool();
3202 stream->clearPool();
3203 pool->freeAll();
3204 mImpl->log("finish vkGetEventStatus");;
3205 return vkGetEventStatus_VkResult_return;
3206 }
3207
vkSetEvent(VkDevice device,VkEvent event)3208 VkResult VkEncoder::vkSetEvent(
3209 VkDevice device,
3210 VkEvent event)
3211 {
3212 AEMU_SCOPED_TRACE("vkSetEvent encode");
3213 mImpl->log("start vkSetEvent");
3214 auto stream = mImpl->stream();
3215 auto countingStream = mImpl->countingStream();
3216 auto resources = mImpl->resources();
3217 auto pool = mImpl->pool();
3218 stream->setHandleMapping(resources->unwrapMapping());
3219 VkDevice local_device;
3220 VkEvent local_event;
3221 local_device = device;
3222 local_event = event;
3223 countingStream->rewind();
3224 {
3225 uint64_t cgen_var_212;
3226 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_212, 1);
3227 countingStream->write((uint64_t*)&cgen_var_212, 1 * 8);
3228 uint64_t cgen_var_213;
3229 countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_213, 1);
3230 countingStream->write((uint64_t*)&cgen_var_213, 1 * 8);
3231 }
3232 uint32_t packetSize_vkSetEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3233 countingStream->rewind();
3234 uint32_t opcode_vkSetEvent = OP_vkSetEvent;
3235 stream->write(&opcode_vkSetEvent, sizeof(uint32_t));
3236 stream->write(&packetSize_vkSetEvent, sizeof(uint32_t));
3237 uint64_t cgen_var_214;
3238 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_214, 1);
3239 stream->write((uint64_t*)&cgen_var_214, 1 * 8);
3240 uint64_t cgen_var_215;
3241 stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_215, 1);
3242 stream->write((uint64_t*)&cgen_var_215, 1 * 8);
3243 AEMU_SCOPED_TRACE("vkSetEvent readParams");
3244 AEMU_SCOPED_TRACE("vkSetEvent returnUnmarshal");
3245 VkResult vkSetEvent_VkResult_return = (VkResult)0;
3246 stream->read(&vkSetEvent_VkResult_return, sizeof(VkResult));
3247 countingStream->clearPool();
3248 stream->clearPool();
3249 pool->freeAll();
3250 mImpl->log("finish vkSetEvent");;
3251 return vkSetEvent_VkResult_return;
3252 }
3253
vkResetEvent(VkDevice device,VkEvent event)3254 VkResult VkEncoder::vkResetEvent(
3255 VkDevice device,
3256 VkEvent event)
3257 {
3258 AEMU_SCOPED_TRACE("vkResetEvent encode");
3259 mImpl->log("start vkResetEvent");
3260 auto stream = mImpl->stream();
3261 auto countingStream = mImpl->countingStream();
3262 auto resources = mImpl->resources();
3263 auto pool = mImpl->pool();
3264 stream->setHandleMapping(resources->unwrapMapping());
3265 VkDevice local_device;
3266 VkEvent local_event;
3267 local_device = device;
3268 local_event = event;
3269 countingStream->rewind();
3270 {
3271 uint64_t cgen_var_216;
3272 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_216, 1);
3273 countingStream->write((uint64_t*)&cgen_var_216, 1 * 8);
3274 uint64_t cgen_var_217;
3275 countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_217, 1);
3276 countingStream->write((uint64_t*)&cgen_var_217, 1 * 8);
3277 }
3278 uint32_t packetSize_vkResetEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3279 countingStream->rewind();
3280 uint32_t opcode_vkResetEvent = OP_vkResetEvent;
3281 stream->write(&opcode_vkResetEvent, sizeof(uint32_t));
3282 stream->write(&packetSize_vkResetEvent, sizeof(uint32_t));
3283 uint64_t cgen_var_218;
3284 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_218, 1);
3285 stream->write((uint64_t*)&cgen_var_218, 1 * 8);
3286 uint64_t cgen_var_219;
3287 stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_219, 1);
3288 stream->write((uint64_t*)&cgen_var_219, 1 * 8);
3289 AEMU_SCOPED_TRACE("vkResetEvent readParams");
3290 AEMU_SCOPED_TRACE("vkResetEvent returnUnmarshal");
3291 VkResult vkResetEvent_VkResult_return = (VkResult)0;
3292 stream->read(&vkResetEvent_VkResult_return, sizeof(VkResult));
3293 countingStream->clearPool();
3294 stream->clearPool();
3295 pool->freeAll();
3296 mImpl->log("finish vkResetEvent");;
3297 return vkResetEvent_VkResult_return;
3298 }
3299
vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool)3300 VkResult VkEncoder::vkCreateQueryPool(
3301 VkDevice device,
3302 const VkQueryPoolCreateInfo* pCreateInfo,
3303 const VkAllocationCallbacks* pAllocator,
3304 VkQueryPool* pQueryPool)
3305 {
3306 AEMU_SCOPED_TRACE("vkCreateQueryPool encode");
3307 mImpl->log("start vkCreateQueryPool");
3308 auto stream = mImpl->stream();
3309 auto countingStream = mImpl->countingStream();
3310 auto resources = mImpl->resources();
3311 auto pool = mImpl->pool();
3312 stream->setHandleMapping(resources->unwrapMapping());
3313 VkDevice local_device;
3314 VkQueryPoolCreateInfo* local_pCreateInfo;
3315 VkAllocationCallbacks* local_pAllocator;
3316 local_device = device;
3317 local_pCreateInfo = nullptr;
3318 if (pCreateInfo)
3319 {
3320 local_pCreateInfo = (VkQueryPoolCreateInfo*)pool->alloc(sizeof(const VkQueryPoolCreateInfo));
3321 deepcopy_VkQueryPoolCreateInfo(pool, pCreateInfo, (VkQueryPoolCreateInfo*)(local_pCreateInfo));
3322 }
3323 local_pAllocator = nullptr;
3324 if (pAllocator)
3325 {
3326 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
3327 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
3328 }
3329 local_pAllocator = nullptr;
3330 if (local_pCreateInfo)
3331 {
3332 transform_tohost_VkQueryPoolCreateInfo(mImpl->resources(), (VkQueryPoolCreateInfo*)(local_pCreateInfo));
3333 }
3334 if (local_pAllocator)
3335 {
3336 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
3337 }
3338 countingStream->rewind();
3339 {
3340 uint64_t cgen_var_220;
3341 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_220, 1);
3342 countingStream->write((uint64_t*)&cgen_var_220, 1 * 8);
3343 marshal_VkQueryPoolCreateInfo(countingStream, (VkQueryPoolCreateInfo*)(local_pCreateInfo));
3344 // WARNING PTR CHECK
3345 uint64_t cgen_var_221 = (uint64_t)(uintptr_t)local_pAllocator;
3346 countingStream->putBe64(cgen_var_221);
3347 if (local_pAllocator)
3348 {
3349 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
3350 }
3351 uint64_t cgen_var_222;
3352 countingStream->handleMapping()->mapHandles_VkQueryPool_u64(pQueryPool, &cgen_var_222, 1);
3353 countingStream->write((uint64_t*)&cgen_var_222, 8);
3354 }
3355 uint32_t packetSize_vkCreateQueryPool = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3356 countingStream->rewind();
3357 uint32_t opcode_vkCreateQueryPool = OP_vkCreateQueryPool;
3358 stream->write(&opcode_vkCreateQueryPool, sizeof(uint32_t));
3359 stream->write(&packetSize_vkCreateQueryPool, sizeof(uint32_t));
3360 uint64_t cgen_var_223;
3361 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_223, 1);
3362 stream->write((uint64_t*)&cgen_var_223, 1 * 8);
3363 marshal_VkQueryPoolCreateInfo(stream, (VkQueryPoolCreateInfo*)(local_pCreateInfo));
3364 // WARNING PTR CHECK
3365 uint64_t cgen_var_224 = (uint64_t)(uintptr_t)local_pAllocator;
3366 stream->putBe64(cgen_var_224);
3367 if (local_pAllocator)
3368 {
3369 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
3370 }
3371 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
3372 uint64_t cgen_var_225;
3373 stream->handleMapping()->mapHandles_VkQueryPool_u64(pQueryPool, &cgen_var_225, 1);
3374 stream->write((uint64_t*)&cgen_var_225, 8);
3375 stream->setHandleMapping(resources->unwrapMapping());
3376 AEMU_SCOPED_TRACE("vkCreateQueryPool readParams");
3377 stream->setHandleMapping(resources->createMapping());
3378 uint64_t cgen_var_226;
3379 stream->read((uint64_t*)&cgen_var_226, 8);
3380 stream->handleMapping()->mapHandles_u64_VkQueryPool(&cgen_var_226, (VkQueryPool*)pQueryPool, 1);
3381 stream->unsetHandleMapping();
3382 AEMU_SCOPED_TRACE("vkCreateQueryPool returnUnmarshal");
3383 VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
3384 stream->read(&vkCreateQueryPool_VkResult_return, sizeof(VkResult));
3385 countingStream->clearPool();
3386 stream->clearPool();
3387 pool->freeAll();
3388 mImpl->log("finish vkCreateQueryPool");;
3389 return vkCreateQueryPool_VkResult_return;
3390 }
3391
vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)3392 void VkEncoder::vkDestroyQueryPool(
3393 VkDevice device,
3394 VkQueryPool queryPool,
3395 const VkAllocationCallbacks* pAllocator)
3396 {
3397 AEMU_SCOPED_TRACE("vkDestroyQueryPool encode");
3398 mImpl->log("start vkDestroyQueryPool");
3399 auto stream = mImpl->stream();
3400 auto countingStream = mImpl->countingStream();
3401 auto resources = mImpl->resources();
3402 auto pool = mImpl->pool();
3403 stream->setHandleMapping(resources->unwrapMapping());
3404 VkDevice local_device;
3405 VkQueryPool local_queryPool;
3406 VkAllocationCallbacks* local_pAllocator;
3407 local_device = device;
3408 local_queryPool = queryPool;
3409 local_pAllocator = nullptr;
3410 if (pAllocator)
3411 {
3412 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
3413 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
3414 }
3415 local_pAllocator = nullptr;
3416 if (local_pAllocator)
3417 {
3418 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
3419 }
3420 countingStream->rewind();
3421 {
3422 uint64_t cgen_var_227;
3423 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_227, 1);
3424 countingStream->write((uint64_t*)&cgen_var_227, 1 * 8);
3425 uint64_t cgen_var_228;
3426 countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_228, 1);
3427 countingStream->write((uint64_t*)&cgen_var_228, 1 * 8);
3428 // WARNING PTR CHECK
3429 uint64_t cgen_var_229 = (uint64_t)(uintptr_t)local_pAllocator;
3430 countingStream->putBe64(cgen_var_229);
3431 if (local_pAllocator)
3432 {
3433 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
3434 }
3435 }
3436 uint32_t packetSize_vkDestroyQueryPool = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3437 countingStream->rewind();
3438 uint32_t opcode_vkDestroyQueryPool = OP_vkDestroyQueryPool;
3439 stream->write(&opcode_vkDestroyQueryPool, sizeof(uint32_t));
3440 stream->write(&packetSize_vkDestroyQueryPool, sizeof(uint32_t));
3441 uint64_t cgen_var_230;
3442 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_230, 1);
3443 stream->write((uint64_t*)&cgen_var_230, 1 * 8);
3444 uint64_t cgen_var_231;
3445 stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_231, 1);
3446 stream->write((uint64_t*)&cgen_var_231, 1 * 8);
3447 // WARNING PTR CHECK
3448 uint64_t cgen_var_232 = (uint64_t)(uintptr_t)local_pAllocator;
3449 stream->putBe64(cgen_var_232);
3450 if (local_pAllocator)
3451 {
3452 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
3453 }
3454 AEMU_SCOPED_TRACE("vkDestroyQueryPool readParams");
3455 AEMU_SCOPED_TRACE("vkDestroyQueryPool returnUnmarshal");
3456 resources->destroyMapping()->mapHandles_VkQueryPool((VkQueryPool*)&queryPool);
3457 mImpl->log("finish vkDestroyQueryPool");;
3458 }
3459
vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags)3460 VkResult VkEncoder::vkGetQueryPoolResults(
3461 VkDevice device,
3462 VkQueryPool queryPool,
3463 uint32_t firstQuery,
3464 uint32_t queryCount,
3465 size_t dataSize,
3466 void* pData,
3467 VkDeviceSize stride,
3468 VkQueryResultFlags flags)
3469 {
3470 AEMU_SCOPED_TRACE("vkGetQueryPoolResults encode");
3471 mImpl->log("start vkGetQueryPoolResults");
3472 auto stream = mImpl->stream();
3473 auto countingStream = mImpl->countingStream();
3474 auto resources = mImpl->resources();
3475 auto pool = mImpl->pool();
3476 stream->setHandleMapping(resources->unwrapMapping());
3477 VkDevice local_device;
3478 VkQueryPool local_queryPool;
3479 uint32_t local_firstQuery;
3480 uint32_t local_queryCount;
3481 size_t local_dataSize;
3482 VkDeviceSize local_stride;
3483 VkQueryResultFlags local_flags;
3484 local_device = device;
3485 local_queryPool = queryPool;
3486 local_firstQuery = firstQuery;
3487 local_queryCount = queryCount;
3488 local_dataSize = dataSize;
3489 local_stride = stride;
3490 local_flags = flags;
3491 countingStream->rewind();
3492 {
3493 uint64_t cgen_var_233;
3494 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_233, 1);
3495 countingStream->write((uint64_t*)&cgen_var_233, 1 * 8);
3496 uint64_t cgen_var_234;
3497 countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_234, 1);
3498 countingStream->write((uint64_t*)&cgen_var_234, 1 * 8);
3499 countingStream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t));
3500 countingStream->write((uint32_t*)&local_queryCount, sizeof(uint32_t));
3501 uint64_t cgen_var_235 = (uint64_t)local_dataSize;
3502 countingStream->putBe64(cgen_var_235);
3503 countingStream->write((void*)pData, ((dataSize)) * sizeof(uint8_t));
3504 countingStream->write((VkDeviceSize*)&local_stride, sizeof(VkDeviceSize));
3505 countingStream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags));
3506 }
3507 uint32_t packetSize_vkGetQueryPoolResults = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3508 countingStream->rewind();
3509 uint32_t opcode_vkGetQueryPoolResults = OP_vkGetQueryPoolResults;
3510 stream->write(&opcode_vkGetQueryPoolResults, sizeof(uint32_t));
3511 stream->write(&packetSize_vkGetQueryPoolResults, sizeof(uint32_t));
3512 uint64_t cgen_var_236;
3513 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_236, 1);
3514 stream->write((uint64_t*)&cgen_var_236, 1 * 8);
3515 uint64_t cgen_var_237;
3516 stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_237, 1);
3517 stream->write((uint64_t*)&cgen_var_237, 1 * 8);
3518 stream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t));
3519 stream->write((uint32_t*)&local_queryCount, sizeof(uint32_t));
3520 uint64_t cgen_var_238 = (uint64_t)local_dataSize;
3521 stream->putBe64(cgen_var_238);
3522 stream->write((void*)pData, ((dataSize)) * sizeof(uint8_t));
3523 stream->write((VkDeviceSize*)&local_stride, sizeof(VkDeviceSize));
3524 stream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags));
3525 AEMU_SCOPED_TRACE("vkGetQueryPoolResults readParams");
3526 stream->read((void*)pData, ((dataSize)) * sizeof(uint8_t));
3527 AEMU_SCOPED_TRACE("vkGetQueryPoolResults returnUnmarshal");
3528 VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
3529 stream->read(&vkGetQueryPoolResults_VkResult_return, sizeof(VkResult));
3530 countingStream->clearPool();
3531 stream->clearPool();
3532 pool->freeAll();
3533 mImpl->log("finish vkGetQueryPoolResults");;
3534 return vkGetQueryPoolResults_VkResult_return;
3535 }
3536
vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)3537 VkResult VkEncoder::vkCreateBuffer(
3538 VkDevice device,
3539 const VkBufferCreateInfo* pCreateInfo,
3540 const VkAllocationCallbacks* pAllocator,
3541 VkBuffer* pBuffer)
3542 {
3543 AEMU_SCOPED_TRACE("vkCreateBuffer encode");
3544 mImpl->log("start vkCreateBuffer");
3545 auto stream = mImpl->stream();
3546 auto countingStream = mImpl->countingStream();
3547 auto resources = mImpl->resources();
3548 auto pool = mImpl->pool();
3549 stream->setHandleMapping(resources->unwrapMapping());
3550 VkDevice local_device;
3551 VkBufferCreateInfo* local_pCreateInfo;
3552 VkAllocationCallbacks* local_pAllocator;
3553 local_device = device;
3554 local_pCreateInfo = nullptr;
3555 if (pCreateInfo)
3556 {
3557 local_pCreateInfo = (VkBufferCreateInfo*)pool->alloc(sizeof(const VkBufferCreateInfo));
3558 deepcopy_VkBufferCreateInfo(pool, pCreateInfo, (VkBufferCreateInfo*)(local_pCreateInfo));
3559 }
3560 local_pAllocator = nullptr;
3561 if (pAllocator)
3562 {
3563 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
3564 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
3565 }
3566 local_pAllocator = nullptr;
3567 if (local_pCreateInfo)
3568 {
3569 transform_tohost_VkBufferCreateInfo(mImpl->resources(), (VkBufferCreateInfo*)(local_pCreateInfo));
3570 }
3571 if (local_pAllocator)
3572 {
3573 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
3574 }
3575 countingStream->rewind();
3576 {
3577 uint64_t cgen_var_239;
3578 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_239, 1);
3579 countingStream->write((uint64_t*)&cgen_var_239, 1 * 8);
3580 marshal_VkBufferCreateInfo(countingStream, (VkBufferCreateInfo*)(local_pCreateInfo));
3581 // WARNING PTR CHECK
3582 uint64_t cgen_var_240 = (uint64_t)(uintptr_t)local_pAllocator;
3583 countingStream->putBe64(cgen_var_240);
3584 if (local_pAllocator)
3585 {
3586 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
3587 }
3588 uint64_t cgen_var_241;
3589 countingStream->handleMapping()->mapHandles_VkBuffer_u64(pBuffer, &cgen_var_241, 1);
3590 countingStream->write((uint64_t*)&cgen_var_241, 8);
3591 }
3592 uint32_t packetSize_vkCreateBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3593 countingStream->rewind();
3594 uint32_t opcode_vkCreateBuffer = OP_vkCreateBuffer;
3595 stream->write(&opcode_vkCreateBuffer, sizeof(uint32_t));
3596 stream->write(&packetSize_vkCreateBuffer, sizeof(uint32_t));
3597 uint64_t cgen_var_242;
3598 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_242, 1);
3599 stream->write((uint64_t*)&cgen_var_242, 1 * 8);
3600 marshal_VkBufferCreateInfo(stream, (VkBufferCreateInfo*)(local_pCreateInfo));
3601 // WARNING PTR CHECK
3602 uint64_t cgen_var_243 = (uint64_t)(uintptr_t)local_pAllocator;
3603 stream->putBe64(cgen_var_243);
3604 if (local_pAllocator)
3605 {
3606 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
3607 }
3608 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
3609 uint64_t cgen_var_244;
3610 stream->handleMapping()->mapHandles_VkBuffer_u64(pBuffer, &cgen_var_244, 1);
3611 stream->write((uint64_t*)&cgen_var_244, 8);
3612 stream->setHandleMapping(resources->unwrapMapping());
3613 AEMU_SCOPED_TRACE("vkCreateBuffer readParams");
3614 stream->setHandleMapping(resources->createMapping());
3615 uint64_t cgen_var_245;
3616 stream->read((uint64_t*)&cgen_var_245, 8);
3617 stream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_245, (VkBuffer*)pBuffer, 1);
3618 stream->unsetHandleMapping();
3619 AEMU_SCOPED_TRACE("vkCreateBuffer returnUnmarshal");
3620 VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
3621 stream->read(&vkCreateBuffer_VkResult_return, sizeof(VkResult));
3622 countingStream->clearPool();
3623 stream->clearPool();
3624 pool->freeAll();
3625 mImpl->log("finish vkCreateBuffer");;
3626 return vkCreateBuffer_VkResult_return;
3627 }
3628
vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)3629 void VkEncoder::vkDestroyBuffer(
3630 VkDevice device,
3631 VkBuffer buffer,
3632 const VkAllocationCallbacks* pAllocator)
3633 {
3634 AEMU_SCOPED_TRACE("vkDestroyBuffer encode");
3635 mImpl->log("start vkDestroyBuffer");
3636 auto stream = mImpl->stream();
3637 auto countingStream = mImpl->countingStream();
3638 auto resources = mImpl->resources();
3639 auto pool = mImpl->pool();
3640 stream->setHandleMapping(resources->unwrapMapping());
3641 VkDevice local_device;
3642 VkBuffer local_buffer;
3643 VkAllocationCallbacks* local_pAllocator;
3644 local_device = device;
3645 local_buffer = buffer;
3646 local_pAllocator = nullptr;
3647 if (pAllocator)
3648 {
3649 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
3650 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
3651 }
3652 local_pAllocator = nullptr;
3653 if (local_pAllocator)
3654 {
3655 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
3656 }
3657 countingStream->rewind();
3658 {
3659 uint64_t cgen_var_246;
3660 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_246, 1);
3661 countingStream->write((uint64_t*)&cgen_var_246, 1 * 8);
3662 uint64_t cgen_var_247;
3663 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_247, 1);
3664 countingStream->write((uint64_t*)&cgen_var_247, 1 * 8);
3665 // WARNING PTR CHECK
3666 uint64_t cgen_var_248 = (uint64_t)(uintptr_t)local_pAllocator;
3667 countingStream->putBe64(cgen_var_248);
3668 if (local_pAllocator)
3669 {
3670 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
3671 }
3672 }
3673 uint32_t packetSize_vkDestroyBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3674 countingStream->rewind();
3675 uint32_t opcode_vkDestroyBuffer = OP_vkDestroyBuffer;
3676 stream->write(&opcode_vkDestroyBuffer, sizeof(uint32_t));
3677 stream->write(&packetSize_vkDestroyBuffer, sizeof(uint32_t));
3678 uint64_t cgen_var_249;
3679 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_249, 1);
3680 stream->write((uint64_t*)&cgen_var_249, 1 * 8);
3681 uint64_t cgen_var_250;
3682 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_250, 1);
3683 stream->write((uint64_t*)&cgen_var_250, 1 * 8);
3684 // WARNING PTR CHECK
3685 uint64_t cgen_var_251 = (uint64_t)(uintptr_t)local_pAllocator;
3686 stream->putBe64(cgen_var_251);
3687 if (local_pAllocator)
3688 {
3689 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
3690 }
3691 AEMU_SCOPED_TRACE("vkDestroyBuffer readParams");
3692 AEMU_SCOPED_TRACE("vkDestroyBuffer returnUnmarshal");
3693 resources->destroyMapping()->mapHandles_VkBuffer((VkBuffer*)&buffer);
3694 mImpl->log("finish vkDestroyBuffer");;
3695 }
3696
vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)3697 VkResult VkEncoder::vkCreateBufferView(
3698 VkDevice device,
3699 const VkBufferViewCreateInfo* pCreateInfo,
3700 const VkAllocationCallbacks* pAllocator,
3701 VkBufferView* pView)
3702 {
3703 AEMU_SCOPED_TRACE("vkCreateBufferView encode");
3704 mImpl->log("start vkCreateBufferView");
3705 auto stream = mImpl->stream();
3706 auto countingStream = mImpl->countingStream();
3707 auto resources = mImpl->resources();
3708 auto pool = mImpl->pool();
3709 stream->setHandleMapping(resources->unwrapMapping());
3710 VkDevice local_device;
3711 VkBufferViewCreateInfo* local_pCreateInfo;
3712 VkAllocationCallbacks* local_pAllocator;
3713 local_device = device;
3714 local_pCreateInfo = nullptr;
3715 if (pCreateInfo)
3716 {
3717 local_pCreateInfo = (VkBufferViewCreateInfo*)pool->alloc(sizeof(const VkBufferViewCreateInfo));
3718 deepcopy_VkBufferViewCreateInfo(pool, pCreateInfo, (VkBufferViewCreateInfo*)(local_pCreateInfo));
3719 }
3720 local_pAllocator = nullptr;
3721 if (pAllocator)
3722 {
3723 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
3724 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
3725 }
3726 local_pAllocator = nullptr;
3727 if (local_pCreateInfo)
3728 {
3729 transform_tohost_VkBufferViewCreateInfo(mImpl->resources(), (VkBufferViewCreateInfo*)(local_pCreateInfo));
3730 }
3731 if (local_pAllocator)
3732 {
3733 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
3734 }
3735 countingStream->rewind();
3736 {
3737 uint64_t cgen_var_252;
3738 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_252, 1);
3739 countingStream->write((uint64_t*)&cgen_var_252, 1 * 8);
3740 marshal_VkBufferViewCreateInfo(countingStream, (VkBufferViewCreateInfo*)(local_pCreateInfo));
3741 // WARNING PTR CHECK
3742 uint64_t cgen_var_253 = (uint64_t)(uintptr_t)local_pAllocator;
3743 countingStream->putBe64(cgen_var_253);
3744 if (local_pAllocator)
3745 {
3746 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
3747 }
3748 uint64_t cgen_var_254;
3749 countingStream->handleMapping()->mapHandles_VkBufferView_u64(pView, &cgen_var_254, 1);
3750 countingStream->write((uint64_t*)&cgen_var_254, 8);
3751 }
3752 uint32_t packetSize_vkCreateBufferView = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3753 countingStream->rewind();
3754 uint32_t opcode_vkCreateBufferView = OP_vkCreateBufferView;
3755 stream->write(&opcode_vkCreateBufferView, sizeof(uint32_t));
3756 stream->write(&packetSize_vkCreateBufferView, sizeof(uint32_t));
3757 uint64_t cgen_var_255;
3758 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_255, 1);
3759 stream->write((uint64_t*)&cgen_var_255, 1 * 8);
3760 marshal_VkBufferViewCreateInfo(stream, (VkBufferViewCreateInfo*)(local_pCreateInfo));
3761 // WARNING PTR CHECK
3762 uint64_t cgen_var_256 = (uint64_t)(uintptr_t)local_pAllocator;
3763 stream->putBe64(cgen_var_256);
3764 if (local_pAllocator)
3765 {
3766 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
3767 }
3768 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
3769 uint64_t cgen_var_257;
3770 stream->handleMapping()->mapHandles_VkBufferView_u64(pView, &cgen_var_257, 1);
3771 stream->write((uint64_t*)&cgen_var_257, 8);
3772 stream->setHandleMapping(resources->unwrapMapping());
3773 AEMU_SCOPED_TRACE("vkCreateBufferView readParams");
3774 stream->setHandleMapping(resources->createMapping());
3775 uint64_t cgen_var_258;
3776 stream->read((uint64_t*)&cgen_var_258, 8);
3777 stream->handleMapping()->mapHandles_u64_VkBufferView(&cgen_var_258, (VkBufferView*)pView, 1);
3778 stream->unsetHandleMapping();
3779 AEMU_SCOPED_TRACE("vkCreateBufferView returnUnmarshal");
3780 VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
3781 stream->read(&vkCreateBufferView_VkResult_return, sizeof(VkResult));
3782 countingStream->clearPool();
3783 stream->clearPool();
3784 pool->freeAll();
3785 mImpl->log("finish vkCreateBufferView");;
3786 return vkCreateBufferView_VkResult_return;
3787 }
3788
vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)3789 void VkEncoder::vkDestroyBufferView(
3790 VkDevice device,
3791 VkBufferView bufferView,
3792 const VkAllocationCallbacks* pAllocator)
3793 {
3794 AEMU_SCOPED_TRACE("vkDestroyBufferView encode");
3795 mImpl->log("start vkDestroyBufferView");
3796 auto stream = mImpl->stream();
3797 auto countingStream = mImpl->countingStream();
3798 auto resources = mImpl->resources();
3799 auto pool = mImpl->pool();
3800 stream->setHandleMapping(resources->unwrapMapping());
3801 VkDevice local_device;
3802 VkBufferView local_bufferView;
3803 VkAllocationCallbacks* local_pAllocator;
3804 local_device = device;
3805 local_bufferView = bufferView;
3806 local_pAllocator = nullptr;
3807 if (pAllocator)
3808 {
3809 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
3810 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
3811 }
3812 local_pAllocator = nullptr;
3813 if (local_pAllocator)
3814 {
3815 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
3816 }
3817 countingStream->rewind();
3818 {
3819 uint64_t cgen_var_259;
3820 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_259, 1);
3821 countingStream->write((uint64_t*)&cgen_var_259, 1 * 8);
3822 uint64_t cgen_var_260;
3823 countingStream->handleMapping()->mapHandles_VkBufferView_u64(&local_bufferView, &cgen_var_260, 1);
3824 countingStream->write((uint64_t*)&cgen_var_260, 1 * 8);
3825 // WARNING PTR CHECK
3826 uint64_t cgen_var_261 = (uint64_t)(uintptr_t)local_pAllocator;
3827 countingStream->putBe64(cgen_var_261);
3828 if (local_pAllocator)
3829 {
3830 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
3831 }
3832 }
3833 uint32_t packetSize_vkDestroyBufferView = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3834 countingStream->rewind();
3835 uint32_t opcode_vkDestroyBufferView = OP_vkDestroyBufferView;
3836 stream->write(&opcode_vkDestroyBufferView, sizeof(uint32_t));
3837 stream->write(&packetSize_vkDestroyBufferView, sizeof(uint32_t));
3838 uint64_t cgen_var_262;
3839 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_262, 1);
3840 stream->write((uint64_t*)&cgen_var_262, 1 * 8);
3841 uint64_t cgen_var_263;
3842 stream->handleMapping()->mapHandles_VkBufferView_u64(&local_bufferView, &cgen_var_263, 1);
3843 stream->write((uint64_t*)&cgen_var_263, 1 * 8);
3844 // WARNING PTR CHECK
3845 uint64_t cgen_var_264 = (uint64_t)(uintptr_t)local_pAllocator;
3846 stream->putBe64(cgen_var_264);
3847 if (local_pAllocator)
3848 {
3849 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
3850 }
3851 AEMU_SCOPED_TRACE("vkDestroyBufferView readParams");
3852 AEMU_SCOPED_TRACE("vkDestroyBufferView returnUnmarshal");
3853 resources->destroyMapping()->mapHandles_VkBufferView((VkBufferView*)&bufferView);
3854 mImpl->log("finish vkDestroyBufferView");;
3855 }
3856
vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage)3857 VkResult VkEncoder::vkCreateImage(
3858 VkDevice device,
3859 const VkImageCreateInfo* pCreateInfo,
3860 const VkAllocationCallbacks* pAllocator,
3861 VkImage* pImage)
3862 {
3863 AEMU_SCOPED_TRACE("vkCreateImage encode");
3864 mImpl->log("start vkCreateImage");
3865 auto stream = mImpl->stream();
3866 auto countingStream = mImpl->countingStream();
3867 auto resources = mImpl->resources();
3868 auto pool = mImpl->pool();
3869 stream->setHandleMapping(resources->unwrapMapping());
3870 VkDevice local_device;
3871 VkImageCreateInfo* local_pCreateInfo;
3872 VkAllocationCallbacks* local_pAllocator;
3873 local_device = device;
3874 local_pCreateInfo = nullptr;
3875 if (pCreateInfo)
3876 {
3877 local_pCreateInfo = (VkImageCreateInfo*)pool->alloc(sizeof(const VkImageCreateInfo));
3878 deepcopy_VkImageCreateInfo(pool, pCreateInfo, (VkImageCreateInfo*)(local_pCreateInfo));
3879 }
3880 local_pAllocator = nullptr;
3881 if (pAllocator)
3882 {
3883 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
3884 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
3885 }
3886 mImpl->resources()->unwrap_VkNativeBufferANDROID(pCreateInfo, local_pCreateInfo);
3887 local_pAllocator = nullptr;
3888 if (local_pCreateInfo)
3889 {
3890 transform_tohost_VkImageCreateInfo(mImpl->resources(), (VkImageCreateInfo*)(local_pCreateInfo));
3891 }
3892 if (local_pAllocator)
3893 {
3894 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
3895 }
3896 countingStream->rewind();
3897 {
3898 uint64_t cgen_var_265;
3899 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_265, 1);
3900 countingStream->write((uint64_t*)&cgen_var_265, 1 * 8);
3901 marshal_VkImageCreateInfo(countingStream, (VkImageCreateInfo*)(local_pCreateInfo));
3902 // WARNING PTR CHECK
3903 uint64_t cgen_var_266 = (uint64_t)(uintptr_t)local_pAllocator;
3904 countingStream->putBe64(cgen_var_266);
3905 if (local_pAllocator)
3906 {
3907 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
3908 }
3909 uint64_t cgen_var_267;
3910 countingStream->handleMapping()->mapHandles_VkImage_u64(pImage, &cgen_var_267, 1);
3911 countingStream->write((uint64_t*)&cgen_var_267, 8);
3912 }
3913 uint32_t packetSize_vkCreateImage = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3914 countingStream->rewind();
3915 uint32_t opcode_vkCreateImage = OP_vkCreateImage;
3916 stream->write(&opcode_vkCreateImage, sizeof(uint32_t));
3917 stream->write(&packetSize_vkCreateImage, sizeof(uint32_t));
3918 uint64_t cgen_var_268;
3919 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_268, 1);
3920 stream->write((uint64_t*)&cgen_var_268, 1 * 8);
3921 marshal_VkImageCreateInfo(stream, (VkImageCreateInfo*)(local_pCreateInfo));
3922 // WARNING PTR CHECK
3923 uint64_t cgen_var_269 = (uint64_t)(uintptr_t)local_pAllocator;
3924 stream->putBe64(cgen_var_269);
3925 if (local_pAllocator)
3926 {
3927 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
3928 }
3929 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
3930 uint64_t cgen_var_270;
3931 stream->handleMapping()->mapHandles_VkImage_u64(pImage, &cgen_var_270, 1);
3932 stream->write((uint64_t*)&cgen_var_270, 8);
3933 stream->setHandleMapping(resources->unwrapMapping());
3934 AEMU_SCOPED_TRACE("vkCreateImage readParams");
3935 stream->setHandleMapping(resources->createMapping());
3936 uint64_t cgen_var_271;
3937 stream->read((uint64_t*)&cgen_var_271, 8);
3938 stream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_271, (VkImage*)pImage, 1);
3939 stream->unsetHandleMapping();
3940 AEMU_SCOPED_TRACE("vkCreateImage returnUnmarshal");
3941 VkResult vkCreateImage_VkResult_return = (VkResult)0;
3942 stream->read(&vkCreateImage_VkResult_return, sizeof(VkResult));
3943 countingStream->clearPool();
3944 stream->clearPool();
3945 pool->freeAll();
3946 mImpl->log("finish vkCreateImage");;
3947 return vkCreateImage_VkResult_return;
3948 }
3949
vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)3950 void VkEncoder::vkDestroyImage(
3951 VkDevice device,
3952 VkImage image,
3953 const VkAllocationCallbacks* pAllocator)
3954 {
3955 AEMU_SCOPED_TRACE("vkDestroyImage encode");
3956 mImpl->log("start vkDestroyImage");
3957 auto stream = mImpl->stream();
3958 auto countingStream = mImpl->countingStream();
3959 auto resources = mImpl->resources();
3960 auto pool = mImpl->pool();
3961 stream->setHandleMapping(resources->unwrapMapping());
3962 VkDevice local_device;
3963 VkImage local_image;
3964 VkAllocationCallbacks* local_pAllocator;
3965 local_device = device;
3966 local_image = image;
3967 local_pAllocator = nullptr;
3968 if (pAllocator)
3969 {
3970 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
3971 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
3972 }
3973 local_pAllocator = nullptr;
3974 if (local_pAllocator)
3975 {
3976 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
3977 }
3978 countingStream->rewind();
3979 {
3980 uint64_t cgen_var_272;
3981 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_272, 1);
3982 countingStream->write((uint64_t*)&cgen_var_272, 1 * 8);
3983 uint64_t cgen_var_273;
3984 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_273, 1);
3985 countingStream->write((uint64_t*)&cgen_var_273, 1 * 8);
3986 // WARNING PTR CHECK
3987 uint64_t cgen_var_274 = (uint64_t)(uintptr_t)local_pAllocator;
3988 countingStream->putBe64(cgen_var_274);
3989 if (local_pAllocator)
3990 {
3991 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
3992 }
3993 }
3994 uint32_t packetSize_vkDestroyImage = 4 + 4 + (uint32_t)countingStream->bytesWritten();
3995 countingStream->rewind();
3996 uint32_t opcode_vkDestroyImage = OP_vkDestroyImage;
3997 stream->write(&opcode_vkDestroyImage, sizeof(uint32_t));
3998 stream->write(&packetSize_vkDestroyImage, sizeof(uint32_t));
3999 uint64_t cgen_var_275;
4000 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_275, 1);
4001 stream->write((uint64_t*)&cgen_var_275, 1 * 8);
4002 uint64_t cgen_var_276;
4003 stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_276, 1);
4004 stream->write((uint64_t*)&cgen_var_276, 1 * 8);
4005 // WARNING PTR CHECK
4006 uint64_t cgen_var_277 = (uint64_t)(uintptr_t)local_pAllocator;
4007 stream->putBe64(cgen_var_277);
4008 if (local_pAllocator)
4009 {
4010 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
4011 }
4012 AEMU_SCOPED_TRACE("vkDestroyImage readParams");
4013 AEMU_SCOPED_TRACE("vkDestroyImage returnUnmarshal");
4014 resources->destroyMapping()->mapHandles_VkImage((VkImage*)&image);
4015 mImpl->log("finish vkDestroyImage");;
4016 }
4017
vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)4018 void VkEncoder::vkGetImageSubresourceLayout(
4019 VkDevice device,
4020 VkImage image,
4021 const VkImageSubresource* pSubresource,
4022 VkSubresourceLayout* pLayout)
4023 {
4024 AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout encode");
4025 mImpl->log("start vkGetImageSubresourceLayout");
4026 auto stream = mImpl->stream();
4027 auto countingStream = mImpl->countingStream();
4028 auto resources = mImpl->resources();
4029 auto pool = mImpl->pool();
4030 stream->setHandleMapping(resources->unwrapMapping());
4031 VkDevice local_device;
4032 VkImage local_image;
4033 VkImageSubresource* local_pSubresource;
4034 local_device = device;
4035 local_image = image;
4036 local_pSubresource = nullptr;
4037 if (pSubresource)
4038 {
4039 local_pSubresource = (VkImageSubresource*)pool->alloc(sizeof(const VkImageSubresource));
4040 deepcopy_VkImageSubresource(pool, pSubresource, (VkImageSubresource*)(local_pSubresource));
4041 }
4042 if (local_pSubresource)
4043 {
4044 transform_tohost_VkImageSubresource(mImpl->resources(), (VkImageSubresource*)(local_pSubresource));
4045 }
4046 countingStream->rewind();
4047 {
4048 uint64_t cgen_var_278;
4049 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_278, 1);
4050 countingStream->write((uint64_t*)&cgen_var_278, 1 * 8);
4051 uint64_t cgen_var_279;
4052 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_279, 1);
4053 countingStream->write((uint64_t*)&cgen_var_279, 1 * 8);
4054 marshal_VkImageSubresource(countingStream, (VkImageSubresource*)(local_pSubresource));
4055 marshal_VkSubresourceLayout(countingStream, (VkSubresourceLayout*)(pLayout));
4056 }
4057 uint32_t packetSize_vkGetImageSubresourceLayout = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4058 countingStream->rewind();
4059 uint32_t opcode_vkGetImageSubresourceLayout = OP_vkGetImageSubresourceLayout;
4060 stream->write(&opcode_vkGetImageSubresourceLayout, sizeof(uint32_t));
4061 stream->write(&packetSize_vkGetImageSubresourceLayout, sizeof(uint32_t));
4062 uint64_t cgen_var_280;
4063 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_280, 1);
4064 stream->write((uint64_t*)&cgen_var_280, 1 * 8);
4065 uint64_t cgen_var_281;
4066 stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_281, 1);
4067 stream->write((uint64_t*)&cgen_var_281, 1 * 8);
4068 marshal_VkImageSubresource(stream, (VkImageSubresource*)(local_pSubresource));
4069 marshal_VkSubresourceLayout(stream, (VkSubresourceLayout*)(pLayout));
4070 AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout readParams");
4071 unmarshal_VkSubresourceLayout(stream, (VkSubresourceLayout*)(pLayout));
4072 if (pLayout)
4073 {
4074 transform_fromhost_VkSubresourceLayout(mImpl->resources(), (VkSubresourceLayout*)(pLayout));
4075 }
4076 AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout returnUnmarshal");
4077 mImpl->log("finish vkGetImageSubresourceLayout");;
4078 }
4079
vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView)4080 VkResult VkEncoder::vkCreateImageView(
4081 VkDevice device,
4082 const VkImageViewCreateInfo* pCreateInfo,
4083 const VkAllocationCallbacks* pAllocator,
4084 VkImageView* pView)
4085 {
4086 AEMU_SCOPED_TRACE("vkCreateImageView encode");
4087 mImpl->log("start vkCreateImageView");
4088 auto stream = mImpl->stream();
4089 auto countingStream = mImpl->countingStream();
4090 auto resources = mImpl->resources();
4091 auto pool = mImpl->pool();
4092 stream->setHandleMapping(resources->unwrapMapping());
4093 VkDevice local_device;
4094 VkImageViewCreateInfo* local_pCreateInfo;
4095 VkAllocationCallbacks* local_pAllocator;
4096 local_device = device;
4097 local_pCreateInfo = nullptr;
4098 if (pCreateInfo)
4099 {
4100 local_pCreateInfo = (VkImageViewCreateInfo*)pool->alloc(sizeof(const VkImageViewCreateInfo));
4101 deepcopy_VkImageViewCreateInfo(pool, pCreateInfo, (VkImageViewCreateInfo*)(local_pCreateInfo));
4102 }
4103 local_pAllocator = nullptr;
4104 if (pAllocator)
4105 {
4106 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
4107 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
4108 }
4109 local_pAllocator = nullptr;
4110 if (local_pCreateInfo)
4111 {
4112 transform_tohost_VkImageViewCreateInfo(mImpl->resources(), (VkImageViewCreateInfo*)(local_pCreateInfo));
4113 }
4114 if (local_pAllocator)
4115 {
4116 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
4117 }
4118 countingStream->rewind();
4119 {
4120 uint64_t cgen_var_282;
4121 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_282, 1);
4122 countingStream->write((uint64_t*)&cgen_var_282, 1 * 8);
4123 marshal_VkImageViewCreateInfo(countingStream, (VkImageViewCreateInfo*)(local_pCreateInfo));
4124 // WARNING PTR CHECK
4125 uint64_t cgen_var_283 = (uint64_t)(uintptr_t)local_pAllocator;
4126 countingStream->putBe64(cgen_var_283);
4127 if (local_pAllocator)
4128 {
4129 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
4130 }
4131 uint64_t cgen_var_284;
4132 countingStream->handleMapping()->mapHandles_VkImageView_u64(pView, &cgen_var_284, 1);
4133 countingStream->write((uint64_t*)&cgen_var_284, 8);
4134 }
4135 uint32_t packetSize_vkCreateImageView = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4136 countingStream->rewind();
4137 uint32_t opcode_vkCreateImageView = OP_vkCreateImageView;
4138 stream->write(&opcode_vkCreateImageView, sizeof(uint32_t));
4139 stream->write(&packetSize_vkCreateImageView, sizeof(uint32_t));
4140 uint64_t cgen_var_285;
4141 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_285, 1);
4142 stream->write((uint64_t*)&cgen_var_285, 1 * 8);
4143 marshal_VkImageViewCreateInfo(stream, (VkImageViewCreateInfo*)(local_pCreateInfo));
4144 // WARNING PTR CHECK
4145 uint64_t cgen_var_286 = (uint64_t)(uintptr_t)local_pAllocator;
4146 stream->putBe64(cgen_var_286);
4147 if (local_pAllocator)
4148 {
4149 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
4150 }
4151 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
4152 uint64_t cgen_var_287;
4153 stream->handleMapping()->mapHandles_VkImageView_u64(pView, &cgen_var_287, 1);
4154 stream->write((uint64_t*)&cgen_var_287, 8);
4155 stream->setHandleMapping(resources->unwrapMapping());
4156 AEMU_SCOPED_TRACE("vkCreateImageView readParams");
4157 stream->setHandleMapping(resources->createMapping());
4158 uint64_t cgen_var_288;
4159 stream->read((uint64_t*)&cgen_var_288, 8);
4160 stream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_288, (VkImageView*)pView, 1);
4161 stream->unsetHandleMapping();
4162 AEMU_SCOPED_TRACE("vkCreateImageView returnUnmarshal");
4163 VkResult vkCreateImageView_VkResult_return = (VkResult)0;
4164 stream->read(&vkCreateImageView_VkResult_return, sizeof(VkResult));
4165 countingStream->clearPool();
4166 stream->clearPool();
4167 pool->freeAll();
4168 mImpl->log("finish vkCreateImageView");;
4169 return vkCreateImageView_VkResult_return;
4170 }
4171
vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)4172 void VkEncoder::vkDestroyImageView(
4173 VkDevice device,
4174 VkImageView imageView,
4175 const VkAllocationCallbacks* pAllocator)
4176 {
4177 AEMU_SCOPED_TRACE("vkDestroyImageView encode");
4178 mImpl->log("start vkDestroyImageView");
4179 auto stream = mImpl->stream();
4180 auto countingStream = mImpl->countingStream();
4181 auto resources = mImpl->resources();
4182 auto pool = mImpl->pool();
4183 stream->setHandleMapping(resources->unwrapMapping());
4184 VkDevice local_device;
4185 VkImageView local_imageView;
4186 VkAllocationCallbacks* local_pAllocator;
4187 local_device = device;
4188 local_imageView = imageView;
4189 local_pAllocator = nullptr;
4190 if (pAllocator)
4191 {
4192 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
4193 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
4194 }
4195 local_pAllocator = nullptr;
4196 if (local_pAllocator)
4197 {
4198 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
4199 }
4200 countingStream->rewind();
4201 {
4202 uint64_t cgen_var_289;
4203 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_289, 1);
4204 countingStream->write((uint64_t*)&cgen_var_289, 1 * 8);
4205 uint64_t cgen_var_290;
4206 countingStream->handleMapping()->mapHandles_VkImageView_u64(&local_imageView, &cgen_var_290, 1);
4207 countingStream->write((uint64_t*)&cgen_var_290, 1 * 8);
4208 // WARNING PTR CHECK
4209 uint64_t cgen_var_291 = (uint64_t)(uintptr_t)local_pAllocator;
4210 countingStream->putBe64(cgen_var_291);
4211 if (local_pAllocator)
4212 {
4213 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
4214 }
4215 }
4216 uint32_t packetSize_vkDestroyImageView = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4217 countingStream->rewind();
4218 uint32_t opcode_vkDestroyImageView = OP_vkDestroyImageView;
4219 stream->write(&opcode_vkDestroyImageView, sizeof(uint32_t));
4220 stream->write(&packetSize_vkDestroyImageView, sizeof(uint32_t));
4221 uint64_t cgen_var_292;
4222 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_292, 1);
4223 stream->write((uint64_t*)&cgen_var_292, 1 * 8);
4224 uint64_t cgen_var_293;
4225 stream->handleMapping()->mapHandles_VkImageView_u64(&local_imageView, &cgen_var_293, 1);
4226 stream->write((uint64_t*)&cgen_var_293, 1 * 8);
4227 // WARNING PTR CHECK
4228 uint64_t cgen_var_294 = (uint64_t)(uintptr_t)local_pAllocator;
4229 stream->putBe64(cgen_var_294);
4230 if (local_pAllocator)
4231 {
4232 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
4233 }
4234 AEMU_SCOPED_TRACE("vkDestroyImageView readParams");
4235 AEMU_SCOPED_TRACE("vkDestroyImageView returnUnmarshal");
4236 resources->destroyMapping()->mapHandles_VkImageView((VkImageView*)&imageView);
4237 mImpl->log("finish vkDestroyImageView");;
4238 }
4239
vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)4240 VkResult VkEncoder::vkCreateShaderModule(
4241 VkDevice device,
4242 const VkShaderModuleCreateInfo* pCreateInfo,
4243 const VkAllocationCallbacks* pAllocator,
4244 VkShaderModule* pShaderModule)
4245 {
4246 AEMU_SCOPED_TRACE("vkCreateShaderModule encode");
4247 mImpl->log("start vkCreateShaderModule");
4248 auto stream = mImpl->stream();
4249 auto countingStream = mImpl->countingStream();
4250 auto resources = mImpl->resources();
4251 auto pool = mImpl->pool();
4252 stream->setHandleMapping(resources->unwrapMapping());
4253 VkDevice local_device;
4254 VkShaderModuleCreateInfo* local_pCreateInfo;
4255 VkAllocationCallbacks* local_pAllocator;
4256 local_device = device;
4257 local_pCreateInfo = nullptr;
4258 if (pCreateInfo)
4259 {
4260 local_pCreateInfo = (VkShaderModuleCreateInfo*)pool->alloc(sizeof(const VkShaderModuleCreateInfo));
4261 deepcopy_VkShaderModuleCreateInfo(pool, pCreateInfo, (VkShaderModuleCreateInfo*)(local_pCreateInfo));
4262 }
4263 local_pAllocator = nullptr;
4264 if (pAllocator)
4265 {
4266 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
4267 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
4268 }
4269 local_pAllocator = nullptr;
4270 if (local_pCreateInfo)
4271 {
4272 transform_tohost_VkShaderModuleCreateInfo(mImpl->resources(), (VkShaderModuleCreateInfo*)(local_pCreateInfo));
4273 }
4274 if (local_pAllocator)
4275 {
4276 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
4277 }
4278 countingStream->rewind();
4279 {
4280 uint64_t cgen_var_295;
4281 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_295, 1);
4282 countingStream->write((uint64_t*)&cgen_var_295, 1 * 8);
4283 marshal_VkShaderModuleCreateInfo(countingStream, (VkShaderModuleCreateInfo*)(local_pCreateInfo));
4284 // WARNING PTR CHECK
4285 uint64_t cgen_var_296 = (uint64_t)(uintptr_t)local_pAllocator;
4286 countingStream->putBe64(cgen_var_296);
4287 if (local_pAllocator)
4288 {
4289 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
4290 }
4291 uint64_t cgen_var_297;
4292 countingStream->handleMapping()->mapHandles_VkShaderModule_u64(pShaderModule, &cgen_var_297, 1);
4293 countingStream->write((uint64_t*)&cgen_var_297, 8);
4294 }
4295 uint32_t packetSize_vkCreateShaderModule = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4296 countingStream->rewind();
4297 uint32_t opcode_vkCreateShaderModule = OP_vkCreateShaderModule;
4298 stream->write(&opcode_vkCreateShaderModule, sizeof(uint32_t));
4299 stream->write(&packetSize_vkCreateShaderModule, sizeof(uint32_t));
4300 uint64_t cgen_var_298;
4301 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_298, 1);
4302 stream->write((uint64_t*)&cgen_var_298, 1 * 8);
4303 marshal_VkShaderModuleCreateInfo(stream, (VkShaderModuleCreateInfo*)(local_pCreateInfo));
4304 // WARNING PTR CHECK
4305 uint64_t cgen_var_299 = (uint64_t)(uintptr_t)local_pAllocator;
4306 stream->putBe64(cgen_var_299);
4307 if (local_pAllocator)
4308 {
4309 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
4310 }
4311 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
4312 uint64_t cgen_var_300;
4313 stream->handleMapping()->mapHandles_VkShaderModule_u64(pShaderModule, &cgen_var_300, 1);
4314 stream->write((uint64_t*)&cgen_var_300, 8);
4315 stream->setHandleMapping(resources->unwrapMapping());
4316 AEMU_SCOPED_TRACE("vkCreateShaderModule readParams");
4317 stream->setHandleMapping(resources->createMapping());
4318 uint64_t cgen_var_301;
4319 stream->read((uint64_t*)&cgen_var_301, 8);
4320 stream->handleMapping()->mapHandles_u64_VkShaderModule(&cgen_var_301, (VkShaderModule*)pShaderModule, 1);
4321 stream->unsetHandleMapping();
4322 AEMU_SCOPED_TRACE("vkCreateShaderModule returnUnmarshal");
4323 VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
4324 stream->read(&vkCreateShaderModule_VkResult_return, sizeof(VkResult));
4325 countingStream->clearPool();
4326 stream->clearPool();
4327 pool->freeAll();
4328 mImpl->log("finish vkCreateShaderModule");;
4329 return vkCreateShaderModule_VkResult_return;
4330 }
4331
vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)4332 void VkEncoder::vkDestroyShaderModule(
4333 VkDevice device,
4334 VkShaderModule shaderModule,
4335 const VkAllocationCallbacks* pAllocator)
4336 {
4337 AEMU_SCOPED_TRACE("vkDestroyShaderModule encode");
4338 mImpl->log("start vkDestroyShaderModule");
4339 auto stream = mImpl->stream();
4340 auto countingStream = mImpl->countingStream();
4341 auto resources = mImpl->resources();
4342 auto pool = mImpl->pool();
4343 stream->setHandleMapping(resources->unwrapMapping());
4344 VkDevice local_device;
4345 VkShaderModule local_shaderModule;
4346 VkAllocationCallbacks* local_pAllocator;
4347 local_device = device;
4348 local_shaderModule = shaderModule;
4349 local_pAllocator = nullptr;
4350 if (pAllocator)
4351 {
4352 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
4353 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
4354 }
4355 local_pAllocator = nullptr;
4356 if (local_pAllocator)
4357 {
4358 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
4359 }
4360 countingStream->rewind();
4361 {
4362 uint64_t cgen_var_302;
4363 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_302, 1);
4364 countingStream->write((uint64_t*)&cgen_var_302, 1 * 8);
4365 uint64_t cgen_var_303;
4366 countingStream->handleMapping()->mapHandles_VkShaderModule_u64(&local_shaderModule, &cgen_var_303, 1);
4367 countingStream->write((uint64_t*)&cgen_var_303, 1 * 8);
4368 // WARNING PTR CHECK
4369 uint64_t cgen_var_304 = (uint64_t)(uintptr_t)local_pAllocator;
4370 countingStream->putBe64(cgen_var_304);
4371 if (local_pAllocator)
4372 {
4373 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
4374 }
4375 }
4376 uint32_t packetSize_vkDestroyShaderModule = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4377 countingStream->rewind();
4378 uint32_t opcode_vkDestroyShaderModule = OP_vkDestroyShaderModule;
4379 stream->write(&opcode_vkDestroyShaderModule, sizeof(uint32_t));
4380 stream->write(&packetSize_vkDestroyShaderModule, sizeof(uint32_t));
4381 uint64_t cgen_var_305;
4382 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_305, 1);
4383 stream->write((uint64_t*)&cgen_var_305, 1 * 8);
4384 uint64_t cgen_var_306;
4385 stream->handleMapping()->mapHandles_VkShaderModule_u64(&local_shaderModule, &cgen_var_306, 1);
4386 stream->write((uint64_t*)&cgen_var_306, 1 * 8);
4387 // WARNING PTR CHECK
4388 uint64_t cgen_var_307 = (uint64_t)(uintptr_t)local_pAllocator;
4389 stream->putBe64(cgen_var_307);
4390 if (local_pAllocator)
4391 {
4392 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
4393 }
4394 AEMU_SCOPED_TRACE("vkDestroyShaderModule readParams");
4395 AEMU_SCOPED_TRACE("vkDestroyShaderModule returnUnmarshal");
4396 resources->destroyMapping()->mapHandles_VkShaderModule((VkShaderModule*)&shaderModule);
4397 mImpl->log("finish vkDestroyShaderModule");;
4398 }
4399
vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache)4400 VkResult VkEncoder::vkCreatePipelineCache(
4401 VkDevice device,
4402 const VkPipelineCacheCreateInfo* pCreateInfo,
4403 const VkAllocationCallbacks* pAllocator,
4404 VkPipelineCache* pPipelineCache)
4405 {
4406 AEMU_SCOPED_TRACE("vkCreatePipelineCache encode");
4407 mImpl->log("start vkCreatePipelineCache");
4408 auto stream = mImpl->stream();
4409 auto countingStream = mImpl->countingStream();
4410 auto resources = mImpl->resources();
4411 auto pool = mImpl->pool();
4412 stream->setHandleMapping(resources->unwrapMapping());
4413 VkDevice local_device;
4414 VkPipelineCacheCreateInfo* local_pCreateInfo;
4415 VkAllocationCallbacks* local_pAllocator;
4416 local_device = device;
4417 local_pCreateInfo = nullptr;
4418 if (pCreateInfo)
4419 {
4420 local_pCreateInfo = (VkPipelineCacheCreateInfo*)pool->alloc(sizeof(const VkPipelineCacheCreateInfo));
4421 deepcopy_VkPipelineCacheCreateInfo(pool, pCreateInfo, (VkPipelineCacheCreateInfo*)(local_pCreateInfo));
4422 }
4423 local_pAllocator = nullptr;
4424 if (pAllocator)
4425 {
4426 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
4427 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
4428 }
4429 local_pAllocator = nullptr;
4430 if (local_pCreateInfo)
4431 {
4432 transform_tohost_VkPipelineCacheCreateInfo(mImpl->resources(), (VkPipelineCacheCreateInfo*)(local_pCreateInfo));
4433 }
4434 if (local_pAllocator)
4435 {
4436 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
4437 }
4438 countingStream->rewind();
4439 {
4440 uint64_t cgen_var_308;
4441 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_308, 1);
4442 countingStream->write((uint64_t*)&cgen_var_308, 1 * 8);
4443 marshal_VkPipelineCacheCreateInfo(countingStream, (VkPipelineCacheCreateInfo*)(local_pCreateInfo));
4444 // WARNING PTR CHECK
4445 uint64_t cgen_var_309 = (uint64_t)(uintptr_t)local_pAllocator;
4446 countingStream->putBe64(cgen_var_309);
4447 if (local_pAllocator)
4448 {
4449 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
4450 }
4451 uint64_t cgen_var_310;
4452 countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(pPipelineCache, &cgen_var_310, 1);
4453 countingStream->write((uint64_t*)&cgen_var_310, 8);
4454 }
4455 uint32_t packetSize_vkCreatePipelineCache = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4456 countingStream->rewind();
4457 uint32_t opcode_vkCreatePipelineCache = OP_vkCreatePipelineCache;
4458 stream->write(&opcode_vkCreatePipelineCache, sizeof(uint32_t));
4459 stream->write(&packetSize_vkCreatePipelineCache, sizeof(uint32_t));
4460 uint64_t cgen_var_311;
4461 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_311, 1);
4462 stream->write((uint64_t*)&cgen_var_311, 1 * 8);
4463 marshal_VkPipelineCacheCreateInfo(stream, (VkPipelineCacheCreateInfo*)(local_pCreateInfo));
4464 // WARNING PTR CHECK
4465 uint64_t cgen_var_312 = (uint64_t)(uintptr_t)local_pAllocator;
4466 stream->putBe64(cgen_var_312);
4467 if (local_pAllocator)
4468 {
4469 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
4470 }
4471 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
4472 uint64_t cgen_var_313;
4473 stream->handleMapping()->mapHandles_VkPipelineCache_u64(pPipelineCache, &cgen_var_313, 1);
4474 stream->write((uint64_t*)&cgen_var_313, 8);
4475 stream->setHandleMapping(resources->unwrapMapping());
4476 AEMU_SCOPED_TRACE("vkCreatePipelineCache readParams");
4477 stream->setHandleMapping(resources->createMapping());
4478 uint64_t cgen_var_314;
4479 stream->read((uint64_t*)&cgen_var_314, 8);
4480 stream->handleMapping()->mapHandles_u64_VkPipelineCache(&cgen_var_314, (VkPipelineCache*)pPipelineCache, 1);
4481 stream->unsetHandleMapping();
4482 AEMU_SCOPED_TRACE("vkCreatePipelineCache returnUnmarshal");
4483 VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
4484 stream->read(&vkCreatePipelineCache_VkResult_return, sizeof(VkResult));
4485 countingStream->clearPool();
4486 stream->clearPool();
4487 pool->freeAll();
4488 mImpl->log("finish vkCreatePipelineCache");;
4489 return vkCreatePipelineCache_VkResult_return;
4490 }
4491
vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)4492 void VkEncoder::vkDestroyPipelineCache(
4493 VkDevice device,
4494 VkPipelineCache pipelineCache,
4495 const VkAllocationCallbacks* pAllocator)
4496 {
4497 AEMU_SCOPED_TRACE("vkDestroyPipelineCache encode");
4498 mImpl->log("start vkDestroyPipelineCache");
4499 auto stream = mImpl->stream();
4500 auto countingStream = mImpl->countingStream();
4501 auto resources = mImpl->resources();
4502 auto pool = mImpl->pool();
4503 stream->setHandleMapping(resources->unwrapMapping());
4504 VkDevice local_device;
4505 VkPipelineCache local_pipelineCache;
4506 VkAllocationCallbacks* local_pAllocator;
4507 local_device = device;
4508 local_pipelineCache = pipelineCache;
4509 local_pAllocator = nullptr;
4510 if (pAllocator)
4511 {
4512 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
4513 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
4514 }
4515 local_pAllocator = nullptr;
4516 if (local_pAllocator)
4517 {
4518 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
4519 }
4520 countingStream->rewind();
4521 {
4522 uint64_t cgen_var_315;
4523 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_315, 1);
4524 countingStream->write((uint64_t*)&cgen_var_315, 1 * 8);
4525 uint64_t cgen_var_316;
4526 countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_316, 1);
4527 countingStream->write((uint64_t*)&cgen_var_316, 1 * 8);
4528 // WARNING PTR CHECK
4529 uint64_t cgen_var_317 = (uint64_t)(uintptr_t)local_pAllocator;
4530 countingStream->putBe64(cgen_var_317);
4531 if (local_pAllocator)
4532 {
4533 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
4534 }
4535 }
4536 uint32_t packetSize_vkDestroyPipelineCache = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4537 countingStream->rewind();
4538 uint32_t opcode_vkDestroyPipelineCache = OP_vkDestroyPipelineCache;
4539 stream->write(&opcode_vkDestroyPipelineCache, sizeof(uint32_t));
4540 stream->write(&packetSize_vkDestroyPipelineCache, sizeof(uint32_t));
4541 uint64_t cgen_var_318;
4542 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_318, 1);
4543 stream->write((uint64_t*)&cgen_var_318, 1 * 8);
4544 uint64_t cgen_var_319;
4545 stream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_319, 1);
4546 stream->write((uint64_t*)&cgen_var_319, 1 * 8);
4547 // WARNING PTR CHECK
4548 uint64_t cgen_var_320 = (uint64_t)(uintptr_t)local_pAllocator;
4549 stream->putBe64(cgen_var_320);
4550 if (local_pAllocator)
4551 {
4552 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
4553 }
4554 AEMU_SCOPED_TRACE("vkDestroyPipelineCache readParams");
4555 AEMU_SCOPED_TRACE("vkDestroyPipelineCache returnUnmarshal");
4556 resources->destroyMapping()->mapHandles_VkPipelineCache((VkPipelineCache*)&pipelineCache);
4557 mImpl->log("finish vkDestroyPipelineCache");;
4558 }
4559
vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData)4560 VkResult VkEncoder::vkGetPipelineCacheData(
4561 VkDevice device,
4562 VkPipelineCache pipelineCache,
4563 size_t* pDataSize,
4564 void* pData)
4565 {
4566 AEMU_SCOPED_TRACE("vkGetPipelineCacheData encode");
4567 mImpl->log("start vkGetPipelineCacheData");
4568 auto stream = mImpl->stream();
4569 auto countingStream = mImpl->countingStream();
4570 auto resources = mImpl->resources();
4571 auto pool = mImpl->pool();
4572 stream->setHandleMapping(resources->unwrapMapping());
4573 VkDevice local_device;
4574 VkPipelineCache local_pipelineCache;
4575 local_device = device;
4576 local_pipelineCache = pipelineCache;
4577 countingStream->rewind();
4578 {
4579 uint64_t cgen_var_321;
4580 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_321, 1);
4581 countingStream->write((uint64_t*)&cgen_var_321, 1 * 8);
4582 uint64_t cgen_var_322;
4583 countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_322, 1);
4584 countingStream->write((uint64_t*)&cgen_var_322, 1 * 8);
4585 // WARNING PTR CHECK
4586 uint64_t cgen_var_323 = (uint64_t)(uintptr_t)pDataSize;
4587 countingStream->putBe64(cgen_var_323);
4588 if (pDataSize)
4589 {
4590 uint64_t cgen_var_324 = (uint64_t)(*pDataSize);
4591 countingStream->putBe64(cgen_var_324);
4592 }
4593 // WARNING PTR CHECK
4594 uint64_t cgen_var_325 = (uint64_t)(uintptr_t)pData;
4595 countingStream->putBe64(cgen_var_325);
4596 if (pData)
4597 {
4598 countingStream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
4599 }
4600 }
4601 uint32_t packetSize_vkGetPipelineCacheData = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4602 countingStream->rewind();
4603 uint32_t opcode_vkGetPipelineCacheData = OP_vkGetPipelineCacheData;
4604 stream->write(&opcode_vkGetPipelineCacheData, sizeof(uint32_t));
4605 stream->write(&packetSize_vkGetPipelineCacheData, sizeof(uint32_t));
4606 uint64_t cgen_var_326;
4607 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_326, 1);
4608 stream->write((uint64_t*)&cgen_var_326, 1 * 8);
4609 uint64_t cgen_var_327;
4610 stream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_327, 1);
4611 stream->write((uint64_t*)&cgen_var_327, 1 * 8);
4612 // WARNING PTR CHECK
4613 uint64_t cgen_var_328 = (uint64_t)(uintptr_t)pDataSize;
4614 stream->putBe64(cgen_var_328);
4615 if (pDataSize)
4616 {
4617 uint64_t cgen_var_329 = (uint64_t)(*pDataSize);
4618 stream->putBe64(cgen_var_329);
4619 }
4620 // WARNING PTR CHECK
4621 uint64_t cgen_var_330 = (uint64_t)(uintptr_t)pData;
4622 stream->putBe64(cgen_var_330);
4623 if (pData)
4624 {
4625 stream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
4626 }
4627 AEMU_SCOPED_TRACE("vkGetPipelineCacheData readParams");
4628 // WARNING PTR CHECK
4629 size_t* check_pDataSize;
4630 check_pDataSize = (size_t*)(uintptr_t)stream->getBe64();
4631 if (pDataSize)
4632 {
4633 if (!(check_pDataSize))
4634 {
4635 fprintf(stderr, "fatal: pDataSize inconsistent between guest and host\n");
4636 }
4637 (*pDataSize) = (size_t)stream->getBe64();
4638 }
4639 // WARNING PTR CHECK
4640 void* check_pData;
4641 check_pData = (void*)(uintptr_t)stream->getBe64();
4642 if (pData)
4643 {
4644 if (!(check_pData))
4645 {
4646 fprintf(stderr, "fatal: pData inconsistent between guest and host\n");
4647 }
4648 stream->read((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
4649 }
4650 AEMU_SCOPED_TRACE("vkGetPipelineCacheData returnUnmarshal");
4651 VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
4652 stream->read(&vkGetPipelineCacheData_VkResult_return, sizeof(VkResult));
4653 countingStream->clearPool();
4654 stream->clearPool();
4655 pool->freeAll();
4656 mImpl->log("finish vkGetPipelineCacheData");;
4657 return vkGetPipelineCacheData_VkResult_return;
4658 }
4659
vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches)4660 VkResult VkEncoder::vkMergePipelineCaches(
4661 VkDevice device,
4662 VkPipelineCache dstCache,
4663 uint32_t srcCacheCount,
4664 const VkPipelineCache* pSrcCaches)
4665 {
4666 AEMU_SCOPED_TRACE("vkMergePipelineCaches encode");
4667 mImpl->log("start vkMergePipelineCaches");
4668 auto stream = mImpl->stream();
4669 auto countingStream = mImpl->countingStream();
4670 auto resources = mImpl->resources();
4671 auto pool = mImpl->pool();
4672 stream->setHandleMapping(resources->unwrapMapping());
4673 VkDevice local_device;
4674 VkPipelineCache local_dstCache;
4675 uint32_t local_srcCacheCount;
4676 VkPipelineCache* local_pSrcCaches;
4677 local_device = device;
4678 local_dstCache = dstCache;
4679 local_srcCacheCount = srcCacheCount;
4680 local_pSrcCaches = nullptr;
4681 if (pSrcCaches)
4682 {
4683 local_pSrcCaches = (VkPipelineCache*)pool->dupArray(pSrcCaches, ((srcCacheCount)) * sizeof(const VkPipelineCache));
4684 }
4685 countingStream->rewind();
4686 {
4687 uint64_t cgen_var_334;
4688 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_334, 1);
4689 countingStream->write((uint64_t*)&cgen_var_334, 1 * 8);
4690 uint64_t cgen_var_335;
4691 countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_dstCache, &cgen_var_335, 1);
4692 countingStream->write((uint64_t*)&cgen_var_335, 1 * 8);
4693 countingStream->write((uint32_t*)&local_srcCacheCount, sizeof(uint32_t));
4694 if (((srcCacheCount)))
4695 {
4696 uint64_t* cgen_var_336;
4697 countingStream->alloc((void**)&cgen_var_336, ((srcCacheCount)) * 8);
4698 countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(local_pSrcCaches, cgen_var_336, ((srcCacheCount)));
4699 countingStream->write((uint64_t*)cgen_var_336, ((srcCacheCount)) * 8);
4700 }
4701 }
4702 uint32_t packetSize_vkMergePipelineCaches = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4703 countingStream->rewind();
4704 uint32_t opcode_vkMergePipelineCaches = OP_vkMergePipelineCaches;
4705 stream->write(&opcode_vkMergePipelineCaches, sizeof(uint32_t));
4706 stream->write(&packetSize_vkMergePipelineCaches, sizeof(uint32_t));
4707 uint64_t cgen_var_337;
4708 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_337, 1);
4709 stream->write((uint64_t*)&cgen_var_337, 1 * 8);
4710 uint64_t cgen_var_338;
4711 stream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_dstCache, &cgen_var_338, 1);
4712 stream->write((uint64_t*)&cgen_var_338, 1 * 8);
4713 stream->write((uint32_t*)&local_srcCacheCount, sizeof(uint32_t));
4714 if (((srcCacheCount)))
4715 {
4716 uint64_t* cgen_var_339;
4717 stream->alloc((void**)&cgen_var_339, ((srcCacheCount)) * 8);
4718 stream->handleMapping()->mapHandles_VkPipelineCache_u64(local_pSrcCaches, cgen_var_339, ((srcCacheCount)));
4719 stream->write((uint64_t*)cgen_var_339, ((srcCacheCount)) * 8);
4720 }
4721 AEMU_SCOPED_TRACE("vkMergePipelineCaches readParams");
4722 AEMU_SCOPED_TRACE("vkMergePipelineCaches returnUnmarshal");
4723 VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
4724 stream->read(&vkMergePipelineCaches_VkResult_return, sizeof(VkResult));
4725 countingStream->clearPool();
4726 stream->clearPool();
4727 pool->freeAll();
4728 mImpl->log("finish vkMergePipelineCaches");;
4729 return vkMergePipelineCaches_VkResult_return;
4730 }
4731
vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)4732 VkResult VkEncoder::vkCreateGraphicsPipelines(
4733 VkDevice device,
4734 VkPipelineCache pipelineCache,
4735 uint32_t createInfoCount,
4736 const VkGraphicsPipelineCreateInfo* pCreateInfos,
4737 const VkAllocationCallbacks* pAllocator,
4738 VkPipeline* pPipelines)
4739 {
4740 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines encode");
4741 mImpl->log("start vkCreateGraphicsPipelines");
4742 auto stream = mImpl->stream();
4743 auto countingStream = mImpl->countingStream();
4744 auto resources = mImpl->resources();
4745 auto pool = mImpl->pool();
4746 stream->setHandleMapping(resources->unwrapMapping());
4747 VkDevice local_device;
4748 VkPipelineCache local_pipelineCache;
4749 uint32_t local_createInfoCount;
4750 VkGraphicsPipelineCreateInfo* local_pCreateInfos;
4751 VkAllocationCallbacks* local_pAllocator;
4752 local_device = device;
4753 local_pipelineCache = pipelineCache;
4754 local_createInfoCount = createInfoCount;
4755 local_pCreateInfos = nullptr;
4756 if (pCreateInfos)
4757 {
4758 local_pCreateInfos = (VkGraphicsPipelineCreateInfo*)pool->alloc(((createInfoCount)) * sizeof(const VkGraphicsPipelineCreateInfo));
4759 for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
4760 {
4761 deepcopy_VkGraphicsPipelineCreateInfo(pool, pCreateInfos + i, (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i));
4762 }
4763 }
4764 local_pAllocator = nullptr;
4765 if (pAllocator)
4766 {
4767 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
4768 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
4769 }
4770 local_pAllocator = nullptr;
4771 if (local_pCreateInfos)
4772 {
4773 for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
4774 {
4775 transform_tohost_VkGraphicsPipelineCreateInfo(mImpl->resources(), (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i));
4776 }
4777 }
4778 if (local_pAllocator)
4779 {
4780 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
4781 }
4782 countingStream->rewind();
4783 {
4784 uint64_t cgen_var_340;
4785 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_340, 1);
4786 countingStream->write((uint64_t*)&cgen_var_340, 1 * 8);
4787 uint64_t cgen_var_341;
4788 countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_341, 1);
4789 countingStream->write((uint64_t*)&cgen_var_341, 1 * 8);
4790 countingStream->write((uint32_t*)&local_createInfoCount, sizeof(uint32_t));
4791 for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
4792 {
4793 marshal_VkGraphicsPipelineCreateInfo(countingStream, (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i));
4794 }
4795 // WARNING PTR CHECK
4796 uint64_t cgen_var_342 = (uint64_t)(uintptr_t)local_pAllocator;
4797 countingStream->putBe64(cgen_var_342);
4798 if (local_pAllocator)
4799 {
4800 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
4801 }
4802 if (((createInfoCount)))
4803 {
4804 uint64_t* cgen_var_343;
4805 countingStream->alloc((void**)&cgen_var_343, ((createInfoCount)) * 8);
4806 countingStream->handleMapping()->mapHandles_VkPipeline_u64(pPipelines, cgen_var_343, ((createInfoCount)));
4807 countingStream->write((uint64_t*)cgen_var_343, ((createInfoCount)) * 8);
4808 }
4809 }
4810 uint32_t packetSize_vkCreateGraphicsPipelines = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4811 countingStream->rewind();
4812 uint32_t opcode_vkCreateGraphicsPipelines = OP_vkCreateGraphicsPipelines;
4813 stream->write(&opcode_vkCreateGraphicsPipelines, sizeof(uint32_t));
4814 stream->write(&packetSize_vkCreateGraphicsPipelines, sizeof(uint32_t));
4815 uint64_t cgen_var_344;
4816 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_344, 1);
4817 stream->write((uint64_t*)&cgen_var_344, 1 * 8);
4818 uint64_t cgen_var_345;
4819 stream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_345, 1);
4820 stream->write((uint64_t*)&cgen_var_345, 1 * 8);
4821 stream->write((uint32_t*)&local_createInfoCount, sizeof(uint32_t));
4822 for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
4823 {
4824 marshal_VkGraphicsPipelineCreateInfo(stream, (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i));
4825 }
4826 // WARNING PTR CHECK
4827 uint64_t cgen_var_346 = (uint64_t)(uintptr_t)local_pAllocator;
4828 stream->putBe64(cgen_var_346);
4829 if (local_pAllocator)
4830 {
4831 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
4832 }
4833 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
4834 if (((createInfoCount)))
4835 {
4836 uint64_t* cgen_var_347;
4837 stream->alloc((void**)&cgen_var_347, ((createInfoCount)) * 8);
4838 stream->handleMapping()->mapHandles_VkPipeline_u64(pPipelines, cgen_var_347, ((createInfoCount)));
4839 stream->write((uint64_t*)cgen_var_347, ((createInfoCount)) * 8);
4840 }
4841 stream->setHandleMapping(resources->unwrapMapping());
4842 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines readParams");
4843 stream->setHandleMapping(resources->createMapping());
4844 if (((createInfoCount)))
4845 {
4846 uint64_t* cgen_var_348;
4847 stream->alloc((void**)&cgen_var_348, ((createInfoCount)) * 8);
4848 stream->read((uint64_t*)cgen_var_348, ((createInfoCount)) * 8);
4849 stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_348, (VkPipeline*)pPipelines, ((createInfoCount)));
4850 }
4851 stream->unsetHandleMapping();
4852 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines returnUnmarshal");
4853 VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
4854 stream->read(&vkCreateGraphicsPipelines_VkResult_return, sizeof(VkResult));
4855 countingStream->clearPool();
4856 stream->clearPool();
4857 pool->freeAll();
4858 mImpl->log("finish vkCreateGraphicsPipelines");;
4859 return vkCreateGraphicsPipelines_VkResult_return;
4860 }
4861
vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)4862 VkResult VkEncoder::vkCreateComputePipelines(
4863 VkDevice device,
4864 VkPipelineCache pipelineCache,
4865 uint32_t createInfoCount,
4866 const VkComputePipelineCreateInfo* pCreateInfos,
4867 const VkAllocationCallbacks* pAllocator,
4868 VkPipeline* pPipelines)
4869 {
4870 AEMU_SCOPED_TRACE("vkCreateComputePipelines encode");
4871 mImpl->log("start vkCreateComputePipelines");
4872 auto stream = mImpl->stream();
4873 auto countingStream = mImpl->countingStream();
4874 auto resources = mImpl->resources();
4875 auto pool = mImpl->pool();
4876 stream->setHandleMapping(resources->unwrapMapping());
4877 VkDevice local_device;
4878 VkPipelineCache local_pipelineCache;
4879 uint32_t local_createInfoCount;
4880 VkComputePipelineCreateInfo* local_pCreateInfos;
4881 VkAllocationCallbacks* local_pAllocator;
4882 local_device = device;
4883 local_pipelineCache = pipelineCache;
4884 local_createInfoCount = createInfoCount;
4885 local_pCreateInfos = nullptr;
4886 if (pCreateInfos)
4887 {
4888 local_pCreateInfos = (VkComputePipelineCreateInfo*)pool->alloc(((createInfoCount)) * sizeof(const VkComputePipelineCreateInfo));
4889 for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
4890 {
4891 deepcopy_VkComputePipelineCreateInfo(pool, pCreateInfos + i, (VkComputePipelineCreateInfo*)(local_pCreateInfos + i));
4892 }
4893 }
4894 local_pAllocator = nullptr;
4895 if (pAllocator)
4896 {
4897 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
4898 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
4899 }
4900 local_pAllocator = nullptr;
4901 if (local_pCreateInfos)
4902 {
4903 for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
4904 {
4905 transform_tohost_VkComputePipelineCreateInfo(mImpl->resources(), (VkComputePipelineCreateInfo*)(local_pCreateInfos + i));
4906 }
4907 }
4908 if (local_pAllocator)
4909 {
4910 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
4911 }
4912 countingStream->rewind();
4913 {
4914 uint64_t cgen_var_349;
4915 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_349, 1);
4916 countingStream->write((uint64_t*)&cgen_var_349, 1 * 8);
4917 uint64_t cgen_var_350;
4918 countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_350, 1);
4919 countingStream->write((uint64_t*)&cgen_var_350, 1 * 8);
4920 countingStream->write((uint32_t*)&local_createInfoCount, sizeof(uint32_t));
4921 for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
4922 {
4923 marshal_VkComputePipelineCreateInfo(countingStream, (VkComputePipelineCreateInfo*)(local_pCreateInfos + i));
4924 }
4925 // WARNING PTR CHECK
4926 uint64_t cgen_var_351 = (uint64_t)(uintptr_t)local_pAllocator;
4927 countingStream->putBe64(cgen_var_351);
4928 if (local_pAllocator)
4929 {
4930 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
4931 }
4932 if (((createInfoCount)))
4933 {
4934 uint64_t* cgen_var_352;
4935 countingStream->alloc((void**)&cgen_var_352, ((createInfoCount)) * 8);
4936 countingStream->handleMapping()->mapHandles_VkPipeline_u64(pPipelines, cgen_var_352, ((createInfoCount)));
4937 countingStream->write((uint64_t*)cgen_var_352, ((createInfoCount)) * 8);
4938 }
4939 }
4940 uint32_t packetSize_vkCreateComputePipelines = 4 + 4 + (uint32_t)countingStream->bytesWritten();
4941 countingStream->rewind();
4942 uint32_t opcode_vkCreateComputePipelines = OP_vkCreateComputePipelines;
4943 stream->write(&opcode_vkCreateComputePipelines, sizeof(uint32_t));
4944 stream->write(&packetSize_vkCreateComputePipelines, sizeof(uint32_t));
4945 uint64_t cgen_var_353;
4946 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_353, 1);
4947 stream->write((uint64_t*)&cgen_var_353, 1 * 8);
4948 uint64_t cgen_var_354;
4949 stream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_354, 1);
4950 stream->write((uint64_t*)&cgen_var_354, 1 * 8);
4951 stream->write((uint32_t*)&local_createInfoCount, sizeof(uint32_t));
4952 for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
4953 {
4954 marshal_VkComputePipelineCreateInfo(stream, (VkComputePipelineCreateInfo*)(local_pCreateInfos + i));
4955 }
4956 // WARNING PTR CHECK
4957 uint64_t cgen_var_355 = (uint64_t)(uintptr_t)local_pAllocator;
4958 stream->putBe64(cgen_var_355);
4959 if (local_pAllocator)
4960 {
4961 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
4962 }
4963 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
4964 if (((createInfoCount)))
4965 {
4966 uint64_t* cgen_var_356;
4967 stream->alloc((void**)&cgen_var_356, ((createInfoCount)) * 8);
4968 stream->handleMapping()->mapHandles_VkPipeline_u64(pPipelines, cgen_var_356, ((createInfoCount)));
4969 stream->write((uint64_t*)cgen_var_356, ((createInfoCount)) * 8);
4970 }
4971 stream->setHandleMapping(resources->unwrapMapping());
4972 AEMU_SCOPED_TRACE("vkCreateComputePipelines readParams");
4973 stream->setHandleMapping(resources->createMapping());
4974 if (((createInfoCount)))
4975 {
4976 uint64_t* cgen_var_357;
4977 stream->alloc((void**)&cgen_var_357, ((createInfoCount)) * 8);
4978 stream->read((uint64_t*)cgen_var_357, ((createInfoCount)) * 8);
4979 stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_357, (VkPipeline*)pPipelines, ((createInfoCount)));
4980 }
4981 stream->unsetHandleMapping();
4982 AEMU_SCOPED_TRACE("vkCreateComputePipelines returnUnmarshal");
4983 VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
4984 stream->read(&vkCreateComputePipelines_VkResult_return, sizeof(VkResult));
4985 countingStream->clearPool();
4986 stream->clearPool();
4987 pool->freeAll();
4988 mImpl->log("finish vkCreateComputePipelines");;
4989 return vkCreateComputePipelines_VkResult_return;
4990 }
4991
vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)4992 void VkEncoder::vkDestroyPipeline(
4993 VkDevice device,
4994 VkPipeline pipeline,
4995 const VkAllocationCallbacks* pAllocator)
4996 {
4997 AEMU_SCOPED_TRACE("vkDestroyPipeline encode");
4998 mImpl->log("start vkDestroyPipeline");
4999 auto stream = mImpl->stream();
5000 auto countingStream = mImpl->countingStream();
5001 auto resources = mImpl->resources();
5002 auto pool = mImpl->pool();
5003 stream->setHandleMapping(resources->unwrapMapping());
5004 VkDevice local_device;
5005 VkPipeline local_pipeline;
5006 VkAllocationCallbacks* local_pAllocator;
5007 local_device = device;
5008 local_pipeline = pipeline;
5009 local_pAllocator = nullptr;
5010 if (pAllocator)
5011 {
5012 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
5013 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
5014 }
5015 local_pAllocator = nullptr;
5016 if (local_pAllocator)
5017 {
5018 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
5019 }
5020 countingStream->rewind();
5021 {
5022 uint64_t cgen_var_358;
5023 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_358, 1);
5024 countingStream->write((uint64_t*)&cgen_var_358, 1 * 8);
5025 uint64_t cgen_var_359;
5026 countingStream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_359, 1);
5027 countingStream->write((uint64_t*)&cgen_var_359, 1 * 8);
5028 // WARNING PTR CHECK
5029 uint64_t cgen_var_360 = (uint64_t)(uintptr_t)local_pAllocator;
5030 countingStream->putBe64(cgen_var_360);
5031 if (local_pAllocator)
5032 {
5033 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
5034 }
5035 }
5036 uint32_t packetSize_vkDestroyPipeline = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5037 countingStream->rewind();
5038 uint32_t opcode_vkDestroyPipeline = OP_vkDestroyPipeline;
5039 stream->write(&opcode_vkDestroyPipeline, sizeof(uint32_t));
5040 stream->write(&packetSize_vkDestroyPipeline, sizeof(uint32_t));
5041 uint64_t cgen_var_361;
5042 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_361, 1);
5043 stream->write((uint64_t*)&cgen_var_361, 1 * 8);
5044 uint64_t cgen_var_362;
5045 stream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_362, 1);
5046 stream->write((uint64_t*)&cgen_var_362, 1 * 8);
5047 // WARNING PTR CHECK
5048 uint64_t cgen_var_363 = (uint64_t)(uintptr_t)local_pAllocator;
5049 stream->putBe64(cgen_var_363);
5050 if (local_pAllocator)
5051 {
5052 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
5053 }
5054 AEMU_SCOPED_TRACE("vkDestroyPipeline readParams");
5055 AEMU_SCOPED_TRACE("vkDestroyPipeline returnUnmarshal");
5056 resources->destroyMapping()->mapHandles_VkPipeline((VkPipeline*)&pipeline);
5057 mImpl->log("finish vkDestroyPipeline");;
5058 }
5059
vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout)5060 VkResult VkEncoder::vkCreatePipelineLayout(
5061 VkDevice device,
5062 const VkPipelineLayoutCreateInfo* pCreateInfo,
5063 const VkAllocationCallbacks* pAllocator,
5064 VkPipelineLayout* pPipelineLayout)
5065 {
5066 AEMU_SCOPED_TRACE("vkCreatePipelineLayout encode");
5067 mImpl->log("start vkCreatePipelineLayout");
5068 auto stream = mImpl->stream();
5069 auto countingStream = mImpl->countingStream();
5070 auto resources = mImpl->resources();
5071 auto pool = mImpl->pool();
5072 stream->setHandleMapping(resources->unwrapMapping());
5073 VkDevice local_device;
5074 VkPipelineLayoutCreateInfo* local_pCreateInfo;
5075 VkAllocationCallbacks* local_pAllocator;
5076 local_device = device;
5077 local_pCreateInfo = nullptr;
5078 if (pCreateInfo)
5079 {
5080 local_pCreateInfo = (VkPipelineLayoutCreateInfo*)pool->alloc(sizeof(const VkPipelineLayoutCreateInfo));
5081 deepcopy_VkPipelineLayoutCreateInfo(pool, pCreateInfo, (VkPipelineLayoutCreateInfo*)(local_pCreateInfo));
5082 }
5083 local_pAllocator = nullptr;
5084 if (pAllocator)
5085 {
5086 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
5087 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
5088 }
5089 local_pAllocator = nullptr;
5090 if (local_pCreateInfo)
5091 {
5092 transform_tohost_VkPipelineLayoutCreateInfo(mImpl->resources(), (VkPipelineLayoutCreateInfo*)(local_pCreateInfo));
5093 }
5094 if (local_pAllocator)
5095 {
5096 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
5097 }
5098 countingStream->rewind();
5099 {
5100 uint64_t cgen_var_364;
5101 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_364, 1);
5102 countingStream->write((uint64_t*)&cgen_var_364, 1 * 8);
5103 marshal_VkPipelineLayoutCreateInfo(countingStream, (VkPipelineLayoutCreateInfo*)(local_pCreateInfo));
5104 // WARNING PTR CHECK
5105 uint64_t cgen_var_365 = (uint64_t)(uintptr_t)local_pAllocator;
5106 countingStream->putBe64(cgen_var_365);
5107 if (local_pAllocator)
5108 {
5109 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
5110 }
5111 uint64_t cgen_var_366;
5112 countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(pPipelineLayout, &cgen_var_366, 1);
5113 countingStream->write((uint64_t*)&cgen_var_366, 8);
5114 }
5115 uint32_t packetSize_vkCreatePipelineLayout = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5116 countingStream->rewind();
5117 uint32_t opcode_vkCreatePipelineLayout = OP_vkCreatePipelineLayout;
5118 stream->write(&opcode_vkCreatePipelineLayout, sizeof(uint32_t));
5119 stream->write(&packetSize_vkCreatePipelineLayout, sizeof(uint32_t));
5120 uint64_t cgen_var_367;
5121 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_367, 1);
5122 stream->write((uint64_t*)&cgen_var_367, 1 * 8);
5123 marshal_VkPipelineLayoutCreateInfo(stream, (VkPipelineLayoutCreateInfo*)(local_pCreateInfo));
5124 // WARNING PTR CHECK
5125 uint64_t cgen_var_368 = (uint64_t)(uintptr_t)local_pAllocator;
5126 stream->putBe64(cgen_var_368);
5127 if (local_pAllocator)
5128 {
5129 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
5130 }
5131 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
5132 uint64_t cgen_var_369;
5133 stream->handleMapping()->mapHandles_VkPipelineLayout_u64(pPipelineLayout, &cgen_var_369, 1);
5134 stream->write((uint64_t*)&cgen_var_369, 8);
5135 stream->setHandleMapping(resources->unwrapMapping());
5136 AEMU_SCOPED_TRACE("vkCreatePipelineLayout readParams");
5137 stream->setHandleMapping(resources->createMapping());
5138 uint64_t cgen_var_370;
5139 stream->read((uint64_t*)&cgen_var_370, 8);
5140 stream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_370, (VkPipelineLayout*)pPipelineLayout, 1);
5141 stream->unsetHandleMapping();
5142 AEMU_SCOPED_TRACE("vkCreatePipelineLayout returnUnmarshal");
5143 VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
5144 stream->read(&vkCreatePipelineLayout_VkResult_return, sizeof(VkResult));
5145 countingStream->clearPool();
5146 stream->clearPool();
5147 pool->freeAll();
5148 mImpl->log("finish vkCreatePipelineLayout");;
5149 return vkCreatePipelineLayout_VkResult_return;
5150 }
5151
vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)5152 void VkEncoder::vkDestroyPipelineLayout(
5153 VkDevice device,
5154 VkPipelineLayout pipelineLayout,
5155 const VkAllocationCallbacks* pAllocator)
5156 {
5157 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout encode");
5158 mImpl->log("start vkDestroyPipelineLayout");
5159 auto stream = mImpl->stream();
5160 auto countingStream = mImpl->countingStream();
5161 auto resources = mImpl->resources();
5162 auto pool = mImpl->pool();
5163 stream->setHandleMapping(resources->unwrapMapping());
5164 VkDevice local_device;
5165 VkPipelineLayout local_pipelineLayout;
5166 VkAllocationCallbacks* local_pAllocator;
5167 local_device = device;
5168 local_pipelineLayout = pipelineLayout;
5169 local_pAllocator = nullptr;
5170 if (pAllocator)
5171 {
5172 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
5173 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
5174 }
5175 local_pAllocator = nullptr;
5176 if (local_pAllocator)
5177 {
5178 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
5179 }
5180 countingStream->rewind();
5181 {
5182 uint64_t cgen_var_371;
5183 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_371, 1);
5184 countingStream->write((uint64_t*)&cgen_var_371, 1 * 8);
5185 uint64_t cgen_var_372;
5186 countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_pipelineLayout, &cgen_var_372, 1);
5187 countingStream->write((uint64_t*)&cgen_var_372, 1 * 8);
5188 // WARNING PTR CHECK
5189 uint64_t cgen_var_373 = (uint64_t)(uintptr_t)local_pAllocator;
5190 countingStream->putBe64(cgen_var_373);
5191 if (local_pAllocator)
5192 {
5193 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
5194 }
5195 }
5196 uint32_t packetSize_vkDestroyPipelineLayout = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5197 countingStream->rewind();
5198 uint32_t opcode_vkDestroyPipelineLayout = OP_vkDestroyPipelineLayout;
5199 stream->write(&opcode_vkDestroyPipelineLayout, sizeof(uint32_t));
5200 stream->write(&packetSize_vkDestroyPipelineLayout, sizeof(uint32_t));
5201 uint64_t cgen_var_374;
5202 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_374, 1);
5203 stream->write((uint64_t*)&cgen_var_374, 1 * 8);
5204 uint64_t cgen_var_375;
5205 stream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_pipelineLayout, &cgen_var_375, 1);
5206 stream->write((uint64_t*)&cgen_var_375, 1 * 8);
5207 // WARNING PTR CHECK
5208 uint64_t cgen_var_376 = (uint64_t)(uintptr_t)local_pAllocator;
5209 stream->putBe64(cgen_var_376);
5210 if (local_pAllocator)
5211 {
5212 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
5213 }
5214 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout readParams");
5215 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout returnUnmarshal");
5216 resources->destroyMapping()->mapHandles_VkPipelineLayout((VkPipelineLayout*)&pipelineLayout);
5217 mImpl->log("finish vkDestroyPipelineLayout");;
5218 }
5219
vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler)5220 VkResult VkEncoder::vkCreateSampler(
5221 VkDevice device,
5222 const VkSamplerCreateInfo* pCreateInfo,
5223 const VkAllocationCallbacks* pAllocator,
5224 VkSampler* pSampler)
5225 {
5226 AEMU_SCOPED_TRACE("vkCreateSampler encode");
5227 mImpl->log("start vkCreateSampler");
5228 auto stream = mImpl->stream();
5229 auto countingStream = mImpl->countingStream();
5230 auto resources = mImpl->resources();
5231 auto pool = mImpl->pool();
5232 stream->setHandleMapping(resources->unwrapMapping());
5233 VkDevice local_device;
5234 VkSamplerCreateInfo* local_pCreateInfo;
5235 VkAllocationCallbacks* local_pAllocator;
5236 local_device = device;
5237 local_pCreateInfo = nullptr;
5238 if (pCreateInfo)
5239 {
5240 local_pCreateInfo = (VkSamplerCreateInfo*)pool->alloc(sizeof(const VkSamplerCreateInfo));
5241 deepcopy_VkSamplerCreateInfo(pool, pCreateInfo, (VkSamplerCreateInfo*)(local_pCreateInfo));
5242 }
5243 local_pAllocator = nullptr;
5244 if (pAllocator)
5245 {
5246 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
5247 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
5248 }
5249 local_pAllocator = nullptr;
5250 if (local_pCreateInfo)
5251 {
5252 transform_tohost_VkSamplerCreateInfo(mImpl->resources(), (VkSamplerCreateInfo*)(local_pCreateInfo));
5253 }
5254 if (local_pAllocator)
5255 {
5256 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
5257 }
5258 countingStream->rewind();
5259 {
5260 uint64_t cgen_var_377;
5261 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_377, 1);
5262 countingStream->write((uint64_t*)&cgen_var_377, 1 * 8);
5263 marshal_VkSamplerCreateInfo(countingStream, (VkSamplerCreateInfo*)(local_pCreateInfo));
5264 // WARNING PTR CHECK
5265 uint64_t cgen_var_378 = (uint64_t)(uintptr_t)local_pAllocator;
5266 countingStream->putBe64(cgen_var_378);
5267 if (local_pAllocator)
5268 {
5269 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
5270 }
5271 uint64_t cgen_var_379;
5272 countingStream->handleMapping()->mapHandles_VkSampler_u64(pSampler, &cgen_var_379, 1);
5273 countingStream->write((uint64_t*)&cgen_var_379, 8);
5274 }
5275 uint32_t packetSize_vkCreateSampler = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5276 countingStream->rewind();
5277 uint32_t opcode_vkCreateSampler = OP_vkCreateSampler;
5278 stream->write(&opcode_vkCreateSampler, sizeof(uint32_t));
5279 stream->write(&packetSize_vkCreateSampler, sizeof(uint32_t));
5280 uint64_t cgen_var_380;
5281 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_380, 1);
5282 stream->write((uint64_t*)&cgen_var_380, 1 * 8);
5283 marshal_VkSamplerCreateInfo(stream, (VkSamplerCreateInfo*)(local_pCreateInfo));
5284 // WARNING PTR CHECK
5285 uint64_t cgen_var_381 = (uint64_t)(uintptr_t)local_pAllocator;
5286 stream->putBe64(cgen_var_381);
5287 if (local_pAllocator)
5288 {
5289 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
5290 }
5291 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
5292 uint64_t cgen_var_382;
5293 stream->handleMapping()->mapHandles_VkSampler_u64(pSampler, &cgen_var_382, 1);
5294 stream->write((uint64_t*)&cgen_var_382, 8);
5295 stream->setHandleMapping(resources->unwrapMapping());
5296 AEMU_SCOPED_TRACE("vkCreateSampler readParams");
5297 stream->setHandleMapping(resources->createMapping());
5298 uint64_t cgen_var_383;
5299 stream->read((uint64_t*)&cgen_var_383, 8);
5300 stream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_383, (VkSampler*)pSampler, 1);
5301 stream->unsetHandleMapping();
5302 AEMU_SCOPED_TRACE("vkCreateSampler returnUnmarshal");
5303 VkResult vkCreateSampler_VkResult_return = (VkResult)0;
5304 stream->read(&vkCreateSampler_VkResult_return, sizeof(VkResult));
5305 countingStream->clearPool();
5306 stream->clearPool();
5307 pool->freeAll();
5308 mImpl->log("finish vkCreateSampler");;
5309 return vkCreateSampler_VkResult_return;
5310 }
5311
vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)5312 void VkEncoder::vkDestroySampler(
5313 VkDevice device,
5314 VkSampler sampler,
5315 const VkAllocationCallbacks* pAllocator)
5316 {
5317 AEMU_SCOPED_TRACE("vkDestroySampler encode");
5318 mImpl->log("start vkDestroySampler");
5319 auto stream = mImpl->stream();
5320 auto countingStream = mImpl->countingStream();
5321 auto resources = mImpl->resources();
5322 auto pool = mImpl->pool();
5323 stream->setHandleMapping(resources->unwrapMapping());
5324 VkDevice local_device;
5325 VkSampler local_sampler;
5326 VkAllocationCallbacks* local_pAllocator;
5327 local_device = device;
5328 local_sampler = sampler;
5329 local_pAllocator = nullptr;
5330 if (pAllocator)
5331 {
5332 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
5333 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
5334 }
5335 local_pAllocator = nullptr;
5336 if (local_pAllocator)
5337 {
5338 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
5339 }
5340 countingStream->rewind();
5341 {
5342 uint64_t cgen_var_384;
5343 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_384, 1);
5344 countingStream->write((uint64_t*)&cgen_var_384, 1 * 8);
5345 uint64_t cgen_var_385;
5346 countingStream->handleMapping()->mapHandles_VkSampler_u64(&local_sampler, &cgen_var_385, 1);
5347 countingStream->write((uint64_t*)&cgen_var_385, 1 * 8);
5348 // WARNING PTR CHECK
5349 uint64_t cgen_var_386 = (uint64_t)(uintptr_t)local_pAllocator;
5350 countingStream->putBe64(cgen_var_386);
5351 if (local_pAllocator)
5352 {
5353 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
5354 }
5355 }
5356 uint32_t packetSize_vkDestroySampler = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5357 countingStream->rewind();
5358 uint32_t opcode_vkDestroySampler = OP_vkDestroySampler;
5359 stream->write(&opcode_vkDestroySampler, sizeof(uint32_t));
5360 stream->write(&packetSize_vkDestroySampler, sizeof(uint32_t));
5361 uint64_t cgen_var_387;
5362 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_387, 1);
5363 stream->write((uint64_t*)&cgen_var_387, 1 * 8);
5364 uint64_t cgen_var_388;
5365 stream->handleMapping()->mapHandles_VkSampler_u64(&local_sampler, &cgen_var_388, 1);
5366 stream->write((uint64_t*)&cgen_var_388, 1 * 8);
5367 // WARNING PTR CHECK
5368 uint64_t cgen_var_389 = (uint64_t)(uintptr_t)local_pAllocator;
5369 stream->putBe64(cgen_var_389);
5370 if (local_pAllocator)
5371 {
5372 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
5373 }
5374 AEMU_SCOPED_TRACE("vkDestroySampler readParams");
5375 AEMU_SCOPED_TRACE("vkDestroySampler returnUnmarshal");
5376 resources->destroyMapping()->mapHandles_VkSampler((VkSampler*)&sampler);
5377 mImpl->log("finish vkDestroySampler");;
5378 }
5379
vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)5380 VkResult VkEncoder::vkCreateDescriptorSetLayout(
5381 VkDevice device,
5382 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
5383 const VkAllocationCallbacks* pAllocator,
5384 VkDescriptorSetLayout* pSetLayout)
5385 {
5386 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout encode");
5387 mImpl->log("start vkCreateDescriptorSetLayout");
5388 auto stream = mImpl->stream();
5389 auto countingStream = mImpl->countingStream();
5390 auto resources = mImpl->resources();
5391 auto pool = mImpl->pool();
5392 stream->setHandleMapping(resources->unwrapMapping());
5393 VkDevice local_device;
5394 VkDescriptorSetLayoutCreateInfo* local_pCreateInfo;
5395 VkAllocationCallbacks* local_pAllocator;
5396 local_device = device;
5397 local_pCreateInfo = nullptr;
5398 if (pCreateInfo)
5399 {
5400 local_pCreateInfo = (VkDescriptorSetLayoutCreateInfo*)pool->alloc(sizeof(const VkDescriptorSetLayoutCreateInfo));
5401 deepcopy_VkDescriptorSetLayoutCreateInfo(pool, pCreateInfo, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
5402 }
5403 local_pAllocator = nullptr;
5404 if (pAllocator)
5405 {
5406 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
5407 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
5408 }
5409 local_pAllocator = nullptr;
5410 if (local_pCreateInfo)
5411 {
5412 transform_tohost_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
5413 }
5414 if (local_pAllocator)
5415 {
5416 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
5417 }
5418 countingStream->rewind();
5419 {
5420 uint64_t cgen_var_390;
5421 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_390, 1);
5422 countingStream->write((uint64_t*)&cgen_var_390, 1 * 8);
5423 marshal_VkDescriptorSetLayoutCreateInfo(countingStream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
5424 // WARNING PTR CHECK
5425 uint64_t cgen_var_391 = (uint64_t)(uintptr_t)local_pAllocator;
5426 countingStream->putBe64(cgen_var_391);
5427 if (local_pAllocator)
5428 {
5429 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
5430 }
5431 uint64_t cgen_var_392;
5432 countingStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(pSetLayout, &cgen_var_392, 1);
5433 countingStream->write((uint64_t*)&cgen_var_392, 8);
5434 }
5435 uint32_t packetSize_vkCreateDescriptorSetLayout = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5436 countingStream->rewind();
5437 uint32_t opcode_vkCreateDescriptorSetLayout = OP_vkCreateDescriptorSetLayout;
5438 stream->write(&opcode_vkCreateDescriptorSetLayout, sizeof(uint32_t));
5439 stream->write(&packetSize_vkCreateDescriptorSetLayout, sizeof(uint32_t));
5440 uint64_t cgen_var_393;
5441 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_393, 1);
5442 stream->write((uint64_t*)&cgen_var_393, 1 * 8);
5443 marshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
5444 // WARNING PTR CHECK
5445 uint64_t cgen_var_394 = (uint64_t)(uintptr_t)local_pAllocator;
5446 stream->putBe64(cgen_var_394);
5447 if (local_pAllocator)
5448 {
5449 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
5450 }
5451 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
5452 uint64_t cgen_var_395;
5453 stream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(pSetLayout, &cgen_var_395, 1);
5454 stream->write((uint64_t*)&cgen_var_395, 8);
5455 stream->setHandleMapping(resources->unwrapMapping());
5456 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout readParams");
5457 stream->setHandleMapping(resources->createMapping());
5458 uint64_t cgen_var_396;
5459 stream->read((uint64_t*)&cgen_var_396, 8);
5460 stream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(&cgen_var_396, (VkDescriptorSetLayout*)pSetLayout, 1);
5461 stream->unsetHandleMapping();
5462 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout returnUnmarshal");
5463 VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
5464 stream->read(&vkCreateDescriptorSetLayout_VkResult_return, sizeof(VkResult));
5465 countingStream->clearPool();
5466 stream->clearPool();
5467 pool->freeAll();
5468 mImpl->log("finish vkCreateDescriptorSetLayout");;
5469 return vkCreateDescriptorSetLayout_VkResult_return;
5470 }
5471
vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)5472 void VkEncoder::vkDestroyDescriptorSetLayout(
5473 VkDevice device,
5474 VkDescriptorSetLayout descriptorSetLayout,
5475 const VkAllocationCallbacks* pAllocator)
5476 {
5477 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout encode");
5478 mImpl->log("start vkDestroyDescriptorSetLayout");
5479 auto stream = mImpl->stream();
5480 auto countingStream = mImpl->countingStream();
5481 auto resources = mImpl->resources();
5482 auto pool = mImpl->pool();
5483 stream->setHandleMapping(resources->unwrapMapping());
5484 VkDevice local_device;
5485 VkDescriptorSetLayout local_descriptorSetLayout;
5486 VkAllocationCallbacks* local_pAllocator;
5487 local_device = device;
5488 local_descriptorSetLayout = descriptorSetLayout;
5489 local_pAllocator = nullptr;
5490 if (pAllocator)
5491 {
5492 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
5493 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
5494 }
5495 local_pAllocator = nullptr;
5496 if (local_pAllocator)
5497 {
5498 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
5499 }
5500 countingStream->rewind();
5501 {
5502 uint64_t cgen_var_397;
5503 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_397, 1);
5504 countingStream->write((uint64_t*)&cgen_var_397, 1 * 8);
5505 uint64_t cgen_var_398;
5506 countingStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(&local_descriptorSetLayout, &cgen_var_398, 1);
5507 countingStream->write((uint64_t*)&cgen_var_398, 1 * 8);
5508 // WARNING PTR CHECK
5509 uint64_t cgen_var_399 = (uint64_t)(uintptr_t)local_pAllocator;
5510 countingStream->putBe64(cgen_var_399);
5511 if (local_pAllocator)
5512 {
5513 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
5514 }
5515 }
5516 uint32_t packetSize_vkDestroyDescriptorSetLayout = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5517 countingStream->rewind();
5518 uint32_t opcode_vkDestroyDescriptorSetLayout = OP_vkDestroyDescriptorSetLayout;
5519 stream->write(&opcode_vkDestroyDescriptorSetLayout, sizeof(uint32_t));
5520 stream->write(&packetSize_vkDestroyDescriptorSetLayout, sizeof(uint32_t));
5521 uint64_t cgen_var_400;
5522 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_400, 1);
5523 stream->write((uint64_t*)&cgen_var_400, 1 * 8);
5524 uint64_t cgen_var_401;
5525 stream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(&local_descriptorSetLayout, &cgen_var_401, 1);
5526 stream->write((uint64_t*)&cgen_var_401, 1 * 8);
5527 // WARNING PTR CHECK
5528 uint64_t cgen_var_402 = (uint64_t)(uintptr_t)local_pAllocator;
5529 stream->putBe64(cgen_var_402);
5530 if (local_pAllocator)
5531 {
5532 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
5533 }
5534 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout readParams");
5535 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout returnUnmarshal");
5536 resources->destroyMapping()->mapHandles_VkDescriptorSetLayout((VkDescriptorSetLayout*)&descriptorSetLayout);
5537 mImpl->log("finish vkDestroyDescriptorSetLayout");;
5538 }
5539
vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)5540 VkResult VkEncoder::vkCreateDescriptorPool(
5541 VkDevice device,
5542 const VkDescriptorPoolCreateInfo* pCreateInfo,
5543 const VkAllocationCallbacks* pAllocator,
5544 VkDescriptorPool* pDescriptorPool)
5545 {
5546 AEMU_SCOPED_TRACE("vkCreateDescriptorPool encode");
5547 mImpl->log("start vkCreateDescriptorPool");
5548 auto stream = mImpl->stream();
5549 auto countingStream = mImpl->countingStream();
5550 auto resources = mImpl->resources();
5551 auto pool = mImpl->pool();
5552 stream->setHandleMapping(resources->unwrapMapping());
5553 VkDevice local_device;
5554 VkDescriptorPoolCreateInfo* local_pCreateInfo;
5555 VkAllocationCallbacks* local_pAllocator;
5556 local_device = device;
5557 local_pCreateInfo = nullptr;
5558 if (pCreateInfo)
5559 {
5560 local_pCreateInfo = (VkDescriptorPoolCreateInfo*)pool->alloc(sizeof(const VkDescriptorPoolCreateInfo));
5561 deepcopy_VkDescriptorPoolCreateInfo(pool, pCreateInfo, (VkDescriptorPoolCreateInfo*)(local_pCreateInfo));
5562 }
5563 local_pAllocator = nullptr;
5564 if (pAllocator)
5565 {
5566 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
5567 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
5568 }
5569 local_pAllocator = nullptr;
5570 if (local_pCreateInfo)
5571 {
5572 transform_tohost_VkDescriptorPoolCreateInfo(mImpl->resources(), (VkDescriptorPoolCreateInfo*)(local_pCreateInfo));
5573 }
5574 if (local_pAllocator)
5575 {
5576 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
5577 }
5578 countingStream->rewind();
5579 {
5580 uint64_t cgen_var_403;
5581 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_403, 1);
5582 countingStream->write((uint64_t*)&cgen_var_403, 1 * 8);
5583 marshal_VkDescriptorPoolCreateInfo(countingStream, (VkDescriptorPoolCreateInfo*)(local_pCreateInfo));
5584 // WARNING PTR CHECK
5585 uint64_t cgen_var_404 = (uint64_t)(uintptr_t)local_pAllocator;
5586 countingStream->putBe64(cgen_var_404);
5587 if (local_pAllocator)
5588 {
5589 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
5590 }
5591 uint64_t cgen_var_405;
5592 countingStream->handleMapping()->mapHandles_VkDescriptorPool_u64(pDescriptorPool, &cgen_var_405, 1);
5593 countingStream->write((uint64_t*)&cgen_var_405, 8);
5594 }
5595 uint32_t packetSize_vkCreateDescriptorPool = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5596 countingStream->rewind();
5597 uint32_t opcode_vkCreateDescriptorPool = OP_vkCreateDescriptorPool;
5598 stream->write(&opcode_vkCreateDescriptorPool, sizeof(uint32_t));
5599 stream->write(&packetSize_vkCreateDescriptorPool, sizeof(uint32_t));
5600 uint64_t cgen_var_406;
5601 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_406, 1);
5602 stream->write((uint64_t*)&cgen_var_406, 1 * 8);
5603 marshal_VkDescriptorPoolCreateInfo(stream, (VkDescriptorPoolCreateInfo*)(local_pCreateInfo));
5604 // WARNING PTR CHECK
5605 uint64_t cgen_var_407 = (uint64_t)(uintptr_t)local_pAllocator;
5606 stream->putBe64(cgen_var_407);
5607 if (local_pAllocator)
5608 {
5609 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
5610 }
5611 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
5612 uint64_t cgen_var_408;
5613 stream->handleMapping()->mapHandles_VkDescriptorPool_u64(pDescriptorPool, &cgen_var_408, 1);
5614 stream->write((uint64_t*)&cgen_var_408, 8);
5615 stream->setHandleMapping(resources->unwrapMapping());
5616 AEMU_SCOPED_TRACE("vkCreateDescriptorPool readParams");
5617 stream->setHandleMapping(resources->createMapping());
5618 uint64_t cgen_var_409;
5619 stream->read((uint64_t*)&cgen_var_409, 8);
5620 stream->handleMapping()->mapHandles_u64_VkDescriptorPool(&cgen_var_409, (VkDescriptorPool*)pDescriptorPool, 1);
5621 stream->unsetHandleMapping();
5622 AEMU_SCOPED_TRACE("vkCreateDescriptorPool returnUnmarshal");
5623 VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
5624 stream->read(&vkCreateDescriptorPool_VkResult_return, sizeof(VkResult));
5625 countingStream->clearPool();
5626 stream->clearPool();
5627 pool->freeAll();
5628 mImpl->log("finish vkCreateDescriptorPool");;
5629 return vkCreateDescriptorPool_VkResult_return;
5630 }
5631
vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)5632 void VkEncoder::vkDestroyDescriptorPool(
5633 VkDevice device,
5634 VkDescriptorPool descriptorPool,
5635 const VkAllocationCallbacks* pAllocator)
5636 {
5637 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool encode");
5638 mImpl->log("start vkDestroyDescriptorPool");
5639 auto stream = mImpl->stream();
5640 auto countingStream = mImpl->countingStream();
5641 auto resources = mImpl->resources();
5642 auto pool = mImpl->pool();
5643 stream->setHandleMapping(resources->unwrapMapping());
5644 VkDevice local_device;
5645 VkDescriptorPool local_descriptorPool;
5646 VkAllocationCallbacks* local_pAllocator;
5647 local_device = device;
5648 local_descriptorPool = descriptorPool;
5649 local_pAllocator = nullptr;
5650 if (pAllocator)
5651 {
5652 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
5653 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
5654 }
5655 local_pAllocator = nullptr;
5656 if (local_pAllocator)
5657 {
5658 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
5659 }
5660 countingStream->rewind();
5661 {
5662 uint64_t cgen_var_410;
5663 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_410, 1);
5664 countingStream->write((uint64_t*)&cgen_var_410, 1 * 8);
5665 uint64_t cgen_var_411;
5666 countingStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_411, 1);
5667 countingStream->write((uint64_t*)&cgen_var_411, 1 * 8);
5668 // WARNING PTR CHECK
5669 uint64_t cgen_var_412 = (uint64_t)(uintptr_t)local_pAllocator;
5670 countingStream->putBe64(cgen_var_412);
5671 if (local_pAllocator)
5672 {
5673 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
5674 }
5675 }
5676 uint32_t packetSize_vkDestroyDescriptorPool = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5677 countingStream->rewind();
5678 uint32_t opcode_vkDestroyDescriptorPool = OP_vkDestroyDescriptorPool;
5679 stream->write(&opcode_vkDestroyDescriptorPool, sizeof(uint32_t));
5680 stream->write(&packetSize_vkDestroyDescriptorPool, sizeof(uint32_t));
5681 uint64_t cgen_var_413;
5682 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_413, 1);
5683 stream->write((uint64_t*)&cgen_var_413, 1 * 8);
5684 uint64_t cgen_var_414;
5685 stream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_414, 1);
5686 stream->write((uint64_t*)&cgen_var_414, 1 * 8);
5687 // WARNING PTR CHECK
5688 uint64_t cgen_var_415 = (uint64_t)(uintptr_t)local_pAllocator;
5689 stream->putBe64(cgen_var_415);
5690 if (local_pAllocator)
5691 {
5692 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
5693 }
5694 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool readParams");
5695 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool returnUnmarshal");
5696 resources->destroyMapping()->mapHandles_VkDescriptorPool((VkDescriptorPool*)&descriptorPool);
5697 mImpl->log("finish vkDestroyDescriptorPool");;
5698 }
5699
vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)5700 VkResult VkEncoder::vkResetDescriptorPool(
5701 VkDevice device,
5702 VkDescriptorPool descriptorPool,
5703 VkDescriptorPoolResetFlags flags)
5704 {
5705 AEMU_SCOPED_TRACE("vkResetDescriptorPool encode");
5706 mImpl->log("start vkResetDescriptorPool");
5707 auto stream = mImpl->stream();
5708 auto countingStream = mImpl->countingStream();
5709 auto resources = mImpl->resources();
5710 auto pool = mImpl->pool();
5711 stream->setHandleMapping(resources->unwrapMapping());
5712 VkDevice local_device;
5713 VkDescriptorPool local_descriptorPool;
5714 VkDescriptorPoolResetFlags local_flags;
5715 local_device = device;
5716 local_descriptorPool = descriptorPool;
5717 local_flags = flags;
5718 countingStream->rewind();
5719 {
5720 uint64_t cgen_var_416;
5721 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_416, 1);
5722 countingStream->write((uint64_t*)&cgen_var_416, 1 * 8);
5723 uint64_t cgen_var_417;
5724 countingStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_417, 1);
5725 countingStream->write((uint64_t*)&cgen_var_417, 1 * 8);
5726 countingStream->write((VkDescriptorPoolResetFlags*)&local_flags, sizeof(VkDescriptorPoolResetFlags));
5727 }
5728 uint32_t packetSize_vkResetDescriptorPool = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5729 countingStream->rewind();
5730 uint32_t opcode_vkResetDescriptorPool = OP_vkResetDescriptorPool;
5731 stream->write(&opcode_vkResetDescriptorPool, sizeof(uint32_t));
5732 stream->write(&packetSize_vkResetDescriptorPool, sizeof(uint32_t));
5733 uint64_t cgen_var_418;
5734 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_418, 1);
5735 stream->write((uint64_t*)&cgen_var_418, 1 * 8);
5736 uint64_t cgen_var_419;
5737 stream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_419, 1);
5738 stream->write((uint64_t*)&cgen_var_419, 1 * 8);
5739 stream->write((VkDescriptorPoolResetFlags*)&local_flags, sizeof(VkDescriptorPoolResetFlags));
5740 AEMU_SCOPED_TRACE("vkResetDescriptorPool readParams");
5741 AEMU_SCOPED_TRACE("vkResetDescriptorPool returnUnmarshal");
5742 VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
5743 stream->read(&vkResetDescriptorPool_VkResult_return, sizeof(VkResult));
5744 countingStream->clearPool();
5745 stream->clearPool();
5746 pool->freeAll();
5747 mImpl->log("finish vkResetDescriptorPool");;
5748 return vkResetDescriptorPool_VkResult_return;
5749 }
5750
vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets)5751 VkResult VkEncoder::vkAllocateDescriptorSets(
5752 VkDevice device,
5753 const VkDescriptorSetAllocateInfo* pAllocateInfo,
5754 VkDescriptorSet* pDescriptorSets)
5755 {
5756 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets encode");
5757 mImpl->log("start vkAllocateDescriptorSets");
5758 auto stream = mImpl->stream();
5759 auto countingStream = mImpl->countingStream();
5760 auto resources = mImpl->resources();
5761 auto pool = mImpl->pool();
5762 stream->setHandleMapping(resources->unwrapMapping());
5763 VkDevice local_device;
5764 VkDescriptorSetAllocateInfo* local_pAllocateInfo;
5765 local_device = device;
5766 local_pAllocateInfo = nullptr;
5767 if (pAllocateInfo)
5768 {
5769 local_pAllocateInfo = (VkDescriptorSetAllocateInfo*)pool->alloc(sizeof(const VkDescriptorSetAllocateInfo));
5770 deepcopy_VkDescriptorSetAllocateInfo(pool, pAllocateInfo, (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo));
5771 }
5772 if (local_pAllocateInfo)
5773 {
5774 transform_tohost_VkDescriptorSetAllocateInfo(mImpl->resources(), (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo));
5775 }
5776 countingStream->rewind();
5777 {
5778 uint64_t cgen_var_420;
5779 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_420, 1);
5780 countingStream->write((uint64_t*)&cgen_var_420, 1 * 8);
5781 marshal_VkDescriptorSetAllocateInfo(countingStream, (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo));
5782 if (pAllocateInfo->descriptorSetCount)
5783 {
5784 uint64_t* cgen_var_421;
5785 countingStream->alloc((void**)&cgen_var_421, pAllocateInfo->descriptorSetCount * 8);
5786 countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(pDescriptorSets, cgen_var_421, pAllocateInfo->descriptorSetCount);
5787 countingStream->write((uint64_t*)cgen_var_421, pAllocateInfo->descriptorSetCount * 8);
5788 }
5789 }
5790 uint32_t packetSize_vkAllocateDescriptorSets = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5791 countingStream->rewind();
5792 uint32_t opcode_vkAllocateDescriptorSets = OP_vkAllocateDescriptorSets;
5793 stream->write(&opcode_vkAllocateDescriptorSets, sizeof(uint32_t));
5794 stream->write(&packetSize_vkAllocateDescriptorSets, sizeof(uint32_t));
5795 uint64_t cgen_var_422;
5796 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_422, 1);
5797 stream->write((uint64_t*)&cgen_var_422, 1 * 8);
5798 marshal_VkDescriptorSetAllocateInfo(stream, (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo));
5799 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
5800 if (pAllocateInfo->descriptorSetCount)
5801 {
5802 uint64_t* cgen_var_423;
5803 stream->alloc((void**)&cgen_var_423, pAllocateInfo->descriptorSetCount * 8);
5804 stream->handleMapping()->mapHandles_VkDescriptorSet_u64(pDescriptorSets, cgen_var_423, pAllocateInfo->descriptorSetCount);
5805 stream->write((uint64_t*)cgen_var_423, pAllocateInfo->descriptorSetCount * 8);
5806 }
5807 stream->setHandleMapping(resources->unwrapMapping());
5808 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets readParams");
5809 stream->setHandleMapping(resources->createMapping());
5810 if (pAllocateInfo->descriptorSetCount)
5811 {
5812 uint64_t* cgen_var_424;
5813 stream->alloc((void**)&cgen_var_424, pAllocateInfo->descriptorSetCount * 8);
5814 stream->read((uint64_t*)cgen_var_424, pAllocateInfo->descriptorSetCount * 8);
5815 stream->handleMapping()->mapHandles_u64_VkDescriptorSet(cgen_var_424, (VkDescriptorSet*)pDescriptorSets, pAllocateInfo->descriptorSetCount);
5816 }
5817 stream->unsetHandleMapping();
5818 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets returnUnmarshal");
5819 VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
5820 stream->read(&vkAllocateDescriptorSets_VkResult_return, sizeof(VkResult));
5821 countingStream->clearPool();
5822 stream->clearPool();
5823 pool->freeAll();
5824 mImpl->log("finish vkAllocateDescriptorSets");;
5825 return vkAllocateDescriptorSets_VkResult_return;
5826 }
5827
vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets)5828 VkResult VkEncoder::vkFreeDescriptorSets(
5829 VkDevice device,
5830 VkDescriptorPool descriptorPool,
5831 uint32_t descriptorSetCount,
5832 const VkDescriptorSet* pDescriptorSets)
5833 {
5834 AEMU_SCOPED_TRACE("vkFreeDescriptorSets encode");
5835 mImpl->log("start vkFreeDescriptorSets");
5836 auto stream = mImpl->stream();
5837 auto countingStream = mImpl->countingStream();
5838 auto resources = mImpl->resources();
5839 auto pool = mImpl->pool();
5840 stream->setHandleMapping(resources->unwrapMapping());
5841 VkDevice local_device;
5842 VkDescriptorPool local_descriptorPool;
5843 uint32_t local_descriptorSetCount;
5844 VkDescriptorSet* local_pDescriptorSets;
5845 local_device = device;
5846 local_descriptorPool = descriptorPool;
5847 local_descriptorSetCount = descriptorSetCount;
5848 local_pDescriptorSets = nullptr;
5849 if (pDescriptorSets)
5850 {
5851 local_pDescriptorSets = (VkDescriptorSet*)pool->dupArray(pDescriptorSets, ((descriptorSetCount)) * sizeof(const VkDescriptorSet));
5852 }
5853 countingStream->rewind();
5854 {
5855 uint64_t cgen_var_425;
5856 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_425, 1);
5857 countingStream->write((uint64_t*)&cgen_var_425, 1 * 8);
5858 uint64_t cgen_var_426;
5859 countingStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_426, 1);
5860 countingStream->write((uint64_t*)&cgen_var_426, 1 * 8);
5861 countingStream->write((uint32_t*)&local_descriptorSetCount, sizeof(uint32_t));
5862 // WARNING PTR CHECK
5863 uint64_t cgen_var_427 = (uint64_t)(uintptr_t)local_pDescriptorSets;
5864 countingStream->putBe64(cgen_var_427);
5865 if (local_pDescriptorSets)
5866 {
5867 if (((descriptorSetCount)))
5868 {
5869 uint64_t* cgen_var_428;
5870 countingStream->alloc((void**)&cgen_var_428, ((descriptorSetCount)) * 8);
5871 countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(local_pDescriptorSets, cgen_var_428, ((descriptorSetCount)));
5872 countingStream->write((uint64_t*)cgen_var_428, ((descriptorSetCount)) * 8);
5873 }
5874 }
5875 }
5876 uint32_t packetSize_vkFreeDescriptorSets = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5877 countingStream->rewind();
5878 uint32_t opcode_vkFreeDescriptorSets = OP_vkFreeDescriptorSets;
5879 stream->write(&opcode_vkFreeDescriptorSets, sizeof(uint32_t));
5880 stream->write(&packetSize_vkFreeDescriptorSets, sizeof(uint32_t));
5881 uint64_t cgen_var_429;
5882 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_429, 1);
5883 stream->write((uint64_t*)&cgen_var_429, 1 * 8);
5884 uint64_t cgen_var_430;
5885 stream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_430, 1);
5886 stream->write((uint64_t*)&cgen_var_430, 1 * 8);
5887 stream->write((uint32_t*)&local_descriptorSetCount, sizeof(uint32_t));
5888 // WARNING PTR CHECK
5889 uint64_t cgen_var_431 = (uint64_t)(uintptr_t)local_pDescriptorSets;
5890 stream->putBe64(cgen_var_431);
5891 if (local_pDescriptorSets)
5892 {
5893 if (((descriptorSetCount)))
5894 {
5895 uint64_t* cgen_var_432;
5896 stream->alloc((void**)&cgen_var_432, ((descriptorSetCount)) * 8);
5897 stream->handleMapping()->mapHandles_VkDescriptorSet_u64(local_pDescriptorSets, cgen_var_432, ((descriptorSetCount)));
5898 stream->write((uint64_t*)cgen_var_432, ((descriptorSetCount)) * 8);
5899 }
5900 }
5901 AEMU_SCOPED_TRACE("vkFreeDescriptorSets readParams");
5902 AEMU_SCOPED_TRACE("vkFreeDescriptorSets returnUnmarshal");
5903 VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
5904 stream->read(&vkFreeDescriptorSets_VkResult_return, sizeof(VkResult));
5905 countingStream->clearPool();
5906 stream->clearPool();
5907 pool->freeAll();
5908 if (pDescriptorSets)
5909 {
5910 resources->destroyMapping()->mapHandles_VkDescriptorSet((VkDescriptorSet*)pDescriptorSets, ((descriptorSetCount)));
5911 }
5912 mImpl->log("finish vkFreeDescriptorSets");;
5913 return vkFreeDescriptorSets_VkResult_return;
5914 }
5915
vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies)5916 void VkEncoder::vkUpdateDescriptorSets(
5917 VkDevice device,
5918 uint32_t descriptorWriteCount,
5919 const VkWriteDescriptorSet* pDescriptorWrites,
5920 uint32_t descriptorCopyCount,
5921 const VkCopyDescriptorSet* pDescriptorCopies)
5922 {
5923 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets encode");
5924 mImpl->log("start vkUpdateDescriptorSets");
5925 auto stream = mImpl->stream();
5926 auto countingStream = mImpl->countingStream();
5927 auto resources = mImpl->resources();
5928 auto pool = mImpl->pool();
5929 stream->setHandleMapping(resources->unwrapMapping());
5930 VkDevice local_device;
5931 uint32_t local_descriptorWriteCount;
5932 VkWriteDescriptorSet* local_pDescriptorWrites;
5933 uint32_t local_descriptorCopyCount;
5934 VkCopyDescriptorSet* local_pDescriptorCopies;
5935 local_device = device;
5936 local_descriptorWriteCount = descriptorWriteCount;
5937 local_pDescriptorWrites = nullptr;
5938 if (pDescriptorWrites)
5939 {
5940 local_pDescriptorWrites = (VkWriteDescriptorSet*)pool->alloc(((descriptorWriteCount)) * sizeof(const VkWriteDescriptorSet));
5941 for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
5942 {
5943 deepcopy_VkWriteDescriptorSet(pool, pDescriptorWrites + i, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
5944 }
5945 }
5946 local_descriptorCopyCount = descriptorCopyCount;
5947 local_pDescriptorCopies = nullptr;
5948 if (pDescriptorCopies)
5949 {
5950 local_pDescriptorCopies = (VkCopyDescriptorSet*)pool->alloc(((descriptorCopyCount)) * sizeof(const VkCopyDescriptorSet));
5951 for (uint32_t i = 0; i < (uint32_t)((descriptorCopyCount)); ++i)
5952 {
5953 deepcopy_VkCopyDescriptorSet(pool, pDescriptorCopies + i, (VkCopyDescriptorSet*)(local_pDescriptorCopies + i));
5954 }
5955 }
5956 if (local_pDescriptorWrites)
5957 {
5958 for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
5959 {
5960 transform_tohost_VkWriteDescriptorSet(mImpl->resources(), (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
5961 }
5962 }
5963 if (local_pDescriptorCopies)
5964 {
5965 for (uint32_t i = 0; i < (uint32_t)((descriptorCopyCount)); ++i)
5966 {
5967 transform_tohost_VkCopyDescriptorSet(mImpl->resources(), (VkCopyDescriptorSet*)(local_pDescriptorCopies + i));
5968 }
5969 }
5970 countingStream->rewind();
5971 {
5972 uint64_t cgen_var_433;
5973 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_433, 1);
5974 countingStream->write((uint64_t*)&cgen_var_433, 1 * 8);
5975 countingStream->write((uint32_t*)&local_descriptorWriteCount, sizeof(uint32_t));
5976 for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
5977 {
5978 marshal_VkWriteDescriptorSet(countingStream, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
5979 }
5980 countingStream->write((uint32_t*)&local_descriptorCopyCount, sizeof(uint32_t));
5981 for (uint32_t i = 0; i < (uint32_t)((descriptorCopyCount)); ++i)
5982 {
5983 marshal_VkCopyDescriptorSet(countingStream, (VkCopyDescriptorSet*)(local_pDescriptorCopies + i));
5984 }
5985 }
5986 uint32_t packetSize_vkUpdateDescriptorSets = 4 + 4 + (uint32_t)countingStream->bytesWritten();
5987 countingStream->rewind();
5988 uint32_t opcode_vkUpdateDescriptorSets = OP_vkUpdateDescriptorSets;
5989 stream->write(&opcode_vkUpdateDescriptorSets, sizeof(uint32_t));
5990 stream->write(&packetSize_vkUpdateDescriptorSets, sizeof(uint32_t));
5991 uint64_t cgen_var_434;
5992 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_434, 1);
5993 stream->write((uint64_t*)&cgen_var_434, 1 * 8);
5994 stream->write((uint32_t*)&local_descriptorWriteCount, sizeof(uint32_t));
5995 for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
5996 {
5997 marshal_VkWriteDescriptorSet(stream, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
5998 }
5999 stream->write((uint32_t*)&local_descriptorCopyCount, sizeof(uint32_t));
6000 for (uint32_t i = 0; i < (uint32_t)((descriptorCopyCount)); ++i)
6001 {
6002 marshal_VkCopyDescriptorSet(stream, (VkCopyDescriptorSet*)(local_pDescriptorCopies + i));
6003 }
6004 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets readParams");
6005 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets returnUnmarshal");
6006 mImpl->log("finish vkUpdateDescriptorSets");;
6007 }
6008
vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer)6009 VkResult VkEncoder::vkCreateFramebuffer(
6010 VkDevice device,
6011 const VkFramebufferCreateInfo* pCreateInfo,
6012 const VkAllocationCallbacks* pAllocator,
6013 VkFramebuffer* pFramebuffer)
6014 {
6015 AEMU_SCOPED_TRACE("vkCreateFramebuffer encode");
6016 mImpl->log("start vkCreateFramebuffer");
6017 auto stream = mImpl->stream();
6018 auto countingStream = mImpl->countingStream();
6019 auto resources = mImpl->resources();
6020 auto pool = mImpl->pool();
6021 stream->setHandleMapping(resources->unwrapMapping());
6022 VkDevice local_device;
6023 VkFramebufferCreateInfo* local_pCreateInfo;
6024 VkAllocationCallbacks* local_pAllocator;
6025 local_device = device;
6026 local_pCreateInfo = nullptr;
6027 if (pCreateInfo)
6028 {
6029 local_pCreateInfo = (VkFramebufferCreateInfo*)pool->alloc(sizeof(const VkFramebufferCreateInfo));
6030 deepcopy_VkFramebufferCreateInfo(pool, pCreateInfo, (VkFramebufferCreateInfo*)(local_pCreateInfo));
6031 }
6032 local_pAllocator = nullptr;
6033 if (pAllocator)
6034 {
6035 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
6036 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
6037 }
6038 local_pAllocator = nullptr;
6039 if (local_pCreateInfo)
6040 {
6041 transform_tohost_VkFramebufferCreateInfo(mImpl->resources(), (VkFramebufferCreateInfo*)(local_pCreateInfo));
6042 }
6043 if (local_pAllocator)
6044 {
6045 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
6046 }
6047 countingStream->rewind();
6048 {
6049 uint64_t cgen_var_435;
6050 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_435, 1);
6051 countingStream->write((uint64_t*)&cgen_var_435, 1 * 8);
6052 marshal_VkFramebufferCreateInfo(countingStream, (VkFramebufferCreateInfo*)(local_pCreateInfo));
6053 // WARNING PTR CHECK
6054 uint64_t cgen_var_436 = (uint64_t)(uintptr_t)local_pAllocator;
6055 countingStream->putBe64(cgen_var_436);
6056 if (local_pAllocator)
6057 {
6058 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
6059 }
6060 uint64_t cgen_var_437;
6061 countingStream->handleMapping()->mapHandles_VkFramebuffer_u64(pFramebuffer, &cgen_var_437, 1);
6062 countingStream->write((uint64_t*)&cgen_var_437, 8);
6063 }
6064 uint32_t packetSize_vkCreateFramebuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6065 countingStream->rewind();
6066 uint32_t opcode_vkCreateFramebuffer = OP_vkCreateFramebuffer;
6067 stream->write(&opcode_vkCreateFramebuffer, sizeof(uint32_t));
6068 stream->write(&packetSize_vkCreateFramebuffer, sizeof(uint32_t));
6069 uint64_t cgen_var_438;
6070 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_438, 1);
6071 stream->write((uint64_t*)&cgen_var_438, 1 * 8);
6072 marshal_VkFramebufferCreateInfo(stream, (VkFramebufferCreateInfo*)(local_pCreateInfo));
6073 // WARNING PTR CHECK
6074 uint64_t cgen_var_439 = (uint64_t)(uintptr_t)local_pAllocator;
6075 stream->putBe64(cgen_var_439);
6076 if (local_pAllocator)
6077 {
6078 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
6079 }
6080 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
6081 uint64_t cgen_var_440;
6082 stream->handleMapping()->mapHandles_VkFramebuffer_u64(pFramebuffer, &cgen_var_440, 1);
6083 stream->write((uint64_t*)&cgen_var_440, 8);
6084 stream->setHandleMapping(resources->unwrapMapping());
6085 AEMU_SCOPED_TRACE("vkCreateFramebuffer readParams");
6086 stream->setHandleMapping(resources->createMapping());
6087 uint64_t cgen_var_441;
6088 stream->read((uint64_t*)&cgen_var_441, 8);
6089 stream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_441, (VkFramebuffer*)pFramebuffer, 1);
6090 stream->unsetHandleMapping();
6091 AEMU_SCOPED_TRACE("vkCreateFramebuffer returnUnmarshal");
6092 VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
6093 stream->read(&vkCreateFramebuffer_VkResult_return, sizeof(VkResult));
6094 countingStream->clearPool();
6095 stream->clearPool();
6096 pool->freeAll();
6097 mImpl->log("finish vkCreateFramebuffer");;
6098 return vkCreateFramebuffer_VkResult_return;
6099 }
6100
vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)6101 void VkEncoder::vkDestroyFramebuffer(
6102 VkDevice device,
6103 VkFramebuffer framebuffer,
6104 const VkAllocationCallbacks* pAllocator)
6105 {
6106 AEMU_SCOPED_TRACE("vkDestroyFramebuffer encode");
6107 mImpl->log("start vkDestroyFramebuffer");
6108 auto stream = mImpl->stream();
6109 auto countingStream = mImpl->countingStream();
6110 auto resources = mImpl->resources();
6111 auto pool = mImpl->pool();
6112 stream->setHandleMapping(resources->unwrapMapping());
6113 VkDevice local_device;
6114 VkFramebuffer local_framebuffer;
6115 VkAllocationCallbacks* local_pAllocator;
6116 local_device = device;
6117 local_framebuffer = framebuffer;
6118 local_pAllocator = nullptr;
6119 if (pAllocator)
6120 {
6121 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
6122 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
6123 }
6124 local_pAllocator = nullptr;
6125 if (local_pAllocator)
6126 {
6127 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
6128 }
6129 countingStream->rewind();
6130 {
6131 uint64_t cgen_var_442;
6132 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_442, 1);
6133 countingStream->write((uint64_t*)&cgen_var_442, 1 * 8);
6134 uint64_t cgen_var_443;
6135 countingStream->handleMapping()->mapHandles_VkFramebuffer_u64(&local_framebuffer, &cgen_var_443, 1);
6136 countingStream->write((uint64_t*)&cgen_var_443, 1 * 8);
6137 // WARNING PTR CHECK
6138 uint64_t cgen_var_444 = (uint64_t)(uintptr_t)local_pAllocator;
6139 countingStream->putBe64(cgen_var_444);
6140 if (local_pAllocator)
6141 {
6142 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
6143 }
6144 }
6145 uint32_t packetSize_vkDestroyFramebuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6146 countingStream->rewind();
6147 uint32_t opcode_vkDestroyFramebuffer = OP_vkDestroyFramebuffer;
6148 stream->write(&opcode_vkDestroyFramebuffer, sizeof(uint32_t));
6149 stream->write(&packetSize_vkDestroyFramebuffer, sizeof(uint32_t));
6150 uint64_t cgen_var_445;
6151 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_445, 1);
6152 stream->write((uint64_t*)&cgen_var_445, 1 * 8);
6153 uint64_t cgen_var_446;
6154 stream->handleMapping()->mapHandles_VkFramebuffer_u64(&local_framebuffer, &cgen_var_446, 1);
6155 stream->write((uint64_t*)&cgen_var_446, 1 * 8);
6156 // WARNING PTR CHECK
6157 uint64_t cgen_var_447 = (uint64_t)(uintptr_t)local_pAllocator;
6158 stream->putBe64(cgen_var_447);
6159 if (local_pAllocator)
6160 {
6161 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
6162 }
6163 AEMU_SCOPED_TRACE("vkDestroyFramebuffer readParams");
6164 AEMU_SCOPED_TRACE("vkDestroyFramebuffer returnUnmarshal");
6165 resources->destroyMapping()->mapHandles_VkFramebuffer((VkFramebuffer*)&framebuffer);
6166 mImpl->log("finish vkDestroyFramebuffer");;
6167 }
6168
vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)6169 VkResult VkEncoder::vkCreateRenderPass(
6170 VkDevice device,
6171 const VkRenderPassCreateInfo* pCreateInfo,
6172 const VkAllocationCallbacks* pAllocator,
6173 VkRenderPass* pRenderPass)
6174 {
6175 AEMU_SCOPED_TRACE("vkCreateRenderPass encode");
6176 mImpl->log("start vkCreateRenderPass");
6177 auto stream = mImpl->stream();
6178 auto countingStream = mImpl->countingStream();
6179 auto resources = mImpl->resources();
6180 auto pool = mImpl->pool();
6181 stream->setHandleMapping(resources->unwrapMapping());
6182 VkDevice local_device;
6183 VkRenderPassCreateInfo* local_pCreateInfo;
6184 VkAllocationCallbacks* local_pAllocator;
6185 local_device = device;
6186 local_pCreateInfo = nullptr;
6187 if (pCreateInfo)
6188 {
6189 local_pCreateInfo = (VkRenderPassCreateInfo*)pool->alloc(sizeof(const VkRenderPassCreateInfo));
6190 deepcopy_VkRenderPassCreateInfo(pool, pCreateInfo, (VkRenderPassCreateInfo*)(local_pCreateInfo));
6191 }
6192 local_pAllocator = nullptr;
6193 if (pAllocator)
6194 {
6195 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
6196 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
6197 }
6198 local_pAllocator = nullptr;
6199 if (local_pCreateInfo)
6200 {
6201 transform_tohost_VkRenderPassCreateInfo(mImpl->resources(), (VkRenderPassCreateInfo*)(local_pCreateInfo));
6202 }
6203 if (local_pAllocator)
6204 {
6205 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
6206 }
6207 countingStream->rewind();
6208 {
6209 uint64_t cgen_var_448;
6210 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_448, 1);
6211 countingStream->write((uint64_t*)&cgen_var_448, 1 * 8);
6212 marshal_VkRenderPassCreateInfo(countingStream, (VkRenderPassCreateInfo*)(local_pCreateInfo));
6213 // WARNING PTR CHECK
6214 uint64_t cgen_var_449 = (uint64_t)(uintptr_t)local_pAllocator;
6215 countingStream->putBe64(cgen_var_449);
6216 if (local_pAllocator)
6217 {
6218 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
6219 }
6220 uint64_t cgen_var_450;
6221 countingStream->handleMapping()->mapHandles_VkRenderPass_u64(pRenderPass, &cgen_var_450, 1);
6222 countingStream->write((uint64_t*)&cgen_var_450, 8);
6223 }
6224 uint32_t packetSize_vkCreateRenderPass = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6225 countingStream->rewind();
6226 uint32_t opcode_vkCreateRenderPass = OP_vkCreateRenderPass;
6227 stream->write(&opcode_vkCreateRenderPass, sizeof(uint32_t));
6228 stream->write(&packetSize_vkCreateRenderPass, sizeof(uint32_t));
6229 uint64_t cgen_var_451;
6230 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_451, 1);
6231 stream->write((uint64_t*)&cgen_var_451, 1 * 8);
6232 marshal_VkRenderPassCreateInfo(stream, (VkRenderPassCreateInfo*)(local_pCreateInfo));
6233 // WARNING PTR CHECK
6234 uint64_t cgen_var_452 = (uint64_t)(uintptr_t)local_pAllocator;
6235 stream->putBe64(cgen_var_452);
6236 if (local_pAllocator)
6237 {
6238 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
6239 }
6240 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
6241 uint64_t cgen_var_453;
6242 stream->handleMapping()->mapHandles_VkRenderPass_u64(pRenderPass, &cgen_var_453, 1);
6243 stream->write((uint64_t*)&cgen_var_453, 8);
6244 stream->setHandleMapping(resources->unwrapMapping());
6245 AEMU_SCOPED_TRACE("vkCreateRenderPass readParams");
6246 stream->setHandleMapping(resources->createMapping());
6247 uint64_t cgen_var_454;
6248 stream->read((uint64_t*)&cgen_var_454, 8);
6249 stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_454, (VkRenderPass*)pRenderPass, 1);
6250 stream->unsetHandleMapping();
6251 AEMU_SCOPED_TRACE("vkCreateRenderPass returnUnmarshal");
6252 VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
6253 stream->read(&vkCreateRenderPass_VkResult_return, sizeof(VkResult));
6254 countingStream->clearPool();
6255 stream->clearPool();
6256 pool->freeAll();
6257 mImpl->log("finish vkCreateRenderPass");;
6258 return vkCreateRenderPass_VkResult_return;
6259 }
6260
vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)6261 void VkEncoder::vkDestroyRenderPass(
6262 VkDevice device,
6263 VkRenderPass renderPass,
6264 const VkAllocationCallbacks* pAllocator)
6265 {
6266 AEMU_SCOPED_TRACE("vkDestroyRenderPass encode");
6267 mImpl->log("start vkDestroyRenderPass");
6268 auto stream = mImpl->stream();
6269 auto countingStream = mImpl->countingStream();
6270 auto resources = mImpl->resources();
6271 auto pool = mImpl->pool();
6272 stream->setHandleMapping(resources->unwrapMapping());
6273 VkDevice local_device;
6274 VkRenderPass local_renderPass;
6275 VkAllocationCallbacks* local_pAllocator;
6276 local_device = device;
6277 local_renderPass = renderPass;
6278 local_pAllocator = nullptr;
6279 if (pAllocator)
6280 {
6281 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
6282 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
6283 }
6284 local_pAllocator = nullptr;
6285 if (local_pAllocator)
6286 {
6287 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
6288 }
6289 countingStream->rewind();
6290 {
6291 uint64_t cgen_var_455;
6292 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_455, 1);
6293 countingStream->write((uint64_t*)&cgen_var_455, 1 * 8);
6294 uint64_t cgen_var_456;
6295 countingStream->handleMapping()->mapHandles_VkRenderPass_u64(&local_renderPass, &cgen_var_456, 1);
6296 countingStream->write((uint64_t*)&cgen_var_456, 1 * 8);
6297 // WARNING PTR CHECK
6298 uint64_t cgen_var_457 = (uint64_t)(uintptr_t)local_pAllocator;
6299 countingStream->putBe64(cgen_var_457);
6300 if (local_pAllocator)
6301 {
6302 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
6303 }
6304 }
6305 uint32_t packetSize_vkDestroyRenderPass = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6306 countingStream->rewind();
6307 uint32_t opcode_vkDestroyRenderPass = OP_vkDestroyRenderPass;
6308 stream->write(&opcode_vkDestroyRenderPass, sizeof(uint32_t));
6309 stream->write(&packetSize_vkDestroyRenderPass, sizeof(uint32_t));
6310 uint64_t cgen_var_458;
6311 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_458, 1);
6312 stream->write((uint64_t*)&cgen_var_458, 1 * 8);
6313 uint64_t cgen_var_459;
6314 stream->handleMapping()->mapHandles_VkRenderPass_u64(&local_renderPass, &cgen_var_459, 1);
6315 stream->write((uint64_t*)&cgen_var_459, 1 * 8);
6316 // WARNING PTR CHECK
6317 uint64_t cgen_var_460 = (uint64_t)(uintptr_t)local_pAllocator;
6318 stream->putBe64(cgen_var_460);
6319 if (local_pAllocator)
6320 {
6321 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
6322 }
6323 AEMU_SCOPED_TRACE("vkDestroyRenderPass readParams");
6324 AEMU_SCOPED_TRACE("vkDestroyRenderPass returnUnmarshal");
6325 resources->destroyMapping()->mapHandles_VkRenderPass((VkRenderPass*)&renderPass);
6326 mImpl->log("finish vkDestroyRenderPass");;
6327 }
6328
vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)6329 void VkEncoder::vkGetRenderAreaGranularity(
6330 VkDevice device,
6331 VkRenderPass renderPass,
6332 VkExtent2D* pGranularity)
6333 {
6334 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity encode");
6335 mImpl->log("start vkGetRenderAreaGranularity");
6336 auto stream = mImpl->stream();
6337 auto countingStream = mImpl->countingStream();
6338 auto resources = mImpl->resources();
6339 auto pool = mImpl->pool();
6340 stream->setHandleMapping(resources->unwrapMapping());
6341 VkDevice local_device;
6342 VkRenderPass local_renderPass;
6343 local_device = device;
6344 local_renderPass = renderPass;
6345 countingStream->rewind();
6346 {
6347 uint64_t cgen_var_461;
6348 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_461, 1);
6349 countingStream->write((uint64_t*)&cgen_var_461, 1 * 8);
6350 uint64_t cgen_var_462;
6351 countingStream->handleMapping()->mapHandles_VkRenderPass_u64(&local_renderPass, &cgen_var_462, 1);
6352 countingStream->write((uint64_t*)&cgen_var_462, 1 * 8);
6353 marshal_VkExtent2D(countingStream, (VkExtent2D*)(pGranularity));
6354 }
6355 uint32_t packetSize_vkGetRenderAreaGranularity = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6356 countingStream->rewind();
6357 uint32_t opcode_vkGetRenderAreaGranularity = OP_vkGetRenderAreaGranularity;
6358 stream->write(&opcode_vkGetRenderAreaGranularity, sizeof(uint32_t));
6359 stream->write(&packetSize_vkGetRenderAreaGranularity, sizeof(uint32_t));
6360 uint64_t cgen_var_463;
6361 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_463, 1);
6362 stream->write((uint64_t*)&cgen_var_463, 1 * 8);
6363 uint64_t cgen_var_464;
6364 stream->handleMapping()->mapHandles_VkRenderPass_u64(&local_renderPass, &cgen_var_464, 1);
6365 stream->write((uint64_t*)&cgen_var_464, 1 * 8);
6366 marshal_VkExtent2D(stream, (VkExtent2D*)(pGranularity));
6367 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity readParams");
6368 unmarshal_VkExtent2D(stream, (VkExtent2D*)(pGranularity));
6369 if (pGranularity)
6370 {
6371 transform_fromhost_VkExtent2D(mImpl->resources(), (VkExtent2D*)(pGranularity));
6372 }
6373 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity returnUnmarshal");
6374 mImpl->log("finish vkGetRenderAreaGranularity");;
6375 }
6376
vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)6377 VkResult VkEncoder::vkCreateCommandPool(
6378 VkDevice device,
6379 const VkCommandPoolCreateInfo* pCreateInfo,
6380 const VkAllocationCallbacks* pAllocator,
6381 VkCommandPool* pCommandPool)
6382 {
6383 AEMU_SCOPED_TRACE("vkCreateCommandPool encode");
6384 mImpl->log("start vkCreateCommandPool");
6385 auto stream = mImpl->stream();
6386 auto countingStream = mImpl->countingStream();
6387 auto resources = mImpl->resources();
6388 auto pool = mImpl->pool();
6389 stream->setHandleMapping(resources->unwrapMapping());
6390 VkDevice local_device;
6391 VkCommandPoolCreateInfo* local_pCreateInfo;
6392 VkAllocationCallbacks* local_pAllocator;
6393 local_device = device;
6394 local_pCreateInfo = nullptr;
6395 if (pCreateInfo)
6396 {
6397 local_pCreateInfo = (VkCommandPoolCreateInfo*)pool->alloc(sizeof(const VkCommandPoolCreateInfo));
6398 deepcopy_VkCommandPoolCreateInfo(pool, pCreateInfo, (VkCommandPoolCreateInfo*)(local_pCreateInfo));
6399 }
6400 local_pAllocator = nullptr;
6401 if (pAllocator)
6402 {
6403 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
6404 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
6405 }
6406 local_pAllocator = nullptr;
6407 if (local_pCreateInfo)
6408 {
6409 transform_tohost_VkCommandPoolCreateInfo(mImpl->resources(), (VkCommandPoolCreateInfo*)(local_pCreateInfo));
6410 }
6411 if (local_pAllocator)
6412 {
6413 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
6414 }
6415 countingStream->rewind();
6416 {
6417 uint64_t cgen_var_465;
6418 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_465, 1);
6419 countingStream->write((uint64_t*)&cgen_var_465, 1 * 8);
6420 marshal_VkCommandPoolCreateInfo(countingStream, (VkCommandPoolCreateInfo*)(local_pCreateInfo));
6421 // WARNING PTR CHECK
6422 uint64_t cgen_var_466 = (uint64_t)(uintptr_t)local_pAllocator;
6423 countingStream->putBe64(cgen_var_466);
6424 if (local_pAllocator)
6425 {
6426 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
6427 }
6428 uint64_t cgen_var_467;
6429 countingStream->handleMapping()->mapHandles_VkCommandPool_u64(pCommandPool, &cgen_var_467, 1);
6430 countingStream->write((uint64_t*)&cgen_var_467, 8);
6431 }
6432 uint32_t packetSize_vkCreateCommandPool = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6433 countingStream->rewind();
6434 uint32_t opcode_vkCreateCommandPool = OP_vkCreateCommandPool;
6435 stream->write(&opcode_vkCreateCommandPool, sizeof(uint32_t));
6436 stream->write(&packetSize_vkCreateCommandPool, sizeof(uint32_t));
6437 uint64_t cgen_var_468;
6438 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_468, 1);
6439 stream->write((uint64_t*)&cgen_var_468, 1 * 8);
6440 marshal_VkCommandPoolCreateInfo(stream, (VkCommandPoolCreateInfo*)(local_pCreateInfo));
6441 // WARNING PTR CHECK
6442 uint64_t cgen_var_469 = (uint64_t)(uintptr_t)local_pAllocator;
6443 stream->putBe64(cgen_var_469);
6444 if (local_pAllocator)
6445 {
6446 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
6447 }
6448 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
6449 uint64_t cgen_var_470;
6450 stream->handleMapping()->mapHandles_VkCommandPool_u64(pCommandPool, &cgen_var_470, 1);
6451 stream->write((uint64_t*)&cgen_var_470, 8);
6452 stream->setHandleMapping(resources->unwrapMapping());
6453 AEMU_SCOPED_TRACE("vkCreateCommandPool readParams");
6454 stream->setHandleMapping(resources->createMapping());
6455 uint64_t cgen_var_471;
6456 stream->read((uint64_t*)&cgen_var_471, 8);
6457 stream->handleMapping()->mapHandles_u64_VkCommandPool(&cgen_var_471, (VkCommandPool*)pCommandPool, 1);
6458 stream->unsetHandleMapping();
6459 AEMU_SCOPED_TRACE("vkCreateCommandPool returnUnmarshal");
6460 VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
6461 stream->read(&vkCreateCommandPool_VkResult_return, sizeof(VkResult));
6462 countingStream->clearPool();
6463 stream->clearPool();
6464 pool->freeAll();
6465 mImpl->log("finish vkCreateCommandPool");;
6466 return vkCreateCommandPool_VkResult_return;
6467 }
6468
vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)6469 void VkEncoder::vkDestroyCommandPool(
6470 VkDevice device,
6471 VkCommandPool commandPool,
6472 const VkAllocationCallbacks* pAllocator)
6473 {
6474 AEMU_SCOPED_TRACE("vkDestroyCommandPool encode");
6475 mImpl->log("start vkDestroyCommandPool");
6476 auto stream = mImpl->stream();
6477 auto countingStream = mImpl->countingStream();
6478 auto resources = mImpl->resources();
6479 auto pool = mImpl->pool();
6480 stream->setHandleMapping(resources->unwrapMapping());
6481 VkDevice local_device;
6482 VkCommandPool local_commandPool;
6483 VkAllocationCallbacks* local_pAllocator;
6484 local_device = device;
6485 local_commandPool = commandPool;
6486 local_pAllocator = nullptr;
6487 if (pAllocator)
6488 {
6489 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
6490 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
6491 }
6492 local_pAllocator = nullptr;
6493 if (local_pAllocator)
6494 {
6495 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
6496 }
6497 countingStream->rewind();
6498 {
6499 uint64_t cgen_var_472;
6500 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_472, 1);
6501 countingStream->write((uint64_t*)&cgen_var_472, 1 * 8);
6502 uint64_t cgen_var_473;
6503 countingStream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_473, 1);
6504 countingStream->write((uint64_t*)&cgen_var_473, 1 * 8);
6505 // WARNING PTR CHECK
6506 uint64_t cgen_var_474 = (uint64_t)(uintptr_t)local_pAllocator;
6507 countingStream->putBe64(cgen_var_474);
6508 if (local_pAllocator)
6509 {
6510 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
6511 }
6512 }
6513 uint32_t packetSize_vkDestroyCommandPool = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6514 countingStream->rewind();
6515 uint32_t opcode_vkDestroyCommandPool = OP_vkDestroyCommandPool;
6516 stream->write(&opcode_vkDestroyCommandPool, sizeof(uint32_t));
6517 stream->write(&packetSize_vkDestroyCommandPool, sizeof(uint32_t));
6518 uint64_t cgen_var_475;
6519 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_475, 1);
6520 stream->write((uint64_t*)&cgen_var_475, 1 * 8);
6521 uint64_t cgen_var_476;
6522 stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_476, 1);
6523 stream->write((uint64_t*)&cgen_var_476, 1 * 8);
6524 // WARNING PTR CHECK
6525 uint64_t cgen_var_477 = (uint64_t)(uintptr_t)local_pAllocator;
6526 stream->putBe64(cgen_var_477);
6527 if (local_pAllocator)
6528 {
6529 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
6530 }
6531 AEMU_SCOPED_TRACE("vkDestroyCommandPool readParams");
6532 AEMU_SCOPED_TRACE("vkDestroyCommandPool returnUnmarshal");
6533 resources->destroyMapping()->mapHandles_VkCommandPool((VkCommandPool*)&commandPool);
6534 mImpl->log("finish vkDestroyCommandPool");;
6535 }
6536
vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)6537 VkResult VkEncoder::vkResetCommandPool(
6538 VkDevice device,
6539 VkCommandPool commandPool,
6540 VkCommandPoolResetFlags flags)
6541 {
6542 AEMU_SCOPED_TRACE("vkResetCommandPool encode");
6543 mImpl->log("start vkResetCommandPool");
6544 auto stream = mImpl->stream();
6545 auto countingStream = mImpl->countingStream();
6546 auto resources = mImpl->resources();
6547 auto pool = mImpl->pool();
6548 stream->setHandleMapping(resources->unwrapMapping());
6549 VkDevice local_device;
6550 VkCommandPool local_commandPool;
6551 VkCommandPoolResetFlags local_flags;
6552 local_device = device;
6553 local_commandPool = commandPool;
6554 local_flags = flags;
6555 countingStream->rewind();
6556 {
6557 uint64_t cgen_var_478;
6558 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_478, 1);
6559 countingStream->write((uint64_t*)&cgen_var_478, 1 * 8);
6560 uint64_t cgen_var_479;
6561 countingStream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_479, 1);
6562 countingStream->write((uint64_t*)&cgen_var_479, 1 * 8);
6563 countingStream->write((VkCommandPoolResetFlags*)&local_flags, sizeof(VkCommandPoolResetFlags));
6564 }
6565 uint32_t packetSize_vkResetCommandPool = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6566 countingStream->rewind();
6567 uint32_t opcode_vkResetCommandPool = OP_vkResetCommandPool;
6568 stream->write(&opcode_vkResetCommandPool, sizeof(uint32_t));
6569 stream->write(&packetSize_vkResetCommandPool, sizeof(uint32_t));
6570 uint64_t cgen_var_480;
6571 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_480, 1);
6572 stream->write((uint64_t*)&cgen_var_480, 1 * 8);
6573 uint64_t cgen_var_481;
6574 stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_481, 1);
6575 stream->write((uint64_t*)&cgen_var_481, 1 * 8);
6576 stream->write((VkCommandPoolResetFlags*)&local_flags, sizeof(VkCommandPoolResetFlags));
6577 AEMU_SCOPED_TRACE("vkResetCommandPool readParams");
6578 AEMU_SCOPED_TRACE("vkResetCommandPool returnUnmarshal");
6579 VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
6580 stream->read(&vkResetCommandPool_VkResult_return, sizeof(VkResult));
6581 countingStream->clearPool();
6582 stream->clearPool();
6583 pool->freeAll();
6584 mImpl->log("finish vkResetCommandPool");;
6585 return vkResetCommandPool_VkResult_return;
6586 }
6587
vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers)6588 VkResult VkEncoder::vkAllocateCommandBuffers(
6589 VkDevice device,
6590 const VkCommandBufferAllocateInfo* pAllocateInfo,
6591 VkCommandBuffer* pCommandBuffers)
6592 {
6593 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers encode");
6594 mImpl->log("start vkAllocateCommandBuffers");
6595 auto stream = mImpl->stream();
6596 auto countingStream = mImpl->countingStream();
6597 auto resources = mImpl->resources();
6598 auto pool = mImpl->pool();
6599 stream->setHandleMapping(resources->unwrapMapping());
6600 VkDevice local_device;
6601 VkCommandBufferAllocateInfo* local_pAllocateInfo;
6602 local_device = device;
6603 local_pAllocateInfo = nullptr;
6604 if (pAllocateInfo)
6605 {
6606 local_pAllocateInfo = (VkCommandBufferAllocateInfo*)pool->alloc(sizeof(const VkCommandBufferAllocateInfo));
6607 deepcopy_VkCommandBufferAllocateInfo(pool, pAllocateInfo, (VkCommandBufferAllocateInfo*)(local_pAllocateInfo));
6608 }
6609 if (local_pAllocateInfo)
6610 {
6611 transform_tohost_VkCommandBufferAllocateInfo(mImpl->resources(), (VkCommandBufferAllocateInfo*)(local_pAllocateInfo));
6612 }
6613 countingStream->rewind();
6614 {
6615 uint64_t cgen_var_482;
6616 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_482, 1);
6617 countingStream->write((uint64_t*)&cgen_var_482, 1 * 8);
6618 marshal_VkCommandBufferAllocateInfo(countingStream, (VkCommandBufferAllocateInfo*)(local_pAllocateInfo));
6619 if (pAllocateInfo->commandBufferCount)
6620 {
6621 uint64_t* cgen_var_483;
6622 countingStream->alloc((void**)&cgen_var_483, pAllocateInfo->commandBufferCount * 8);
6623 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(pCommandBuffers, cgen_var_483, pAllocateInfo->commandBufferCount);
6624 countingStream->write((uint64_t*)cgen_var_483, pAllocateInfo->commandBufferCount * 8);
6625 }
6626 }
6627 uint32_t packetSize_vkAllocateCommandBuffers = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6628 countingStream->rewind();
6629 uint32_t opcode_vkAllocateCommandBuffers = OP_vkAllocateCommandBuffers;
6630 stream->write(&opcode_vkAllocateCommandBuffers, sizeof(uint32_t));
6631 stream->write(&packetSize_vkAllocateCommandBuffers, sizeof(uint32_t));
6632 uint64_t cgen_var_484;
6633 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_484, 1);
6634 stream->write((uint64_t*)&cgen_var_484, 1 * 8);
6635 marshal_VkCommandBufferAllocateInfo(stream, (VkCommandBufferAllocateInfo*)(local_pAllocateInfo));
6636 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
6637 if (pAllocateInfo->commandBufferCount)
6638 {
6639 uint64_t* cgen_var_485;
6640 stream->alloc((void**)&cgen_var_485, pAllocateInfo->commandBufferCount * 8);
6641 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(pCommandBuffers, cgen_var_485, pAllocateInfo->commandBufferCount);
6642 stream->write((uint64_t*)cgen_var_485, pAllocateInfo->commandBufferCount * 8);
6643 }
6644 stream->setHandleMapping(resources->unwrapMapping());
6645 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers readParams");
6646 stream->setHandleMapping(resources->createMapping());
6647 if (pAllocateInfo->commandBufferCount)
6648 {
6649 uint64_t* cgen_var_486;
6650 stream->alloc((void**)&cgen_var_486, pAllocateInfo->commandBufferCount * 8);
6651 stream->read((uint64_t*)cgen_var_486, pAllocateInfo->commandBufferCount * 8);
6652 stream->handleMapping()->mapHandles_u64_VkCommandBuffer(cgen_var_486, (VkCommandBuffer*)pCommandBuffers, pAllocateInfo->commandBufferCount);
6653 }
6654 stream->unsetHandleMapping();
6655 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers returnUnmarshal");
6656 VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
6657 stream->read(&vkAllocateCommandBuffers_VkResult_return, sizeof(VkResult));
6658 countingStream->clearPool();
6659 stream->clearPool();
6660 pool->freeAll();
6661 mImpl->log("finish vkAllocateCommandBuffers");;
6662 return vkAllocateCommandBuffers_VkResult_return;
6663 }
6664
vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)6665 void VkEncoder::vkFreeCommandBuffers(
6666 VkDevice device,
6667 VkCommandPool commandPool,
6668 uint32_t commandBufferCount,
6669 const VkCommandBuffer* pCommandBuffers)
6670 {
6671 AEMU_SCOPED_TRACE("vkFreeCommandBuffers encode");
6672 mImpl->log("start vkFreeCommandBuffers");
6673 auto stream = mImpl->stream();
6674 auto countingStream = mImpl->countingStream();
6675 auto resources = mImpl->resources();
6676 auto pool = mImpl->pool();
6677 stream->setHandleMapping(resources->unwrapMapping());
6678 VkDevice local_device;
6679 VkCommandPool local_commandPool;
6680 uint32_t local_commandBufferCount;
6681 VkCommandBuffer* local_pCommandBuffers;
6682 local_device = device;
6683 local_commandPool = commandPool;
6684 local_commandBufferCount = commandBufferCount;
6685 local_pCommandBuffers = nullptr;
6686 if (pCommandBuffers)
6687 {
6688 local_pCommandBuffers = (VkCommandBuffer*)pool->dupArray(pCommandBuffers, ((commandBufferCount)) * sizeof(const VkCommandBuffer));
6689 }
6690 countingStream->rewind();
6691 {
6692 uint64_t cgen_var_487;
6693 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_487, 1);
6694 countingStream->write((uint64_t*)&cgen_var_487, 1 * 8);
6695 uint64_t cgen_var_488;
6696 countingStream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_488, 1);
6697 countingStream->write((uint64_t*)&cgen_var_488, 1 * 8);
6698 countingStream->write((uint32_t*)&local_commandBufferCount, sizeof(uint32_t));
6699 // WARNING PTR CHECK
6700 uint64_t cgen_var_489 = (uint64_t)(uintptr_t)local_pCommandBuffers;
6701 countingStream->putBe64(cgen_var_489);
6702 if (local_pCommandBuffers)
6703 {
6704 if (((commandBufferCount)))
6705 {
6706 uint64_t* cgen_var_490;
6707 countingStream->alloc((void**)&cgen_var_490, ((commandBufferCount)) * 8);
6708 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(local_pCommandBuffers, cgen_var_490, ((commandBufferCount)));
6709 countingStream->write((uint64_t*)cgen_var_490, ((commandBufferCount)) * 8);
6710 }
6711 }
6712 }
6713 uint32_t packetSize_vkFreeCommandBuffers = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6714 countingStream->rewind();
6715 uint32_t opcode_vkFreeCommandBuffers = OP_vkFreeCommandBuffers;
6716 stream->write(&opcode_vkFreeCommandBuffers, sizeof(uint32_t));
6717 stream->write(&packetSize_vkFreeCommandBuffers, sizeof(uint32_t));
6718 uint64_t cgen_var_491;
6719 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_491, 1);
6720 stream->write((uint64_t*)&cgen_var_491, 1 * 8);
6721 uint64_t cgen_var_492;
6722 stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_492, 1);
6723 stream->write((uint64_t*)&cgen_var_492, 1 * 8);
6724 stream->write((uint32_t*)&local_commandBufferCount, sizeof(uint32_t));
6725 // WARNING PTR CHECK
6726 uint64_t cgen_var_493 = (uint64_t)(uintptr_t)local_pCommandBuffers;
6727 stream->putBe64(cgen_var_493);
6728 if (local_pCommandBuffers)
6729 {
6730 if (((commandBufferCount)))
6731 {
6732 uint64_t* cgen_var_494;
6733 stream->alloc((void**)&cgen_var_494, ((commandBufferCount)) * 8);
6734 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(local_pCommandBuffers, cgen_var_494, ((commandBufferCount)));
6735 stream->write((uint64_t*)cgen_var_494, ((commandBufferCount)) * 8);
6736 }
6737 }
6738 AEMU_SCOPED_TRACE("vkFreeCommandBuffers readParams");
6739 AEMU_SCOPED_TRACE("vkFreeCommandBuffers returnUnmarshal");
6740 if (pCommandBuffers)
6741 {
6742 resources->destroyMapping()->mapHandles_VkCommandBuffer((VkCommandBuffer*)pCommandBuffers, ((commandBufferCount)));
6743 }
6744 mImpl->log("finish vkFreeCommandBuffers");;
6745 }
6746
vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)6747 VkResult VkEncoder::vkBeginCommandBuffer(
6748 VkCommandBuffer commandBuffer,
6749 const VkCommandBufferBeginInfo* pBeginInfo)
6750 {
6751 AEMU_SCOPED_TRACE("vkBeginCommandBuffer encode");
6752 mImpl->log("start vkBeginCommandBuffer");
6753 auto stream = mImpl->stream();
6754 auto countingStream = mImpl->countingStream();
6755 auto resources = mImpl->resources();
6756 auto pool = mImpl->pool();
6757 stream->setHandleMapping(resources->unwrapMapping());
6758 VkCommandBuffer local_commandBuffer;
6759 VkCommandBufferBeginInfo* local_pBeginInfo;
6760 local_commandBuffer = commandBuffer;
6761 local_pBeginInfo = nullptr;
6762 if (pBeginInfo)
6763 {
6764 local_pBeginInfo = (VkCommandBufferBeginInfo*)pool->alloc(sizeof(const VkCommandBufferBeginInfo));
6765 deepcopy_VkCommandBufferBeginInfo(pool, pBeginInfo, (VkCommandBufferBeginInfo*)(local_pBeginInfo));
6766 }
6767 if (local_pBeginInfo)
6768 {
6769 transform_tohost_VkCommandBufferBeginInfo(mImpl->resources(), (VkCommandBufferBeginInfo*)(local_pBeginInfo));
6770 }
6771 countingStream->rewind();
6772 {
6773 uint64_t cgen_var_495;
6774 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_495, 1);
6775 countingStream->write((uint64_t*)&cgen_var_495, 1 * 8);
6776 marshal_VkCommandBufferBeginInfo(countingStream, (VkCommandBufferBeginInfo*)(local_pBeginInfo));
6777 }
6778 uint32_t packetSize_vkBeginCommandBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6779 countingStream->rewind();
6780 uint32_t opcode_vkBeginCommandBuffer = OP_vkBeginCommandBuffer;
6781 stream->write(&opcode_vkBeginCommandBuffer, sizeof(uint32_t));
6782 stream->write(&packetSize_vkBeginCommandBuffer, sizeof(uint32_t));
6783 uint64_t cgen_var_496;
6784 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_496, 1);
6785 stream->write((uint64_t*)&cgen_var_496, 1 * 8);
6786 marshal_VkCommandBufferBeginInfo(stream, (VkCommandBufferBeginInfo*)(local_pBeginInfo));
6787 AEMU_SCOPED_TRACE("vkBeginCommandBuffer readParams");
6788 AEMU_SCOPED_TRACE("vkBeginCommandBuffer returnUnmarshal");
6789 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
6790 stream->read(&vkBeginCommandBuffer_VkResult_return, sizeof(VkResult));
6791 countingStream->clearPool();
6792 stream->clearPool();
6793 pool->freeAll();
6794 mImpl->log("finish vkBeginCommandBuffer");;
6795 return vkBeginCommandBuffer_VkResult_return;
6796 }
6797
vkEndCommandBuffer(VkCommandBuffer commandBuffer)6798 VkResult VkEncoder::vkEndCommandBuffer(
6799 VkCommandBuffer commandBuffer)
6800 {
6801 AEMU_SCOPED_TRACE("vkEndCommandBuffer encode");
6802 mImpl->log("start vkEndCommandBuffer");
6803 auto stream = mImpl->stream();
6804 auto countingStream = mImpl->countingStream();
6805 auto resources = mImpl->resources();
6806 auto pool = mImpl->pool();
6807 stream->setHandleMapping(resources->unwrapMapping());
6808 VkCommandBuffer local_commandBuffer;
6809 local_commandBuffer = commandBuffer;
6810 countingStream->rewind();
6811 {
6812 uint64_t cgen_var_497;
6813 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_497, 1);
6814 countingStream->write((uint64_t*)&cgen_var_497, 1 * 8);
6815 }
6816 uint32_t packetSize_vkEndCommandBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6817 countingStream->rewind();
6818 uint32_t opcode_vkEndCommandBuffer = OP_vkEndCommandBuffer;
6819 stream->write(&opcode_vkEndCommandBuffer, sizeof(uint32_t));
6820 stream->write(&packetSize_vkEndCommandBuffer, sizeof(uint32_t));
6821 uint64_t cgen_var_498;
6822 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_498, 1);
6823 stream->write((uint64_t*)&cgen_var_498, 1 * 8);
6824 AEMU_SCOPED_TRACE("vkEndCommandBuffer readParams");
6825 AEMU_SCOPED_TRACE("vkEndCommandBuffer returnUnmarshal");
6826 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
6827 stream->read(&vkEndCommandBuffer_VkResult_return, sizeof(VkResult));
6828 countingStream->clearPool();
6829 stream->clearPool();
6830 pool->freeAll();
6831 mImpl->log("finish vkEndCommandBuffer");;
6832 return vkEndCommandBuffer_VkResult_return;
6833 }
6834
vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)6835 VkResult VkEncoder::vkResetCommandBuffer(
6836 VkCommandBuffer commandBuffer,
6837 VkCommandBufferResetFlags flags)
6838 {
6839 AEMU_SCOPED_TRACE("vkResetCommandBuffer encode");
6840 mImpl->log("start vkResetCommandBuffer");
6841 auto stream = mImpl->stream();
6842 auto countingStream = mImpl->countingStream();
6843 auto resources = mImpl->resources();
6844 auto pool = mImpl->pool();
6845 stream->setHandleMapping(resources->unwrapMapping());
6846 VkCommandBuffer local_commandBuffer;
6847 VkCommandBufferResetFlags local_flags;
6848 local_commandBuffer = commandBuffer;
6849 local_flags = flags;
6850 countingStream->rewind();
6851 {
6852 uint64_t cgen_var_499;
6853 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_499, 1);
6854 countingStream->write((uint64_t*)&cgen_var_499, 1 * 8);
6855 countingStream->write((VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags));
6856 }
6857 uint32_t packetSize_vkResetCommandBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6858 countingStream->rewind();
6859 uint32_t opcode_vkResetCommandBuffer = OP_vkResetCommandBuffer;
6860 stream->write(&opcode_vkResetCommandBuffer, sizeof(uint32_t));
6861 stream->write(&packetSize_vkResetCommandBuffer, sizeof(uint32_t));
6862 uint64_t cgen_var_500;
6863 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_500, 1);
6864 stream->write((uint64_t*)&cgen_var_500, 1 * 8);
6865 stream->write((VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags));
6866 AEMU_SCOPED_TRACE("vkResetCommandBuffer readParams");
6867 AEMU_SCOPED_TRACE("vkResetCommandBuffer returnUnmarshal");
6868 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
6869 stream->read(&vkResetCommandBuffer_VkResult_return, sizeof(VkResult));
6870 countingStream->clearPool();
6871 stream->clearPool();
6872 pool->freeAll();
6873 mImpl->log("finish vkResetCommandBuffer");;
6874 return vkResetCommandBuffer_VkResult_return;
6875 }
6876
vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)6877 void VkEncoder::vkCmdBindPipeline(
6878 VkCommandBuffer commandBuffer,
6879 VkPipelineBindPoint pipelineBindPoint,
6880 VkPipeline pipeline)
6881 {
6882 AEMU_SCOPED_TRACE("vkCmdBindPipeline encode");
6883 mImpl->log("start vkCmdBindPipeline");
6884 auto stream = mImpl->stream();
6885 auto countingStream = mImpl->countingStream();
6886 auto resources = mImpl->resources();
6887 auto pool = mImpl->pool();
6888 stream->setHandleMapping(resources->unwrapMapping());
6889 VkCommandBuffer local_commandBuffer;
6890 VkPipelineBindPoint local_pipelineBindPoint;
6891 VkPipeline local_pipeline;
6892 local_commandBuffer = commandBuffer;
6893 local_pipelineBindPoint = pipelineBindPoint;
6894 local_pipeline = pipeline;
6895 countingStream->rewind();
6896 {
6897 uint64_t cgen_var_501;
6898 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_501, 1);
6899 countingStream->write((uint64_t*)&cgen_var_501, 1 * 8);
6900 countingStream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint));
6901 uint64_t cgen_var_502;
6902 countingStream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_502, 1);
6903 countingStream->write((uint64_t*)&cgen_var_502, 1 * 8);
6904 }
6905 uint32_t packetSize_vkCmdBindPipeline = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6906 countingStream->rewind();
6907 uint32_t opcode_vkCmdBindPipeline = OP_vkCmdBindPipeline;
6908 stream->write(&opcode_vkCmdBindPipeline, sizeof(uint32_t));
6909 stream->write(&packetSize_vkCmdBindPipeline, sizeof(uint32_t));
6910 uint64_t cgen_var_503;
6911 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_503, 1);
6912 stream->write((uint64_t*)&cgen_var_503, 1 * 8);
6913 stream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint));
6914 uint64_t cgen_var_504;
6915 stream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_504, 1);
6916 stream->write((uint64_t*)&cgen_var_504, 1 * 8);
6917 AEMU_SCOPED_TRACE("vkCmdBindPipeline readParams");
6918 AEMU_SCOPED_TRACE("vkCmdBindPipeline returnUnmarshal");
6919 mImpl->log("finish vkCmdBindPipeline");;
6920 }
6921
vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)6922 void VkEncoder::vkCmdSetViewport(
6923 VkCommandBuffer commandBuffer,
6924 uint32_t firstViewport,
6925 uint32_t viewportCount,
6926 const VkViewport* pViewports)
6927 {
6928 AEMU_SCOPED_TRACE("vkCmdSetViewport encode");
6929 mImpl->log("start vkCmdSetViewport");
6930 auto stream = mImpl->stream();
6931 auto countingStream = mImpl->countingStream();
6932 auto resources = mImpl->resources();
6933 auto pool = mImpl->pool();
6934 stream->setHandleMapping(resources->unwrapMapping());
6935 VkCommandBuffer local_commandBuffer;
6936 uint32_t local_firstViewport;
6937 uint32_t local_viewportCount;
6938 VkViewport* local_pViewports;
6939 local_commandBuffer = commandBuffer;
6940 local_firstViewport = firstViewport;
6941 local_viewportCount = viewportCount;
6942 local_pViewports = nullptr;
6943 if (pViewports)
6944 {
6945 local_pViewports = (VkViewport*)pool->alloc(((viewportCount)) * sizeof(const VkViewport));
6946 for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
6947 {
6948 deepcopy_VkViewport(pool, pViewports + i, (VkViewport*)(local_pViewports + i));
6949 }
6950 }
6951 if (local_pViewports)
6952 {
6953 for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
6954 {
6955 transform_tohost_VkViewport(mImpl->resources(), (VkViewport*)(local_pViewports + i));
6956 }
6957 }
6958 countingStream->rewind();
6959 {
6960 uint64_t cgen_var_505;
6961 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_505, 1);
6962 countingStream->write((uint64_t*)&cgen_var_505, 1 * 8);
6963 countingStream->write((uint32_t*)&local_firstViewport, sizeof(uint32_t));
6964 countingStream->write((uint32_t*)&local_viewportCount, sizeof(uint32_t));
6965 for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
6966 {
6967 marshal_VkViewport(countingStream, (VkViewport*)(local_pViewports + i));
6968 }
6969 }
6970 uint32_t packetSize_vkCmdSetViewport = 4 + 4 + (uint32_t)countingStream->bytesWritten();
6971 countingStream->rewind();
6972 uint32_t opcode_vkCmdSetViewport = OP_vkCmdSetViewport;
6973 stream->write(&opcode_vkCmdSetViewport, sizeof(uint32_t));
6974 stream->write(&packetSize_vkCmdSetViewport, sizeof(uint32_t));
6975 uint64_t cgen_var_506;
6976 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_506, 1);
6977 stream->write((uint64_t*)&cgen_var_506, 1 * 8);
6978 stream->write((uint32_t*)&local_firstViewport, sizeof(uint32_t));
6979 stream->write((uint32_t*)&local_viewportCount, sizeof(uint32_t));
6980 for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
6981 {
6982 marshal_VkViewport(stream, (VkViewport*)(local_pViewports + i));
6983 }
6984 AEMU_SCOPED_TRACE("vkCmdSetViewport readParams");
6985 AEMU_SCOPED_TRACE("vkCmdSetViewport returnUnmarshal");
6986 mImpl->log("finish vkCmdSetViewport");;
6987 }
6988
vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)6989 void VkEncoder::vkCmdSetScissor(
6990 VkCommandBuffer commandBuffer,
6991 uint32_t firstScissor,
6992 uint32_t scissorCount,
6993 const VkRect2D* pScissors)
6994 {
6995 AEMU_SCOPED_TRACE("vkCmdSetScissor encode");
6996 mImpl->log("start vkCmdSetScissor");
6997 auto stream = mImpl->stream();
6998 auto countingStream = mImpl->countingStream();
6999 auto resources = mImpl->resources();
7000 auto pool = mImpl->pool();
7001 stream->setHandleMapping(resources->unwrapMapping());
7002 VkCommandBuffer local_commandBuffer;
7003 uint32_t local_firstScissor;
7004 uint32_t local_scissorCount;
7005 VkRect2D* local_pScissors;
7006 local_commandBuffer = commandBuffer;
7007 local_firstScissor = firstScissor;
7008 local_scissorCount = scissorCount;
7009 local_pScissors = nullptr;
7010 if (pScissors)
7011 {
7012 local_pScissors = (VkRect2D*)pool->alloc(((scissorCount)) * sizeof(const VkRect2D));
7013 for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i)
7014 {
7015 deepcopy_VkRect2D(pool, pScissors + i, (VkRect2D*)(local_pScissors + i));
7016 }
7017 }
7018 if (local_pScissors)
7019 {
7020 for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i)
7021 {
7022 transform_tohost_VkRect2D(mImpl->resources(), (VkRect2D*)(local_pScissors + i));
7023 }
7024 }
7025 countingStream->rewind();
7026 {
7027 uint64_t cgen_var_507;
7028 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_507, 1);
7029 countingStream->write((uint64_t*)&cgen_var_507, 1 * 8);
7030 countingStream->write((uint32_t*)&local_firstScissor, sizeof(uint32_t));
7031 countingStream->write((uint32_t*)&local_scissorCount, sizeof(uint32_t));
7032 for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i)
7033 {
7034 marshal_VkRect2D(countingStream, (VkRect2D*)(local_pScissors + i));
7035 }
7036 }
7037 uint32_t packetSize_vkCmdSetScissor = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7038 countingStream->rewind();
7039 uint32_t opcode_vkCmdSetScissor = OP_vkCmdSetScissor;
7040 stream->write(&opcode_vkCmdSetScissor, sizeof(uint32_t));
7041 stream->write(&packetSize_vkCmdSetScissor, sizeof(uint32_t));
7042 uint64_t cgen_var_508;
7043 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_508, 1);
7044 stream->write((uint64_t*)&cgen_var_508, 1 * 8);
7045 stream->write((uint32_t*)&local_firstScissor, sizeof(uint32_t));
7046 stream->write((uint32_t*)&local_scissorCount, sizeof(uint32_t));
7047 for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i)
7048 {
7049 marshal_VkRect2D(stream, (VkRect2D*)(local_pScissors + i));
7050 }
7051 AEMU_SCOPED_TRACE("vkCmdSetScissor readParams");
7052 AEMU_SCOPED_TRACE("vkCmdSetScissor returnUnmarshal");
7053 mImpl->log("finish vkCmdSetScissor");;
7054 }
7055
vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth)7056 void VkEncoder::vkCmdSetLineWidth(
7057 VkCommandBuffer commandBuffer,
7058 float lineWidth)
7059 {
7060 AEMU_SCOPED_TRACE("vkCmdSetLineWidth encode");
7061 mImpl->log("start vkCmdSetLineWidth");
7062 auto stream = mImpl->stream();
7063 auto countingStream = mImpl->countingStream();
7064 auto resources = mImpl->resources();
7065 auto pool = mImpl->pool();
7066 stream->setHandleMapping(resources->unwrapMapping());
7067 VkCommandBuffer local_commandBuffer;
7068 float local_lineWidth;
7069 local_commandBuffer = commandBuffer;
7070 local_lineWidth = lineWidth;
7071 countingStream->rewind();
7072 {
7073 uint64_t cgen_var_509;
7074 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_509, 1);
7075 countingStream->write((uint64_t*)&cgen_var_509, 1 * 8);
7076 countingStream->write((float*)&local_lineWidth, sizeof(float));
7077 }
7078 uint32_t packetSize_vkCmdSetLineWidth = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7079 countingStream->rewind();
7080 uint32_t opcode_vkCmdSetLineWidth = OP_vkCmdSetLineWidth;
7081 stream->write(&opcode_vkCmdSetLineWidth, sizeof(uint32_t));
7082 stream->write(&packetSize_vkCmdSetLineWidth, sizeof(uint32_t));
7083 uint64_t cgen_var_510;
7084 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_510, 1);
7085 stream->write((uint64_t*)&cgen_var_510, 1 * 8);
7086 stream->write((float*)&local_lineWidth, sizeof(float));
7087 AEMU_SCOPED_TRACE("vkCmdSetLineWidth readParams");
7088 AEMU_SCOPED_TRACE("vkCmdSetLineWidth returnUnmarshal");
7089 mImpl->log("finish vkCmdSetLineWidth");;
7090 }
7091
vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor)7092 void VkEncoder::vkCmdSetDepthBias(
7093 VkCommandBuffer commandBuffer,
7094 float depthBiasConstantFactor,
7095 float depthBiasClamp,
7096 float depthBiasSlopeFactor)
7097 {
7098 AEMU_SCOPED_TRACE("vkCmdSetDepthBias encode");
7099 mImpl->log("start vkCmdSetDepthBias");
7100 auto stream = mImpl->stream();
7101 auto countingStream = mImpl->countingStream();
7102 auto resources = mImpl->resources();
7103 auto pool = mImpl->pool();
7104 stream->setHandleMapping(resources->unwrapMapping());
7105 VkCommandBuffer local_commandBuffer;
7106 float local_depthBiasConstantFactor;
7107 float local_depthBiasClamp;
7108 float local_depthBiasSlopeFactor;
7109 local_commandBuffer = commandBuffer;
7110 local_depthBiasConstantFactor = depthBiasConstantFactor;
7111 local_depthBiasClamp = depthBiasClamp;
7112 local_depthBiasSlopeFactor = depthBiasSlopeFactor;
7113 countingStream->rewind();
7114 {
7115 uint64_t cgen_var_511;
7116 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_511, 1);
7117 countingStream->write((uint64_t*)&cgen_var_511, 1 * 8);
7118 countingStream->write((float*)&local_depthBiasConstantFactor, sizeof(float));
7119 countingStream->write((float*)&local_depthBiasClamp, sizeof(float));
7120 countingStream->write((float*)&local_depthBiasSlopeFactor, sizeof(float));
7121 }
7122 uint32_t packetSize_vkCmdSetDepthBias = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7123 countingStream->rewind();
7124 uint32_t opcode_vkCmdSetDepthBias = OP_vkCmdSetDepthBias;
7125 stream->write(&opcode_vkCmdSetDepthBias, sizeof(uint32_t));
7126 stream->write(&packetSize_vkCmdSetDepthBias, sizeof(uint32_t));
7127 uint64_t cgen_var_512;
7128 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_512, 1);
7129 stream->write((uint64_t*)&cgen_var_512, 1 * 8);
7130 stream->write((float*)&local_depthBiasConstantFactor, sizeof(float));
7131 stream->write((float*)&local_depthBiasClamp, sizeof(float));
7132 stream->write((float*)&local_depthBiasSlopeFactor, sizeof(float));
7133 AEMU_SCOPED_TRACE("vkCmdSetDepthBias readParams");
7134 AEMU_SCOPED_TRACE("vkCmdSetDepthBias returnUnmarshal");
7135 mImpl->log("finish vkCmdSetDepthBias");;
7136 }
7137
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4])7138 void VkEncoder::vkCmdSetBlendConstants(
7139 VkCommandBuffer commandBuffer,
7140 const float blendConstants[4])
7141 {
7142 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants encode");
7143 mImpl->log("start vkCmdSetBlendConstants");
7144 auto stream = mImpl->stream();
7145 auto countingStream = mImpl->countingStream();
7146 auto resources = mImpl->resources();
7147 auto pool = mImpl->pool();
7148 stream->setHandleMapping(resources->unwrapMapping());
7149 VkCommandBuffer local_commandBuffer;
7150 float local_blendConstants[4];
7151 local_commandBuffer = commandBuffer;
7152 memcpy(&local_blendConstants, &blendConstants, 4 * sizeof(const float));
7153 countingStream->rewind();
7154 {
7155 uint64_t cgen_var_513;
7156 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_513, 1);
7157 countingStream->write((uint64_t*)&cgen_var_513, 1 * 8);
7158 countingStream->write((float*)&local_blendConstants, 4 * sizeof(float));
7159 }
7160 uint32_t packetSize_vkCmdSetBlendConstants = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7161 countingStream->rewind();
7162 uint32_t opcode_vkCmdSetBlendConstants = OP_vkCmdSetBlendConstants;
7163 stream->write(&opcode_vkCmdSetBlendConstants, sizeof(uint32_t));
7164 stream->write(&packetSize_vkCmdSetBlendConstants, sizeof(uint32_t));
7165 uint64_t cgen_var_514;
7166 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_514, 1);
7167 stream->write((uint64_t*)&cgen_var_514, 1 * 8);
7168 stream->write((float*)&local_blendConstants, 4 * sizeof(float));
7169 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants readParams");
7170 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants returnUnmarshal");
7171 mImpl->log("finish vkCmdSetBlendConstants");;
7172 }
7173
vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds)7174 void VkEncoder::vkCmdSetDepthBounds(
7175 VkCommandBuffer commandBuffer,
7176 float minDepthBounds,
7177 float maxDepthBounds)
7178 {
7179 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds encode");
7180 mImpl->log("start vkCmdSetDepthBounds");
7181 auto stream = mImpl->stream();
7182 auto countingStream = mImpl->countingStream();
7183 auto resources = mImpl->resources();
7184 auto pool = mImpl->pool();
7185 stream->setHandleMapping(resources->unwrapMapping());
7186 VkCommandBuffer local_commandBuffer;
7187 float local_minDepthBounds;
7188 float local_maxDepthBounds;
7189 local_commandBuffer = commandBuffer;
7190 local_minDepthBounds = minDepthBounds;
7191 local_maxDepthBounds = maxDepthBounds;
7192 countingStream->rewind();
7193 {
7194 uint64_t cgen_var_515;
7195 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_515, 1);
7196 countingStream->write((uint64_t*)&cgen_var_515, 1 * 8);
7197 countingStream->write((float*)&local_minDepthBounds, sizeof(float));
7198 countingStream->write((float*)&local_maxDepthBounds, sizeof(float));
7199 }
7200 uint32_t packetSize_vkCmdSetDepthBounds = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7201 countingStream->rewind();
7202 uint32_t opcode_vkCmdSetDepthBounds = OP_vkCmdSetDepthBounds;
7203 stream->write(&opcode_vkCmdSetDepthBounds, sizeof(uint32_t));
7204 stream->write(&packetSize_vkCmdSetDepthBounds, sizeof(uint32_t));
7205 uint64_t cgen_var_516;
7206 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_516, 1);
7207 stream->write((uint64_t*)&cgen_var_516, 1 * 8);
7208 stream->write((float*)&local_minDepthBounds, sizeof(float));
7209 stream->write((float*)&local_maxDepthBounds, sizeof(float));
7210 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds readParams");
7211 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds returnUnmarshal");
7212 mImpl->log("finish vkCmdSetDepthBounds");;
7213 }
7214
vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask)7215 void VkEncoder::vkCmdSetStencilCompareMask(
7216 VkCommandBuffer commandBuffer,
7217 VkStencilFaceFlags faceMask,
7218 uint32_t compareMask)
7219 {
7220 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask encode");
7221 mImpl->log("start vkCmdSetStencilCompareMask");
7222 auto stream = mImpl->stream();
7223 auto countingStream = mImpl->countingStream();
7224 auto resources = mImpl->resources();
7225 auto pool = mImpl->pool();
7226 stream->setHandleMapping(resources->unwrapMapping());
7227 VkCommandBuffer local_commandBuffer;
7228 VkStencilFaceFlags local_faceMask;
7229 uint32_t local_compareMask;
7230 local_commandBuffer = commandBuffer;
7231 local_faceMask = faceMask;
7232 local_compareMask = compareMask;
7233 countingStream->rewind();
7234 {
7235 uint64_t cgen_var_517;
7236 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_517, 1);
7237 countingStream->write((uint64_t*)&cgen_var_517, 1 * 8);
7238 countingStream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
7239 countingStream->write((uint32_t*)&local_compareMask, sizeof(uint32_t));
7240 }
7241 uint32_t packetSize_vkCmdSetStencilCompareMask = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7242 countingStream->rewind();
7243 uint32_t opcode_vkCmdSetStencilCompareMask = OP_vkCmdSetStencilCompareMask;
7244 stream->write(&opcode_vkCmdSetStencilCompareMask, sizeof(uint32_t));
7245 stream->write(&packetSize_vkCmdSetStencilCompareMask, sizeof(uint32_t));
7246 uint64_t cgen_var_518;
7247 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_518, 1);
7248 stream->write((uint64_t*)&cgen_var_518, 1 * 8);
7249 stream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
7250 stream->write((uint32_t*)&local_compareMask, sizeof(uint32_t));
7251 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask readParams");
7252 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask returnUnmarshal");
7253 mImpl->log("finish vkCmdSetStencilCompareMask");;
7254 }
7255
vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask)7256 void VkEncoder::vkCmdSetStencilWriteMask(
7257 VkCommandBuffer commandBuffer,
7258 VkStencilFaceFlags faceMask,
7259 uint32_t writeMask)
7260 {
7261 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask encode");
7262 mImpl->log("start vkCmdSetStencilWriteMask");
7263 auto stream = mImpl->stream();
7264 auto countingStream = mImpl->countingStream();
7265 auto resources = mImpl->resources();
7266 auto pool = mImpl->pool();
7267 stream->setHandleMapping(resources->unwrapMapping());
7268 VkCommandBuffer local_commandBuffer;
7269 VkStencilFaceFlags local_faceMask;
7270 uint32_t local_writeMask;
7271 local_commandBuffer = commandBuffer;
7272 local_faceMask = faceMask;
7273 local_writeMask = writeMask;
7274 countingStream->rewind();
7275 {
7276 uint64_t cgen_var_519;
7277 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_519, 1);
7278 countingStream->write((uint64_t*)&cgen_var_519, 1 * 8);
7279 countingStream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
7280 countingStream->write((uint32_t*)&local_writeMask, sizeof(uint32_t));
7281 }
7282 uint32_t packetSize_vkCmdSetStencilWriteMask = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7283 countingStream->rewind();
7284 uint32_t opcode_vkCmdSetStencilWriteMask = OP_vkCmdSetStencilWriteMask;
7285 stream->write(&opcode_vkCmdSetStencilWriteMask, sizeof(uint32_t));
7286 stream->write(&packetSize_vkCmdSetStencilWriteMask, sizeof(uint32_t));
7287 uint64_t cgen_var_520;
7288 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_520, 1);
7289 stream->write((uint64_t*)&cgen_var_520, 1 * 8);
7290 stream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
7291 stream->write((uint32_t*)&local_writeMask, sizeof(uint32_t));
7292 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask readParams");
7293 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask returnUnmarshal");
7294 mImpl->log("finish vkCmdSetStencilWriteMask");;
7295 }
7296
vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference)7297 void VkEncoder::vkCmdSetStencilReference(
7298 VkCommandBuffer commandBuffer,
7299 VkStencilFaceFlags faceMask,
7300 uint32_t reference)
7301 {
7302 AEMU_SCOPED_TRACE("vkCmdSetStencilReference encode");
7303 mImpl->log("start vkCmdSetStencilReference");
7304 auto stream = mImpl->stream();
7305 auto countingStream = mImpl->countingStream();
7306 auto resources = mImpl->resources();
7307 auto pool = mImpl->pool();
7308 stream->setHandleMapping(resources->unwrapMapping());
7309 VkCommandBuffer local_commandBuffer;
7310 VkStencilFaceFlags local_faceMask;
7311 uint32_t local_reference;
7312 local_commandBuffer = commandBuffer;
7313 local_faceMask = faceMask;
7314 local_reference = reference;
7315 countingStream->rewind();
7316 {
7317 uint64_t cgen_var_521;
7318 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_521, 1);
7319 countingStream->write((uint64_t*)&cgen_var_521, 1 * 8);
7320 countingStream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
7321 countingStream->write((uint32_t*)&local_reference, sizeof(uint32_t));
7322 }
7323 uint32_t packetSize_vkCmdSetStencilReference = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7324 countingStream->rewind();
7325 uint32_t opcode_vkCmdSetStencilReference = OP_vkCmdSetStencilReference;
7326 stream->write(&opcode_vkCmdSetStencilReference, sizeof(uint32_t));
7327 stream->write(&packetSize_vkCmdSetStencilReference, sizeof(uint32_t));
7328 uint64_t cgen_var_522;
7329 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_522, 1);
7330 stream->write((uint64_t*)&cgen_var_522, 1 * 8);
7331 stream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
7332 stream->write((uint32_t*)&local_reference, sizeof(uint32_t));
7333 AEMU_SCOPED_TRACE("vkCmdSetStencilReference readParams");
7334 AEMU_SCOPED_TRACE("vkCmdSetStencilReference returnUnmarshal");
7335 mImpl->log("finish vkCmdSetStencilReference");;
7336 }
7337
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)7338 void VkEncoder::vkCmdBindDescriptorSets(
7339 VkCommandBuffer commandBuffer,
7340 VkPipelineBindPoint pipelineBindPoint,
7341 VkPipelineLayout layout,
7342 uint32_t firstSet,
7343 uint32_t descriptorSetCount,
7344 const VkDescriptorSet* pDescriptorSets,
7345 uint32_t dynamicOffsetCount,
7346 const uint32_t* pDynamicOffsets)
7347 {
7348 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets encode");
7349 mImpl->log("start vkCmdBindDescriptorSets");
7350 auto stream = mImpl->stream();
7351 auto countingStream = mImpl->countingStream();
7352 auto resources = mImpl->resources();
7353 auto pool = mImpl->pool();
7354 stream->setHandleMapping(resources->unwrapMapping());
7355 VkCommandBuffer local_commandBuffer;
7356 VkPipelineBindPoint local_pipelineBindPoint;
7357 VkPipelineLayout local_layout;
7358 uint32_t local_firstSet;
7359 uint32_t local_descriptorSetCount;
7360 VkDescriptorSet* local_pDescriptorSets;
7361 uint32_t local_dynamicOffsetCount;
7362 uint32_t* local_pDynamicOffsets;
7363 local_commandBuffer = commandBuffer;
7364 local_pipelineBindPoint = pipelineBindPoint;
7365 local_layout = layout;
7366 local_firstSet = firstSet;
7367 local_descriptorSetCount = descriptorSetCount;
7368 local_pDescriptorSets = nullptr;
7369 if (pDescriptorSets)
7370 {
7371 local_pDescriptorSets = (VkDescriptorSet*)pool->dupArray(pDescriptorSets, ((descriptorSetCount)) * sizeof(const VkDescriptorSet));
7372 }
7373 local_dynamicOffsetCount = dynamicOffsetCount;
7374 local_pDynamicOffsets = nullptr;
7375 if (pDynamicOffsets)
7376 {
7377 local_pDynamicOffsets = (uint32_t*)pool->dupArray(pDynamicOffsets, ((dynamicOffsetCount)) * sizeof(const uint32_t));
7378 }
7379 countingStream->rewind();
7380 {
7381 uint64_t cgen_var_523;
7382 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_523, 1);
7383 countingStream->write((uint64_t*)&cgen_var_523, 1 * 8);
7384 countingStream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint));
7385 uint64_t cgen_var_524;
7386 countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_524, 1);
7387 countingStream->write((uint64_t*)&cgen_var_524, 1 * 8);
7388 countingStream->write((uint32_t*)&local_firstSet, sizeof(uint32_t));
7389 countingStream->write((uint32_t*)&local_descriptorSetCount, sizeof(uint32_t));
7390 if (((descriptorSetCount)))
7391 {
7392 uint64_t* cgen_var_525;
7393 countingStream->alloc((void**)&cgen_var_525, ((descriptorSetCount)) * 8);
7394 countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(local_pDescriptorSets, cgen_var_525, ((descriptorSetCount)));
7395 countingStream->write((uint64_t*)cgen_var_525, ((descriptorSetCount)) * 8);
7396 }
7397 countingStream->write((uint32_t*)&local_dynamicOffsetCount, sizeof(uint32_t));
7398 countingStream->write((uint32_t*)local_pDynamicOffsets, ((dynamicOffsetCount)) * sizeof(uint32_t));
7399 }
7400 uint32_t packetSize_vkCmdBindDescriptorSets = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7401 countingStream->rewind();
7402 uint32_t opcode_vkCmdBindDescriptorSets = OP_vkCmdBindDescriptorSets;
7403 stream->write(&opcode_vkCmdBindDescriptorSets, sizeof(uint32_t));
7404 stream->write(&packetSize_vkCmdBindDescriptorSets, sizeof(uint32_t));
7405 uint64_t cgen_var_526;
7406 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_526, 1);
7407 stream->write((uint64_t*)&cgen_var_526, 1 * 8);
7408 stream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint));
7409 uint64_t cgen_var_527;
7410 stream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_527, 1);
7411 stream->write((uint64_t*)&cgen_var_527, 1 * 8);
7412 stream->write((uint32_t*)&local_firstSet, sizeof(uint32_t));
7413 stream->write((uint32_t*)&local_descriptorSetCount, sizeof(uint32_t));
7414 if (((descriptorSetCount)))
7415 {
7416 uint64_t* cgen_var_528;
7417 stream->alloc((void**)&cgen_var_528, ((descriptorSetCount)) * 8);
7418 stream->handleMapping()->mapHandles_VkDescriptorSet_u64(local_pDescriptorSets, cgen_var_528, ((descriptorSetCount)));
7419 stream->write((uint64_t*)cgen_var_528, ((descriptorSetCount)) * 8);
7420 }
7421 stream->write((uint32_t*)&local_dynamicOffsetCount, sizeof(uint32_t));
7422 stream->write((uint32_t*)local_pDynamicOffsets, ((dynamicOffsetCount)) * sizeof(uint32_t));
7423 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets readParams");
7424 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets returnUnmarshal");
7425 mImpl->log("finish vkCmdBindDescriptorSets");;
7426 }
7427
vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)7428 void VkEncoder::vkCmdBindIndexBuffer(
7429 VkCommandBuffer commandBuffer,
7430 VkBuffer buffer,
7431 VkDeviceSize offset,
7432 VkIndexType indexType)
7433 {
7434 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer encode");
7435 mImpl->log("start vkCmdBindIndexBuffer");
7436 auto stream = mImpl->stream();
7437 auto countingStream = mImpl->countingStream();
7438 auto resources = mImpl->resources();
7439 auto pool = mImpl->pool();
7440 stream->setHandleMapping(resources->unwrapMapping());
7441 VkCommandBuffer local_commandBuffer;
7442 VkBuffer local_buffer;
7443 VkDeviceSize local_offset;
7444 VkIndexType local_indexType;
7445 local_commandBuffer = commandBuffer;
7446 local_buffer = buffer;
7447 local_offset = offset;
7448 local_indexType = indexType;
7449 countingStream->rewind();
7450 {
7451 uint64_t cgen_var_529;
7452 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_529, 1);
7453 countingStream->write((uint64_t*)&cgen_var_529, 1 * 8);
7454 uint64_t cgen_var_530;
7455 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_530, 1);
7456 countingStream->write((uint64_t*)&cgen_var_530, 1 * 8);
7457 countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
7458 countingStream->write((VkIndexType*)&local_indexType, sizeof(VkIndexType));
7459 }
7460 uint32_t packetSize_vkCmdBindIndexBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7461 countingStream->rewind();
7462 uint32_t opcode_vkCmdBindIndexBuffer = OP_vkCmdBindIndexBuffer;
7463 stream->write(&opcode_vkCmdBindIndexBuffer, sizeof(uint32_t));
7464 stream->write(&packetSize_vkCmdBindIndexBuffer, sizeof(uint32_t));
7465 uint64_t cgen_var_531;
7466 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_531, 1);
7467 stream->write((uint64_t*)&cgen_var_531, 1 * 8);
7468 uint64_t cgen_var_532;
7469 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_532, 1);
7470 stream->write((uint64_t*)&cgen_var_532, 1 * 8);
7471 stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
7472 stream->write((VkIndexType*)&local_indexType, sizeof(VkIndexType));
7473 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer readParams");
7474 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer returnUnmarshal");
7475 mImpl->log("finish vkCmdBindIndexBuffer");;
7476 }
7477
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)7478 void VkEncoder::vkCmdBindVertexBuffers(
7479 VkCommandBuffer commandBuffer,
7480 uint32_t firstBinding,
7481 uint32_t bindingCount,
7482 const VkBuffer* pBuffers,
7483 const VkDeviceSize* pOffsets)
7484 {
7485 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers encode");
7486 mImpl->log("start vkCmdBindVertexBuffers");
7487 auto stream = mImpl->stream();
7488 auto countingStream = mImpl->countingStream();
7489 auto resources = mImpl->resources();
7490 auto pool = mImpl->pool();
7491 stream->setHandleMapping(resources->unwrapMapping());
7492 VkCommandBuffer local_commandBuffer;
7493 uint32_t local_firstBinding;
7494 uint32_t local_bindingCount;
7495 VkBuffer* local_pBuffers;
7496 VkDeviceSize* local_pOffsets;
7497 local_commandBuffer = commandBuffer;
7498 local_firstBinding = firstBinding;
7499 local_bindingCount = bindingCount;
7500 local_pBuffers = nullptr;
7501 if (pBuffers)
7502 {
7503 local_pBuffers = (VkBuffer*)pool->dupArray(pBuffers, ((bindingCount)) * sizeof(const VkBuffer));
7504 }
7505 local_pOffsets = nullptr;
7506 if (pOffsets)
7507 {
7508 local_pOffsets = (VkDeviceSize*)pool->dupArray(pOffsets, ((bindingCount)) * sizeof(const VkDeviceSize));
7509 }
7510 countingStream->rewind();
7511 {
7512 uint64_t cgen_var_533;
7513 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_533, 1);
7514 countingStream->write((uint64_t*)&cgen_var_533, 1 * 8);
7515 countingStream->write((uint32_t*)&local_firstBinding, sizeof(uint32_t));
7516 countingStream->write((uint32_t*)&local_bindingCount, sizeof(uint32_t));
7517 if (((bindingCount)))
7518 {
7519 uint64_t* cgen_var_534;
7520 countingStream->alloc((void**)&cgen_var_534, ((bindingCount)) * 8);
7521 countingStream->handleMapping()->mapHandles_VkBuffer_u64(local_pBuffers, cgen_var_534, ((bindingCount)));
7522 countingStream->write((uint64_t*)cgen_var_534, ((bindingCount)) * 8);
7523 }
7524 countingStream->write((VkDeviceSize*)local_pOffsets, ((bindingCount)) * sizeof(VkDeviceSize));
7525 }
7526 uint32_t packetSize_vkCmdBindVertexBuffers = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7527 countingStream->rewind();
7528 uint32_t opcode_vkCmdBindVertexBuffers = OP_vkCmdBindVertexBuffers;
7529 stream->write(&opcode_vkCmdBindVertexBuffers, sizeof(uint32_t));
7530 stream->write(&packetSize_vkCmdBindVertexBuffers, sizeof(uint32_t));
7531 uint64_t cgen_var_535;
7532 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_535, 1);
7533 stream->write((uint64_t*)&cgen_var_535, 1 * 8);
7534 stream->write((uint32_t*)&local_firstBinding, sizeof(uint32_t));
7535 stream->write((uint32_t*)&local_bindingCount, sizeof(uint32_t));
7536 if (((bindingCount)))
7537 {
7538 uint64_t* cgen_var_536;
7539 stream->alloc((void**)&cgen_var_536, ((bindingCount)) * 8);
7540 stream->handleMapping()->mapHandles_VkBuffer_u64(local_pBuffers, cgen_var_536, ((bindingCount)));
7541 stream->write((uint64_t*)cgen_var_536, ((bindingCount)) * 8);
7542 }
7543 stream->write((VkDeviceSize*)local_pOffsets, ((bindingCount)) * sizeof(VkDeviceSize));
7544 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers readParams");
7545 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers returnUnmarshal");
7546 mImpl->log("finish vkCmdBindVertexBuffers");;
7547 }
7548
vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)7549 void VkEncoder::vkCmdDraw(
7550 VkCommandBuffer commandBuffer,
7551 uint32_t vertexCount,
7552 uint32_t instanceCount,
7553 uint32_t firstVertex,
7554 uint32_t firstInstance)
7555 {
7556 AEMU_SCOPED_TRACE("vkCmdDraw encode");
7557 mImpl->log("start vkCmdDraw");
7558 auto stream = mImpl->stream();
7559 auto countingStream = mImpl->countingStream();
7560 auto resources = mImpl->resources();
7561 auto pool = mImpl->pool();
7562 stream->setHandleMapping(resources->unwrapMapping());
7563 VkCommandBuffer local_commandBuffer;
7564 uint32_t local_vertexCount;
7565 uint32_t local_instanceCount;
7566 uint32_t local_firstVertex;
7567 uint32_t local_firstInstance;
7568 local_commandBuffer = commandBuffer;
7569 local_vertexCount = vertexCount;
7570 local_instanceCount = instanceCount;
7571 local_firstVertex = firstVertex;
7572 local_firstInstance = firstInstance;
7573 countingStream->rewind();
7574 {
7575 uint64_t cgen_var_537;
7576 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_537, 1);
7577 countingStream->write((uint64_t*)&cgen_var_537, 1 * 8);
7578 countingStream->write((uint32_t*)&local_vertexCount, sizeof(uint32_t));
7579 countingStream->write((uint32_t*)&local_instanceCount, sizeof(uint32_t));
7580 countingStream->write((uint32_t*)&local_firstVertex, sizeof(uint32_t));
7581 countingStream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t));
7582 }
7583 uint32_t packetSize_vkCmdDraw = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7584 countingStream->rewind();
7585 uint32_t opcode_vkCmdDraw = OP_vkCmdDraw;
7586 stream->write(&opcode_vkCmdDraw, sizeof(uint32_t));
7587 stream->write(&packetSize_vkCmdDraw, sizeof(uint32_t));
7588 uint64_t cgen_var_538;
7589 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_538, 1);
7590 stream->write((uint64_t*)&cgen_var_538, 1 * 8);
7591 stream->write((uint32_t*)&local_vertexCount, sizeof(uint32_t));
7592 stream->write((uint32_t*)&local_instanceCount, sizeof(uint32_t));
7593 stream->write((uint32_t*)&local_firstVertex, sizeof(uint32_t));
7594 stream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t));
7595 AEMU_SCOPED_TRACE("vkCmdDraw readParams");
7596 AEMU_SCOPED_TRACE("vkCmdDraw returnUnmarshal");
7597 mImpl->log("finish vkCmdDraw");;
7598 }
7599
vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)7600 void VkEncoder::vkCmdDrawIndexed(
7601 VkCommandBuffer commandBuffer,
7602 uint32_t indexCount,
7603 uint32_t instanceCount,
7604 uint32_t firstIndex,
7605 int32_t vertexOffset,
7606 uint32_t firstInstance)
7607 {
7608 AEMU_SCOPED_TRACE("vkCmdDrawIndexed encode");
7609 mImpl->log("start vkCmdDrawIndexed");
7610 auto stream = mImpl->stream();
7611 auto countingStream = mImpl->countingStream();
7612 auto resources = mImpl->resources();
7613 auto pool = mImpl->pool();
7614 stream->setHandleMapping(resources->unwrapMapping());
7615 VkCommandBuffer local_commandBuffer;
7616 uint32_t local_indexCount;
7617 uint32_t local_instanceCount;
7618 uint32_t local_firstIndex;
7619 int32_t local_vertexOffset;
7620 uint32_t local_firstInstance;
7621 local_commandBuffer = commandBuffer;
7622 local_indexCount = indexCount;
7623 local_instanceCount = instanceCount;
7624 local_firstIndex = firstIndex;
7625 local_vertexOffset = vertexOffset;
7626 local_firstInstance = firstInstance;
7627 countingStream->rewind();
7628 {
7629 uint64_t cgen_var_539;
7630 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_539, 1);
7631 countingStream->write((uint64_t*)&cgen_var_539, 1 * 8);
7632 countingStream->write((uint32_t*)&local_indexCount, sizeof(uint32_t));
7633 countingStream->write((uint32_t*)&local_instanceCount, sizeof(uint32_t));
7634 countingStream->write((uint32_t*)&local_firstIndex, sizeof(uint32_t));
7635 countingStream->write((int32_t*)&local_vertexOffset, sizeof(int32_t));
7636 countingStream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t));
7637 }
7638 uint32_t packetSize_vkCmdDrawIndexed = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7639 countingStream->rewind();
7640 uint32_t opcode_vkCmdDrawIndexed = OP_vkCmdDrawIndexed;
7641 stream->write(&opcode_vkCmdDrawIndexed, sizeof(uint32_t));
7642 stream->write(&packetSize_vkCmdDrawIndexed, sizeof(uint32_t));
7643 uint64_t cgen_var_540;
7644 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_540, 1);
7645 stream->write((uint64_t*)&cgen_var_540, 1 * 8);
7646 stream->write((uint32_t*)&local_indexCount, sizeof(uint32_t));
7647 stream->write((uint32_t*)&local_instanceCount, sizeof(uint32_t));
7648 stream->write((uint32_t*)&local_firstIndex, sizeof(uint32_t));
7649 stream->write((int32_t*)&local_vertexOffset, sizeof(int32_t));
7650 stream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t));
7651 AEMU_SCOPED_TRACE("vkCmdDrawIndexed readParams");
7652 AEMU_SCOPED_TRACE("vkCmdDrawIndexed returnUnmarshal");
7653 mImpl->log("finish vkCmdDrawIndexed");;
7654 }
7655
vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)7656 void VkEncoder::vkCmdDrawIndirect(
7657 VkCommandBuffer commandBuffer,
7658 VkBuffer buffer,
7659 VkDeviceSize offset,
7660 uint32_t drawCount,
7661 uint32_t stride)
7662 {
7663 AEMU_SCOPED_TRACE("vkCmdDrawIndirect encode");
7664 mImpl->log("start vkCmdDrawIndirect");
7665 auto stream = mImpl->stream();
7666 auto countingStream = mImpl->countingStream();
7667 auto resources = mImpl->resources();
7668 auto pool = mImpl->pool();
7669 stream->setHandleMapping(resources->unwrapMapping());
7670 VkCommandBuffer local_commandBuffer;
7671 VkBuffer local_buffer;
7672 VkDeviceSize local_offset;
7673 uint32_t local_drawCount;
7674 uint32_t local_stride;
7675 local_commandBuffer = commandBuffer;
7676 local_buffer = buffer;
7677 local_offset = offset;
7678 local_drawCount = drawCount;
7679 local_stride = stride;
7680 countingStream->rewind();
7681 {
7682 uint64_t cgen_var_541;
7683 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_541, 1);
7684 countingStream->write((uint64_t*)&cgen_var_541, 1 * 8);
7685 uint64_t cgen_var_542;
7686 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_542, 1);
7687 countingStream->write((uint64_t*)&cgen_var_542, 1 * 8);
7688 countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
7689 countingStream->write((uint32_t*)&local_drawCount, sizeof(uint32_t));
7690 countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t));
7691 }
7692 uint32_t packetSize_vkCmdDrawIndirect = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7693 countingStream->rewind();
7694 uint32_t opcode_vkCmdDrawIndirect = OP_vkCmdDrawIndirect;
7695 stream->write(&opcode_vkCmdDrawIndirect, sizeof(uint32_t));
7696 stream->write(&packetSize_vkCmdDrawIndirect, sizeof(uint32_t));
7697 uint64_t cgen_var_543;
7698 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_543, 1);
7699 stream->write((uint64_t*)&cgen_var_543, 1 * 8);
7700 uint64_t cgen_var_544;
7701 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_544, 1);
7702 stream->write((uint64_t*)&cgen_var_544, 1 * 8);
7703 stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
7704 stream->write((uint32_t*)&local_drawCount, sizeof(uint32_t));
7705 stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
7706 AEMU_SCOPED_TRACE("vkCmdDrawIndirect readParams");
7707 AEMU_SCOPED_TRACE("vkCmdDrawIndirect returnUnmarshal");
7708 mImpl->log("finish vkCmdDrawIndirect");;
7709 }
7710
vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)7711 void VkEncoder::vkCmdDrawIndexedIndirect(
7712 VkCommandBuffer commandBuffer,
7713 VkBuffer buffer,
7714 VkDeviceSize offset,
7715 uint32_t drawCount,
7716 uint32_t stride)
7717 {
7718 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect encode");
7719 mImpl->log("start vkCmdDrawIndexedIndirect");
7720 auto stream = mImpl->stream();
7721 auto countingStream = mImpl->countingStream();
7722 auto resources = mImpl->resources();
7723 auto pool = mImpl->pool();
7724 stream->setHandleMapping(resources->unwrapMapping());
7725 VkCommandBuffer local_commandBuffer;
7726 VkBuffer local_buffer;
7727 VkDeviceSize local_offset;
7728 uint32_t local_drawCount;
7729 uint32_t local_stride;
7730 local_commandBuffer = commandBuffer;
7731 local_buffer = buffer;
7732 local_offset = offset;
7733 local_drawCount = drawCount;
7734 local_stride = stride;
7735 countingStream->rewind();
7736 {
7737 uint64_t cgen_var_545;
7738 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_545, 1);
7739 countingStream->write((uint64_t*)&cgen_var_545, 1 * 8);
7740 uint64_t cgen_var_546;
7741 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_546, 1);
7742 countingStream->write((uint64_t*)&cgen_var_546, 1 * 8);
7743 countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
7744 countingStream->write((uint32_t*)&local_drawCount, sizeof(uint32_t));
7745 countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t));
7746 }
7747 uint32_t packetSize_vkCmdDrawIndexedIndirect = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7748 countingStream->rewind();
7749 uint32_t opcode_vkCmdDrawIndexedIndirect = OP_vkCmdDrawIndexedIndirect;
7750 stream->write(&opcode_vkCmdDrawIndexedIndirect, sizeof(uint32_t));
7751 stream->write(&packetSize_vkCmdDrawIndexedIndirect, sizeof(uint32_t));
7752 uint64_t cgen_var_547;
7753 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_547, 1);
7754 stream->write((uint64_t*)&cgen_var_547, 1 * 8);
7755 uint64_t cgen_var_548;
7756 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_548, 1);
7757 stream->write((uint64_t*)&cgen_var_548, 1 * 8);
7758 stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
7759 stream->write((uint32_t*)&local_drawCount, sizeof(uint32_t));
7760 stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
7761 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect readParams");
7762 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect returnUnmarshal");
7763 mImpl->log("finish vkCmdDrawIndexedIndirect");;
7764 }
7765
vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)7766 void VkEncoder::vkCmdDispatch(
7767 VkCommandBuffer commandBuffer,
7768 uint32_t groupCountX,
7769 uint32_t groupCountY,
7770 uint32_t groupCountZ)
7771 {
7772 AEMU_SCOPED_TRACE("vkCmdDispatch encode");
7773 mImpl->log("start vkCmdDispatch");
7774 auto stream = mImpl->stream();
7775 auto countingStream = mImpl->countingStream();
7776 auto resources = mImpl->resources();
7777 auto pool = mImpl->pool();
7778 stream->setHandleMapping(resources->unwrapMapping());
7779 VkCommandBuffer local_commandBuffer;
7780 uint32_t local_groupCountX;
7781 uint32_t local_groupCountY;
7782 uint32_t local_groupCountZ;
7783 local_commandBuffer = commandBuffer;
7784 local_groupCountX = groupCountX;
7785 local_groupCountY = groupCountY;
7786 local_groupCountZ = groupCountZ;
7787 countingStream->rewind();
7788 {
7789 uint64_t cgen_var_549;
7790 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_549, 1);
7791 countingStream->write((uint64_t*)&cgen_var_549, 1 * 8);
7792 countingStream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t));
7793 countingStream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t));
7794 countingStream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t));
7795 }
7796 uint32_t packetSize_vkCmdDispatch = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7797 countingStream->rewind();
7798 uint32_t opcode_vkCmdDispatch = OP_vkCmdDispatch;
7799 stream->write(&opcode_vkCmdDispatch, sizeof(uint32_t));
7800 stream->write(&packetSize_vkCmdDispatch, sizeof(uint32_t));
7801 uint64_t cgen_var_550;
7802 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_550, 1);
7803 stream->write((uint64_t*)&cgen_var_550, 1 * 8);
7804 stream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t));
7805 stream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t));
7806 stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t));
7807 AEMU_SCOPED_TRACE("vkCmdDispatch readParams");
7808 AEMU_SCOPED_TRACE("vkCmdDispatch returnUnmarshal");
7809 mImpl->log("finish vkCmdDispatch");;
7810 }
7811
vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)7812 void VkEncoder::vkCmdDispatchIndirect(
7813 VkCommandBuffer commandBuffer,
7814 VkBuffer buffer,
7815 VkDeviceSize offset)
7816 {
7817 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect encode");
7818 mImpl->log("start vkCmdDispatchIndirect");
7819 auto stream = mImpl->stream();
7820 auto countingStream = mImpl->countingStream();
7821 auto resources = mImpl->resources();
7822 auto pool = mImpl->pool();
7823 stream->setHandleMapping(resources->unwrapMapping());
7824 VkCommandBuffer local_commandBuffer;
7825 VkBuffer local_buffer;
7826 VkDeviceSize local_offset;
7827 local_commandBuffer = commandBuffer;
7828 local_buffer = buffer;
7829 local_offset = offset;
7830 countingStream->rewind();
7831 {
7832 uint64_t cgen_var_551;
7833 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_551, 1);
7834 countingStream->write((uint64_t*)&cgen_var_551, 1 * 8);
7835 uint64_t cgen_var_552;
7836 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_552, 1);
7837 countingStream->write((uint64_t*)&cgen_var_552, 1 * 8);
7838 countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
7839 }
7840 uint32_t packetSize_vkCmdDispatchIndirect = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7841 countingStream->rewind();
7842 uint32_t opcode_vkCmdDispatchIndirect = OP_vkCmdDispatchIndirect;
7843 stream->write(&opcode_vkCmdDispatchIndirect, sizeof(uint32_t));
7844 stream->write(&packetSize_vkCmdDispatchIndirect, sizeof(uint32_t));
7845 uint64_t cgen_var_553;
7846 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_553, 1);
7847 stream->write((uint64_t*)&cgen_var_553, 1 * 8);
7848 uint64_t cgen_var_554;
7849 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_554, 1);
7850 stream->write((uint64_t*)&cgen_var_554, 1 * 8);
7851 stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
7852 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect readParams");
7853 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect returnUnmarshal");
7854 mImpl->log("finish vkCmdDispatchIndirect");;
7855 }
7856
vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)7857 void VkEncoder::vkCmdCopyBuffer(
7858 VkCommandBuffer commandBuffer,
7859 VkBuffer srcBuffer,
7860 VkBuffer dstBuffer,
7861 uint32_t regionCount,
7862 const VkBufferCopy* pRegions)
7863 {
7864 AEMU_SCOPED_TRACE("vkCmdCopyBuffer encode");
7865 mImpl->log("start vkCmdCopyBuffer");
7866 auto stream = mImpl->stream();
7867 auto countingStream = mImpl->countingStream();
7868 auto resources = mImpl->resources();
7869 auto pool = mImpl->pool();
7870 stream->setHandleMapping(resources->unwrapMapping());
7871 VkCommandBuffer local_commandBuffer;
7872 VkBuffer local_srcBuffer;
7873 VkBuffer local_dstBuffer;
7874 uint32_t local_regionCount;
7875 VkBufferCopy* local_pRegions;
7876 local_commandBuffer = commandBuffer;
7877 local_srcBuffer = srcBuffer;
7878 local_dstBuffer = dstBuffer;
7879 local_regionCount = regionCount;
7880 local_pRegions = nullptr;
7881 if (pRegions)
7882 {
7883 local_pRegions = (VkBufferCopy*)pool->alloc(((regionCount)) * sizeof(const VkBufferCopy));
7884 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
7885 {
7886 deepcopy_VkBufferCopy(pool, pRegions + i, (VkBufferCopy*)(local_pRegions + i));
7887 }
7888 }
7889 if (local_pRegions)
7890 {
7891 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
7892 {
7893 transform_tohost_VkBufferCopy(mImpl->resources(), (VkBufferCopy*)(local_pRegions + i));
7894 }
7895 }
7896 countingStream->rewind();
7897 {
7898 uint64_t cgen_var_555;
7899 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_555, 1);
7900 countingStream->write((uint64_t*)&cgen_var_555, 1 * 8);
7901 uint64_t cgen_var_556;
7902 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_srcBuffer, &cgen_var_556, 1);
7903 countingStream->write((uint64_t*)&cgen_var_556, 1 * 8);
7904 uint64_t cgen_var_557;
7905 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_557, 1);
7906 countingStream->write((uint64_t*)&cgen_var_557, 1 * 8);
7907 countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
7908 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
7909 {
7910 marshal_VkBufferCopy(countingStream, (VkBufferCopy*)(local_pRegions + i));
7911 }
7912 }
7913 uint32_t packetSize_vkCmdCopyBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
7914 countingStream->rewind();
7915 uint32_t opcode_vkCmdCopyBuffer = OP_vkCmdCopyBuffer;
7916 stream->write(&opcode_vkCmdCopyBuffer, sizeof(uint32_t));
7917 stream->write(&packetSize_vkCmdCopyBuffer, sizeof(uint32_t));
7918 uint64_t cgen_var_558;
7919 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_558, 1);
7920 stream->write((uint64_t*)&cgen_var_558, 1 * 8);
7921 uint64_t cgen_var_559;
7922 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_srcBuffer, &cgen_var_559, 1);
7923 stream->write((uint64_t*)&cgen_var_559, 1 * 8);
7924 uint64_t cgen_var_560;
7925 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_560, 1);
7926 stream->write((uint64_t*)&cgen_var_560, 1 * 8);
7927 stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
7928 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
7929 {
7930 marshal_VkBufferCopy(stream, (VkBufferCopy*)(local_pRegions + i));
7931 }
7932 AEMU_SCOPED_TRACE("vkCmdCopyBuffer readParams");
7933 AEMU_SCOPED_TRACE("vkCmdCopyBuffer returnUnmarshal");
7934 mImpl->log("finish vkCmdCopyBuffer");;
7935 }
7936
vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)7937 void VkEncoder::vkCmdCopyImage(
7938 VkCommandBuffer commandBuffer,
7939 VkImage srcImage,
7940 VkImageLayout srcImageLayout,
7941 VkImage dstImage,
7942 VkImageLayout dstImageLayout,
7943 uint32_t regionCount,
7944 const VkImageCopy* pRegions)
7945 {
7946 AEMU_SCOPED_TRACE("vkCmdCopyImage encode");
7947 mImpl->log("start vkCmdCopyImage");
7948 auto stream = mImpl->stream();
7949 auto countingStream = mImpl->countingStream();
7950 auto resources = mImpl->resources();
7951 auto pool = mImpl->pool();
7952 stream->setHandleMapping(resources->unwrapMapping());
7953 VkCommandBuffer local_commandBuffer;
7954 VkImage local_srcImage;
7955 VkImageLayout local_srcImageLayout;
7956 VkImage local_dstImage;
7957 VkImageLayout local_dstImageLayout;
7958 uint32_t local_regionCount;
7959 VkImageCopy* local_pRegions;
7960 local_commandBuffer = commandBuffer;
7961 local_srcImage = srcImage;
7962 local_srcImageLayout = srcImageLayout;
7963 local_dstImage = dstImage;
7964 local_dstImageLayout = dstImageLayout;
7965 local_regionCount = regionCount;
7966 local_pRegions = nullptr;
7967 if (pRegions)
7968 {
7969 local_pRegions = (VkImageCopy*)pool->alloc(((regionCount)) * sizeof(const VkImageCopy));
7970 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
7971 {
7972 deepcopy_VkImageCopy(pool, pRegions + i, (VkImageCopy*)(local_pRegions + i));
7973 }
7974 }
7975 if (local_pRegions)
7976 {
7977 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
7978 {
7979 transform_tohost_VkImageCopy(mImpl->resources(), (VkImageCopy*)(local_pRegions + i));
7980 }
7981 }
7982 countingStream->rewind();
7983 {
7984 uint64_t cgen_var_561;
7985 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_561, 1);
7986 countingStream->write((uint64_t*)&cgen_var_561, 1 * 8);
7987 uint64_t cgen_var_562;
7988 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_562, 1);
7989 countingStream->write((uint64_t*)&cgen_var_562, 1 * 8);
7990 countingStream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
7991 uint64_t cgen_var_563;
7992 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_563, 1);
7993 countingStream->write((uint64_t*)&cgen_var_563, 1 * 8);
7994 countingStream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
7995 countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
7996 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
7997 {
7998 marshal_VkImageCopy(countingStream, (VkImageCopy*)(local_pRegions + i));
7999 }
8000 }
8001 uint32_t packetSize_vkCmdCopyImage = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8002 countingStream->rewind();
8003 uint32_t opcode_vkCmdCopyImage = OP_vkCmdCopyImage;
8004 stream->write(&opcode_vkCmdCopyImage, sizeof(uint32_t));
8005 stream->write(&packetSize_vkCmdCopyImage, sizeof(uint32_t));
8006 uint64_t cgen_var_564;
8007 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_564, 1);
8008 stream->write((uint64_t*)&cgen_var_564, 1 * 8);
8009 uint64_t cgen_var_565;
8010 stream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_565, 1);
8011 stream->write((uint64_t*)&cgen_var_565, 1 * 8);
8012 stream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
8013 uint64_t cgen_var_566;
8014 stream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_566, 1);
8015 stream->write((uint64_t*)&cgen_var_566, 1 * 8);
8016 stream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
8017 stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
8018 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8019 {
8020 marshal_VkImageCopy(stream, (VkImageCopy*)(local_pRegions + i));
8021 }
8022 AEMU_SCOPED_TRACE("vkCmdCopyImage readParams");
8023 AEMU_SCOPED_TRACE("vkCmdCopyImage returnUnmarshal");
8024 mImpl->log("finish vkCmdCopyImage");;
8025 }
8026
vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)8027 void VkEncoder::vkCmdBlitImage(
8028 VkCommandBuffer commandBuffer,
8029 VkImage srcImage,
8030 VkImageLayout srcImageLayout,
8031 VkImage dstImage,
8032 VkImageLayout dstImageLayout,
8033 uint32_t regionCount,
8034 const VkImageBlit* pRegions,
8035 VkFilter filter)
8036 {
8037 AEMU_SCOPED_TRACE("vkCmdBlitImage encode");
8038 mImpl->log("start vkCmdBlitImage");
8039 auto stream = mImpl->stream();
8040 auto countingStream = mImpl->countingStream();
8041 auto resources = mImpl->resources();
8042 auto pool = mImpl->pool();
8043 stream->setHandleMapping(resources->unwrapMapping());
8044 VkCommandBuffer local_commandBuffer;
8045 VkImage local_srcImage;
8046 VkImageLayout local_srcImageLayout;
8047 VkImage local_dstImage;
8048 VkImageLayout local_dstImageLayout;
8049 uint32_t local_regionCount;
8050 VkImageBlit* local_pRegions;
8051 VkFilter local_filter;
8052 local_commandBuffer = commandBuffer;
8053 local_srcImage = srcImage;
8054 local_srcImageLayout = srcImageLayout;
8055 local_dstImage = dstImage;
8056 local_dstImageLayout = dstImageLayout;
8057 local_regionCount = regionCount;
8058 local_pRegions = nullptr;
8059 if (pRegions)
8060 {
8061 local_pRegions = (VkImageBlit*)pool->alloc(((regionCount)) * sizeof(const VkImageBlit));
8062 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8063 {
8064 deepcopy_VkImageBlit(pool, pRegions + i, (VkImageBlit*)(local_pRegions + i));
8065 }
8066 }
8067 local_filter = filter;
8068 if (local_pRegions)
8069 {
8070 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8071 {
8072 transform_tohost_VkImageBlit(mImpl->resources(), (VkImageBlit*)(local_pRegions + i));
8073 }
8074 }
8075 countingStream->rewind();
8076 {
8077 uint64_t cgen_var_567;
8078 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_567, 1);
8079 countingStream->write((uint64_t*)&cgen_var_567, 1 * 8);
8080 uint64_t cgen_var_568;
8081 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_568, 1);
8082 countingStream->write((uint64_t*)&cgen_var_568, 1 * 8);
8083 countingStream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
8084 uint64_t cgen_var_569;
8085 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_569, 1);
8086 countingStream->write((uint64_t*)&cgen_var_569, 1 * 8);
8087 countingStream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
8088 countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
8089 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8090 {
8091 marshal_VkImageBlit(countingStream, (VkImageBlit*)(local_pRegions + i));
8092 }
8093 countingStream->write((VkFilter*)&local_filter, sizeof(VkFilter));
8094 }
8095 uint32_t packetSize_vkCmdBlitImage = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8096 countingStream->rewind();
8097 uint32_t opcode_vkCmdBlitImage = OP_vkCmdBlitImage;
8098 stream->write(&opcode_vkCmdBlitImage, sizeof(uint32_t));
8099 stream->write(&packetSize_vkCmdBlitImage, sizeof(uint32_t));
8100 uint64_t cgen_var_570;
8101 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_570, 1);
8102 stream->write((uint64_t*)&cgen_var_570, 1 * 8);
8103 uint64_t cgen_var_571;
8104 stream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_571, 1);
8105 stream->write((uint64_t*)&cgen_var_571, 1 * 8);
8106 stream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
8107 uint64_t cgen_var_572;
8108 stream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_572, 1);
8109 stream->write((uint64_t*)&cgen_var_572, 1 * 8);
8110 stream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
8111 stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
8112 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8113 {
8114 marshal_VkImageBlit(stream, (VkImageBlit*)(local_pRegions + i));
8115 }
8116 stream->write((VkFilter*)&local_filter, sizeof(VkFilter));
8117 AEMU_SCOPED_TRACE("vkCmdBlitImage readParams");
8118 AEMU_SCOPED_TRACE("vkCmdBlitImage returnUnmarshal");
8119 mImpl->log("finish vkCmdBlitImage");;
8120 }
8121
vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)8122 void VkEncoder::vkCmdCopyBufferToImage(
8123 VkCommandBuffer commandBuffer,
8124 VkBuffer srcBuffer,
8125 VkImage dstImage,
8126 VkImageLayout dstImageLayout,
8127 uint32_t regionCount,
8128 const VkBufferImageCopy* pRegions)
8129 {
8130 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage encode");
8131 mImpl->log("start vkCmdCopyBufferToImage");
8132 auto stream = mImpl->stream();
8133 auto countingStream = mImpl->countingStream();
8134 auto resources = mImpl->resources();
8135 auto pool = mImpl->pool();
8136 stream->setHandleMapping(resources->unwrapMapping());
8137 VkCommandBuffer local_commandBuffer;
8138 VkBuffer local_srcBuffer;
8139 VkImage local_dstImage;
8140 VkImageLayout local_dstImageLayout;
8141 uint32_t local_regionCount;
8142 VkBufferImageCopy* local_pRegions;
8143 local_commandBuffer = commandBuffer;
8144 local_srcBuffer = srcBuffer;
8145 local_dstImage = dstImage;
8146 local_dstImageLayout = dstImageLayout;
8147 local_regionCount = regionCount;
8148 local_pRegions = nullptr;
8149 if (pRegions)
8150 {
8151 local_pRegions = (VkBufferImageCopy*)pool->alloc(((regionCount)) * sizeof(const VkBufferImageCopy));
8152 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8153 {
8154 deepcopy_VkBufferImageCopy(pool, pRegions + i, (VkBufferImageCopy*)(local_pRegions + i));
8155 }
8156 }
8157 if (local_pRegions)
8158 {
8159 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8160 {
8161 transform_tohost_VkBufferImageCopy(mImpl->resources(), (VkBufferImageCopy*)(local_pRegions + i));
8162 }
8163 }
8164 countingStream->rewind();
8165 {
8166 uint64_t cgen_var_573;
8167 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_573, 1);
8168 countingStream->write((uint64_t*)&cgen_var_573, 1 * 8);
8169 uint64_t cgen_var_574;
8170 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_srcBuffer, &cgen_var_574, 1);
8171 countingStream->write((uint64_t*)&cgen_var_574, 1 * 8);
8172 uint64_t cgen_var_575;
8173 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_575, 1);
8174 countingStream->write((uint64_t*)&cgen_var_575, 1 * 8);
8175 countingStream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
8176 countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
8177 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8178 {
8179 marshal_VkBufferImageCopy(countingStream, (VkBufferImageCopy*)(local_pRegions + i));
8180 }
8181 }
8182 uint32_t packetSize_vkCmdCopyBufferToImage = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8183 countingStream->rewind();
8184 uint32_t opcode_vkCmdCopyBufferToImage = OP_vkCmdCopyBufferToImage;
8185 stream->write(&opcode_vkCmdCopyBufferToImage, sizeof(uint32_t));
8186 stream->write(&packetSize_vkCmdCopyBufferToImage, sizeof(uint32_t));
8187 uint64_t cgen_var_576;
8188 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_576, 1);
8189 stream->write((uint64_t*)&cgen_var_576, 1 * 8);
8190 uint64_t cgen_var_577;
8191 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_srcBuffer, &cgen_var_577, 1);
8192 stream->write((uint64_t*)&cgen_var_577, 1 * 8);
8193 uint64_t cgen_var_578;
8194 stream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_578, 1);
8195 stream->write((uint64_t*)&cgen_var_578, 1 * 8);
8196 stream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
8197 stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
8198 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8199 {
8200 marshal_VkBufferImageCopy(stream, (VkBufferImageCopy*)(local_pRegions + i));
8201 }
8202 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage readParams");
8203 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage returnUnmarshal");
8204 mImpl->log("finish vkCmdCopyBufferToImage");;
8205 }
8206
vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)8207 void VkEncoder::vkCmdCopyImageToBuffer(
8208 VkCommandBuffer commandBuffer,
8209 VkImage srcImage,
8210 VkImageLayout srcImageLayout,
8211 VkBuffer dstBuffer,
8212 uint32_t regionCount,
8213 const VkBufferImageCopy* pRegions)
8214 {
8215 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer encode");
8216 mImpl->log("start vkCmdCopyImageToBuffer");
8217 auto stream = mImpl->stream();
8218 auto countingStream = mImpl->countingStream();
8219 auto resources = mImpl->resources();
8220 auto pool = mImpl->pool();
8221 stream->setHandleMapping(resources->unwrapMapping());
8222 VkCommandBuffer local_commandBuffer;
8223 VkImage local_srcImage;
8224 VkImageLayout local_srcImageLayout;
8225 VkBuffer local_dstBuffer;
8226 uint32_t local_regionCount;
8227 VkBufferImageCopy* local_pRegions;
8228 local_commandBuffer = commandBuffer;
8229 local_srcImage = srcImage;
8230 local_srcImageLayout = srcImageLayout;
8231 local_dstBuffer = dstBuffer;
8232 local_regionCount = regionCount;
8233 local_pRegions = nullptr;
8234 if (pRegions)
8235 {
8236 local_pRegions = (VkBufferImageCopy*)pool->alloc(((regionCount)) * sizeof(const VkBufferImageCopy));
8237 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8238 {
8239 deepcopy_VkBufferImageCopy(pool, pRegions + i, (VkBufferImageCopy*)(local_pRegions + i));
8240 }
8241 }
8242 if (local_pRegions)
8243 {
8244 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8245 {
8246 transform_tohost_VkBufferImageCopy(mImpl->resources(), (VkBufferImageCopy*)(local_pRegions + i));
8247 }
8248 }
8249 countingStream->rewind();
8250 {
8251 uint64_t cgen_var_579;
8252 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_579, 1);
8253 countingStream->write((uint64_t*)&cgen_var_579, 1 * 8);
8254 uint64_t cgen_var_580;
8255 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_580, 1);
8256 countingStream->write((uint64_t*)&cgen_var_580, 1 * 8);
8257 countingStream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
8258 uint64_t cgen_var_581;
8259 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_581, 1);
8260 countingStream->write((uint64_t*)&cgen_var_581, 1 * 8);
8261 countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
8262 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8263 {
8264 marshal_VkBufferImageCopy(countingStream, (VkBufferImageCopy*)(local_pRegions + i));
8265 }
8266 }
8267 uint32_t packetSize_vkCmdCopyImageToBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8268 countingStream->rewind();
8269 uint32_t opcode_vkCmdCopyImageToBuffer = OP_vkCmdCopyImageToBuffer;
8270 stream->write(&opcode_vkCmdCopyImageToBuffer, sizeof(uint32_t));
8271 stream->write(&packetSize_vkCmdCopyImageToBuffer, sizeof(uint32_t));
8272 uint64_t cgen_var_582;
8273 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_582, 1);
8274 stream->write((uint64_t*)&cgen_var_582, 1 * 8);
8275 uint64_t cgen_var_583;
8276 stream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_583, 1);
8277 stream->write((uint64_t*)&cgen_var_583, 1 * 8);
8278 stream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
8279 uint64_t cgen_var_584;
8280 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_584, 1);
8281 stream->write((uint64_t*)&cgen_var_584, 1 * 8);
8282 stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
8283 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8284 {
8285 marshal_VkBufferImageCopy(stream, (VkBufferImageCopy*)(local_pRegions + i));
8286 }
8287 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer readParams");
8288 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer returnUnmarshal");
8289 mImpl->log("finish vkCmdCopyImageToBuffer");;
8290 }
8291
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData)8292 void VkEncoder::vkCmdUpdateBuffer(
8293 VkCommandBuffer commandBuffer,
8294 VkBuffer dstBuffer,
8295 VkDeviceSize dstOffset,
8296 VkDeviceSize dataSize,
8297 const void* pData)
8298 {
8299 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer encode");
8300 mImpl->log("start vkCmdUpdateBuffer");
8301 auto stream = mImpl->stream();
8302 auto countingStream = mImpl->countingStream();
8303 auto resources = mImpl->resources();
8304 auto pool = mImpl->pool();
8305 stream->setHandleMapping(resources->unwrapMapping());
8306 VkCommandBuffer local_commandBuffer;
8307 VkBuffer local_dstBuffer;
8308 VkDeviceSize local_dstOffset;
8309 VkDeviceSize local_dataSize;
8310 void* local_pData;
8311 local_commandBuffer = commandBuffer;
8312 local_dstBuffer = dstBuffer;
8313 local_dstOffset = dstOffset;
8314 local_dataSize = dataSize;
8315 local_pData = nullptr;
8316 if (pData)
8317 {
8318 local_pData = (void*)pool->dupArray(pData, ((dataSize)) * sizeof(const uint8_t));
8319 }
8320 countingStream->rewind();
8321 {
8322 uint64_t cgen_var_585;
8323 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_585, 1);
8324 countingStream->write((uint64_t*)&cgen_var_585, 1 * 8);
8325 uint64_t cgen_var_586;
8326 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_586, 1);
8327 countingStream->write((uint64_t*)&cgen_var_586, 1 * 8);
8328 countingStream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
8329 countingStream->write((VkDeviceSize*)&local_dataSize, sizeof(VkDeviceSize));
8330 countingStream->write((void*)local_pData, ((dataSize)) * sizeof(uint8_t));
8331 }
8332 uint32_t packetSize_vkCmdUpdateBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8333 countingStream->rewind();
8334 uint32_t opcode_vkCmdUpdateBuffer = OP_vkCmdUpdateBuffer;
8335 stream->write(&opcode_vkCmdUpdateBuffer, sizeof(uint32_t));
8336 stream->write(&packetSize_vkCmdUpdateBuffer, sizeof(uint32_t));
8337 uint64_t cgen_var_587;
8338 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_587, 1);
8339 stream->write((uint64_t*)&cgen_var_587, 1 * 8);
8340 uint64_t cgen_var_588;
8341 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_588, 1);
8342 stream->write((uint64_t*)&cgen_var_588, 1 * 8);
8343 stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
8344 stream->write((VkDeviceSize*)&local_dataSize, sizeof(VkDeviceSize));
8345 stream->write((void*)local_pData, ((dataSize)) * sizeof(uint8_t));
8346 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer readParams");
8347 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer returnUnmarshal");
8348 mImpl->log("finish vkCmdUpdateBuffer");;
8349 }
8350
vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data)8351 void VkEncoder::vkCmdFillBuffer(
8352 VkCommandBuffer commandBuffer,
8353 VkBuffer dstBuffer,
8354 VkDeviceSize dstOffset,
8355 VkDeviceSize size,
8356 uint32_t data)
8357 {
8358 AEMU_SCOPED_TRACE("vkCmdFillBuffer encode");
8359 mImpl->log("start vkCmdFillBuffer");
8360 auto stream = mImpl->stream();
8361 auto countingStream = mImpl->countingStream();
8362 auto resources = mImpl->resources();
8363 auto pool = mImpl->pool();
8364 stream->setHandleMapping(resources->unwrapMapping());
8365 VkCommandBuffer local_commandBuffer;
8366 VkBuffer local_dstBuffer;
8367 VkDeviceSize local_dstOffset;
8368 VkDeviceSize local_size;
8369 uint32_t local_data;
8370 local_commandBuffer = commandBuffer;
8371 local_dstBuffer = dstBuffer;
8372 local_dstOffset = dstOffset;
8373 local_size = size;
8374 local_data = data;
8375 countingStream->rewind();
8376 {
8377 uint64_t cgen_var_589;
8378 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_589, 1);
8379 countingStream->write((uint64_t*)&cgen_var_589, 1 * 8);
8380 uint64_t cgen_var_590;
8381 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_590, 1);
8382 countingStream->write((uint64_t*)&cgen_var_590, 1 * 8);
8383 countingStream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
8384 countingStream->write((VkDeviceSize*)&local_size, sizeof(VkDeviceSize));
8385 countingStream->write((uint32_t*)&local_data, sizeof(uint32_t));
8386 }
8387 uint32_t packetSize_vkCmdFillBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8388 countingStream->rewind();
8389 uint32_t opcode_vkCmdFillBuffer = OP_vkCmdFillBuffer;
8390 stream->write(&opcode_vkCmdFillBuffer, sizeof(uint32_t));
8391 stream->write(&packetSize_vkCmdFillBuffer, sizeof(uint32_t));
8392 uint64_t cgen_var_591;
8393 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_591, 1);
8394 stream->write((uint64_t*)&cgen_var_591, 1 * 8);
8395 uint64_t cgen_var_592;
8396 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_592, 1);
8397 stream->write((uint64_t*)&cgen_var_592, 1 * 8);
8398 stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
8399 stream->write((VkDeviceSize*)&local_size, sizeof(VkDeviceSize));
8400 stream->write((uint32_t*)&local_data, sizeof(uint32_t));
8401 AEMU_SCOPED_TRACE("vkCmdFillBuffer readParams");
8402 AEMU_SCOPED_TRACE("vkCmdFillBuffer returnUnmarshal");
8403 mImpl->log("finish vkCmdFillBuffer");;
8404 }
8405
vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)8406 void VkEncoder::vkCmdClearColorImage(
8407 VkCommandBuffer commandBuffer,
8408 VkImage image,
8409 VkImageLayout imageLayout,
8410 const VkClearColorValue* pColor,
8411 uint32_t rangeCount,
8412 const VkImageSubresourceRange* pRanges)
8413 {
8414 AEMU_SCOPED_TRACE("vkCmdClearColorImage encode");
8415 mImpl->log("start vkCmdClearColorImage");
8416 auto stream = mImpl->stream();
8417 auto countingStream = mImpl->countingStream();
8418 auto resources = mImpl->resources();
8419 auto pool = mImpl->pool();
8420 stream->setHandleMapping(resources->unwrapMapping());
8421 VkCommandBuffer local_commandBuffer;
8422 VkImage local_image;
8423 VkImageLayout local_imageLayout;
8424 VkClearColorValue* local_pColor;
8425 uint32_t local_rangeCount;
8426 VkImageSubresourceRange* local_pRanges;
8427 local_commandBuffer = commandBuffer;
8428 local_image = image;
8429 local_imageLayout = imageLayout;
8430 local_pColor = nullptr;
8431 if (pColor)
8432 {
8433 local_pColor = (VkClearColorValue*)pool->alloc(sizeof(const VkClearColorValue));
8434 deepcopy_VkClearColorValue(pool, pColor, (VkClearColorValue*)(local_pColor));
8435 }
8436 local_rangeCount = rangeCount;
8437 local_pRanges = nullptr;
8438 if (pRanges)
8439 {
8440 local_pRanges = (VkImageSubresourceRange*)pool->alloc(((rangeCount)) * sizeof(const VkImageSubresourceRange));
8441 for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
8442 {
8443 deepcopy_VkImageSubresourceRange(pool, pRanges + i, (VkImageSubresourceRange*)(local_pRanges + i));
8444 }
8445 }
8446 if (local_pColor)
8447 {
8448 transform_tohost_VkClearColorValue(mImpl->resources(), (VkClearColorValue*)(local_pColor));
8449 }
8450 if (local_pRanges)
8451 {
8452 for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
8453 {
8454 transform_tohost_VkImageSubresourceRange(mImpl->resources(), (VkImageSubresourceRange*)(local_pRanges + i));
8455 }
8456 }
8457 countingStream->rewind();
8458 {
8459 uint64_t cgen_var_593;
8460 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_593, 1);
8461 countingStream->write((uint64_t*)&cgen_var_593, 1 * 8);
8462 uint64_t cgen_var_594;
8463 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_594, 1);
8464 countingStream->write((uint64_t*)&cgen_var_594, 1 * 8);
8465 countingStream->write((VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout));
8466 marshal_VkClearColorValue(countingStream, (VkClearColorValue*)(local_pColor));
8467 countingStream->write((uint32_t*)&local_rangeCount, sizeof(uint32_t));
8468 for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
8469 {
8470 marshal_VkImageSubresourceRange(countingStream, (VkImageSubresourceRange*)(local_pRanges + i));
8471 }
8472 }
8473 uint32_t packetSize_vkCmdClearColorImage = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8474 countingStream->rewind();
8475 uint32_t opcode_vkCmdClearColorImage = OP_vkCmdClearColorImage;
8476 stream->write(&opcode_vkCmdClearColorImage, sizeof(uint32_t));
8477 stream->write(&packetSize_vkCmdClearColorImage, sizeof(uint32_t));
8478 uint64_t cgen_var_595;
8479 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_595, 1);
8480 stream->write((uint64_t*)&cgen_var_595, 1 * 8);
8481 uint64_t cgen_var_596;
8482 stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_596, 1);
8483 stream->write((uint64_t*)&cgen_var_596, 1 * 8);
8484 stream->write((VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout));
8485 marshal_VkClearColorValue(stream, (VkClearColorValue*)(local_pColor));
8486 stream->write((uint32_t*)&local_rangeCount, sizeof(uint32_t));
8487 for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
8488 {
8489 marshal_VkImageSubresourceRange(stream, (VkImageSubresourceRange*)(local_pRanges + i));
8490 }
8491 AEMU_SCOPED_TRACE("vkCmdClearColorImage readParams");
8492 AEMU_SCOPED_TRACE("vkCmdClearColorImage returnUnmarshal");
8493 mImpl->log("finish vkCmdClearColorImage");;
8494 }
8495
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)8496 void VkEncoder::vkCmdClearDepthStencilImage(
8497 VkCommandBuffer commandBuffer,
8498 VkImage image,
8499 VkImageLayout imageLayout,
8500 const VkClearDepthStencilValue* pDepthStencil,
8501 uint32_t rangeCount,
8502 const VkImageSubresourceRange* pRanges)
8503 {
8504 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage encode");
8505 mImpl->log("start vkCmdClearDepthStencilImage");
8506 auto stream = mImpl->stream();
8507 auto countingStream = mImpl->countingStream();
8508 auto resources = mImpl->resources();
8509 auto pool = mImpl->pool();
8510 stream->setHandleMapping(resources->unwrapMapping());
8511 VkCommandBuffer local_commandBuffer;
8512 VkImage local_image;
8513 VkImageLayout local_imageLayout;
8514 VkClearDepthStencilValue* local_pDepthStencil;
8515 uint32_t local_rangeCount;
8516 VkImageSubresourceRange* local_pRanges;
8517 local_commandBuffer = commandBuffer;
8518 local_image = image;
8519 local_imageLayout = imageLayout;
8520 local_pDepthStencil = nullptr;
8521 if (pDepthStencil)
8522 {
8523 local_pDepthStencil = (VkClearDepthStencilValue*)pool->alloc(sizeof(const VkClearDepthStencilValue));
8524 deepcopy_VkClearDepthStencilValue(pool, pDepthStencil, (VkClearDepthStencilValue*)(local_pDepthStencil));
8525 }
8526 local_rangeCount = rangeCount;
8527 local_pRanges = nullptr;
8528 if (pRanges)
8529 {
8530 local_pRanges = (VkImageSubresourceRange*)pool->alloc(((rangeCount)) * sizeof(const VkImageSubresourceRange));
8531 for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
8532 {
8533 deepcopy_VkImageSubresourceRange(pool, pRanges + i, (VkImageSubresourceRange*)(local_pRanges + i));
8534 }
8535 }
8536 if (local_pDepthStencil)
8537 {
8538 transform_tohost_VkClearDepthStencilValue(mImpl->resources(), (VkClearDepthStencilValue*)(local_pDepthStencil));
8539 }
8540 if (local_pRanges)
8541 {
8542 for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
8543 {
8544 transform_tohost_VkImageSubresourceRange(mImpl->resources(), (VkImageSubresourceRange*)(local_pRanges + i));
8545 }
8546 }
8547 countingStream->rewind();
8548 {
8549 uint64_t cgen_var_597;
8550 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_597, 1);
8551 countingStream->write((uint64_t*)&cgen_var_597, 1 * 8);
8552 uint64_t cgen_var_598;
8553 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_598, 1);
8554 countingStream->write((uint64_t*)&cgen_var_598, 1 * 8);
8555 countingStream->write((VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout));
8556 marshal_VkClearDepthStencilValue(countingStream, (VkClearDepthStencilValue*)(local_pDepthStencil));
8557 countingStream->write((uint32_t*)&local_rangeCount, sizeof(uint32_t));
8558 for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
8559 {
8560 marshal_VkImageSubresourceRange(countingStream, (VkImageSubresourceRange*)(local_pRanges + i));
8561 }
8562 }
8563 uint32_t packetSize_vkCmdClearDepthStencilImage = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8564 countingStream->rewind();
8565 uint32_t opcode_vkCmdClearDepthStencilImage = OP_vkCmdClearDepthStencilImage;
8566 stream->write(&opcode_vkCmdClearDepthStencilImage, sizeof(uint32_t));
8567 stream->write(&packetSize_vkCmdClearDepthStencilImage, sizeof(uint32_t));
8568 uint64_t cgen_var_599;
8569 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_599, 1);
8570 stream->write((uint64_t*)&cgen_var_599, 1 * 8);
8571 uint64_t cgen_var_600;
8572 stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_600, 1);
8573 stream->write((uint64_t*)&cgen_var_600, 1 * 8);
8574 stream->write((VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout));
8575 marshal_VkClearDepthStencilValue(stream, (VkClearDepthStencilValue*)(local_pDepthStencil));
8576 stream->write((uint32_t*)&local_rangeCount, sizeof(uint32_t));
8577 for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
8578 {
8579 marshal_VkImageSubresourceRange(stream, (VkImageSubresourceRange*)(local_pRanges + i));
8580 }
8581 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage readParams");
8582 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage returnUnmarshal");
8583 mImpl->log("finish vkCmdClearDepthStencilImage");;
8584 }
8585
vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)8586 void VkEncoder::vkCmdClearAttachments(
8587 VkCommandBuffer commandBuffer,
8588 uint32_t attachmentCount,
8589 const VkClearAttachment* pAttachments,
8590 uint32_t rectCount,
8591 const VkClearRect* pRects)
8592 {
8593 AEMU_SCOPED_TRACE("vkCmdClearAttachments encode");
8594 mImpl->log("start vkCmdClearAttachments");
8595 auto stream = mImpl->stream();
8596 auto countingStream = mImpl->countingStream();
8597 auto resources = mImpl->resources();
8598 auto pool = mImpl->pool();
8599 stream->setHandleMapping(resources->unwrapMapping());
8600 VkCommandBuffer local_commandBuffer;
8601 uint32_t local_attachmentCount;
8602 VkClearAttachment* local_pAttachments;
8603 uint32_t local_rectCount;
8604 VkClearRect* local_pRects;
8605 local_commandBuffer = commandBuffer;
8606 local_attachmentCount = attachmentCount;
8607 local_pAttachments = nullptr;
8608 if (pAttachments)
8609 {
8610 local_pAttachments = (VkClearAttachment*)pool->alloc(((attachmentCount)) * sizeof(const VkClearAttachment));
8611 for (uint32_t i = 0; i < (uint32_t)((attachmentCount)); ++i)
8612 {
8613 deepcopy_VkClearAttachment(pool, pAttachments + i, (VkClearAttachment*)(local_pAttachments + i));
8614 }
8615 }
8616 local_rectCount = rectCount;
8617 local_pRects = nullptr;
8618 if (pRects)
8619 {
8620 local_pRects = (VkClearRect*)pool->alloc(((rectCount)) * sizeof(const VkClearRect));
8621 for (uint32_t i = 0; i < (uint32_t)((rectCount)); ++i)
8622 {
8623 deepcopy_VkClearRect(pool, pRects + i, (VkClearRect*)(local_pRects + i));
8624 }
8625 }
8626 if (local_pAttachments)
8627 {
8628 for (uint32_t i = 0; i < (uint32_t)((attachmentCount)); ++i)
8629 {
8630 transform_tohost_VkClearAttachment(mImpl->resources(), (VkClearAttachment*)(local_pAttachments + i));
8631 }
8632 }
8633 if (local_pRects)
8634 {
8635 for (uint32_t i = 0; i < (uint32_t)((rectCount)); ++i)
8636 {
8637 transform_tohost_VkClearRect(mImpl->resources(), (VkClearRect*)(local_pRects + i));
8638 }
8639 }
8640 countingStream->rewind();
8641 {
8642 uint64_t cgen_var_601;
8643 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_601, 1);
8644 countingStream->write((uint64_t*)&cgen_var_601, 1 * 8);
8645 countingStream->write((uint32_t*)&local_attachmentCount, sizeof(uint32_t));
8646 for (uint32_t i = 0; i < (uint32_t)((attachmentCount)); ++i)
8647 {
8648 marshal_VkClearAttachment(countingStream, (VkClearAttachment*)(local_pAttachments + i));
8649 }
8650 countingStream->write((uint32_t*)&local_rectCount, sizeof(uint32_t));
8651 for (uint32_t i = 0; i < (uint32_t)((rectCount)); ++i)
8652 {
8653 marshal_VkClearRect(countingStream, (VkClearRect*)(local_pRects + i));
8654 }
8655 }
8656 uint32_t packetSize_vkCmdClearAttachments = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8657 countingStream->rewind();
8658 uint32_t opcode_vkCmdClearAttachments = OP_vkCmdClearAttachments;
8659 stream->write(&opcode_vkCmdClearAttachments, sizeof(uint32_t));
8660 stream->write(&packetSize_vkCmdClearAttachments, sizeof(uint32_t));
8661 uint64_t cgen_var_602;
8662 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_602, 1);
8663 stream->write((uint64_t*)&cgen_var_602, 1 * 8);
8664 stream->write((uint32_t*)&local_attachmentCount, sizeof(uint32_t));
8665 for (uint32_t i = 0; i < (uint32_t)((attachmentCount)); ++i)
8666 {
8667 marshal_VkClearAttachment(stream, (VkClearAttachment*)(local_pAttachments + i));
8668 }
8669 stream->write((uint32_t*)&local_rectCount, sizeof(uint32_t));
8670 for (uint32_t i = 0; i < (uint32_t)((rectCount)); ++i)
8671 {
8672 marshal_VkClearRect(stream, (VkClearRect*)(local_pRects + i));
8673 }
8674 AEMU_SCOPED_TRACE("vkCmdClearAttachments readParams");
8675 AEMU_SCOPED_TRACE("vkCmdClearAttachments returnUnmarshal");
8676 mImpl->log("finish vkCmdClearAttachments");;
8677 }
8678
vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)8679 void VkEncoder::vkCmdResolveImage(
8680 VkCommandBuffer commandBuffer,
8681 VkImage srcImage,
8682 VkImageLayout srcImageLayout,
8683 VkImage dstImage,
8684 VkImageLayout dstImageLayout,
8685 uint32_t regionCount,
8686 const VkImageResolve* pRegions)
8687 {
8688 AEMU_SCOPED_TRACE("vkCmdResolveImage encode");
8689 mImpl->log("start vkCmdResolveImage");
8690 auto stream = mImpl->stream();
8691 auto countingStream = mImpl->countingStream();
8692 auto resources = mImpl->resources();
8693 auto pool = mImpl->pool();
8694 stream->setHandleMapping(resources->unwrapMapping());
8695 VkCommandBuffer local_commandBuffer;
8696 VkImage local_srcImage;
8697 VkImageLayout local_srcImageLayout;
8698 VkImage local_dstImage;
8699 VkImageLayout local_dstImageLayout;
8700 uint32_t local_regionCount;
8701 VkImageResolve* local_pRegions;
8702 local_commandBuffer = commandBuffer;
8703 local_srcImage = srcImage;
8704 local_srcImageLayout = srcImageLayout;
8705 local_dstImage = dstImage;
8706 local_dstImageLayout = dstImageLayout;
8707 local_regionCount = regionCount;
8708 local_pRegions = nullptr;
8709 if (pRegions)
8710 {
8711 local_pRegions = (VkImageResolve*)pool->alloc(((regionCount)) * sizeof(const VkImageResolve));
8712 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8713 {
8714 deepcopy_VkImageResolve(pool, pRegions + i, (VkImageResolve*)(local_pRegions + i));
8715 }
8716 }
8717 if (local_pRegions)
8718 {
8719 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8720 {
8721 transform_tohost_VkImageResolve(mImpl->resources(), (VkImageResolve*)(local_pRegions + i));
8722 }
8723 }
8724 countingStream->rewind();
8725 {
8726 uint64_t cgen_var_603;
8727 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_603, 1);
8728 countingStream->write((uint64_t*)&cgen_var_603, 1 * 8);
8729 uint64_t cgen_var_604;
8730 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_604, 1);
8731 countingStream->write((uint64_t*)&cgen_var_604, 1 * 8);
8732 countingStream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
8733 uint64_t cgen_var_605;
8734 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_605, 1);
8735 countingStream->write((uint64_t*)&cgen_var_605, 1 * 8);
8736 countingStream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
8737 countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
8738 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8739 {
8740 marshal_VkImageResolve(countingStream, (VkImageResolve*)(local_pRegions + i));
8741 }
8742 }
8743 uint32_t packetSize_vkCmdResolveImage = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8744 countingStream->rewind();
8745 uint32_t opcode_vkCmdResolveImage = OP_vkCmdResolveImage;
8746 stream->write(&opcode_vkCmdResolveImage, sizeof(uint32_t));
8747 stream->write(&packetSize_vkCmdResolveImage, sizeof(uint32_t));
8748 uint64_t cgen_var_606;
8749 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_606, 1);
8750 stream->write((uint64_t*)&cgen_var_606, 1 * 8);
8751 uint64_t cgen_var_607;
8752 stream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_607, 1);
8753 stream->write((uint64_t*)&cgen_var_607, 1 * 8);
8754 stream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
8755 uint64_t cgen_var_608;
8756 stream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_608, 1);
8757 stream->write((uint64_t*)&cgen_var_608, 1 * 8);
8758 stream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
8759 stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t));
8760 for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
8761 {
8762 marshal_VkImageResolve(stream, (VkImageResolve*)(local_pRegions + i));
8763 }
8764 AEMU_SCOPED_TRACE("vkCmdResolveImage readParams");
8765 AEMU_SCOPED_TRACE("vkCmdResolveImage returnUnmarshal");
8766 mImpl->log("finish vkCmdResolveImage");;
8767 }
8768
vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)8769 void VkEncoder::vkCmdSetEvent(
8770 VkCommandBuffer commandBuffer,
8771 VkEvent event,
8772 VkPipelineStageFlags stageMask)
8773 {
8774 AEMU_SCOPED_TRACE("vkCmdSetEvent encode");
8775 mImpl->log("start vkCmdSetEvent");
8776 auto stream = mImpl->stream();
8777 auto countingStream = mImpl->countingStream();
8778 auto resources = mImpl->resources();
8779 auto pool = mImpl->pool();
8780 stream->setHandleMapping(resources->unwrapMapping());
8781 VkCommandBuffer local_commandBuffer;
8782 VkEvent local_event;
8783 VkPipelineStageFlags local_stageMask;
8784 local_commandBuffer = commandBuffer;
8785 local_event = event;
8786 local_stageMask = stageMask;
8787 countingStream->rewind();
8788 {
8789 uint64_t cgen_var_609;
8790 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_609, 1);
8791 countingStream->write((uint64_t*)&cgen_var_609, 1 * 8);
8792 uint64_t cgen_var_610;
8793 countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_610, 1);
8794 countingStream->write((uint64_t*)&cgen_var_610, 1 * 8);
8795 countingStream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags));
8796 }
8797 uint32_t packetSize_vkCmdSetEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8798 countingStream->rewind();
8799 uint32_t opcode_vkCmdSetEvent = OP_vkCmdSetEvent;
8800 stream->write(&opcode_vkCmdSetEvent, sizeof(uint32_t));
8801 stream->write(&packetSize_vkCmdSetEvent, sizeof(uint32_t));
8802 uint64_t cgen_var_611;
8803 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_611, 1);
8804 stream->write((uint64_t*)&cgen_var_611, 1 * 8);
8805 uint64_t cgen_var_612;
8806 stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_612, 1);
8807 stream->write((uint64_t*)&cgen_var_612, 1 * 8);
8808 stream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags));
8809 AEMU_SCOPED_TRACE("vkCmdSetEvent readParams");
8810 AEMU_SCOPED_TRACE("vkCmdSetEvent returnUnmarshal");
8811 mImpl->log("finish vkCmdSetEvent");;
8812 }
8813
vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)8814 void VkEncoder::vkCmdResetEvent(
8815 VkCommandBuffer commandBuffer,
8816 VkEvent event,
8817 VkPipelineStageFlags stageMask)
8818 {
8819 AEMU_SCOPED_TRACE("vkCmdResetEvent encode");
8820 mImpl->log("start vkCmdResetEvent");
8821 auto stream = mImpl->stream();
8822 auto countingStream = mImpl->countingStream();
8823 auto resources = mImpl->resources();
8824 auto pool = mImpl->pool();
8825 stream->setHandleMapping(resources->unwrapMapping());
8826 VkCommandBuffer local_commandBuffer;
8827 VkEvent local_event;
8828 VkPipelineStageFlags local_stageMask;
8829 local_commandBuffer = commandBuffer;
8830 local_event = event;
8831 local_stageMask = stageMask;
8832 countingStream->rewind();
8833 {
8834 uint64_t cgen_var_613;
8835 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_613, 1);
8836 countingStream->write((uint64_t*)&cgen_var_613, 1 * 8);
8837 uint64_t cgen_var_614;
8838 countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_614, 1);
8839 countingStream->write((uint64_t*)&cgen_var_614, 1 * 8);
8840 countingStream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags));
8841 }
8842 uint32_t packetSize_vkCmdResetEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8843 countingStream->rewind();
8844 uint32_t opcode_vkCmdResetEvent = OP_vkCmdResetEvent;
8845 stream->write(&opcode_vkCmdResetEvent, sizeof(uint32_t));
8846 stream->write(&packetSize_vkCmdResetEvent, sizeof(uint32_t));
8847 uint64_t cgen_var_615;
8848 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_615, 1);
8849 stream->write((uint64_t*)&cgen_var_615, 1 * 8);
8850 uint64_t cgen_var_616;
8851 stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_616, 1);
8852 stream->write((uint64_t*)&cgen_var_616, 1 * 8);
8853 stream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags));
8854 AEMU_SCOPED_TRACE("vkCmdResetEvent readParams");
8855 AEMU_SCOPED_TRACE("vkCmdResetEvent returnUnmarshal");
8856 mImpl->log("finish vkCmdResetEvent");;
8857 }
8858
vkCmdWaitEvents(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)8859 void VkEncoder::vkCmdWaitEvents(
8860 VkCommandBuffer commandBuffer,
8861 uint32_t eventCount,
8862 const VkEvent* pEvents,
8863 VkPipelineStageFlags srcStageMask,
8864 VkPipelineStageFlags dstStageMask,
8865 uint32_t memoryBarrierCount,
8866 const VkMemoryBarrier* pMemoryBarriers,
8867 uint32_t bufferMemoryBarrierCount,
8868 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8869 uint32_t imageMemoryBarrierCount,
8870 const VkImageMemoryBarrier* pImageMemoryBarriers)
8871 {
8872 AEMU_SCOPED_TRACE("vkCmdWaitEvents encode");
8873 mImpl->log("start vkCmdWaitEvents");
8874 auto stream = mImpl->stream();
8875 auto countingStream = mImpl->countingStream();
8876 auto resources = mImpl->resources();
8877 auto pool = mImpl->pool();
8878 stream->setHandleMapping(resources->unwrapMapping());
8879 VkCommandBuffer local_commandBuffer;
8880 uint32_t local_eventCount;
8881 VkEvent* local_pEvents;
8882 VkPipelineStageFlags local_srcStageMask;
8883 VkPipelineStageFlags local_dstStageMask;
8884 uint32_t local_memoryBarrierCount;
8885 VkMemoryBarrier* local_pMemoryBarriers;
8886 uint32_t local_bufferMemoryBarrierCount;
8887 VkBufferMemoryBarrier* local_pBufferMemoryBarriers;
8888 uint32_t local_imageMemoryBarrierCount;
8889 VkImageMemoryBarrier* local_pImageMemoryBarriers;
8890 local_commandBuffer = commandBuffer;
8891 local_eventCount = eventCount;
8892 local_pEvents = nullptr;
8893 if (pEvents)
8894 {
8895 local_pEvents = (VkEvent*)pool->dupArray(pEvents, ((eventCount)) * sizeof(const VkEvent));
8896 }
8897 local_srcStageMask = srcStageMask;
8898 local_dstStageMask = dstStageMask;
8899 local_memoryBarrierCount = memoryBarrierCount;
8900 local_pMemoryBarriers = nullptr;
8901 if (pMemoryBarriers)
8902 {
8903 local_pMemoryBarriers = (VkMemoryBarrier*)pool->alloc(((memoryBarrierCount)) * sizeof(const VkMemoryBarrier));
8904 for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i)
8905 {
8906 deepcopy_VkMemoryBarrier(pool, pMemoryBarriers + i, (VkMemoryBarrier*)(local_pMemoryBarriers + i));
8907 }
8908 }
8909 local_bufferMemoryBarrierCount = bufferMemoryBarrierCount;
8910 local_pBufferMemoryBarriers = nullptr;
8911 if (pBufferMemoryBarriers)
8912 {
8913 local_pBufferMemoryBarriers = (VkBufferMemoryBarrier*)pool->alloc(((bufferMemoryBarrierCount)) * sizeof(const VkBufferMemoryBarrier));
8914 for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i)
8915 {
8916 deepcopy_VkBufferMemoryBarrier(pool, pBufferMemoryBarriers + i, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
8917 }
8918 }
8919 local_imageMemoryBarrierCount = imageMemoryBarrierCount;
8920 local_pImageMemoryBarriers = nullptr;
8921 if (pImageMemoryBarriers)
8922 {
8923 local_pImageMemoryBarriers = (VkImageMemoryBarrier*)pool->alloc(((imageMemoryBarrierCount)) * sizeof(const VkImageMemoryBarrier));
8924 for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i)
8925 {
8926 deepcopy_VkImageMemoryBarrier(pool, pImageMemoryBarriers + i, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
8927 }
8928 }
8929 if (local_pMemoryBarriers)
8930 {
8931 for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i)
8932 {
8933 transform_tohost_VkMemoryBarrier(mImpl->resources(), (VkMemoryBarrier*)(local_pMemoryBarriers + i));
8934 }
8935 }
8936 if (local_pBufferMemoryBarriers)
8937 {
8938 for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i)
8939 {
8940 transform_tohost_VkBufferMemoryBarrier(mImpl->resources(), (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
8941 }
8942 }
8943 if (local_pImageMemoryBarriers)
8944 {
8945 for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i)
8946 {
8947 transform_tohost_VkImageMemoryBarrier(mImpl->resources(), (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
8948 }
8949 }
8950 countingStream->rewind();
8951 {
8952 uint64_t cgen_var_617;
8953 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_617, 1);
8954 countingStream->write((uint64_t*)&cgen_var_617, 1 * 8);
8955 countingStream->write((uint32_t*)&local_eventCount, sizeof(uint32_t));
8956 if (((eventCount)))
8957 {
8958 uint64_t* cgen_var_618;
8959 countingStream->alloc((void**)&cgen_var_618, ((eventCount)) * 8);
8960 countingStream->handleMapping()->mapHandles_VkEvent_u64(local_pEvents, cgen_var_618, ((eventCount)));
8961 countingStream->write((uint64_t*)cgen_var_618, ((eventCount)) * 8);
8962 }
8963 countingStream->write((VkPipelineStageFlags*)&local_srcStageMask, sizeof(VkPipelineStageFlags));
8964 countingStream->write((VkPipelineStageFlags*)&local_dstStageMask, sizeof(VkPipelineStageFlags));
8965 countingStream->write((uint32_t*)&local_memoryBarrierCount, sizeof(uint32_t));
8966 for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i)
8967 {
8968 marshal_VkMemoryBarrier(countingStream, (VkMemoryBarrier*)(local_pMemoryBarriers + i));
8969 }
8970 countingStream->write((uint32_t*)&local_bufferMemoryBarrierCount, sizeof(uint32_t));
8971 for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i)
8972 {
8973 marshal_VkBufferMemoryBarrier(countingStream, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
8974 }
8975 countingStream->write((uint32_t*)&local_imageMemoryBarrierCount, sizeof(uint32_t));
8976 for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i)
8977 {
8978 marshal_VkImageMemoryBarrier(countingStream, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
8979 }
8980 }
8981 uint32_t packetSize_vkCmdWaitEvents = 4 + 4 + (uint32_t)countingStream->bytesWritten();
8982 countingStream->rewind();
8983 uint32_t opcode_vkCmdWaitEvents = OP_vkCmdWaitEvents;
8984 stream->write(&opcode_vkCmdWaitEvents, sizeof(uint32_t));
8985 stream->write(&packetSize_vkCmdWaitEvents, sizeof(uint32_t));
8986 uint64_t cgen_var_619;
8987 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_619, 1);
8988 stream->write((uint64_t*)&cgen_var_619, 1 * 8);
8989 stream->write((uint32_t*)&local_eventCount, sizeof(uint32_t));
8990 if (((eventCount)))
8991 {
8992 uint64_t* cgen_var_620;
8993 stream->alloc((void**)&cgen_var_620, ((eventCount)) * 8);
8994 stream->handleMapping()->mapHandles_VkEvent_u64(local_pEvents, cgen_var_620, ((eventCount)));
8995 stream->write((uint64_t*)cgen_var_620, ((eventCount)) * 8);
8996 }
8997 stream->write((VkPipelineStageFlags*)&local_srcStageMask, sizeof(VkPipelineStageFlags));
8998 stream->write((VkPipelineStageFlags*)&local_dstStageMask, sizeof(VkPipelineStageFlags));
8999 stream->write((uint32_t*)&local_memoryBarrierCount, sizeof(uint32_t));
9000 for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i)
9001 {
9002 marshal_VkMemoryBarrier(stream, (VkMemoryBarrier*)(local_pMemoryBarriers + i));
9003 }
9004 stream->write((uint32_t*)&local_bufferMemoryBarrierCount, sizeof(uint32_t));
9005 for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i)
9006 {
9007 marshal_VkBufferMemoryBarrier(stream, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
9008 }
9009 stream->write((uint32_t*)&local_imageMemoryBarrierCount, sizeof(uint32_t));
9010 for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i)
9011 {
9012 marshal_VkImageMemoryBarrier(stream, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
9013 }
9014 AEMU_SCOPED_TRACE("vkCmdWaitEvents readParams");
9015 AEMU_SCOPED_TRACE("vkCmdWaitEvents returnUnmarshal");
9016 mImpl->log("finish vkCmdWaitEvents");;
9017 }
9018
vkCmdPipelineBarrier(VkCommandBuffer commandBuffer,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,VkDependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)9019 void VkEncoder::vkCmdPipelineBarrier(
9020 VkCommandBuffer commandBuffer,
9021 VkPipelineStageFlags srcStageMask,
9022 VkPipelineStageFlags dstStageMask,
9023 VkDependencyFlags dependencyFlags,
9024 uint32_t memoryBarrierCount,
9025 const VkMemoryBarrier* pMemoryBarriers,
9026 uint32_t bufferMemoryBarrierCount,
9027 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9028 uint32_t imageMemoryBarrierCount,
9029 const VkImageMemoryBarrier* pImageMemoryBarriers)
9030 {
9031 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier encode");
9032 mImpl->log("start vkCmdPipelineBarrier");
9033 auto stream = mImpl->stream();
9034 auto countingStream = mImpl->countingStream();
9035 auto resources = mImpl->resources();
9036 auto pool = mImpl->pool();
9037 stream->setHandleMapping(resources->unwrapMapping());
9038 VkCommandBuffer local_commandBuffer;
9039 VkPipelineStageFlags local_srcStageMask;
9040 VkPipelineStageFlags local_dstStageMask;
9041 VkDependencyFlags local_dependencyFlags;
9042 uint32_t local_memoryBarrierCount;
9043 VkMemoryBarrier* local_pMemoryBarriers;
9044 uint32_t local_bufferMemoryBarrierCount;
9045 VkBufferMemoryBarrier* local_pBufferMemoryBarriers;
9046 uint32_t local_imageMemoryBarrierCount;
9047 VkImageMemoryBarrier* local_pImageMemoryBarriers;
9048 local_commandBuffer = commandBuffer;
9049 local_srcStageMask = srcStageMask;
9050 local_dstStageMask = dstStageMask;
9051 local_dependencyFlags = dependencyFlags;
9052 local_memoryBarrierCount = memoryBarrierCount;
9053 local_pMemoryBarriers = nullptr;
9054 if (pMemoryBarriers)
9055 {
9056 local_pMemoryBarriers = (VkMemoryBarrier*)pool->alloc(((memoryBarrierCount)) * sizeof(const VkMemoryBarrier));
9057 for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i)
9058 {
9059 deepcopy_VkMemoryBarrier(pool, pMemoryBarriers + i, (VkMemoryBarrier*)(local_pMemoryBarriers + i));
9060 }
9061 }
9062 local_bufferMemoryBarrierCount = bufferMemoryBarrierCount;
9063 local_pBufferMemoryBarriers = nullptr;
9064 if (pBufferMemoryBarriers)
9065 {
9066 local_pBufferMemoryBarriers = (VkBufferMemoryBarrier*)pool->alloc(((bufferMemoryBarrierCount)) * sizeof(const VkBufferMemoryBarrier));
9067 for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i)
9068 {
9069 deepcopy_VkBufferMemoryBarrier(pool, pBufferMemoryBarriers + i, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
9070 }
9071 }
9072 local_imageMemoryBarrierCount = imageMemoryBarrierCount;
9073 local_pImageMemoryBarriers = nullptr;
9074 if (pImageMemoryBarriers)
9075 {
9076 local_pImageMemoryBarriers = (VkImageMemoryBarrier*)pool->alloc(((imageMemoryBarrierCount)) * sizeof(const VkImageMemoryBarrier));
9077 for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i)
9078 {
9079 deepcopy_VkImageMemoryBarrier(pool, pImageMemoryBarriers + i, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
9080 }
9081 }
9082 if (local_pMemoryBarriers)
9083 {
9084 for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i)
9085 {
9086 transform_tohost_VkMemoryBarrier(mImpl->resources(), (VkMemoryBarrier*)(local_pMemoryBarriers + i));
9087 }
9088 }
9089 if (local_pBufferMemoryBarriers)
9090 {
9091 for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i)
9092 {
9093 transform_tohost_VkBufferMemoryBarrier(mImpl->resources(), (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
9094 }
9095 }
9096 if (local_pImageMemoryBarriers)
9097 {
9098 for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i)
9099 {
9100 transform_tohost_VkImageMemoryBarrier(mImpl->resources(), (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
9101 }
9102 }
9103 countingStream->rewind();
9104 {
9105 uint64_t cgen_var_621;
9106 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_621, 1);
9107 countingStream->write((uint64_t*)&cgen_var_621, 1 * 8);
9108 countingStream->write((VkPipelineStageFlags*)&local_srcStageMask, sizeof(VkPipelineStageFlags));
9109 countingStream->write((VkPipelineStageFlags*)&local_dstStageMask, sizeof(VkPipelineStageFlags));
9110 countingStream->write((VkDependencyFlags*)&local_dependencyFlags, sizeof(VkDependencyFlags));
9111 countingStream->write((uint32_t*)&local_memoryBarrierCount, sizeof(uint32_t));
9112 for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i)
9113 {
9114 marshal_VkMemoryBarrier(countingStream, (VkMemoryBarrier*)(local_pMemoryBarriers + i));
9115 }
9116 countingStream->write((uint32_t*)&local_bufferMemoryBarrierCount, sizeof(uint32_t));
9117 for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i)
9118 {
9119 marshal_VkBufferMemoryBarrier(countingStream, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
9120 }
9121 countingStream->write((uint32_t*)&local_imageMemoryBarrierCount, sizeof(uint32_t));
9122 for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i)
9123 {
9124 marshal_VkImageMemoryBarrier(countingStream, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
9125 }
9126 }
9127 uint32_t packetSize_vkCmdPipelineBarrier = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9128 countingStream->rewind();
9129 uint32_t opcode_vkCmdPipelineBarrier = OP_vkCmdPipelineBarrier;
9130 stream->write(&opcode_vkCmdPipelineBarrier, sizeof(uint32_t));
9131 stream->write(&packetSize_vkCmdPipelineBarrier, sizeof(uint32_t));
9132 uint64_t cgen_var_622;
9133 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_622, 1);
9134 stream->write((uint64_t*)&cgen_var_622, 1 * 8);
9135 stream->write((VkPipelineStageFlags*)&local_srcStageMask, sizeof(VkPipelineStageFlags));
9136 stream->write((VkPipelineStageFlags*)&local_dstStageMask, sizeof(VkPipelineStageFlags));
9137 stream->write((VkDependencyFlags*)&local_dependencyFlags, sizeof(VkDependencyFlags));
9138 stream->write((uint32_t*)&local_memoryBarrierCount, sizeof(uint32_t));
9139 for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i)
9140 {
9141 marshal_VkMemoryBarrier(stream, (VkMemoryBarrier*)(local_pMemoryBarriers + i));
9142 }
9143 stream->write((uint32_t*)&local_bufferMemoryBarrierCount, sizeof(uint32_t));
9144 for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i)
9145 {
9146 marshal_VkBufferMemoryBarrier(stream, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i));
9147 }
9148 stream->write((uint32_t*)&local_imageMemoryBarrierCount, sizeof(uint32_t));
9149 for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i)
9150 {
9151 marshal_VkImageMemoryBarrier(stream, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
9152 }
9153 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier readParams");
9154 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier returnUnmarshal");
9155 mImpl->log("finish vkCmdPipelineBarrier");;
9156 }
9157
vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags)9158 void VkEncoder::vkCmdBeginQuery(
9159 VkCommandBuffer commandBuffer,
9160 VkQueryPool queryPool,
9161 uint32_t query,
9162 VkQueryControlFlags flags)
9163 {
9164 AEMU_SCOPED_TRACE("vkCmdBeginQuery encode");
9165 mImpl->log("start vkCmdBeginQuery");
9166 auto stream = mImpl->stream();
9167 auto countingStream = mImpl->countingStream();
9168 auto resources = mImpl->resources();
9169 auto pool = mImpl->pool();
9170 stream->setHandleMapping(resources->unwrapMapping());
9171 VkCommandBuffer local_commandBuffer;
9172 VkQueryPool local_queryPool;
9173 uint32_t local_query;
9174 VkQueryControlFlags local_flags;
9175 local_commandBuffer = commandBuffer;
9176 local_queryPool = queryPool;
9177 local_query = query;
9178 local_flags = flags;
9179 countingStream->rewind();
9180 {
9181 uint64_t cgen_var_623;
9182 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_623, 1);
9183 countingStream->write((uint64_t*)&cgen_var_623, 1 * 8);
9184 uint64_t cgen_var_624;
9185 countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_624, 1);
9186 countingStream->write((uint64_t*)&cgen_var_624, 1 * 8);
9187 countingStream->write((uint32_t*)&local_query, sizeof(uint32_t));
9188 countingStream->write((VkQueryControlFlags*)&local_flags, sizeof(VkQueryControlFlags));
9189 }
9190 uint32_t packetSize_vkCmdBeginQuery = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9191 countingStream->rewind();
9192 uint32_t opcode_vkCmdBeginQuery = OP_vkCmdBeginQuery;
9193 stream->write(&opcode_vkCmdBeginQuery, sizeof(uint32_t));
9194 stream->write(&packetSize_vkCmdBeginQuery, sizeof(uint32_t));
9195 uint64_t cgen_var_625;
9196 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_625, 1);
9197 stream->write((uint64_t*)&cgen_var_625, 1 * 8);
9198 uint64_t cgen_var_626;
9199 stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_626, 1);
9200 stream->write((uint64_t*)&cgen_var_626, 1 * 8);
9201 stream->write((uint32_t*)&local_query, sizeof(uint32_t));
9202 stream->write((VkQueryControlFlags*)&local_flags, sizeof(VkQueryControlFlags));
9203 AEMU_SCOPED_TRACE("vkCmdBeginQuery readParams");
9204 AEMU_SCOPED_TRACE("vkCmdBeginQuery returnUnmarshal");
9205 mImpl->log("finish vkCmdBeginQuery");;
9206 }
9207
vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query)9208 void VkEncoder::vkCmdEndQuery(
9209 VkCommandBuffer commandBuffer,
9210 VkQueryPool queryPool,
9211 uint32_t query)
9212 {
9213 AEMU_SCOPED_TRACE("vkCmdEndQuery encode");
9214 mImpl->log("start vkCmdEndQuery");
9215 auto stream = mImpl->stream();
9216 auto countingStream = mImpl->countingStream();
9217 auto resources = mImpl->resources();
9218 auto pool = mImpl->pool();
9219 stream->setHandleMapping(resources->unwrapMapping());
9220 VkCommandBuffer local_commandBuffer;
9221 VkQueryPool local_queryPool;
9222 uint32_t local_query;
9223 local_commandBuffer = commandBuffer;
9224 local_queryPool = queryPool;
9225 local_query = query;
9226 countingStream->rewind();
9227 {
9228 uint64_t cgen_var_627;
9229 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_627, 1);
9230 countingStream->write((uint64_t*)&cgen_var_627, 1 * 8);
9231 uint64_t cgen_var_628;
9232 countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_628, 1);
9233 countingStream->write((uint64_t*)&cgen_var_628, 1 * 8);
9234 countingStream->write((uint32_t*)&local_query, sizeof(uint32_t));
9235 }
9236 uint32_t packetSize_vkCmdEndQuery = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9237 countingStream->rewind();
9238 uint32_t opcode_vkCmdEndQuery = OP_vkCmdEndQuery;
9239 stream->write(&opcode_vkCmdEndQuery, sizeof(uint32_t));
9240 stream->write(&packetSize_vkCmdEndQuery, sizeof(uint32_t));
9241 uint64_t cgen_var_629;
9242 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_629, 1);
9243 stream->write((uint64_t*)&cgen_var_629, 1 * 8);
9244 uint64_t cgen_var_630;
9245 stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_630, 1);
9246 stream->write((uint64_t*)&cgen_var_630, 1 * 8);
9247 stream->write((uint32_t*)&local_query, sizeof(uint32_t));
9248 AEMU_SCOPED_TRACE("vkCmdEndQuery readParams");
9249 AEMU_SCOPED_TRACE("vkCmdEndQuery returnUnmarshal");
9250 mImpl->log("finish vkCmdEndQuery");;
9251 }
9252
vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)9253 void VkEncoder::vkCmdResetQueryPool(
9254 VkCommandBuffer commandBuffer,
9255 VkQueryPool queryPool,
9256 uint32_t firstQuery,
9257 uint32_t queryCount)
9258 {
9259 AEMU_SCOPED_TRACE("vkCmdResetQueryPool encode");
9260 mImpl->log("start vkCmdResetQueryPool");
9261 auto stream = mImpl->stream();
9262 auto countingStream = mImpl->countingStream();
9263 auto resources = mImpl->resources();
9264 auto pool = mImpl->pool();
9265 stream->setHandleMapping(resources->unwrapMapping());
9266 VkCommandBuffer local_commandBuffer;
9267 VkQueryPool local_queryPool;
9268 uint32_t local_firstQuery;
9269 uint32_t local_queryCount;
9270 local_commandBuffer = commandBuffer;
9271 local_queryPool = queryPool;
9272 local_firstQuery = firstQuery;
9273 local_queryCount = queryCount;
9274 countingStream->rewind();
9275 {
9276 uint64_t cgen_var_631;
9277 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_631, 1);
9278 countingStream->write((uint64_t*)&cgen_var_631, 1 * 8);
9279 uint64_t cgen_var_632;
9280 countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_632, 1);
9281 countingStream->write((uint64_t*)&cgen_var_632, 1 * 8);
9282 countingStream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t));
9283 countingStream->write((uint32_t*)&local_queryCount, sizeof(uint32_t));
9284 }
9285 uint32_t packetSize_vkCmdResetQueryPool = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9286 countingStream->rewind();
9287 uint32_t opcode_vkCmdResetQueryPool = OP_vkCmdResetQueryPool;
9288 stream->write(&opcode_vkCmdResetQueryPool, sizeof(uint32_t));
9289 stream->write(&packetSize_vkCmdResetQueryPool, sizeof(uint32_t));
9290 uint64_t cgen_var_633;
9291 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_633, 1);
9292 stream->write((uint64_t*)&cgen_var_633, 1 * 8);
9293 uint64_t cgen_var_634;
9294 stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_634, 1);
9295 stream->write((uint64_t*)&cgen_var_634, 1 * 8);
9296 stream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t));
9297 stream->write((uint32_t*)&local_queryCount, sizeof(uint32_t));
9298 AEMU_SCOPED_TRACE("vkCmdResetQueryPool readParams");
9299 AEMU_SCOPED_TRACE("vkCmdResetQueryPool returnUnmarshal");
9300 mImpl->log("finish vkCmdResetQueryPool");;
9301 }
9302
vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query)9303 void VkEncoder::vkCmdWriteTimestamp(
9304 VkCommandBuffer commandBuffer,
9305 VkPipelineStageFlagBits pipelineStage,
9306 VkQueryPool queryPool,
9307 uint32_t query)
9308 {
9309 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp encode");
9310 mImpl->log("start vkCmdWriteTimestamp");
9311 auto stream = mImpl->stream();
9312 auto countingStream = mImpl->countingStream();
9313 auto resources = mImpl->resources();
9314 auto pool = mImpl->pool();
9315 stream->setHandleMapping(resources->unwrapMapping());
9316 VkCommandBuffer local_commandBuffer;
9317 VkPipelineStageFlagBits local_pipelineStage;
9318 VkQueryPool local_queryPool;
9319 uint32_t local_query;
9320 local_commandBuffer = commandBuffer;
9321 local_pipelineStage = pipelineStage;
9322 local_queryPool = queryPool;
9323 local_query = query;
9324 countingStream->rewind();
9325 {
9326 uint64_t cgen_var_635;
9327 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_635, 1);
9328 countingStream->write((uint64_t*)&cgen_var_635, 1 * 8);
9329 countingStream->write((VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits));
9330 uint64_t cgen_var_636;
9331 countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_636, 1);
9332 countingStream->write((uint64_t*)&cgen_var_636, 1 * 8);
9333 countingStream->write((uint32_t*)&local_query, sizeof(uint32_t));
9334 }
9335 uint32_t packetSize_vkCmdWriteTimestamp = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9336 countingStream->rewind();
9337 uint32_t opcode_vkCmdWriteTimestamp = OP_vkCmdWriteTimestamp;
9338 stream->write(&opcode_vkCmdWriteTimestamp, sizeof(uint32_t));
9339 stream->write(&packetSize_vkCmdWriteTimestamp, sizeof(uint32_t));
9340 uint64_t cgen_var_637;
9341 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_637, 1);
9342 stream->write((uint64_t*)&cgen_var_637, 1 * 8);
9343 stream->write((VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits));
9344 uint64_t cgen_var_638;
9345 stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_638, 1);
9346 stream->write((uint64_t*)&cgen_var_638, 1 * 8);
9347 stream->write((uint32_t*)&local_query, sizeof(uint32_t));
9348 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp readParams");
9349 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp returnUnmarshal");
9350 mImpl->log("finish vkCmdWriteTimestamp");;
9351 }
9352
vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags)9353 void VkEncoder::vkCmdCopyQueryPoolResults(
9354 VkCommandBuffer commandBuffer,
9355 VkQueryPool queryPool,
9356 uint32_t firstQuery,
9357 uint32_t queryCount,
9358 VkBuffer dstBuffer,
9359 VkDeviceSize dstOffset,
9360 VkDeviceSize stride,
9361 VkQueryResultFlags flags)
9362 {
9363 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults encode");
9364 mImpl->log("start vkCmdCopyQueryPoolResults");
9365 auto stream = mImpl->stream();
9366 auto countingStream = mImpl->countingStream();
9367 auto resources = mImpl->resources();
9368 auto pool = mImpl->pool();
9369 stream->setHandleMapping(resources->unwrapMapping());
9370 VkCommandBuffer local_commandBuffer;
9371 VkQueryPool local_queryPool;
9372 uint32_t local_firstQuery;
9373 uint32_t local_queryCount;
9374 VkBuffer local_dstBuffer;
9375 VkDeviceSize local_dstOffset;
9376 VkDeviceSize local_stride;
9377 VkQueryResultFlags local_flags;
9378 local_commandBuffer = commandBuffer;
9379 local_queryPool = queryPool;
9380 local_firstQuery = firstQuery;
9381 local_queryCount = queryCount;
9382 local_dstBuffer = dstBuffer;
9383 local_dstOffset = dstOffset;
9384 local_stride = stride;
9385 local_flags = flags;
9386 countingStream->rewind();
9387 {
9388 uint64_t cgen_var_639;
9389 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_639, 1);
9390 countingStream->write((uint64_t*)&cgen_var_639, 1 * 8);
9391 uint64_t cgen_var_640;
9392 countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_640, 1);
9393 countingStream->write((uint64_t*)&cgen_var_640, 1 * 8);
9394 countingStream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t));
9395 countingStream->write((uint32_t*)&local_queryCount, sizeof(uint32_t));
9396 uint64_t cgen_var_641;
9397 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_641, 1);
9398 countingStream->write((uint64_t*)&cgen_var_641, 1 * 8);
9399 countingStream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
9400 countingStream->write((VkDeviceSize*)&local_stride, sizeof(VkDeviceSize));
9401 countingStream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags));
9402 }
9403 uint32_t packetSize_vkCmdCopyQueryPoolResults = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9404 countingStream->rewind();
9405 uint32_t opcode_vkCmdCopyQueryPoolResults = OP_vkCmdCopyQueryPoolResults;
9406 stream->write(&opcode_vkCmdCopyQueryPoolResults, sizeof(uint32_t));
9407 stream->write(&packetSize_vkCmdCopyQueryPoolResults, sizeof(uint32_t));
9408 uint64_t cgen_var_642;
9409 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_642, 1);
9410 stream->write((uint64_t*)&cgen_var_642, 1 * 8);
9411 uint64_t cgen_var_643;
9412 stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_643, 1);
9413 stream->write((uint64_t*)&cgen_var_643, 1 * 8);
9414 stream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t));
9415 stream->write((uint32_t*)&local_queryCount, sizeof(uint32_t));
9416 uint64_t cgen_var_644;
9417 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_644, 1);
9418 stream->write((uint64_t*)&cgen_var_644, 1 * 8);
9419 stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
9420 stream->write((VkDeviceSize*)&local_stride, sizeof(VkDeviceSize));
9421 stream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags));
9422 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults readParams");
9423 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults returnUnmarshal");
9424 mImpl->log("finish vkCmdCopyQueryPoolResults");;
9425 }
9426
vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues)9427 void VkEncoder::vkCmdPushConstants(
9428 VkCommandBuffer commandBuffer,
9429 VkPipelineLayout layout,
9430 VkShaderStageFlags stageFlags,
9431 uint32_t offset,
9432 uint32_t size,
9433 const void* pValues)
9434 {
9435 AEMU_SCOPED_TRACE("vkCmdPushConstants encode");
9436 mImpl->log("start vkCmdPushConstants");
9437 auto stream = mImpl->stream();
9438 auto countingStream = mImpl->countingStream();
9439 auto resources = mImpl->resources();
9440 auto pool = mImpl->pool();
9441 stream->setHandleMapping(resources->unwrapMapping());
9442 VkCommandBuffer local_commandBuffer;
9443 VkPipelineLayout local_layout;
9444 VkShaderStageFlags local_stageFlags;
9445 uint32_t local_offset;
9446 uint32_t local_size;
9447 void* local_pValues;
9448 local_commandBuffer = commandBuffer;
9449 local_layout = layout;
9450 local_stageFlags = stageFlags;
9451 local_offset = offset;
9452 local_size = size;
9453 local_pValues = nullptr;
9454 if (pValues)
9455 {
9456 local_pValues = (void*)pool->dupArray(pValues, ((size)) * sizeof(const uint8_t));
9457 }
9458 countingStream->rewind();
9459 {
9460 uint64_t cgen_var_645;
9461 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_645, 1);
9462 countingStream->write((uint64_t*)&cgen_var_645, 1 * 8);
9463 uint64_t cgen_var_646;
9464 countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_646, 1);
9465 countingStream->write((uint64_t*)&cgen_var_646, 1 * 8);
9466 countingStream->write((VkShaderStageFlags*)&local_stageFlags, sizeof(VkShaderStageFlags));
9467 countingStream->write((uint32_t*)&local_offset, sizeof(uint32_t));
9468 countingStream->write((uint32_t*)&local_size, sizeof(uint32_t));
9469 countingStream->write((void*)local_pValues, ((size)) * sizeof(uint8_t));
9470 }
9471 uint32_t packetSize_vkCmdPushConstants = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9472 countingStream->rewind();
9473 uint32_t opcode_vkCmdPushConstants = OP_vkCmdPushConstants;
9474 stream->write(&opcode_vkCmdPushConstants, sizeof(uint32_t));
9475 stream->write(&packetSize_vkCmdPushConstants, sizeof(uint32_t));
9476 uint64_t cgen_var_647;
9477 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_647, 1);
9478 stream->write((uint64_t*)&cgen_var_647, 1 * 8);
9479 uint64_t cgen_var_648;
9480 stream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_648, 1);
9481 stream->write((uint64_t*)&cgen_var_648, 1 * 8);
9482 stream->write((VkShaderStageFlags*)&local_stageFlags, sizeof(VkShaderStageFlags));
9483 stream->write((uint32_t*)&local_offset, sizeof(uint32_t));
9484 stream->write((uint32_t*)&local_size, sizeof(uint32_t));
9485 stream->write((void*)local_pValues, ((size)) * sizeof(uint8_t));
9486 AEMU_SCOPED_TRACE("vkCmdPushConstants readParams");
9487 AEMU_SCOPED_TRACE("vkCmdPushConstants returnUnmarshal");
9488 mImpl->log("finish vkCmdPushConstants");;
9489 }
9490
vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)9491 void VkEncoder::vkCmdBeginRenderPass(
9492 VkCommandBuffer commandBuffer,
9493 const VkRenderPassBeginInfo* pRenderPassBegin,
9494 VkSubpassContents contents)
9495 {
9496 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass encode");
9497 mImpl->log("start vkCmdBeginRenderPass");
9498 auto stream = mImpl->stream();
9499 auto countingStream = mImpl->countingStream();
9500 auto resources = mImpl->resources();
9501 auto pool = mImpl->pool();
9502 stream->setHandleMapping(resources->unwrapMapping());
9503 VkCommandBuffer local_commandBuffer;
9504 VkRenderPassBeginInfo* local_pRenderPassBegin;
9505 VkSubpassContents local_contents;
9506 local_commandBuffer = commandBuffer;
9507 local_pRenderPassBegin = nullptr;
9508 if (pRenderPassBegin)
9509 {
9510 local_pRenderPassBegin = (VkRenderPassBeginInfo*)pool->alloc(sizeof(const VkRenderPassBeginInfo));
9511 deepcopy_VkRenderPassBeginInfo(pool, pRenderPassBegin, (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
9512 }
9513 local_contents = contents;
9514 if (local_pRenderPassBegin)
9515 {
9516 transform_tohost_VkRenderPassBeginInfo(mImpl->resources(), (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
9517 }
9518 countingStream->rewind();
9519 {
9520 uint64_t cgen_var_649;
9521 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_649, 1);
9522 countingStream->write((uint64_t*)&cgen_var_649, 1 * 8);
9523 marshal_VkRenderPassBeginInfo(countingStream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
9524 countingStream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents));
9525 }
9526 uint32_t packetSize_vkCmdBeginRenderPass = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9527 countingStream->rewind();
9528 uint32_t opcode_vkCmdBeginRenderPass = OP_vkCmdBeginRenderPass;
9529 stream->write(&opcode_vkCmdBeginRenderPass, sizeof(uint32_t));
9530 stream->write(&packetSize_vkCmdBeginRenderPass, sizeof(uint32_t));
9531 uint64_t cgen_var_650;
9532 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_650, 1);
9533 stream->write((uint64_t*)&cgen_var_650, 1 * 8);
9534 marshal_VkRenderPassBeginInfo(stream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
9535 stream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents));
9536 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass readParams");
9537 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass returnUnmarshal");
9538 mImpl->log("finish vkCmdBeginRenderPass");;
9539 }
9540
vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents)9541 void VkEncoder::vkCmdNextSubpass(
9542 VkCommandBuffer commandBuffer,
9543 VkSubpassContents contents)
9544 {
9545 AEMU_SCOPED_TRACE("vkCmdNextSubpass encode");
9546 mImpl->log("start vkCmdNextSubpass");
9547 auto stream = mImpl->stream();
9548 auto countingStream = mImpl->countingStream();
9549 auto resources = mImpl->resources();
9550 auto pool = mImpl->pool();
9551 stream->setHandleMapping(resources->unwrapMapping());
9552 VkCommandBuffer local_commandBuffer;
9553 VkSubpassContents local_contents;
9554 local_commandBuffer = commandBuffer;
9555 local_contents = contents;
9556 countingStream->rewind();
9557 {
9558 uint64_t cgen_var_651;
9559 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_651, 1);
9560 countingStream->write((uint64_t*)&cgen_var_651, 1 * 8);
9561 countingStream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents));
9562 }
9563 uint32_t packetSize_vkCmdNextSubpass = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9564 countingStream->rewind();
9565 uint32_t opcode_vkCmdNextSubpass = OP_vkCmdNextSubpass;
9566 stream->write(&opcode_vkCmdNextSubpass, sizeof(uint32_t));
9567 stream->write(&packetSize_vkCmdNextSubpass, sizeof(uint32_t));
9568 uint64_t cgen_var_652;
9569 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_652, 1);
9570 stream->write((uint64_t*)&cgen_var_652, 1 * 8);
9571 stream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents));
9572 AEMU_SCOPED_TRACE("vkCmdNextSubpass readParams");
9573 AEMU_SCOPED_TRACE("vkCmdNextSubpass returnUnmarshal");
9574 mImpl->log("finish vkCmdNextSubpass");;
9575 }
9576
vkCmdEndRenderPass(VkCommandBuffer commandBuffer)9577 void VkEncoder::vkCmdEndRenderPass(
9578 VkCommandBuffer commandBuffer)
9579 {
9580 AEMU_SCOPED_TRACE("vkCmdEndRenderPass encode");
9581 mImpl->log("start vkCmdEndRenderPass");
9582 auto stream = mImpl->stream();
9583 auto countingStream = mImpl->countingStream();
9584 auto resources = mImpl->resources();
9585 auto pool = mImpl->pool();
9586 stream->setHandleMapping(resources->unwrapMapping());
9587 VkCommandBuffer local_commandBuffer;
9588 local_commandBuffer = commandBuffer;
9589 countingStream->rewind();
9590 {
9591 uint64_t cgen_var_653;
9592 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_653, 1);
9593 countingStream->write((uint64_t*)&cgen_var_653, 1 * 8);
9594 }
9595 uint32_t packetSize_vkCmdEndRenderPass = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9596 countingStream->rewind();
9597 uint32_t opcode_vkCmdEndRenderPass = OP_vkCmdEndRenderPass;
9598 stream->write(&opcode_vkCmdEndRenderPass, sizeof(uint32_t));
9599 stream->write(&packetSize_vkCmdEndRenderPass, sizeof(uint32_t));
9600 uint64_t cgen_var_654;
9601 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_654, 1);
9602 stream->write((uint64_t*)&cgen_var_654, 1 * 8);
9603 AEMU_SCOPED_TRACE("vkCmdEndRenderPass readParams");
9604 AEMU_SCOPED_TRACE("vkCmdEndRenderPass returnUnmarshal");
9605 mImpl->log("finish vkCmdEndRenderPass");;
9606 }
9607
vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)9608 void VkEncoder::vkCmdExecuteCommands(
9609 VkCommandBuffer commandBuffer,
9610 uint32_t commandBufferCount,
9611 const VkCommandBuffer* pCommandBuffers)
9612 {
9613 AEMU_SCOPED_TRACE("vkCmdExecuteCommands encode");
9614 mImpl->log("start vkCmdExecuteCommands");
9615 auto stream = mImpl->stream();
9616 auto countingStream = mImpl->countingStream();
9617 auto resources = mImpl->resources();
9618 auto pool = mImpl->pool();
9619 stream->setHandleMapping(resources->unwrapMapping());
9620 VkCommandBuffer local_commandBuffer;
9621 uint32_t local_commandBufferCount;
9622 VkCommandBuffer* local_pCommandBuffers;
9623 local_commandBuffer = commandBuffer;
9624 local_commandBufferCount = commandBufferCount;
9625 local_pCommandBuffers = nullptr;
9626 if (pCommandBuffers)
9627 {
9628 local_pCommandBuffers = (VkCommandBuffer*)pool->dupArray(pCommandBuffers, ((commandBufferCount)) * sizeof(const VkCommandBuffer));
9629 }
9630 countingStream->rewind();
9631 {
9632 uint64_t cgen_var_655;
9633 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_655, 1);
9634 countingStream->write((uint64_t*)&cgen_var_655, 1 * 8);
9635 countingStream->write((uint32_t*)&local_commandBufferCount, sizeof(uint32_t));
9636 if (((commandBufferCount)))
9637 {
9638 uint64_t* cgen_var_656;
9639 countingStream->alloc((void**)&cgen_var_656, ((commandBufferCount)) * 8);
9640 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(local_pCommandBuffers, cgen_var_656, ((commandBufferCount)));
9641 countingStream->write((uint64_t*)cgen_var_656, ((commandBufferCount)) * 8);
9642 }
9643 }
9644 uint32_t packetSize_vkCmdExecuteCommands = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9645 countingStream->rewind();
9646 uint32_t opcode_vkCmdExecuteCommands = OP_vkCmdExecuteCommands;
9647 stream->write(&opcode_vkCmdExecuteCommands, sizeof(uint32_t));
9648 stream->write(&packetSize_vkCmdExecuteCommands, sizeof(uint32_t));
9649 uint64_t cgen_var_657;
9650 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_657, 1);
9651 stream->write((uint64_t*)&cgen_var_657, 1 * 8);
9652 stream->write((uint32_t*)&local_commandBufferCount, sizeof(uint32_t));
9653 if (((commandBufferCount)))
9654 {
9655 uint64_t* cgen_var_658;
9656 stream->alloc((void**)&cgen_var_658, ((commandBufferCount)) * 8);
9657 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(local_pCommandBuffers, cgen_var_658, ((commandBufferCount)));
9658 stream->write((uint64_t*)cgen_var_658, ((commandBufferCount)) * 8);
9659 }
9660 AEMU_SCOPED_TRACE("vkCmdExecuteCommands readParams");
9661 AEMU_SCOPED_TRACE("vkCmdExecuteCommands returnUnmarshal");
9662 mImpl->log("finish vkCmdExecuteCommands");;
9663 }
9664
9665 #endif
9666 #ifdef VK_VERSION_1_1
vkEnumerateInstanceVersion(uint32_t * pApiVersion)9667 VkResult VkEncoder::vkEnumerateInstanceVersion(
9668 uint32_t* pApiVersion)
9669 {
9670 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion encode");
9671 mImpl->log("start vkEnumerateInstanceVersion");
9672 auto stream = mImpl->stream();
9673 auto countingStream = mImpl->countingStream();
9674 auto resources = mImpl->resources();
9675 auto pool = mImpl->pool();
9676 stream->setHandleMapping(resources->unwrapMapping());
9677 countingStream->rewind();
9678 {
9679 countingStream->write((uint32_t*)pApiVersion, sizeof(uint32_t));
9680 }
9681 uint32_t packetSize_vkEnumerateInstanceVersion = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9682 countingStream->rewind();
9683 uint32_t opcode_vkEnumerateInstanceVersion = OP_vkEnumerateInstanceVersion;
9684 stream->write(&opcode_vkEnumerateInstanceVersion, sizeof(uint32_t));
9685 stream->write(&packetSize_vkEnumerateInstanceVersion, sizeof(uint32_t));
9686 stream->write((uint32_t*)pApiVersion, sizeof(uint32_t));
9687 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion readParams");
9688 stream->read((uint32_t*)pApiVersion, sizeof(uint32_t));
9689 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion returnUnmarshal");
9690 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
9691 stream->read(&vkEnumerateInstanceVersion_VkResult_return, sizeof(VkResult));
9692 countingStream->clearPool();
9693 stream->clearPool();
9694 pool->freeAll();
9695 mImpl->log("finish vkEnumerateInstanceVersion");;
9696 return vkEnumerateInstanceVersion_VkResult_return;
9697 }
9698
vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)9699 VkResult VkEncoder::vkBindBufferMemory2(
9700 VkDevice device,
9701 uint32_t bindInfoCount,
9702 const VkBindBufferMemoryInfo* pBindInfos)
9703 {
9704 AEMU_SCOPED_TRACE("vkBindBufferMemory2 encode");
9705 mImpl->log("start vkBindBufferMemory2");
9706 auto stream = mImpl->stream();
9707 auto countingStream = mImpl->countingStream();
9708 auto resources = mImpl->resources();
9709 auto pool = mImpl->pool();
9710 stream->setHandleMapping(resources->unwrapMapping());
9711 VkDevice local_device;
9712 uint32_t local_bindInfoCount;
9713 VkBindBufferMemoryInfo* local_pBindInfos;
9714 local_device = device;
9715 local_bindInfoCount = bindInfoCount;
9716 local_pBindInfos = nullptr;
9717 if (pBindInfos)
9718 {
9719 local_pBindInfos = (VkBindBufferMemoryInfo*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindBufferMemoryInfo));
9720 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
9721 {
9722 deepcopy_VkBindBufferMemoryInfo(pool, pBindInfos + i, (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
9723 }
9724 }
9725 if (local_pBindInfos)
9726 {
9727 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
9728 {
9729 transform_tohost_VkBindBufferMemoryInfo(mImpl->resources(), (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
9730 }
9731 }
9732 countingStream->rewind();
9733 {
9734 uint64_t cgen_var_659;
9735 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_659, 1);
9736 countingStream->write((uint64_t*)&cgen_var_659, 1 * 8);
9737 countingStream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
9738 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
9739 {
9740 marshal_VkBindBufferMemoryInfo(countingStream, (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
9741 }
9742 }
9743 uint32_t packetSize_vkBindBufferMemory2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9744 countingStream->rewind();
9745 uint32_t opcode_vkBindBufferMemory2 = OP_vkBindBufferMemory2;
9746 stream->write(&opcode_vkBindBufferMemory2, sizeof(uint32_t));
9747 stream->write(&packetSize_vkBindBufferMemory2, sizeof(uint32_t));
9748 uint64_t cgen_var_660;
9749 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_660, 1);
9750 stream->write((uint64_t*)&cgen_var_660, 1 * 8);
9751 stream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
9752 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
9753 {
9754 marshal_VkBindBufferMemoryInfo(stream, (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
9755 }
9756 AEMU_SCOPED_TRACE("vkBindBufferMemory2 readParams");
9757 AEMU_SCOPED_TRACE("vkBindBufferMemory2 returnUnmarshal");
9758 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
9759 stream->read(&vkBindBufferMemory2_VkResult_return, sizeof(VkResult));
9760 countingStream->clearPool();
9761 stream->clearPool();
9762 pool->freeAll();
9763 mImpl->log("finish vkBindBufferMemory2");;
9764 return vkBindBufferMemory2_VkResult_return;
9765 }
9766
vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)9767 VkResult VkEncoder::vkBindImageMemory2(
9768 VkDevice device,
9769 uint32_t bindInfoCount,
9770 const VkBindImageMemoryInfo* pBindInfos)
9771 {
9772 AEMU_SCOPED_TRACE("vkBindImageMemory2 encode");
9773 mImpl->log("start vkBindImageMemory2");
9774 auto stream = mImpl->stream();
9775 auto countingStream = mImpl->countingStream();
9776 auto resources = mImpl->resources();
9777 auto pool = mImpl->pool();
9778 stream->setHandleMapping(resources->unwrapMapping());
9779 VkDevice local_device;
9780 uint32_t local_bindInfoCount;
9781 VkBindImageMemoryInfo* local_pBindInfos;
9782 local_device = device;
9783 local_bindInfoCount = bindInfoCount;
9784 local_pBindInfos = nullptr;
9785 if (pBindInfos)
9786 {
9787 local_pBindInfos = (VkBindImageMemoryInfo*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindImageMemoryInfo));
9788 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
9789 {
9790 deepcopy_VkBindImageMemoryInfo(pool, pBindInfos + i, (VkBindImageMemoryInfo*)(local_pBindInfos + i));
9791 }
9792 }
9793 if (local_pBindInfos)
9794 {
9795 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
9796 {
9797 transform_tohost_VkBindImageMemoryInfo(mImpl->resources(), (VkBindImageMemoryInfo*)(local_pBindInfos + i));
9798 }
9799 }
9800 countingStream->rewind();
9801 {
9802 uint64_t cgen_var_661;
9803 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_661, 1);
9804 countingStream->write((uint64_t*)&cgen_var_661, 1 * 8);
9805 countingStream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
9806 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
9807 {
9808 marshal_VkBindImageMemoryInfo(countingStream, (VkBindImageMemoryInfo*)(local_pBindInfos + i));
9809 }
9810 }
9811 uint32_t packetSize_vkBindImageMemory2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9812 countingStream->rewind();
9813 uint32_t opcode_vkBindImageMemory2 = OP_vkBindImageMemory2;
9814 stream->write(&opcode_vkBindImageMemory2, sizeof(uint32_t));
9815 stream->write(&packetSize_vkBindImageMemory2, sizeof(uint32_t));
9816 uint64_t cgen_var_662;
9817 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_662, 1);
9818 stream->write((uint64_t*)&cgen_var_662, 1 * 8);
9819 stream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
9820 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
9821 {
9822 marshal_VkBindImageMemoryInfo(stream, (VkBindImageMemoryInfo*)(local_pBindInfos + i));
9823 }
9824 AEMU_SCOPED_TRACE("vkBindImageMemory2 readParams");
9825 AEMU_SCOPED_TRACE("vkBindImageMemory2 returnUnmarshal");
9826 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
9827 stream->read(&vkBindImageMemory2_VkResult_return, sizeof(VkResult));
9828 countingStream->clearPool();
9829 stream->clearPool();
9830 pool->freeAll();
9831 mImpl->log("finish vkBindImageMemory2");;
9832 return vkBindImageMemory2_VkResult_return;
9833 }
9834
vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)9835 void VkEncoder::vkGetDeviceGroupPeerMemoryFeatures(
9836 VkDevice device,
9837 uint32_t heapIndex,
9838 uint32_t localDeviceIndex,
9839 uint32_t remoteDeviceIndex,
9840 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
9841 {
9842 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures encode");
9843 mImpl->log("start vkGetDeviceGroupPeerMemoryFeatures");
9844 auto stream = mImpl->stream();
9845 auto countingStream = mImpl->countingStream();
9846 auto resources = mImpl->resources();
9847 auto pool = mImpl->pool();
9848 stream->setHandleMapping(resources->unwrapMapping());
9849 VkDevice local_device;
9850 uint32_t local_heapIndex;
9851 uint32_t local_localDeviceIndex;
9852 uint32_t local_remoteDeviceIndex;
9853 local_device = device;
9854 local_heapIndex = heapIndex;
9855 local_localDeviceIndex = localDeviceIndex;
9856 local_remoteDeviceIndex = remoteDeviceIndex;
9857 countingStream->rewind();
9858 {
9859 uint64_t cgen_var_663;
9860 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_663, 1);
9861 countingStream->write((uint64_t*)&cgen_var_663, 1 * 8);
9862 countingStream->write((uint32_t*)&local_heapIndex, sizeof(uint32_t));
9863 countingStream->write((uint32_t*)&local_localDeviceIndex, sizeof(uint32_t));
9864 countingStream->write((uint32_t*)&local_remoteDeviceIndex, sizeof(uint32_t));
9865 countingStream->write((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags));
9866 }
9867 uint32_t packetSize_vkGetDeviceGroupPeerMemoryFeatures = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9868 countingStream->rewind();
9869 uint32_t opcode_vkGetDeviceGroupPeerMemoryFeatures = OP_vkGetDeviceGroupPeerMemoryFeatures;
9870 stream->write(&opcode_vkGetDeviceGroupPeerMemoryFeatures, sizeof(uint32_t));
9871 stream->write(&packetSize_vkGetDeviceGroupPeerMemoryFeatures, sizeof(uint32_t));
9872 uint64_t cgen_var_664;
9873 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_664, 1);
9874 stream->write((uint64_t*)&cgen_var_664, 1 * 8);
9875 stream->write((uint32_t*)&local_heapIndex, sizeof(uint32_t));
9876 stream->write((uint32_t*)&local_localDeviceIndex, sizeof(uint32_t));
9877 stream->write((uint32_t*)&local_remoteDeviceIndex, sizeof(uint32_t));
9878 stream->write((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags));
9879 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures readParams");
9880 stream->read((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags));
9881 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures returnUnmarshal");
9882 mImpl->log("finish vkGetDeviceGroupPeerMemoryFeatures");;
9883 }
9884
vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask)9885 void VkEncoder::vkCmdSetDeviceMask(
9886 VkCommandBuffer commandBuffer,
9887 uint32_t deviceMask)
9888 {
9889 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask encode");
9890 mImpl->log("start vkCmdSetDeviceMask");
9891 auto stream = mImpl->stream();
9892 auto countingStream = mImpl->countingStream();
9893 auto resources = mImpl->resources();
9894 auto pool = mImpl->pool();
9895 stream->setHandleMapping(resources->unwrapMapping());
9896 VkCommandBuffer local_commandBuffer;
9897 uint32_t local_deviceMask;
9898 local_commandBuffer = commandBuffer;
9899 local_deviceMask = deviceMask;
9900 countingStream->rewind();
9901 {
9902 uint64_t cgen_var_665;
9903 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_665, 1);
9904 countingStream->write((uint64_t*)&cgen_var_665, 1 * 8);
9905 countingStream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t));
9906 }
9907 uint32_t packetSize_vkCmdSetDeviceMask = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9908 countingStream->rewind();
9909 uint32_t opcode_vkCmdSetDeviceMask = OP_vkCmdSetDeviceMask;
9910 stream->write(&opcode_vkCmdSetDeviceMask, sizeof(uint32_t));
9911 stream->write(&packetSize_vkCmdSetDeviceMask, sizeof(uint32_t));
9912 uint64_t cgen_var_666;
9913 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_666, 1);
9914 stream->write((uint64_t*)&cgen_var_666, 1 * 8);
9915 stream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t));
9916 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask readParams");
9917 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask returnUnmarshal");
9918 mImpl->log("finish vkCmdSetDeviceMask");;
9919 }
9920
vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)9921 void VkEncoder::vkCmdDispatchBase(
9922 VkCommandBuffer commandBuffer,
9923 uint32_t baseGroupX,
9924 uint32_t baseGroupY,
9925 uint32_t baseGroupZ,
9926 uint32_t groupCountX,
9927 uint32_t groupCountY,
9928 uint32_t groupCountZ)
9929 {
9930 AEMU_SCOPED_TRACE("vkCmdDispatchBase encode");
9931 mImpl->log("start vkCmdDispatchBase");
9932 auto stream = mImpl->stream();
9933 auto countingStream = mImpl->countingStream();
9934 auto resources = mImpl->resources();
9935 auto pool = mImpl->pool();
9936 stream->setHandleMapping(resources->unwrapMapping());
9937 VkCommandBuffer local_commandBuffer;
9938 uint32_t local_baseGroupX;
9939 uint32_t local_baseGroupY;
9940 uint32_t local_baseGroupZ;
9941 uint32_t local_groupCountX;
9942 uint32_t local_groupCountY;
9943 uint32_t local_groupCountZ;
9944 local_commandBuffer = commandBuffer;
9945 local_baseGroupX = baseGroupX;
9946 local_baseGroupY = baseGroupY;
9947 local_baseGroupZ = baseGroupZ;
9948 local_groupCountX = groupCountX;
9949 local_groupCountY = groupCountY;
9950 local_groupCountZ = groupCountZ;
9951 countingStream->rewind();
9952 {
9953 uint64_t cgen_var_667;
9954 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_667, 1);
9955 countingStream->write((uint64_t*)&cgen_var_667, 1 * 8);
9956 countingStream->write((uint32_t*)&local_baseGroupX, sizeof(uint32_t));
9957 countingStream->write((uint32_t*)&local_baseGroupY, sizeof(uint32_t));
9958 countingStream->write((uint32_t*)&local_baseGroupZ, sizeof(uint32_t));
9959 countingStream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t));
9960 countingStream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t));
9961 countingStream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t));
9962 }
9963 uint32_t packetSize_vkCmdDispatchBase = 4 + 4 + (uint32_t)countingStream->bytesWritten();
9964 countingStream->rewind();
9965 uint32_t opcode_vkCmdDispatchBase = OP_vkCmdDispatchBase;
9966 stream->write(&opcode_vkCmdDispatchBase, sizeof(uint32_t));
9967 stream->write(&packetSize_vkCmdDispatchBase, sizeof(uint32_t));
9968 uint64_t cgen_var_668;
9969 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_668, 1);
9970 stream->write((uint64_t*)&cgen_var_668, 1 * 8);
9971 stream->write((uint32_t*)&local_baseGroupX, sizeof(uint32_t));
9972 stream->write((uint32_t*)&local_baseGroupY, sizeof(uint32_t));
9973 stream->write((uint32_t*)&local_baseGroupZ, sizeof(uint32_t));
9974 stream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t));
9975 stream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t));
9976 stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t));
9977 AEMU_SCOPED_TRACE("vkCmdDispatchBase readParams");
9978 AEMU_SCOPED_TRACE("vkCmdDispatchBase returnUnmarshal");
9979 mImpl->log("finish vkCmdDispatchBase");;
9980 }
9981
vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)9982 VkResult VkEncoder::vkEnumeratePhysicalDeviceGroups(
9983 VkInstance instance,
9984 uint32_t* pPhysicalDeviceGroupCount,
9985 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
9986 {
9987 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups encode");
9988 mImpl->log("start vkEnumeratePhysicalDeviceGroups");
9989 auto stream = mImpl->stream();
9990 auto countingStream = mImpl->countingStream();
9991 auto resources = mImpl->resources();
9992 auto pool = mImpl->pool();
9993 stream->setHandleMapping(resources->unwrapMapping());
9994 VkInstance local_instance;
9995 local_instance = instance;
9996 countingStream->rewind();
9997 {
9998 uint64_t cgen_var_669;
9999 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_669, 1);
10000 countingStream->write((uint64_t*)&cgen_var_669, 1 * 8);
10001 // WARNING PTR CHECK
10002 uint64_t cgen_var_670 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount;
10003 countingStream->putBe64(cgen_var_670);
10004 if (pPhysicalDeviceGroupCount)
10005 {
10006 countingStream->write((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t));
10007 }
10008 // WARNING PTR CHECK
10009 uint64_t cgen_var_671 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties;
10010 countingStream->putBe64(cgen_var_671);
10011 if (pPhysicalDeviceGroupProperties)
10012 {
10013 for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
10014 {
10015 marshal_VkPhysicalDeviceGroupProperties(countingStream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
10016 }
10017 }
10018 }
10019 uint32_t packetSize_vkEnumeratePhysicalDeviceGroups = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10020 countingStream->rewind();
10021 uint32_t opcode_vkEnumeratePhysicalDeviceGroups = OP_vkEnumeratePhysicalDeviceGroups;
10022 stream->write(&opcode_vkEnumeratePhysicalDeviceGroups, sizeof(uint32_t));
10023 stream->write(&packetSize_vkEnumeratePhysicalDeviceGroups, sizeof(uint32_t));
10024 uint64_t cgen_var_672;
10025 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_672, 1);
10026 stream->write((uint64_t*)&cgen_var_672, 1 * 8);
10027 // WARNING PTR CHECK
10028 uint64_t cgen_var_673 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount;
10029 stream->putBe64(cgen_var_673);
10030 if (pPhysicalDeviceGroupCount)
10031 {
10032 stream->write((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t));
10033 }
10034 // WARNING PTR CHECK
10035 uint64_t cgen_var_674 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties;
10036 stream->putBe64(cgen_var_674);
10037 if (pPhysicalDeviceGroupProperties)
10038 {
10039 for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
10040 {
10041 marshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
10042 }
10043 }
10044 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups readParams");
10045 // WARNING PTR CHECK
10046 uint32_t* check_pPhysicalDeviceGroupCount;
10047 check_pPhysicalDeviceGroupCount = (uint32_t*)(uintptr_t)stream->getBe64();
10048 if (pPhysicalDeviceGroupCount)
10049 {
10050 if (!(check_pPhysicalDeviceGroupCount))
10051 {
10052 fprintf(stderr, "fatal: pPhysicalDeviceGroupCount inconsistent between guest and host\n");
10053 }
10054 stream->read((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t));
10055 }
10056 // WARNING PTR CHECK
10057 VkPhysicalDeviceGroupProperties* check_pPhysicalDeviceGroupProperties;
10058 check_pPhysicalDeviceGroupProperties = (VkPhysicalDeviceGroupProperties*)(uintptr_t)stream->getBe64();
10059 if (pPhysicalDeviceGroupProperties)
10060 {
10061 if (!(check_pPhysicalDeviceGroupProperties))
10062 {
10063 fprintf(stderr, "fatal: pPhysicalDeviceGroupProperties inconsistent between guest and host\n");
10064 }
10065 for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
10066 {
10067 unmarshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
10068 }
10069 }
10070 if (pPhysicalDeviceGroupProperties)
10071 {
10072 for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
10073 {
10074 transform_fromhost_VkPhysicalDeviceGroupProperties(mImpl->resources(), (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
10075 }
10076 }
10077 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups returnUnmarshal");
10078 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
10079 stream->read(&vkEnumeratePhysicalDeviceGroups_VkResult_return, sizeof(VkResult));
10080 countingStream->clearPool();
10081 stream->clearPool();
10082 pool->freeAll();
10083 mImpl->log("finish vkEnumeratePhysicalDeviceGroups");;
10084 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
10085 }
10086
vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)10087 void VkEncoder::vkGetImageMemoryRequirements2(
10088 VkDevice device,
10089 const VkImageMemoryRequirementsInfo2* pInfo,
10090 VkMemoryRequirements2* pMemoryRequirements)
10091 {
10092 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 encode");
10093 mImpl->log("start vkGetImageMemoryRequirements2");
10094 auto stream = mImpl->stream();
10095 auto countingStream = mImpl->countingStream();
10096 auto resources = mImpl->resources();
10097 auto pool = mImpl->pool();
10098 stream->setHandleMapping(resources->unwrapMapping());
10099 VkDevice local_device;
10100 VkImageMemoryRequirementsInfo2* local_pInfo;
10101 local_device = device;
10102 local_pInfo = nullptr;
10103 if (pInfo)
10104 {
10105 local_pInfo = (VkImageMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkImageMemoryRequirementsInfo2));
10106 deepcopy_VkImageMemoryRequirementsInfo2(pool, pInfo, (VkImageMemoryRequirementsInfo2*)(local_pInfo));
10107 }
10108 if (local_pInfo)
10109 {
10110 transform_tohost_VkImageMemoryRequirementsInfo2(mImpl->resources(), (VkImageMemoryRequirementsInfo2*)(local_pInfo));
10111 }
10112 countingStream->rewind();
10113 {
10114 uint64_t cgen_var_677;
10115 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_677, 1);
10116 countingStream->write((uint64_t*)&cgen_var_677, 1 * 8);
10117 marshal_VkImageMemoryRequirementsInfo2(countingStream, (VkImageMemoryRequirementsInfo2*)(local_pInfo));
10118 marshal_VkMemoryRequirements2(countingStream, (VkMemoryRequirements2*)(pMemoryRequirements));
10119 }
10120 uint32_t packetSize_vkGetImageMemoryRequirements2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10121 countingStream->rewind();
10122 uint32_t opcode_vkGetImageMemoryRequirements2 = OP_vkGetImageMemoryRequirements2;
10123 stream->write(&opcode_vkGetImageMemoryRequirements2, sizeof(uint32_t));
10124 stream->write(&packetSize_vkGetImageMemoryRequirements2, sizeof(uint32_t));
10125 uint64_t cgen_var_678;
10126 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_678, 1);
10127 stream->write((uint64_t*)&cgen_var_678, 1 * 8);
10128 marshal_VkImageMemoryRequirementsInfo2(stream, (VkImageMemoryRequirementsInfo2*)(local_pInfo));
10129 marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
10130 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 readParams");
10131 unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
10132 if (pMemoryRequirements)
10133 {
10134 transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
10135 }
10136 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 returnUnmarshal");
10137 mImpl->log("finish vkGetImageMemoryRequirements2");;
10138 }
10139
vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)10140 void VkEncoder::vkGetBufferMemoryRequirements2(
10141 VkDevice device,
10142 const VkBufferMemoryRequirementsInfo2* pInfo,
10143 VkMemoryRequirements2* pMemoryRequirements)
10144 {
10145 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 encode");
10146 mImpl->log("start vkGetBufferMemoryRequirements2");
10147 auto stream = mImpl->stream();
10148 auto countingStream = mImpl->countingStream();
10149 auto resources = mImpl->resources();
10150 auto pool = mImpl->pool();
10151 stream->setHandleMapping(resources->unwrapMapping());
10152 VkDevice local_device;
10153 VkBufferMemoryRequirementsInfo2* local_pInfo;
10154 local_device = device;
10155 local_pInfo = nullptr;
10156 if (pInfo)
10157 {
10158 local_pInfo = (VkBufferMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkBufferMemoryRequirementsInfo2));
10159 deepcopy_VkBufferMemoryRequirementsInfo2(pool, pInfo, (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
10160 }
10161 if (local_pInfo)
10162 {
10163 transform_tohost_VkBufferMemoryRequirementsInfo2(mImpl->resources(), (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
10164 }
10165 countingStream->rewind();
10166 {
10167 uint64_t cgen_var_679;
10168 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_679, 1);
10169 countingStream->write((uint64_t*)&cgen_var_679, 1 * 8);
10170 marshal_VkBufferMemoryRequirementsInfo2(countingStream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
10171 marshal_VkMemoryRequirements2(countingStream, (VkMemoryRequirements2*)(pMemoryRequirements));
10172 }
10173 uint32_t packetSize_vkGetBufferMemoryRequirements2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10174 countingStream->rewind();
10175 uint32_t opcode_vkGetBufferMemoryRequirements2 = OP_vkGetBufferMemoryRequirements2;
10176 stream->write(&opcode_vkGetBufferMemoryRequirements2, sizeof(uint32_t));
10177 stream->write(&packetSize_vkGetBufferMemoryRequirements2, sizeof(uint32_t));
10178 uint64_t cgen_var_680;
10179 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_680, 1);
10180 stream->write((uint64_t*)&cgen_var_680, 1 * 8);
10181 marshal_VkBufferMemoryRequirementsInfo2(stream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
10182 marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
10183 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 readParams");
10184 unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
10185 if (pMemoryRequirements)
10186 {
10187 transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
10188 }
10189 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 returnUnmarshal");
10190 mImpl->log("finish vkGetBufferMemoryRequirements2");;
10191 }
10192
vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)10193 void VkEncoder::vkGetImageSparseMemoryRequirements2(
10194 VkDevice device,
10195 const VkImageSparseMemoryRequirementsInfo2* pInfo,
10196 uint32_t* pSparseMemoryRequirementCount,
10197 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
10198 {
10199 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 encode");
10200 mImpl->log("start vkGetImageSparseMemoryRequirements2");
10201 auto stream = mImpl->stream();
10202 auto countingStream = mImpl->countingStream();
10203 auto resources = mImpl->resources();
10204 auto pool = mImpl->pool();
10205 stream->setHandleMapping(resources->unwrapMapping());
10206 VkDevice local_device;
10207 VkImageSparseMemoryRequirementsInfo2* local_pInfo;
10208 local_device = device;
10209 local_pInfo = nullptr;
10210 if (pInfo)
10211 {
10212 local_pInfo = (VkImageSparseMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkImageSparseMemoryRequirementsInfo2));
10213 deepcopy_VkImageSparseMemoryRequirementsInfo2(pool, pInfo, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
10214 }
10215 if (local_pInfo)
10216 {
10217 transform_tohost_VkImageSparseMemoryRequirementsInfo2(mImpl->resources(), (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
10218 }
10219 countingStream->rewind();
10220 {
10221 uint64_t cgen_var_681;
10222 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_681, 1);
10223 countingStream->write((uint64_t*)&cgen_var_681, 1 * 8);
10224 marshal_VkImageSparseMemoryRequirementsInfo2(countingStream, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
10225 // WARNING PTR CHECK
10226 uint64_t cgen_var_682 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
10227 countingStream->putBe64(cgen_var_682);
10228 if (pSparseMemoryRequirementCount)
10229 {
10230 countingStream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
10231 }
10232 // WARNING PTR CHECK
10233 uint64_t cgen_var_683 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
10234 countingStream->putBe64(cgen_var_683);
10235 if (pSparseMemoryRequirements)
10236 {
10237 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
10238 {
10239 marshal_VkSparseImageMemoryRequirements2(countingStream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
10240 }
10241 }
10242 }
10243 uint32_t packetSize_vkGetImageSparseMemoryRequirements2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10244 countingStream->rewind();
10245 uint32_t opcode_vkGetImageSparseMemoryRequirements2 = OP_vkGetImageSparseMemoryRequirements2;
10246 stream->write(&opcode_vkGetImageSparseMemoryRequirements2, sizeof(uint32_t));
10247 stream->write(&packetSize_vkGetImageSparseMemoryRequirements2, sizeof(uint32_t));
10248 uint64_t cgen_var_684;
10249 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_684, 1);
10250 stream->write((uint64_t*)&cgen_var_684, 1 * 8);
10251 marshal_VkImageSparseMemoryRequirementsInfo2(stream, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
10252 // WARNING PTR CHECK
10253 uint64_t cgen_var_685 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
10254 stream->putBe64(cgen_var_685);
10255 if (pSparseMemoryRequirementCount)
10256 {
10257 stream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
10258 }
10259 // WARNING PTR CHECK
10260 uint64_t cgen_var_686 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
10261 stream->putBe64(cgen_var_686);
10262 if (pSparseMemoryRequirements)
10263 {
10264 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
10265 {
10266 marshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
10267 }
10268 }
10269 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 readParams");
10270 // WARNING PTR CHECK
10271 uint32_t* check_pSparseMemoryRequirementCount;
10272 check_pSparseMemoryRequirementCount = (uint32_t*)(uintptr_t)stream->getBe64();
10273 if (pSparseMemoryRequirementCount)
10274 {
10275 if (!(check_pSparseMemoryRequirementCount))
10276 {
10277 fprintf(stderr, "fatal: pSparseMemoryRequirementCount inconsistent between guest and host\n");
10278 }
10279 stream->read((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
10280 }
10281 // WARNING PTR CHECK
10282 VkSparseImageMemoryRequirements2* check_pSparseMemoryRequirements;
10283 check_pSparseMemoryRequirements = (VkSparseImageMemoryRequirements2*)(uintptr_t)stream->getBe64();
10284 if (pSparseMemoryRequirements)
10285 {
10286 if (!(check_pSparseMemoryRequirements))
10287 {
10288 fprintf(stderr, "fatal: pSparseMemoryRequirements inconsistent between guest and host\n");
10289 }
10290 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
10291 {
10292 unmarshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
10293 }
10294 }
10295 if (pSparseMemoryRequirements)
10296 {
10297 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
10298 {
10299 transform_fromhost_VkSparseImageMemoryRequirements2(mImpl->resources(), (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
10300 }
10301 }
10302 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 returnUnmarshal");
10303 mImpl->log("finish vkGetImageSparseMemoryRequirements2");;
10304 }
10305
vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)10306 void VkEncoder::vkGetPhysicalDeviceFeatures2(
10307 VkPhysicalDevice physicalDevice,
10308 VkPhysicalDeviceFeatures2* pFeatures)
10309 {
10310 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 encode");
10311 mImpl->log("start vkGetPhysicalDeviceFeatures2");
10312 auto stream = mImpl->stream();
10313 auto countingStream = mImpl->countingStream();
10314 auto resources = mImpl->resources();
10315 auto pool = mImpl->pool();
10316 stream->setHandleMapping(resources->unwrapMapping());
10317 VkPhysicalDevice local_physicalDevice;
10318 local_physicalDevice = physicalDevice;
10319 countingStream->rewind();
10320 {
10321 uint64_t cgen_var_689;
10322 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_689, 1);
10323 countingStream->write((uint64_t*)&cgen_var_689, 1 * 8);
10324 marshal_VkPhysicalDeviceFeatures2(countingStream, (VkPhysicalDeviceFeatures2*)(pFeatures));
10325 }
10326 uint32_t packetSize_vkGetPhysicalDeviceFeatures2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10327 countingStream->rewind();
10328 uint32_t opcode_vkGetPhysicalDeviceFeatures2 = OP_vkGetPhysicalDeviceFeatures2;
10329 stream->write(&opcode_vkGetPhysicalDeviceFeatures2, sizeof(uint32_t));
10330 stream->write(&packetSize_vkGetPhysicalDeviceFeatures2, sizeof(uint32_t));
10331 uint64_t cgen_var_690;
10332 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_690, 1);
10333 stream->write((uint64_t*)&cgen_var_690, 1 * 8);
10334 marshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
10335 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 readParams");
10336 unmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
10337 if (pFeatures)
10338 {
10339 transform_fromhost_VkPhysicalDeviceFeatures2(mImpl->resources(), (VkPhysicalDeviceFeatures2*)(pFeatures));
10340 }
10341 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 returnUnmarshal");
10342 mImpl->log("finish vkGetPhysicalDeviceFeatures2");;
10343 }
10344
vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)10345 void VkEncoder::vkGetPhysicalDeviceProperties2(
10346 VkPhysicalDevice physicalDevice,
10347 VkPhysicalDeviceProperties2* pProperties)
10348 {
10349 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 encode");
10350 mImpl->log("start vkGetPhysicalDeviceProperties2");
10351 auto stream = mImpl->stream();
10352 auto countingStream = mImpl->countingStream();
10353 auto resources = mImpl->resources();
10354 auto pool = mImpl->pool();
10355 stream->setHandleMapping(resources->unwrapMapping());
10356 VkPhysicalDevice local_physicalDevice;
10357 local_physicalDevice = physicalDevice;
10358 countingStream->rewind();
10359 {
10360 uint64_t cgen_var_691;
10361 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_691, 1);
10362 countingStream->write((uint64_t*)&cgen_var_691, 1 * 8);
10363 marshal_VkPhysicalDeviceProperties2(countingStream, (VkPhysicalDeviceProperties2*)(pProperties));
10364 }
10365 uint32_t packetSize_vkGetPhysicalDeviceProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10366 countingStream->rewind();
10367 uint32_t opcode_vkGetPhysicalDeviceProperties2 = OP_vkGetPhysicalDeviceProperties2;
10368 stream->write(&opcode_vkGetPhysicalDeviceProperties2, sizeof(uint32_t));
10369 stream->write(&packetSize_vkGetPhysicalDeviceProperties2, sizeof(uint32_t));
10370 uint64_t cgen_var_692;
10371 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_692, 1);
10372 stream->write((uint64_t*)&cgen_var_692, 1 * 8);
10373 marshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
10374 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 readParams");
10375 unmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
10376 if (pProperties)
10377 {
10378 transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties));
10379 }
10380 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 returnUnmarshal");
10381 mImpl->log("finish vkGetPhysicalDeviceProperties2");;
10382 }
10383
vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)10384 void VkEncoder::vkGetPhysicalDeviceFormatProperties2(
10385 VkPhysicalDevice physicalDevice,
10386 VkFormat format,
10387 VkFormatProperties2* pFormatProperties)
10388 {
10389 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 encode");
10390 mImpl->log("start vkGetPhysicalDeviceFormatProperties2");
10391 auto stream = mImpl->stream();
10392 auto countingStream = mImpl->countingStream();
10393 auto resources = mImpl->resources();
10394 auto pool = mImpl->pool();
10395 stream->setHandleMapping(resources->unwrapMapping());
10396 VkPhysicalDevice local_physicalDevice;
10397 VkFormat local_format;
10398 local_physicalDevice = physicalDevice;
10399 local_format = format;
10400 countingStream->rewind();
10401 {
10402 uint64_t cgen_var_693;
10403 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_693, 1);
10404 countingStream->write((uint64_t*)&cgen_var_693, 1 * 8);
10405 countingStream->write((VkFormat*)&local_format, sizeof(VkFormat));
10406 marshal_VkFormatProperties2(countingStream, (VkFormatProperties2*)(pFormatProperties));
10407 }
10408 uint32_t packetSize_vkGetPhysicalDeviceFormatProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10409 countingStream->rewind();
10410 uint32_t opcode_vkGetPhysicalDeviceFormatProperties2 = OP_vkGetPhysicalDeviceFormatProperties2;
10411 stream->write(&opcode_vkGetPhysicalDeviceFormatProperties2, sizeof(uint32_t));
10412 stream->write(&packetSize_vkGetPhysicalDeviceFormatProperties2, sizeof(uint32_t));
10413 uint64_t cgen_var_694;
10414 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_694, 1);
10415 stream->write((uint64_t*)&cgen_var_694, 1 * 8);
10416 stream->write((VkFormat*)&local_format, sizeof(VkFormat));
10417 marshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
10418 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 readParams");
10419 unmarshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
10420 if (pFormatProperties)
10421 {
10422 transform_fromhost_VkFormatProperties2(mImpl->resources(), (VkFormatProperties2*)(pFormatProperties));
10423 }
10424 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 returnUnmarshal");
10425 mImpl->log("finish vkGetPhysicalDeviceFormatProperties2");;
10426 }
10427
vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)10428 VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties2(
10429 VkPhysicalDevice physicalDevice,
10430 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
10431 VkImageFormatProperties2* pImageFormatProperties)
10432 {
10433 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 encode");
10434 mImpl->log("start vkGetPhysicalDeviceImageFormatProperties2");
10435 auto stream = mImpl->stream();
10436 auto countingStream = mImpl->countingStream();
10437 auto resources = mImpl->resources();
10438 auto pool = mImpl->pool();
10439 stream->setHandleMapping(resources->unwrapMapping());
10440 VkPhysicalDevice local_physicalDevice;
10441 VkPhysicalDeviceImageFormatInfo2* local_pImageFormatInfo;
10442 local_physicalDevice = physicalDevice;
10443 local_pImageFormatInfo = nullptr;
10444 if (pImageFormatInfo)
10445 {
10446 local_pImageFormatInfo = (VkPhysicalDeviceImageFormatInfo2*)pool->alloc(sizeof(const VkPhysicalDeviceImageFormatInfo2));
10447 deepcopy_VkPhysicalDeviceImageFormatInfo2(pool, pImageFormatInfo, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
10448 }
10449 if (local_pImageFormatInfo)
10450 {
10451 transform_tohost_VkPhysicalDeviceImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
10452 }
10453 countingStream->rewind();
10454 {
10455 uint64_t cgen_var_695;
10456 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_695, 1);
10457 countingStream->write((uint64_t*)&cgen_var_695, 1 * 8);
10458 marshal_VkPhysicalDeviceImageFormatInfo2(countingStream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
10459 marshal_VkImageFormatProperties2(countingStream, (VkImageFormatProperties2*)(pImageFormatProperties));
10460 }
10461 uint32_t packetSize_vkGetPhysicalDeviceImageFormatProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10462 countingStream->rewind();
10463 uint32_t opcode_vkGetPhysicalDeviceImageFormatProperties2 = OP_vkGetPhysicalDeviceImageFormatProperties2;
10464 stream->write(&opcode_vkGetPhysicalDeviceImageFormatProperties2, sizeof(uint32_t));
10465 stream->write(&packetSize_vkGetPhysicalDeviceImageFormatProperties2, sizeof(uint32_t));
10466 uint64_t cgen_var_696;
10467 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_696, 1);
10468 stream->write((uint64_t*)&cgen_var_696, 1 * 8);
10469 marshal_VkPhysicalDeviceImageFormatInfo2(stream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
10470 marshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
10471 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 readParams");
10472 unmarshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
10473 if (pImageFormatProperties)
10474 {
10475 transform_fromhost_VkImageFormatProperties2(mImpl->resources(), (VkImageFormatProperties2*)(pImageFormatProperties));
10476 }
10477 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 returnUnmarshal");
10478 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
10479 stream->read(&vkGetPhysicalDeviceImageFormatProperties2_VkResult_return, sizeof(VkResult));
10480 countingStream->clearPool();
10481 stream->clearPool();
10482 pool->freeAll();
10483 mImpl->log("finish vkGetPhysicalDeviceImageFormatProperties2");;
10484 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
10485 }
10486
vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)10487 void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties2(
10488 VkPhysicalDevice physicalDevice,
10489 uint32_t* pQueueFamilyPropertyCount,
10490 VkQueueFamilyProperties2* pQueueFamilyProperties)
10491 {
10492 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 encode");
10493 mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties2");
10494 auto stream = mImpl->stream();
10495 auto countingStream = mImpl->countingStream();
10496 auto resources = mImpl->resources();
10497 auto pool = mImpl->pool();
10498 stream->setHandleMapping(resources->unwrapMapping());
10499 VkPhysicalDevice local_physicalDevice;
10500 local_physicalDevice = physicalDevice;
10501 countingStream->rewind();
10502 {
10503 uint64_t cgen_var_697;
10504 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_697, 1);
10505 countingStream->write((uint64_t*)&cgen_var_697, 1 * 8);
10506 // WARNING PTR CHECK
10507 uint64_t cgen_var_698 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
10508 countingStream->putBe64(cgen_var_698);
10509 if (pQueueFamilyPropertyCount)
10510 {
10511 countingStream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t));
10512 }
10513 // WARNING PTR CHECK
10514 uint64_t cgen_var_699 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
10515 countingStream->putBe64(cgen_var_699);
10516 if (pQueueFamilyProperties)
10517 {
10518 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
10519 {
10520 marshal_VkQueueFamilyProperties2(countingStream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
10521 }
10522 }
10523 }
10524 uint32_t packetSize_vkGetPhysicalDeviceQueueFamilyProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10525 countingStream->rewind();
10526 uint32_t opcode_vkGetPhysicalDeviceQueueFamilyProperties2 = OP_vkGetPhysicalDeviceQueueFamilyProperties2;
10527 stream->write(&opcode_vkGetPhysicalDeviceQueueFamilyProperties2, sizeof(uint32_t));
10528 stream->write(&packetSize_vkGetPhysicalDeviceQueueFamilyProperties2, sizeof(uint32_t));
10529 uint64_t cgen_var_700;
10530 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_700, 1);
10531 stream->write((uint64_t*)&cgen_var_700, 1 * 8);
10532 // WARNING PTR CHECK
10533 uint64_t cgen_var_701 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
10534 stream->putBe64(cgen_var_701);
10535 if (pQueueFamilyPropertyCount)
10536 {
10537 stream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t));
10538 }
10539 // WARNING PTR CHECK
10540 uint64_t cgen_var_702 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
10541 stream->putBe64(cgen_var_702);
10542 if (pQueueFamilyProperties)
10543 {
10544 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
10545 {
10546 marshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
10547 }
10548 }
10549 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 readParams");
10550 // WARNING PTR CHECK
10551 uint32_t* check_pQueueFamilyPropertyCount;
10552 check_pQueueFamilyPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
10553 if (pQueueFamilyPropertyCount)
10554 {
10555 if (!(check_pQueueFamilyPropertyCount))
10556 {
10557 fprintf(stderr, "fatal: pQueueFamilyPropertyCount inconsistent between guest and host\n");
10558 }
10559 stream->read((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t));
10560 }
10561 // WARNING PTR CHECK
10562 VkQueueFamilyProperties2* check_pQueueFamilyProperties;
10563 check_pQueueFamilyProperties = (VkQueueFamilyProperties2*)(uintptr_t)stream->getBe64();
10564 if (pQueueFamilyProperties)
10565 {
10566 if (!(check_pQueueFamilyProperties))
10567 {
10568 fprintf(stderr, "fatal: pQueueFamilyProperties inconsistent between guest and host\n");
10569 }
10570 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
10571 {
10572 unmarshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
10573 }
10574 }
10575 if (pQueueFamilyProperties)
10576 {
10577 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
10578 {
10579 transform_fromhost_VkQueueFamilyProperties2(mImpl->resources(), (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
10580 }
10581 }
10582 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 returnUnmarshal");
10583 mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties2");;
10584 }
10585
vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)10586 void VkEncoder::vkGetPhysicalDeviceMemoryProperties2(
10587 VkPhysicalDevice physicalDevice,
10588 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
10589 {
10590 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 encode");
10591 mImpl->log("start vkGetPhysicalDeviceMemoryProperties2");
10592 auto stream = mImpl->stream();
10593 auto countingStream = mImpl->countingStream();
10594 auto resources = mImpl->resources();
10595 auto pool = mImpl->pool();
10596 stream->setHandleMapping(resources->unwrapMapping());
10597 VkPhysicalDevice local_physicalDevice;
10598 local_physicalDevice = physicalDevice;
10599 countingStream->rewind();
10600 {
10601 uint64_t cgen_var_705;
10602 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_705, 1);
10603 countingStream->write((uint64_t*)&cgen_var_705, 1 * 8);
10604 marshal_VkPhysicalDeviceMemoryProperties2(countingStream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
10605 }
10606 uint32_t packetSize_vkGetPhysicalDeviceMemoryProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10607 countingStream->rewind();
10608 uint32_t opcode_vkGetPhysicalDeviceMemoryProperties2 = OP_vkGetPhysicalDeviceMemoryProperties2;
10609 stream->write(&opcode_vkGetPhysicalDeviceMemoryProperties2, sizeof(uint32_t));
10610 stream->write(&packetSize_vkGetPhysicalDeviceMemoryProperties2, sizeof(uint32_t));
10611 uint64_t cgen_var_706;
10612 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_706, 1);
10613 stream->write((uint64_t*)&cgen_var_706, 1 * 8);
10614 marshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
10615 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 readParams");
10616 unmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
10617 if (pMemoryProperties)
10618 {
10619 transform_fromhost_VkPhysicalDeviceMemoryProperties2(mImpl->resources(), (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
10620 }
10621 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 returnUnmarshal");
10622 mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties2(this, physicalDevice, pMemoryProperties);
10623 mImpl->log("finish vkGetPhysicalDeviceMemoryProperties2");;
10624 }
10625
vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)10626 void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties2(
10627 VkPhysicalDevice physicalDevice,
10628 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
10629 uint32_t* pPropertyCount,
10630 VkSparseImageFormatProperties2* pProperties)
10631 {
10632 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 encode");
10633 mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties2");
10634 auto stream = mImpl->stream();
10635 auto countingStream = mImpl->countingStream();
10636 auto resources = mImpl->resources();
10637 auto pool = mImpl->pool();
10638 stream->setHandleMapping(resources->unwrapMapping());
10639 VkPhysicalDevice local_physicalDevice;
10640 VkPhysicalDeviceSparseImageFormatInfo2* local_pFormatInfo;
10641 local_physicalDevice = physicalDevice;
10642 local_pFormatInfo = nullptr;
10643 if (pFormatInfo)
10644 {
10645 local_pFormatInfo = (VkPhysicalDeviceSparseImageFormatInfo2*)pool->alloc(sizeof(const VkPhysicalDeviceSparseImageFormatInfo2));
10646 deepcopy_VkPhysicalDeviceSparseImageFormatInfo2(pool, pFormatInfo, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
10647 }
10648 if (local_pFormatInfo)
10649 {
10650 transform_tohost_VkPhysicalDeviceSparseImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
10651 }
10652 countingStream->rewind();
10653 {
10654 uint64_t cgen_var_707;
10655 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_707, 1);
10656 countingStream->write((uint64_t*)&cgen_var_707, 1 * 8);
10657 marshal_VkPhysicalDeviceSparseImageFormatInfo2(countingStream, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
10658 // WARNING PTR CHECK
10659 uint64_t cgen_var_708 = (uint64_t)(uintptr_t)pPropertyCount;
10660 countingStream->putBe64(cgen_var_708);
10661 if (pPropertyCount)
10662 {
10663 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
10664 }
10665 // WARNING PTR CHECK
10666 uint64_t cgen_var_709 = (uint64_t)(uintptr_t)pProperties;
10667 countingStream->putBe64(cgen_var_709);
10668 if (pProperties)
10669 {
10670 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
10671 {
10672 marshal_VkSparseImageFormatProperties2(countingStream, (VkSparseImageFormatProperties2*)(pProperties + i));
10673 }
10674 }
10675 }
10676 uint32_t packetSize_vkGetPhysicalDeviceSparseImageFormatProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10677 countingStream->rewind();
10678 uint32_t opcode_vkGetPhysicalDeviceSparseImageFormatProperties2 = OP_vkGetPhysicalDeviceSparseImageFormatProperties2;
10679 stream->write(&opcode_vkGetPhysicalDeviceSparseImageFormatProperties2, sizeof(uint32_t));
10680 stream->write(&packetSize_vkGetPhysicalDeviceSparseImageFormatProperties2, sizeof(uint32_t));
10681 uint64_t cgen_var_710;
10682 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_710, 1);
10683 stream->write((uint64_t*)&cgen_var_710, 1 * 8);
10684 marshal_VkPhysicalDeviceSparseImageFormatInfo2(stream, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
10685 // WARNING PTR CHECK
10686 uint64_t cgen_var_711 = (uint64_t)(uintptr_t)pPropertyCount;
10687 stream->putBe64(cgen_var_711);
10688 if (pPropertyCount)
10689 {
10690 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
10691 }
10692 // WARNING PTR CHECK
10693 uint64_t cgen_var_712 = (uint64_t)(uintptr_t)pProperties;
10694 stream->putBe64(cgen_var_712);
10695 if (pProperties)
10696 {
10697 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
10698 {
10699 marshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
10700 }
10701 }
10702 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 readParams");
10703 // WARNING PTR CHECK
10704 uint32_t* check_pPropertyCount;
10705 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
10706 if (pPropertyCount)
10707 {
10708 if (!(check_pPropertyCount))
10709 {
10710 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
10711 }
10712 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
10713 }
10714 // WARNING PTR CHECK
10715 VkSparseImageFormatProperties2* check_pProperties;
10716 check_pProperties = (VkSparseImageFormatProperties2*)(uintptr_t)stream->getBe64();
10717 if (pProperties)
10718 {
10719 if (!(check_pProperties))
10720 {
10721 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
10722 }
10723 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
10724 {
10725 unmarshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
10726 }
10727 }
10728 if (pProperties)
10729 {
10730 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
10731 {
10732 transform_fromhost_VkSparseImageFormatProperties2(mImpl->resources(), (VkSparseImageFormatProperties2*)(pProperties + i));
10733 }
10734 }
10735 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 returnUnmarshal");
10736 mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties2");;
10737 }
10738
vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)10739 void VkEncoder::vkTrimCommandPool(
10740 VkDevice device,
10741 VkCommandPool commandPool,
10742 VkCommandPoolTrimFlags flags)
10743 {
10744 AEMU_SCOPED_TRACE("vkTrimCommandPool encode");
10745 mImpl->log("start vkTrimCommandPool");
10746 auto stream = mImpl->stream();
10747 auto countingStream = mImpl->countingStream();
10748 auto resources = mImpl->resources();
10749 auto pool = mImpl->pool();
10750 stream->setHandleMapping(resources->unwrapMapping());
10751 VkDevice local_device;
10752 VkCommandPool local_commandPool;
10753 VkCommandPoolTrimFlags local_flags;
10754 local_device = device;
10755 local_commandPool = commandPool;
10756 local_flags = flags;
10757 countingStream->rewind();
10758 {
10759 uint64_t cgen_var_715;
10760 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_715, 1);
10761 countingStream->write((uint64_t*)&cgen_var_715, 1 * 8);
10762 uint64_t cgen_var_716;
10763 countingStream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_716, 1);
10764 countingStream->write((uint64_t*)&cgen_var_716, 1 * 8);
10765 countingStream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags));
10766 }
10767 uint32_t packetSize_vkTrimCommandPool = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10768 countingStream->rewind();
10769 uint32_t opcode_vkTrimCommandPool = OP_vkTrimCommandPool;
10770 stream->write(&opcode_vkTrimCommandPool, sizeof(uint32_t));
10771 stream->write(&packetSize_vkTrimCommandPool, sizeof(uint32_t));
10772 uint64_t cgen_var_717;
10773 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_717, 1);
10774 stream->write((uint64_t*)&cgen_var_717, 1 * 8);
10775 uint64_t cgen_var_718;
10776 stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_718, 1);
10777 stream->write((uint64_t*)&cgen_var_718, 1 * 8);
10778 stream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags));
10779 AEMU_SCOPED_TRACE("vkTrimCommandPool readParams");
10780 AEMU_SCOPED_TRACE("vkTrimCommandPool returnUnmarshal");
10781 mImpl->log("finish vkTrimCommandPool");;
10782 }
10783
vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)10784 void VkEncoder::vkGetDeviceQueue2(
10785 VkDevice device,
10786 const VkDeviceQueueInfo2* pQueueInfo,
10787 VkQueue* pQueue)
10788 {
10789 AEMU_SCOPED_TRACE("vkGetDeviceQueue2 encode");
10790 mImpl->log("start vkGetDeviceQueue2");
10791 auto stream = mImpl->stream();
10792 auto countingStream = mImpl->countingStream();
10793 auto resources = mImpl->resources();
10794 auto pool = mImpl->pool();
10795 stream->setHandleMapping(resources->unwrapMapping());
10796 VkDevice local_device;
10797 VkDeviceQueueInfo2* local_pQueueInfo;
10798 local_device = device;
10799 local_pQueueInfo = nullptr;
10800 if (pQueueInfo)
10801 {
10802 local_pQueueInfo = (VkDeviceQueueInfo2*)pool->alloc(sizeof(const VkDeviceQueueInfo2));
10803 deepcopy_VkDeviceQueueInfo2(pool, pQueueInfo, (VkDeviceQueueInfo2*)(local_pQueueInfo));
10804 }
10805 if (local_pQueueInfo)
10806 {
10807 transform_tohost_VkDeviceQueueInfo2(mImpl->resources(), (VkDeviceQueueInfo2*)(local_pQueueInfo));
10808 }
10809 countingStream->rewind();
10810 {
10811 uint64_t cgen_var_719;
10812 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_719, 1);
10813 countingStream->write((uint64_t*)&cgen_var_719, 1 * 8);
10814 marshal_VkDeviceQueueInfo2(countingStream, (VkDeviceQueueInfo2*)(local_pQueueInfo));
10815 uint64_t cgen_var_720;
10816 countingStream->handleMapping()->mapHandles_VkQueue_u64(pQueue, &cgen_var_720, 1);
10817 countingStream->write((uint64_t*)&cgen_var_720, 8);
10818 }
10819 uint32_t packetSize_vkGetDeviceQueue2 = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10820 countingStream->rewind();
10821 uint32_t opcode_vkGetDeviceQueue2 = OP_vkGetDeviceQueue2;
10822 stream->write(&opcode_vkGetDeviceQueue2, sizeof(uint32_t));
10823 stream->write(&packetSize_vkGetDeviceQueue2, sizeof(uint32_t));
10824 uint64_t cgen_var_721;
10825 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_721, 1);
10826 stream->write((uint64_t*)&cgen_var_721, 1 * 8);
10827 marshal_VkDeviceQueueInfo2(stream, (VkDeviceQueueInfo2*)(local_pQueueInfo));
10828 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
10829 uint64_t cgen_var_722;
10830 stream->handleMapping()->mapHandles_VkQueue_u64(pQueue, &cgen_var_722, 1);
10831 stream->write((uint64_t*)&cgen_var_722, 8);
10832 stream->setHandleMapping(resources->unwrapMapping());
10833 AEMU_SCOPED_TRACE("vkGetDeviceQueue2 readParams");
10834 uint64_t cgen_var_723;
10835 stream->read((uint64_t*)&cgen_var_723, 8);
10836 stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_723, (VkQueue*)pQueue, 1);
10837 AEMU_SCOPED_TRACE("vkGetDeviceQueue2 returnUnmarshal");
10838 mImpl->log("finish vkGetDeviceQueue2");;
10839 }
10840
vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)10841 VkResult VkEncoder::vkCreateSamplerYcbcrConversion(
10842 VkDevice device,
10843 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
10844 const VkAllocationCallbacks* pAllocator,
10845 VkSamplerYcbcrConversion* pYcbcrConversion)
10846 {
10847 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion encode");
10848 mImpl->log("start vkCreateSamplerYcbcrConversion");
10849 auto stream = mImpl->stream();
10850 auto countingStream = mImpl->countingStream();
10851 auto resources = mImpl->resources();
10852 auto pool = mImpl->pool();
10853 stream->setHandleMapping(resources->unwrapMapping());
10854 VkDevice local_device;
10855 VkSamplerYcbcrConversionCreateInfo* local_pCreateInfo;
10856 VkAllocationCallbacks* local_pAllocator;
10857 local_device = device;
10858 local_pCreateInfo = nullptr;
10859 if (pCreateInfo)
10860 {
10861 local_pCreateInfo = (VkSamplerYcbcrConversionCreateInfo*)pool->alloc(sizeof(const VkSamplerYcbcrConversionCreateInfo));
10862 deepcopy_VkSamplerYcbcrConversionCreateInfo(pool, pCreateInfo, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
10863 }
10864 local_pAllocator = nullptr;
10865 if (pAllocator)
10866 {
10867 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
10868 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
10869 }
10870 local_pAllocator = nullptr;
10871 if (local_pCreateInfo)
10872 {
10873 transform_tohost_VkSamplerYcbcrConversionCreateInfo(mImpl->resources(), (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
10874 }
10875 if (local_pAllocator)
10876 {
10877 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
10878 }
10879 countingStream->rewind();
10880 {
10881 uint64_t cgen_var_724;
10882 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_724, 1);
10883 countingStream->write((uint64_t*)&cgen_var_724, 1 * 8);
10884 marshal_VkSamplerYcbcrConversionCreateInfo(countingStream, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
10885 // WARNING PTR CHECK
10886 uint64_t cgen_var_725 = (uint64_t)(uintptr_t)local_pAllocator;
10887 countingStream->putBe64(cgen_var_725);
10888 if (local_pAllocator)
10889 {
10890 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
10891 }
10892 uint64_t cgen_var_726;
10893 countingStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(pYcbcrConversion, &cgen_var_726, 1);
10894 countingStream->write((uint64_t*)&cgen_var_726, 8);
10895 }
10896 uint32_t packetSize_vkCreateSamplerYcbcrConversion = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10897 countingStream->rewind();
10898 uint32_t opcode_vkCreateSamplerYcbcrConversion = OP_vkCreateSamplerYcbcrConversion;
10899 stream->write(&opcode_vkCreateSamplerYcbcrConversion, sizeof(uint32_t));
10900 stream->write(&packetSize_vkCreateSamplerYcbcrConversion, sizeof(uint32_t));
10901 uint64_t cgen_var_727;
10902 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_727, 1);
10903 stream->write((uint64_t*)&cgen_var_727, 1 * 8);
10904 marshal_VkSamplerYcbcrConversionCreateInfo(stream, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
10905 // WARNING PTR CHECK
10906 uint64_t cgen_var_728 = (uint64_t)(uintptr_t)local_pAllocator;
10907 stream->putBe64(cgen_var_728);
10908 if (local_pAllocator)
10909 {
10910 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
10911 }
10912 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
10913 uint64_t cgen_var_729;
10914 stream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(pYcbcrConversion, &cgen_var_729, 1);
10915 stream->write((uint64_t*)&cgen_var_729, 8);
10916 stream->setHandleMapping(resources->unwrapMapping());
10917 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion readParams");
10918 stream->setHandleMapping(resources->createMapping());
10919 uint64_t cgen_var_730;
10920 stream->read((uint64_t*)&cgen_var_730, 8);
10921 stream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_730, (VkSamplerYcbcrConversion*)pYcbcrConversion, 1);
10922 stream->unsetHandleMapping();
10923 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion returnUnmarshal");
10924 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
10925 stream->read(&vkCreateSamplerYcbcrConversion_VkResult_return, sizeof(VkResult));
10926 countingStream->clearPool();
10927 stream->clearPool();
10928 pool->freeAll();
10929 mImpl->log("finish vkCreateSamplerYcbcrConversion");;
10930 return vkCreateSamplerYcbcrConversion_VkResult_return;
10931 }
10932
vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)10933 void VkEncoder::vkDestroySamplerYcbcrConversion(
10934 VkDevice device,
10935 VkSamplerYcbcrConversion ycbcrConversion,
10936 const VkAllocationCallbacks* pAllocator)
10937 {
10938 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion encode");
10939 mImpl->log("start vkDestroySamplerYcbcrConversion");
10940 auto stream = mImpl->stream();
10941 auto countingStream = mImpl->countingStream();
10942 auto resources = mImpl->resources();
10943 auto pool = mImpl->pool();
10944 stream->setHandleMapping(resources->unwrapMapping());
10945 VkDevice local_device;
10946 VkSamplerYcbcrConversion local_ycbcrConversion;
10947 VkAllocationCallbacks* local_pAllocator;
10948 local_device = device;
10949 local_ycbcrConversion = ycbcrConversion;
10950 local_pAllocator = nullptr;
10951 if (pAllocator)
10952 {
10953 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
10954 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
10955 }
10956 local_pAllocator = nullptr;
10957 if (local_pAllocator)
10958 {
10959 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
10960 }
10961 countingStream->rewind();
10962 {
10963 uint64_t cgen_var_731;
10964 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_731, 1);
10965 countingStream->write((uint64_t*)&cgen_var_731, 1 * 8);
10966 uint64_t cgen_var_732;
10967 countingStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&local_ycbcrConversion, &cgen_var_732, 1);
10968 countingStream->write((uint64_t*)&cgen_var_732, 1 * 8);
10969 // WARNING PTR CHECK
10970 uint64_t cgen_var_733 = (uint64_t)(uintptr_t)local_pAllocator;
10971 countingStream->putBe64(cgen_var_733);
10972 if (local_pAllocator)
10973 {
10974 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
10975 }
10976 }
10977 uint32_t packetSize_vkDestroySamplerYcbcrConversion = 4 + 4 + (uint32_t)countingStream->bytesWritten();
10978 countingStream->rewind();
10979 uint32_t opcode_vkDestroySamplerYcbcrConversion = OP_vkDestroySamplerYcbcrConversion;
10980 stream->write(&opcode_vkDestroySamplerYcbcrConversion, sizeof(uint32_t));
10981 stream->write(&packetSize_vkDestroySamplerYcbcrConversion, sizeof(uint32_t));
10982 uint64_t cgen_var_734;
10983 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_734, 1);
10984 stream->write((uint64_t*)&cgen_var_734, 1 * 8);
10985 uint64_t cgen_var_735;
10986 stream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&local_ycbcrConversion, &cgen_var_735, 1);
10987 stream->write((uint64_t*)&cgen_var_735, 1 * 8);
10988 // WARNING PTR CHECK
10989 uint64_t cgen_var_736 = (uint64_t)(uintptr_t)local_pAllocator;
10990 stream->putBe64(cgen_var_736);
10991 if (local_pAllocator)
10992 {
10993 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
10994 }
10995 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion readParams");
10996 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion returnUnmarshal");
10997 resources->destroyMapping()->mapHandles_VkSamplerYcbcrConversion((VkSamplerYcbcrConversion*)&ycbcrConversion);
10998 mImpl->log("finish vkDestroySamplerYcbcrConversion");;
10999 }
11000
vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)11001 VkResult VkEncoder::vkCreateDescriptorUpdateTemplate(
11002 VkDevice device,
11003 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
11004 const VkAllocationCallbacks* pAllocator,
11005 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
11006 {
11007 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate encode");
11008 mImpl->log("start vkCreateDescriptorUpdateTemplate");
11009 auto stream = mImpl->stream();
11010 auto countingStream = mImpl->countingStream();
11011 auto resources = mImpl->resources();
11012 auto pool = mImpl->pool();
11013 stream->setHandleMapping(resources->unwrapMapping());
11014 VkDevice local_device;
11015 VkDescriptorUpdateTemplateCreateInfo* local_pCreateInfo;
11016 VkAllocationCallbacks* local_pAllocator;
11017 local_device = device;
11018 local_pCreateInfo = nullptr;
11019 if (pCreateInfo)
11020 {
11021 local_pCreateInfo = (VkDescriptorUpdateTemplateCreateInfo*)pool->alloc(sizeof(const VkDescriptorUpdateTemplateCreateInfo));
11022 deepcopy_VkDescriptorUpdateTemplateCreateInfo(pool, pCreateInfo, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
11023 }
11024 local_pAllocator = nullptr;
11025 if (pAllocator)
11026 {
11027 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
11028 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
11029 }
11030 local_pAllocator = nullptr;
11031 if (local_pCreateInfo)
11032 {
11033 transform_tohost_VkDescriptorUpdateTemplateCreateInfo(mImpl->resources(), (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
11034 }
11035 if (local_pAllocator)
11036 {
11037 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
11038 }
11039 countingStream->rewind();
11040 {
11041 uint64_t cgen_var_737;
11042 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_737, 1);
11043 countingStream->write((uint64_t*)&cgen_var_737, 1 * 8);
11044 marshal_VkDescriptorUpdateTemplateCreateInfo(countingStream, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
11045 // WARNING PTR CHECK
11046 uint64_t cgen_var_738 = (uint64_t)(uintptr_t)local_pAllocator;
11047 countingStream->putBe64(cgen_var_738);
11048 if (local_pAllocator)
11049 {
11050 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
11051 }
11052 uint64_t cgen_var_739;
11053 countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(pDescriptorUpdateTemplate, &cgen_var_739, 1);
11054 countingStream->write((uint64_t*)&cgen_var_739, 8);
11055 }
11056 uint32_t packetSize_vkCreateDescriptorUpdateTemplate = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11057 countingStream->rewind();
11058 uint32_t opcode_vkCreateDescriptorUpdateTemplate = OP_vkCreateDescriptorUpdateTemplate;
11059 stream->write(&opcode_vkCreateDescriptorUpdateTemplate, sizeof(uint32_t));
11060 stream->write(&packetSize_vkCreateDescriptorUpdateTemplate, sizeof(uint32_t));
11061 uint64_t cgen_var_740;
11062 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_740, 1);
11063 stream->write((uint64_t*)&cgen_var_740, 1 * 8);
11064 marshal_VkDescriptorUpdateTemplateCreateInfo(stream, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
11065 // WARNING PTR CHECK
11066 uint64_t cgen_var_741 = (uint64_t)(uintptr_t)local_pAllocator;
11067 stream->putBe64(cgen_var_741);
11068 if (local_pAllocator)
11069 {
11070 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
11071 }
11072 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
11073 uint64_t cgen_var_742;
11074 stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(pDescriptorUpdateTemplate, &cgen_var_742, 1);
11075 stream->write((uint64_t*)&cgen_var_742, 8);
11076 stream->setHandleMapping(resources->unwrapMapping());
11077 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate readParams");
11078 stream->setHandleMapping(resources->createMapping());
11079 uint64_t cgen_var_743;
11080 stream->read((uint64_t*)&cgen_var_743, 8);
11081 stream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(&cgen_var_743, (VkDescriptorUpdateTemplate*)pDescriptorUpdateTemplate, 1);
11082 stream->unsetHandleMapping();
11083 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate returnUnmarshal");
11084 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
11085 stream->read(&vkCreateDescriptorUpdateTemplate_VkResult_return, sizeof(VkResult));
11086 countingStream->clearPool();
11087 stream->clearPool();
11088 pool->freeAll();
11089 mImpl->resources()->on_vkCreateDescriptorUpdateTemplate(this, vkCreateDescriptorUpdateTemplate_VkResult_return, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
11090 mImpl->log("finish vkCreateDescriptorUpdateTemplate");;
11091 return vkCreateDescriptorUpdateTemplate_VkResult_return;
11092 }
11093
vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)11094 void VkEncoder::vkDestroyDescriptorUpdateTemplate(
11095 VkDevice device,
11096 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
11097 const VkAllocationCallbacks* pAllocator)
11098 {
11099 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate encode");
11100 mImpl->log("start vkDestroyDescriptorUpdateTemplate");
11101 auto stream = mImpl->stream();
11102 auto countingStream = mImpl->countingStream();
11103 auto resources = mImpl->resources();
11104 auto pool = mImpl->pool();
11105 stream->setHandleMapping(resources->unwrapMapping());
11106 VkDevice local_device;
11107 VkDescriptorUpdateTemplate local_descriptorUpdateTemplate;
11108 VkAllocationCallbacks* local_pAllocator;
11109 local_device = device;
11110 local_descriptorUpdateTemplate = descriptorUpdateTemplate;
11111 local_pAllocator = nullptr;
11112 if (pAllocator)
11113 {
11114 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
11115 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
11116 }
11117 local_pAllocator = nullptr;
11118 if (local_pAllocator)
11119 {
11120 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
11121 }
11122 countingStream->rewind();
11123 {
11124 uint64_t cgen_var_744;
11125 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_744, 1);
11126 countingStream->write((uint64_t*)&cgen_var_744, 1 * 8);
11127 uint64_t cgen_var_745;
11128 countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_745, 1);
11129 countingStream->write((uint64_t*)&cgen_var_745, 1 * 8);
11130 // WARNING PTR CHECK
11131 uint64_t cgen_var_746 = (uint64_t)(uintptr_t)local_pAllocator;
11132 countingStream->putBe64(cgen_var_746);
11133 if (local_pAllocator)
11134 {
11135 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
11136 }
11137 }
11138 uint32_t packetSize_vkDestroyDescriptorUpdateTemplate = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11139 countingStream->rewind();
11140 uint32_t opcode_vkDestroyDescriptorUpdateTemplate = OP_vkDestroyDescriptorUpdateTemplate;
11141 stream->write(&opcode_vkDestroyDescriptorUpdateTemplate, sizeof(uint32_t));
11142 stream->write(&packetSize_vkDestroyDescriptorUpdateTemplate, sizeof(uint32_t));
11143 uint64_t cgen_var_747;
11144 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_747, 1);
11145 stream->write((uint64_t*)&cgen_var_747, 1 * 8);
11146 uint64_t cgen_var_748;
11147 stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_748, 1);
11148 stream->write((uint64_t*)&cgen_var_748, 1 * 8);
11149 // WARNING PTR CHECK
11150 uint64_t cgen_var_749 = (uint64_t)(uintptr_t)local_pAllocator;
11151 stream->putBe64(cgen_var_749);
11152 if (local_pAllocator)
11153 {
11154 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
11155 }
11156 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate readParams");
11157 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate returnUnmarshal");
11158 resources->destroyMapping()->mapHandles_VkDescriptorUpdateTemplate((VkDescriptorUpdateTemplate*)&descriptorUpdateTemplate);
11159 mImpl->log("finish vkDestroyDescriptorUpdateTemplate");;
11160 }
11161
vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)11162 void VkEncoder::vkUpdateDescriptorSetWithTemplate(
11163 VkDevice device,
11164 VkDescriptorSet descriptorSet,
11165 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
11166 const void* pData)
11167 {
11168 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate encode");
11169 mImpl->log("start vkUpdateDescriptorSetWithTemplate");
11170 auto stream = mImpl->stream();
11171 auto countingStream = mImpl->countingStream();
11172 auto resources = mImpl->resources();
11173 auto pool = mImpl->pool();
11174 stream->setHandleMapping(resources->unwrapMapping());
11175 VkDevice local_device;
11176 VkDescriptorSet local_descriptorSet;
11177 VkDescriptorUpdateTemplate local_descriptorUpdateTemplate;
11178 void* local_pData;
11179 local_device = device;
11180 local_descriptorSet = descriptorSet;
11181 local_descriptorUpdateTemplate = descriptorUpdateTemplate;
11182 local_pData = nullptr;
11183 if (pData)
11184 {
11185 local_pData = (void*)pool->dupArray(pData, sizeof(const uint8_t));
11186 }
11187 countingStream->rewind();
11188 {
11189 uint64_t cgen_var_750;
11190 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_750, 1);
11191 countingStream->write((uint64_t*)&cgen_var_750, 1 * 8);
11192 uint64_t cgen_var_751;
11193 countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_751, 1);
11194 countingStream->write((uint64_t*)&cgen_var_751, 1 * 8);
11195 uint64_t cgen_var_752;
11196 countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_752, 1);
11197 countingStream->write((uint64_t*)&cgen_var_752, 1 * 8);
11198 // WARNING PTR CHECK
11199 uint64_t cgen_var_753 = (uint64_t)(uintptr_t)local_pData;
11200 countingStream->putBe64(cgen_var_753);
11201 if (local_pData)
11202 {
11203 countingStream->write((void*)local_pData, sizeof(uint8_t));
11204 }
11205 }
11206 uint32_t packetSize_vkUpdateDescriptorSetWithTemplate = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11207 countingStream->rewind();
11208 uint32_t opcode_vkUpdateDescriptorSetWithTemplate = OP_vkUpdateDescriptorSetWithTemplate;
11209 stream->write(&opcode_vkUpdateDescriptorSetWithTemplate, sizeof(uint32_t));
11210 stream->write(&packetSize_vkUpdateDescriptorSetWithTemplate, sizeof(uint32_t));
11211 uint64_t cgen_var_754;
11212 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_754, 1);
11213 stream->write((uint64_t*)&cgen_var_754, 1 * 8);
11214 uint64_t cgen_var_755;
11215 stream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_755, 1);
11216 stream->write((uint64_t*)&cgen_var_755, 1 * 8);
11217 uint64_t cgen_var_756;
11218 stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_756, 1);
11219 stream->write((uint64_t*)&cgen_var_756, 1 * 8);
11220 // WARNING PTR CHECK
11221 uint64_t cgen_var_757 = (uint64_t)(uintptr_t)local_pData;
11222 stream->putBe64(cgen_var_757);
11223 if (local_pData)
11224 {
11225 stream->write((void*)local_pData, sizeof(uint8_t));
11226 }
11227 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate readParams");
11228 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate returnUnmarshal");
11229 mImpl->log("finish vkUpdateDescriptorSetWithTemplate");;
11230 }
11231
vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)11232 void VkEncoder::vkGetPhysicalDeviceExternalBufferProperties(
11233 VkPhysicalDevice physicalDevice,
11234 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
11235 VkExternalBufferProperties* pExternalBufferProperties)
11236 {
11237 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties encode");
11238 mImpl->log("start vkGetPhysicalDeviceExternalBufferProperties");
11239 auto stream = mImpl->stream();
11240 auto countingStream = mImpl->countingStream();
11241 auto resources = mImpl->resources();
11242 auto pool = mImpl->pool();
11243 stream->setHandleMapping(resources->unwrapMapping());
11244 VkPhysicalDevice local_physicalDevice;
11245 VkPhysicalDeviceExternalBufferInfo* local_pExternalBufferInfo;
11246 local_physicalDevice = physicalDevice;
11247 local_pExternalBufferInfo = nullptr;
11248 if (pExternalBufferInfo)
11249 {
11250 local_pExternalBufferInfo = (VkPhysicalDeviceExternalBufferInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalBufferInfo));
11251 deepcopy_VkPhysicalDeviceExternalBufferInfo(pool, pExternalBufferInfo, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
11252 }
11253 if (local_pExternalBufferInfo)
11254 {
11255 mImpl->resources()->transformImpl_VkPhysicalDeviceExternalBufferInfo_tohost(local_pExternalBufferInfo, 1);
11256 transform_tohost_VkPhysicalDeviceExternalBufferInfo(mImpl->resources(), (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
11257 }
11258 countingStream->rewind();
11259 {
11260 uint64_t cgen_var_758;
11261 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_758, 1);
11262 countingStream->write((uint64_t*)&cgen_var_758, 1 * 8);
11263 marshal_VkPhysicalDeviceExternalBufferInfo(countingStream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
11264 marshal_VkExternalBufferProperties(countingStream, (VkExternalBufferProperties*)(pExternalBufferProperties));
11265 }
11266 uint32_t packetSize_vkGetPhysicalDeviceExternalBufferProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11267 countingStream->rewind();
11268 uint32_t opcode_vkGetPhysicalDeviceExternalBufferProperties = OP_vkGetPhysicalDeviceExternalBufferProperties;
11269 stream->write(&opcode_vkGetPhysicalDeviceExternalBufferProperties, sizeof(uint32_t));
11270 stream->write(&packetSize_vkGetPhysicalDeviceExternalBufferProperties, sizeof(uint32_t));
11271 uint64_t cgen_var_759;
11272 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_759, 1);
11273 stream->write((uint64_t*)&cgen_var_759, 1 * 8);
11274 marshal_VkPhysicalDeviceExternalBufferInfo(stream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
11275 marshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
11276 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties readParams");
11277 unmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
11278 if (pExternalBufferProperties)
11279 {
11280 mImpl->resources()->transformImpl_VkExternalBufferProperties_fromhost(pExternalBufferProperties, 1);
11281 transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties));
11282 }
11283 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties returnUnmarshal");
11284 mImpl->log("finish vkGetPhysicalDeviceExternalBufferProperties");;
11285 }
11286
vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)11287 void VkEncoder::vkGetPhysicalDeviceExternalFenceProperties(
11288 VkPhysicalDevice physicalDevice,
11289 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
11290 VkExternalFenceProperties* pExternalFenceProperties)
11291 {
11292 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties encode");
11293 mImpl->log("start vkGetPhysicalDeviceExternalFenceProperties");
11294 auto stream = mImpl->stream();
11295 auto countingStream = mImpl->countingStream();
11296 auto resources = mImpl->resources();
11297 auto pool = mImpl->pool();
11298 stream->setHandleMapping(resources->unwrapMapping());
11299 VkPhysicalDevice local_physicalDevice;
11300 VkPhysicalDeviceExternalFenceInfo* local_pExternalFenceInfo;
11301 local_physicalDevice = physicalDevice;
11302 local_pExternalFenceInfo = nullptr;
11303 if (pExternalFenceInfo)
11304 {
11305 local_pExternalFenceInfo = (VkPhysicalDeviceExternalFenceInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalFenceInfo));
11306 deepcopy_VkPhysicalDeviceExternalFenceInfo(pool, pExternalFenceInfo, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
11307 }
11308 if (local_pExternalFenceInfo)
11309 {
11310 transform_tohost_VkPhysicalDeviceExternalFenceInfo(mImpl->resources(), (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
11311 }
11312 countingStream->rewind();
11313 {
11314 uint64_t cgen_var_760;
11315 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_760, 1);
11316 countingStream->write((uint64_t*)&cgen_var_760, 1 * 8);
11317 marshal_VkPhysicalDeviceExternalFenceInfo(countingStream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
11318 marshal_VkExternalFenceProperties(countingStream, (VkExternalFenceProperties*)(pExternalFenceProperties));
11319 }
11320 uint32_t packetSize_vkGetPhysicalDeviceExternalFenceProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11321 countingStream->rewind();
11322 uint32_t opcode_vkGetPhysicalDeviceExternalFenceProperties = OP_vkGetPhysicalDeviceExternalFenceProperties;
11323 stream->write(&opcode_vkGetPhysicalDeviceExternalFenceProperties, sizeof(uint32_t));
11324 stream->write(&packetSize_vkGetPhysicalDeviceExternalFenceProperties, sizeof(uint32_t));
11325 uint64_t cgen_var_761;
11326 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_761, 1);
11327 stream->write((uint64_t*)&cgen_var_761, 1 * 8);
11328 marshal_VkPhysicalDeviceExternalFenceInfo(stream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
11329 marshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
11330 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties readParams");
11331 unmarshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
11332 if (pExternalFenceProperties)
11333 {
11334 transform_fromhost_VkExternalFenceProperties(mImpl->resources(), (VkExternalFenceProperties*)(pExternalFenceProperties));
11335 }
11336 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties returnUnmarshal");
11337 mImpl->log("finish vkGetPhysicalDeviceExternalFenceProperties");;
11338 }
11339
vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)11340 void VkEncoder::vkGetPhysicalDeviceExternalSemaphoreProperties(
11341 VkPhysicalDevice physicalDevice,
11342 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
11343 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
11344 {
11345 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties encode");
11346 mImpl->log("start vkGetPhysicalDeviceExternalSemaphoreProperties");
11347 auto stream = mImpl->stream();
11348 auto countingStream = mImpl->countingStream();
11349 auto resources = mImpl->resources();
11350 auto pool = mImpl->pool();
11351 stream->setHandleMapping(resources->unwrapMapping());
11352 VkPhysicalDevice local_physicalDevice;
11353 VkPhysicalDeviceExternalSemaphoreInfo* local_pExternalSemaphoreInfo;
11354 local_physicalDevice = physicalDevice;
11355 local_pExternalSemaphoreInfo = nullptr;
11356 if (pExternalSemaphoreInfo)
11357 {
11358 local_pExternalSemaphoreInfo = (VkPhysicalDeviceExternalSemaphoreInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalSemaphoreInfo));
11359 deepcopy_VkPhysicalDeviceExternalSemaphoreInfo(pool, pExternalSemaphoreInfo, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
11360 }
11361 if (local_pExternalSemaphoreInfo)
11362 {
11363 transform_tohost_VkPhysicalDeviceExternalSemaphoreInfo(mImpl->resources(), (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
11364 }
11365 countingStream->rewind();
11366 {
11367 uint64_t cgen_var_762;
11368 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_762, 1);
11369 countingStream->write((uint64_t*)&cgen_var_762, 1 * 8);
11370 marshal_VkPhysicalDeviceExternalSemaphoreInfo(countingStream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
11371 marshal_VkExternalSemaphoreProperties(countingStream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
11372 }
11373 uint32_t packetSize_vkGetPhysicalDeviceExternalSemaphoreProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11374 countingStream->rewind();
11375 uint32_t opcode_vkGetPhysicalDeviceExternalSemaphoreProperties = OP_vkGetPhysicalDeviceExternalSemaphoreProperties;
11376 stream->write(&opcode_vkGetPhysicalDeviceExternalSemaphoreProperties, sizeof(uint32_t));
11377 stream->write(&packetSize_vkGetPhysicalDeviceExternalSemaphoreProperties, sizeof(uint32_t));
11378 uint64_t cgen_var_763;
11379 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_763, 1);
11380 stream->write((uint64_t*)&cgen_var_763, 1 * 8);
11381 marshal_VkPhysicalDeviceExternalSemaphoreInfo(stream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
11382 marshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
11383 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties readParams");
11384 unmarshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
11385 if (pExternalSemaphoreProperties)
11386 {
11387 transform_fromhost_VkExternalSemaphoreProperties(mImpl->resources(), (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
11388 }
11389 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties returnUnmarshal");
11390 mImpl->log("finish vkGetPhysicalDeviceExternalSemaphoreProperties");;
11391 }
11392
vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)11393 void VkEncoder::vkGetDescriptorSetLayoutSupport(
11394 VkDevice device,
11395 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11396 VkDescriptorSetLayoutSupport* pSupport)
11397 {
11398 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport encode");
11399 mImpl->log("start vkGetDescriptorSetLayoutSupport");
11400 auto stream = mImpl->stream();
11401 auto countingStream = mImpl->countingStream();
11402 auto resources = mImpl->resources();
11403 auto pool = mImpl->pool();
11404 stream->setHandleMapping(resources->unwrapMapping());
11405 VkDevice local_device;
11406 VkDescriptorSetLayoutCreateInfo* local_pCreateInfo;
11407 local_device = device;
11408 local_pCreateInfo = nullptr;
11409 if (pCreateInfo)
11410 {
11411 local_pCreateInfo = (VkDescriptorSetLayoutCreateInfo*)pool->alloc(sizeof(const VkDescriptorSetLayoutCreateInfo));
11412 deepcopy_VkDescriptorSetLayoutCreateInfo(pool, pCreateInfo, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
11413 }
11414 if (local_pCreateInfo)
11415 {
11416 transform_tohost_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
11417 }
11418 countingStream->rewind();
11419 {
11420 uint64_t cgen_var_764;
11421 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_764, 1);
11422 countingStream->write((uint64_t*)&cgen_var_764, 1 * 8);
11423 marshal_VkDescriptorSetLayoutCreateInfo(countingStream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
11424 marshal_VkDescriptorSetLayoutSupport(countingStream, (VkDescriptorSetLayoutSupport*)(pSupport));
11425 }
11426 uint32_t packetSize_vkGetDescriptorSetLayoutSupport = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11427 countingStream->rewind();
11428 uint32_t opcode_vkGetDescriptorSetLayoutSupport = OP_vkGetDescriptorSetLayoutSupport;
11429 stream->write(&opcode_vkGetDescriptorSetLayoutSupport, sizeof(uint32_t));
11430 stream->write(&packetSize_vkGetDescriptorSetLayoutSupport, sizeof(uint32_t));
11431 uint64_t cgen_var_765;
11432 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_765, 1);
11433 stream->write((uint64_t*)&cgen_var_765, 1 * 8);
11434 marshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
11435 marshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
11436 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport readParams");
11437 unmarshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
11438 if (pSupport)
11439 {
11440 transform_fromhost_VkDescriptorSetLayoutSupport(mImpl->resources(), (VkDescriptorSetLayoutSupport*)(pSupport));
11441 }
11442 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport returnUnmarshal");
11443 mImpl->log("finish vkGetDescriptorSetLayoutSupport");;
11444 }
11445
11446 #endif
11447 #ifdef VK_KHR_surface
vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator)11448 void VkEncoder::vkDestroySurfaceKHR(
11449 VkInstance instance,
11450 VkSurfaceKHR surface,
11451 const VkAllocationCallbacks* pAllocator)
11452 {
11453 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR encode");
11454 mImpl->log("start vkDestroySurfaceKHR");
11455 auto stream = mImpl->stream();
11456 auto countingStream = mImpl->countingStream();
11457 auto resources = mImpl->resources();
11458 auto pool = mImpl->pool();
11459 stream->setHandleMapping(resources->unwrapMapping());
11460 VkInstance local_instance;
11461 VkSurfaceKHR local_surface;
11462 VkAllocationCallbacks* local_pAllocator;
11463 local_instance = instance;
11464 local_surface = surface;
11465 local_pAllocator = nullptr;
11466 if (pAllocator)
11467 {
11468 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
11469 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
11470 }
11471 local_pAllocator = nullptr;
11472 if (local_pAllocator)
11473 {
11474 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
11475 }
11476 countingStream->rewind();
11477 {
11478 uint64_t cgen_var_766;
11479 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_766, 1);
11480 countingStream->write((uint64_t*)&cgen_var_766, 1 * 8);
11481 uint64_t cgen_var_767;
11482 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_767, 1);
11483 countingStream->write((uint64_t*)&cgen_var_767, 1 * 8);
11484 // WARNING PTR CHECK
11485 uint64_t cgen_var_768 = (uint64_t)(uintptr_t)local_pAllocator;
11486 countingStream->putBe64(cgen_var_768);
11487 if (local_pAllocator)
11488 {
11489 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
11490 }
11491 }
11492 uint32_t packetSize_vkDestroySurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11493 countingStream->rewind();
11494 uint32_t opcode_vkDestroySurfaceKHR = OP_vkDestroySurfaceKHR;
11495 stream->write(&opcode_vkDestroySurfaceKHR, sizeof(uint32_t));
11496 stream->write(&packetSize_vkDestroySurfaceKHR, sizeof(uint32_t));
11497 uint64_t cgen_var_769;
11498 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_769, 1);
11499 stream->write((uint64_t*)&cgen_var_769, 1 * 8);
11500 uint64_t cgen_var_770;
11501 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_770, 1);
11502 stream->write((uint64_t*)&cgen_var_770, 1 * 8);
11503 // WARNING PTR CHECK
11504 uint64_t cgen_var_771 = (uint64_t)(uintptr_t)local_pAllocator;
11505 stream->putBe64(cgen_var_771);
11506 if (local_pAllocator)
11507 {
11508 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
11509 }
11510 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR readParams");
11511 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR returnUnmarshal");
11512 resources->destroyMapping()->mapHandles_VkSurfaceKHR((VkSurfaceKHR*)&surface);
11513 mImpl->log("finish vkDestroySurfaceKHR");;
11514 }
11515
vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported)11516 VkResult VkEncoder::vkGetPhysicalDeviceSurfaceSupportKHR(
11517 VkPhysicalDevice physicalDevice,
11518 uint32_t queueFamilyIndex,
11519 VkSurfaceKHR surface,
11520 VkBool32* pSupported)
11521 {
11522 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR encode");
11523 mImpl->log("start vkGetPhysicalDeviceSurfaceSupportKHR");
11524 auto stream = mImpl->stream();
11525 auto countingStream = mImpl->countingStream();
11526 auto resources = mImpl->resources();
11527 auto pool = mImpl->pool();
11528 stream->setHandleMapping(resources->unwrapMapping());
11529 VkPhysicalDevice local_physicalDevice;
11530 uint32_t local_queueFamilyIndex;
11531 VkSurfaceKHR local_surface;
11532 local_physicalDevice = physicalDevice;
11533 local_queueFamilyIndex = queueFamilyIndex;
11534 local_surface = surface;
11535 countingStream->rewind();
11536 {
11537 uint64_t cgen_var_772;
11538 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_772, 1);
11539 countingStream->write((uint64_t*)&cgen_var_772, 1 * 8);
11540 countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
11541 uint64_t cgen_var_773;
11542 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_773, 1);
11543 countingStream->write((uint64_t*)&cgen_var_773, 1 * 8);
11544 countingStream->write((VkBool32*)pSupported, sizeof(VkBool32));
11545 }
11546 uint32_t packetSize_vkGetPhysicalDeviceSurfaceSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11547 countingStream->rewind();
11548 uint32_t opcode_vkGetPhysicalDeviceSurfaceSupportKHR = OP_vkGetPhysicalDeviceSurfaceSupportKHR;
11549 stream->write(&opcode_vkGetPhysicalDeviceSurfaceSupportKHR, sizeof(uint32_t));
11550 stream->write(&packetSize_vkGetPhysicalDeviceSurfaceSupportKHR, sizeof(uint32_t));
11551 uint64_t cgen_var_774;
11552 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_774, 1);
11553 stream->write((uint64_t*)&cgen_var_774, 1 * 8);
11554 stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
11555 uint64_t cgen_var_775;
11556 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_775, 1);
11557 stream->write((uint64_t*)&cgen_var_775, 1 * 8);
11558 stream->write((VkBool32*)pSupported, sizeof(VkBool32));
11559 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR readParams");
11560 stream->read((VkBool32*)pSupported, sizeof(VkBool32));
11561 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR returnUnmarshal");
11562 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
11563 stream->read(&vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return, sizeof(VkResult));
11564 countingStream->clearPool();
11565 stream->clearPool();
11566 pool->freeAll();
11567 mImpl->log("finish vkGetPhysicalDeviceSurfaceSupportKHR");;
11568 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
11569 }
11570
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities)11571 VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
11572 VkPhysicalDevice physicalDevice,
11573 VkSurfaceKHR surface,
11574 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
11575 {
11576 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR encode");
11577 mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
11578 auto stream = mImpl->stream();
11579 auto countingStream = mImpl->countingStream();
11580 auto resources = mImpl->resources();
11581 auto pool = mImpl->pool();
11582 stream->setHandleMapping(resources->unwrapMapping());
11583 VkPhysicalDevice local_physicalDevice;
11584 VkSurfaceKHR local_surface;
11585 local_physicalDevice = physicalDevice;
11586 local_surface = surface;
11587 countingStream->rewind();
11588 {
11589 uint64_t cgen_var_776;
11590 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_776, 1);
11591 countingStream->write((uint64_t*)&cgen_var_776, 1 * 8);
11592 uint64_t cgen_var_777;
11593 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_777, 1);
11594 countingStream->write((uint64_t*)&cgen_var_777, 1 * 8);
11595 marshal_VkSurfaceCapabilitiesKHR(countingStream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
11596 }
11597 uint32_t packetSize_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11598 countingStream->rewind();
11599 uint32_t opcode_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
11600 stream->write(&opcode_vkGetPhysicalDeviceSurfaceCapabilitiesKHR, sizeof(uint32_t));
11601 stream->write(&packetSize_vkGetPhysicalDeviceSurfaceCapabilitiesKHR, sizeof(uint32_t));
11602 uint64_t cgen_var_778;
11603 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_778, 1);
11604 stream->write((uint64_t*)&cgen_var_778, 1 * 8);
11605 uint64_t cgen_var_779;
11606 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_779, 1);
11607 stream->write((uint64_t*)&cgen_var_779, 1 * 8);
11608 marshal_VkSurfaceCapabilitiesKHR(stream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
11609 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR readParams");
11610 unmarshal_VkSurfaceCapabilitiesKHR(stream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
11611 if (pSurfaceCapabilities)
11612 {
11613 transform_fromhost_VkSurfaceCapabilitiesKHR(mImpl->resources(), (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
11614 }
11615 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR returnUnmarshal");
11616 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
11617 stream->read(&vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return, sizeof(VkResult));
11618 countingStream->clearPool();
11619 stream->clearPool();
11620 pool->freeAll();
11621 mImpl->log("finish vkGetPhysicalDeviceSurfaceCapabilitiesKHR");;
11622 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
11623 }
11624
vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats)11625 VkResult VkEncoder::vkGetPhysicalDeviceSurfaceFormatsKHR(
11626 VkPhysicalDevice physicalDevice,
11627 VkSurfaceKHR surface,
11628 uint32_t* pSurfaceFormatCount,
11629 VkSurfaceFormatKHR* pSurfaceFormats)
11630 {
11631 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR encode");
11632 mImpl->log("start vkGetPhysicalDeviceSurfaceFormatsKHR");
11633 auto stream = mImpl->stream();
11634 auto countingStream = mImpl->countingStream();
11635 auto resources = mImpl->resources();
11636 auto pool = mImpl->pool();
11637 stream->setHandleMapping(resources->unwrapMapping());
11638 VkPhysicalDevice local_physicalDevice;
11639 VkSurfaceKHR local_surface;
11640 local_physicalDevice = physicalDevice;
11641 local_surface = surface;
11642 countingStream->rewind();
11643 {
11644 uint64_t cgen_var_780;
11645 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_780, 1);
11646 countingStream->write((uint64_t*)&cgen_var_780, 1 * 8);
11647 uint64_t cgen_var_781;
11648 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_781, 1);
11649 countingStream->write((uint64_t*)&cgen_var_781, 1 * 8);
11650 // WARNING PTR CHECK
11651 uint64_t cgen_var_782 = (uint64_t)(uintptr_t)pSurfaceFormatCount;
11652 countingStream->putBe64(cgen_var_782);
11653 if (pSurfaceFormatCount)
11654 {
11655 countingStream->write((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t));
11656 }
11657 // WARNING PTR CHECK
11658 uint64_t cgen_var_783 = (uint64_t)(uintptr_t)pSurfaceFormats;
11659 countingStream->putBe64(cgen_var_783);
11660 if (pSurfaceFormats)
11661 {
11662 for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
11663 {
11664 marshal_VkSurfaceFormatKHR(countingStream, (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
11665 }
11666 }
11667 }
11668 uint32_t packetSize_vkGetPhysicalDeviceSurfaceFormatsKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11669 countingStream->rewind();
11670 uint32_t opcode_vkGetPhysicalDeviceSurfaceFormatsKHR = OP_vkGetPhysicalDeviceSurfaceFormatsKHR;
11671 stream->write(&opcode_vkGetPhysicalDeviceSurfaceFormatsKHR, sizeof(uint32_t));
11672 stream->write(&packetSize_vkGetPhysicalDeviceSurfaceFormatsKHR, sizeof(uint32_t));
11673 uint64_t cgen_var_784;
11674 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_784, 1);
11675 stream->write((uint64_t*)&cgen_var_784, 1 * 8);
11676 uint64_t cgen_var_785;
11677 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_785, 1);
11678 stream->write((uint64_t*)&cgen_var_785, 1 * 8);
11679 // WARNING PTR CHECK
11680 uint64_t cgen_var_786 = (uint64_t)(uintptr_t)pSurfaceFormatCount;
11681 stream->putBe64(cgen_var_786);
11682 if (pSurfaceFormatCount)
11683 {
11684 stream->write((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t));
11685 }
11686 // WARNING PTR CHECK
11687 uint64_t cgen_var_787 = (uint64_t)(uintptr_t)pSurfaceFormats;
11688 stream->putBe64(cgen_var_787);
11689 if (pSurfaceFormats)
11690 {
11691 for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
11692 {
11693 marshal_VkSurfaceFormatKHR(stream, (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
11694 }
11695 }
11696 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR readParams");
11697 // WARNING PTR CHECK
11698 uint32_t* check_pSurfaceFormatCount;
11699 check_pSurfaceFormatCount = (uint32_t*)(uintptr_t)stream->getBe64();
11700 if (pSurfaceFormatCount)
11701 {
11702 if (!(check_pSurfaceFormatCount))
11703 {
11704 fprintf(stderr, "fatal: pSurfaceFormatCount inconsistent between guest and host\n");
11705 }
11706 stream->read((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t));
11707 }
11708 // WARNING PTR CHECK
11709 VkSurfaceFormatKHR* check_pSurfaceFormats;
11710 check_pSurfaceFormats = (VkSurfaceFormatKHR*)(uintptr_t)stream->getBe64();
11711 if (pSurfaceFormats)
11712 {
11713 if (!(check_pSurfaceFormats))
11714 {
11715 fprintf(stderr, "fatal: pSurfaceFormats inconsistent between guest and host\n");
11716 }
11717 for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
11718 {
11719 unmarshal_VkSurfaceFormatKHR(stream, (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
11720 }
11721 }
11722 if (pSurfaceFormats)
11723 {
11724 for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
11725 {
11726 transform_fromhost_VkSurfaceFormatKHR(mImpl->resources(), (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
11727 }
11728 }
11729 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR returnUnmarshal");
11730 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
11731 stream->read(&vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return, sizeof(VkResult));
11732 countingStream->clearPool();
11733 stream->clearPool();
11734 pool->freeAll();
11735 mImpl->log("finish vkGetPhysicalDeviceSurfaceFormatsKHR");;
11736 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
11737 }
11738
vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes)11739 VkResult VkEncoder::vkGetPhysicalDeviceSurfacePresentModesKHR(
11740 VkPhysicalDevice physicalDevice,
11741 VkSurfaceKHR surface,
11742 uint32_t* pPresentModeCount,
11743 VkPresentModeKHR* pPresentModes)
11744 {
11745 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR encode");
11746 mImpl->log("start vkGetPhysicalDeviceSurfacePresentModesKHR");
11747 auto stream = mImpl->stream();
11748 auto countingStream = mImpl->countingStream();
11749 auto resources = mImpl->resources();
11750 auto pool = mImpl->pool();
11751 stream->setHandleMapping(resources->unwrapMapping());
11752 VkPhysicalDevice local_physicalDevice;
11753 VkSurfaceKHR local_surface;
11754 local_physicalDevice = physicalDevice;
11755 local_surface = surface;
11756 countingStream->rewind();
11757 {
11758 uint64_t cgen_var_790;
11759 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_790, 1);
11760 countingStream->write((uint64_t*)&cgen_var_790, 1 * 8);
11761 uint64_t cgen_var_791;
11762 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_791, 1);
11763 countingStream->write((uint64_t*)&cgen_var_791, 1 * 8);
11764 // WARNING PTR CHECK
11765 uint64_t cgen_var_792 = (uint64_t)(uintptr_t)pPresentModeCount;
11766 countingStream->putBe64(cgen_var_792);
11767 if (pPresentModeCount)
11768 {
11769 countingStream->write((uint32_t*)pPresentModeCount, sizeof(uint32_t));
11770 }
11771 // WARNING PTR CHECK
11772 uint64_t cgen_var_793 = (uint64_t)(uintptr_t)pPresentModes;
11773 countingStream->putBe64(cgen_var_793);
11774 if (pPresentModes)
11775 {
11776 countingStream->write((VkPresentModeKHR*)pPresentModes, (*(pPresentModeCount)) * sizeof(VkPresentModeKHR));
11777 }
11778 }
11779 uint32_t packetSize_vkGetPhysicalDeviceSurfacePresentModesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11780 countingStream->rewind();
11781 uint32_t opcode_vkGetPhysicalDeviceSurfacePresentModesKHR = OP_vkGetPhysicalDeviceSurfacePresentModesKHR;
11782 stream->write(&opcode_vkGetPhysicalDeviceSurfacePresentModesKHR, sizeof(uint32_t));
11783 stream->write(&packetSize_vkGetPhysicalDeviceSurfacePresentModesKHR, sizeof(uint32_t));
11784 uint64_t cgen_var_794;
11785 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_794, 1);
11786 stream->write((uint64_t*)&cgen_var_794, 1 * 8);
11787 uint64_t cgen_var_795;
11788 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_795, 1);
11789 stream->write((uint64_t*)&cgen_var_795, 1 * 8);
11790 // WARNING PTR CHECK
11791 uint64_t cgen_var_796 = (uint64_t)(uintptr_t)pPresentModeCount;
11792 stream->putBe64(cgen_var_796);
11793 if (pPresentModeCount)
11794 {
11795 stream->write((uint32_t*)pPresentModeCount, sizeof(uint32_t));
11796 }
11797 // WARNING PTR CHECK
11798 uint64_t cgen_var_797 = (uint64_t)(uintptr_t)pPresentModes;
11799 stream->putBe64(cgen_var_797);
11800 if (pPresentModes)
11801 {
11802 stream->write((VkPresentModeKHR*)pPresentModes, (*(pPresentModeCount)) * sizeof(VkPresentModeKHR));
11803 }
11804 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR readParams");
11805 // WARNING PTR CHECK
11806 uint32_t* check_pPresentModeCount;
11807 check_pPresentModeCount = (uint32_t*)(uintptr_t)stream->getBe64();
11808 if (pPresentModeCount)
11809 {
11810 if (!(check_pPresentModeCount))
11811 {
11812 fprintf(stderr, "fatal: pPresentModeCount inconsistent between guest and host\n");
11813 }
11814 stream->read((uint32_t*)pPresentModeCount, sizeof(uint32_t));
11815 }
11816 // WARNING PTR CHECK
11817 VkPresentModeKHR* check_pPresentModes;
11818 check_pPresentModes = (VkPresentModeKHR*)(uintptr_t)stream->getBe64();
11819 if (pPresentModes)
11820 {
11821 if (!(check_pPresentModes))
11822 {
11823 fprintf(stderr, "fatal: pPresentModes inconsistent between guest and host\n");
11824 }
11825 stream->read((VkPresentModeKHR*)pPresentModes, (*(pPresentModeCount)) * sizeof(VkPresentModeKHR));
11826 }
11827 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR returnUnmarshal");
11828 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
11829 stream->read(&vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return, sizeof(VkResult));
11830 countingStream->clearPool();
11831 stream->clearPool();
11832 pool->freeAll();
11833 mImpl->log("finish vkGetPhysicalDeviceSurfacePresentModesKHR");;
11834 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
11835 }
11836
11837 #endif
11838 #ifdef VK_KHR_swapchain
vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain)11839 VkResult VkEncoder::vkCreateSwapchainKHR(
11840 VkDevice device,
11841 const VkSwapchainCreateInfoKHR* pCreateInfo,
11842 const VkAllocationCallbacks* pAllocator,
11843 VkSwapchainKHR* pSwapchain)
11844 {
11845 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR encode");
11846 mImpl->log("start vkCreateSwapchainKHR");
11847 auto stream = mImpl->stream();
11848 auto countingStream = mImpl->countingStream();
11849 auto resources = mImpl->resources();
11850 auto pool = mImpl->pool();
11851 stream->setHandleMapping(resources->unwrapMapping());
11852 VkDevice local_device;
11853 VkSwapchainCreateInfoKHR* local_pCreateInfo;
11854 VkAllocationCallbacks* local_pAllocator;
11855 local_device = device;
11856 local_pCreateInfo = nullptr;
11857 if (pCreateInfo)
11858 {
11859 local_pCreateInfo = (VkSwapchainCreateInfoKHR*)pool->alloc(sizeof(const VkSwapchainCreateInfoKHR));
11860 deepcopy_VkSwapchainCreateInfoKHR(pool, pCreateInfo, (VkSwapchainCreateInfoKHR*)(local_pCreateInfo));
11861 }
11862 local_pAllocator = nullptr;
11863 if (pAllocator)
11864 {
11865 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
11866 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
11867 }
11868 local_pAllocator = nullptr;
11869 if (local_pCreateInfo)
11870 {
11871 transform_tohost_VkSwapchainCreateInfoKHR(mImpl->resources(), (VkSwapchainCreateInfoKHR*)(local_pCreateInfo));
11872 }
11873 if (local_pAllocator)
11874 {
11875 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
11876 }
11877 countingStream->rewind();
11878 {
11879 uint64_t cgen_var_800;
11880 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_800, 1);
11881 countingStream->write((uint64_t*)&cgen_var_800, 1 * 8);
11882 marshal_VkSwapchainCreateInfoKHR(countingStream, (VkSwapchainCreateInfoKHR*)(local_pCreateInfo));
11883 // WARNING PTR CHECK
11884 uint64_t cgen_var_801 = (uint64_t)(uintptr_t)local_pAllocator;
11885 countingStream->putBe64(cgen_var_801);
11886 if (local_pAllocator)
11887 {
11888 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
11889 }
11890 uint64_t cgen_var_802;
11891 countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(pSwapchain, &cgen_var_802, 1);
11892 countingStream->write((uint64_t*)&cgen_var_802, 8);
11893 }
11894 uint32_t packetSize_vkCreateSwapchainKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11895 countingStream->rewind();
11896 uint32_t opcode_vkCreateSwapchainKHR = OP_vkCreateSwapchainKHR;
11897 stream->write(&opcode_vkCreateSwapchainKHR, sizeof(uint32_t));
11898 stream->write(&packetSize_vkCreateSwapchainKHR, sizeof(uint32_t));
11899 uint64_t cgen_var_803;
11900 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_803, 1);
11901 stream->write((uint64_t*)&cgen_var_803, 1 * 8);
11902 marshal_VkSwapchainCreateInfoKHR(stream, (VkSwapchainCreateInfoKHR*)(local_pCreateInfo));
11903 // WARNING PTR CHECK
11904 uint64_t cgen_var_804 = (uint64_t)(uintptr_t)local_pAllocator;
11905 stream->putBe64(cgen_var_804);
11906 if (local_pAllocator)
11907 {
11908 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
11909 }
11910 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
11911 uint64_t cgen_var_805;
11912 stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(pSwapchain, &cgen_var_805, 1);
11913 stream->write((uint64_t*)&cgen_var_805, 8);
11914 stream->setHandleMapping(resources->unwrapMapping());
11915 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR readParams");
11916 stream->setHandleMapping(resources->createMapping());
11917 uint64_t cgen_var_806;
11918 stream->read((uint64_t*)&cgen_var_806, 8);
11919 stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_806, (VkSwapchainKHR*)pSwapchain, 1);
11920 stream->unsetHandleMapping();
11921 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR returnUnmarshal");
11922 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
11923 stream->read(&vkCreateSwapchainKHR_VkResult_return, sizeof(VkResult));
11924 countingStream->clearPool();
11925 stream->clearPool();
11926 pool->freeAll();
11927 mImpl->log("finish vkCreateSwapchainKHR");;
11928 return vkCreateSwapchainKHR_VkResult_return;
11929 }
11930
vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator)11931 void VkEncoder::vkDestroySwapchainKHR(
11932 VkDevice device,
11933 VkSwapchainKHR swapchain,
11934 const VkAllocationCallbacks* pAllocator)
11935 {
11936 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR encode");
11937 mImpl->log("start vkDestroySwapchainKHR");
11938 auto stream = mImpl->stream();
11939 auto countingStream = mImpl->countingStream();
11940 auto resources = mImpl->resources();
11941 auto pool = mImpl->pool();
11942 stream->setHandleMapping(resources->unwrapMapping());
11943 VkDevice local_device;
11944 VkSwapchainKHR local_swapchain;
11945 VkAllocationCallbacks* local_pAllocator;
11946 local_device = device;
11947 local_swapchain = swapchain;
11948 local_pAllocator = nullptr;
11949 if (pAllocator)
11950 {
11951 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
11952 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
11953 }
11954 local_pAllocator = nullptr;
11955 if (local_pAllocator)
11956 {
11957 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
11958 }
11959 countingStream->rewind();
11960 {
11961 uint64_t cgen_var_807;
11962 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_807, 1);
11963 countingStream->write((uint64_t*)&cgen_var_807, 1 * 8);
11964 uint64_t cgen_var_808;
11965 countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_808, 1);
11966 countingStream->write((uint64_t*)&cgen_var_808, 1 * 8);
11967 // WARNING PTR CHECK
11968 uint64_t cgen_var_809 = (uint64_t)(uintptr_t)local_pAllocator;
11969 countingStream->putBe64(cgen_var_809);
11970 if (local_pAllocator)
11971 {
11972 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
11973 }
11974 }
11975 uint32_t packetSize_vkDestroySwapchainKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
11976 countingStream->rewind();
11977 uint32_t opcode_vkDestroySwapchainKHR = OP_vkDestroySwapchainKHR;
11978 stream->write(&opcode_vkDestroySwapchainKHR, sizeof(uint32_t));
11979 stream->write(&packetSize_vkDestroySwapchainKHR, sizeof(uint32_t));
11980 uint64_t cgen_var_810;
11981 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_810, 1);
11982 stream->write((uint64_t*)&cgen_var_810, 1 * 8);
11983 uint64_t cgen_var_811;
11984 stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_811, 1);
11985 stream->write((uint64_t*)&cgen_var_811, 1 * 8);
11986 // WARNING PTR CHECK
11987 uint64_t cgen_var_812 = (uint64_t)(uintptr_t)local_pAllocator;
11988 stream->putBe64(cgen_var_812);
11989 if (local_pAllocator)
11990 {
11991 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
11992 }
11993 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR readParams");
11994 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR returnUnmarshal");
11995 resources->destroyMapping()->mapHandles_VkSwapchainKHR((VkSwapchainKHR*)&swapchain);
11996 mImpl->log("finish vkDestroySwapchainKHR");;
11997 }
11998
vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages)11999 VkResult VkEncoder::vkGetSwapchainImagesKHR(
12000 VkDevice device,
12001 VkSwapchainKHR swapchain,
12002 uint32_t* pSwapchainImageCount,
12003 VkImage* pSwapchainImages)
12004 {
12005 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR encode");
12006 mImpl->log("start vkGetSwapchainImagesKHR");
12007 auto stream = mImpl->stream();
12008 auto countingStream = mImpl->countingStream();
12009 auto resources = mImpl->resources();
12010 auto pool = mImpl->pool();
12011 stream->setHandleMapping(resources->unwrapMapping());
12012 VkDevice local_device;
12013 VkSwapchainKHR local_swapchain;
12014 local_device = device;
12015 local_swapchain = swapchain;
12016 countingStream->rewind();
12017 {
12018 uint64_t cgen_var_813;
12019 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_813, 1);
12020 countingStream->write((uint64_t*)&cgen_var_813, 1 * 8);
12021 uint64_t cgen_var_814;
12022 countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_814, 1);
12023 countingStream->write((uint64_t*)&cgen_var_814, 1 * 8);
12024 // WARNING PTR CHECK
12025 uint64_t cgen_var_815 = (uint64_t)(uintptr_t)pSwapchainImageCount;
12026 countingStream->putBe64(cgen_var_815);
12027 if (pSwapchainImageCount)
12028 {
12029 countingStream->write((uint32_t*)pSwapchainImageCount, sizeof(uint32_t));
12030 }
12031 // WARNING PTR CHECK
12032 uint64_t cgen_var_816 = (uint64_t)(uintptr_t)pSwapchainImages;
12033 countingStream->putBe64(cgen_var_816);
12034 if (pSwapchainImages)
12035 {
12036 if ((*(pSwapchainImageCount)))
12037 {
12038 uint64_t* cgen_var_817;
12039 countingStream->alloc((void**)&cgen_var_817, (*(pSwapchainImageCount)) * 8);
12040 countingStream->handleMapping()->mapHandles_VkImage_u64(pSwapchainImages, cgen_var_817, (*(pSwapchainImageCount)));
12041 countingStream->write((uint64_t*)cgen_var_817, (*(pSwapchainImageCount)) * 8);
12042 }
12043 }
12044 }
12045 uint32_t packetSize_vkGetSwapchainImagesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12046 countingStream->rewind();
12047 uint32_t opcode_vkGetSwapchainImagesKHR = OP_vkGetSwapchainImagesKHR;
12048 stream->write(&opcode_vkGetSwapchainImagesKHR, sizeof(uint32_t));
12049 stream->write(&packetSize_vkGetSwapchainImagesKHR, sizeof(uint32_t));
12050 uint64_t cgen_var_818;
12051 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_818, 1);
12052 stream->write((uint64_t*)&cgen_var_818, 1 * 8);
12053 uint64_t cgen_var_819;
12054 stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_819, 1);
12055 stream->write((uint64_t*)&cgen_var_819, 1 * 8);
12056 // WARNING PTR CHECK
12057 uint64_t cgen_var_820 = (uint64_t)(uintptr_t)pSwapchainImageCount;
12058 stream->putBe64(cgen_var_820);
12059 if (pSwapchainImageCount)
12060 {
12061 stream->write((uint32_t*)pSwapchainImageCount, sizeof(uint32_t));
12062 }
12063 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
12064 // WARNING PTR CHECK
12065 uint64_t cgen_var_821 = (uint64_t)(uintptr_t)pSwapchainImages;
12066 stream->putBe64(cgen_var_821);
12067 if (pSwapchainImages)
12068 {
12069 if ((*(pSwapchainImageCount)))
12070 {
12071 uint64_t* cgen_var_822;
12072 stream->alloc((void**)&cgen_var_822, (*(pSwapchainImageCount)) * 8);
12073 stream->handleMapping()->mapHandles_VkImage_u64(pSwapchainImages, cgen_var_822, (*(pSwapchainImageCount)));
12074 stream->write((uint64_t*)cgen_var_822, (*(pSwapchainImageCount)) * 8);
12075 }
12076 }
12077 stream->setHandleMapping(resources->unwrapMapping());
12078 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR readParams");
12079 // WARNING PTR CHECK
12080 uint32_t* check_pSwapchainImageCount;
12081 check_pSwapchainImageCount = (uint32_t*)(uintptr_t)stream->getBe64();
12082 if (pSwapchainImageCount)
12083 {
12084 if (!(check_pSwapchainImageCount))
12085 {
12086 fprintf(stderr, "fatal: pSwapchainImageCount inconsistent between guest and host\n");
12087 }
12088 stream->read((uint32_t*)pSwapchainImageCount, sizeof(uint32_t));
12089 }
12090 // WARNING PTR CHECK
12091 VkImage* check_pSwapchainImages;
12092 check_pSwapchainImages = (VkImage*)(uintptr_t)stream->getBe64();
12093 if (pSwapchainImages)
12094 {
12095 if (!(check_pSwapchainImages))
12096 {
12097 fprintf(stderr, "fatal: pSwapchainImages inconsistent between guest and host\n");
12098 }
12099 if ((*(pSwapchainImageCount)))
12100 {
12101 uint64_t* cgen_var_825;
12102 stream->alloc((void**)&cgen_var_825, (*(pSwapchainImageCount)) * 8);
12103 stream->read((uint64_t*)cgen_var_825, (*(pSwapchainImageCount)) * 8);
12104 stream->handleMapping()->mapHandles_u64_VkImage(cgen_var_825, (VkImage*)pSwapchainImages, (*(pSwapchainImageCount)));
12105 }
12106 }
12107 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR returnUnmarshal");
12108 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
12109 stream->read(&vkGetSwapchainImagesKHR_VkResult_return, sizeof(VkResult));
12110 countingStream->clearPool();
12111 stream->clearPool();
12112 pool->freeAll();
12113 mImpl->log("finish vkGetSwapchainImagesKHR");;
12114 return vkGetSwapchainImagesKHR_VkResult_return;
12115 }
12116
vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex)12117 VkResult VkEncoder::vkAcquireNextImageKHR(
12118 VkDevice device,
12119 VkSwapchainKHR swapchain,
12120 uint64_t timeout,
12121 VkSemaphore semaphore,
12122 VkFence fence,
12123 uint32_t* pImageIndex)
12124 {
12125 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR encode");
12126 mImpl->log("start vkAcquireNextImageKHR");
12127 auto stream = mImpl->stream();
12128 auto countingStream = mImpl->countingStream();
12129 auto resources = mImpl->resources();
12130 auto pool = mImpl->pool();
12131 stream->setHandleMapping(resources->unwrapMapping());
12132 VkDevice local_device;
12133 VkSwapchainKHR local_swapchain;
12134 uint64_t local_timeout;
12135 VkSemaphore local_semaphore;
12136 VkFence local_fence;
12137 local_device = device;
12138 local_swapchain = swapchain;
12139 local_timeout = timeout;
12140 local_semaphore = semaphore;
12141 local_fence = fence;
12142 countingStream->rewind();
12143 {
12144 uint64_t cgen_var_826;
12145 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_826, 1);
12146 countingStream->write((uint64_t*)&cgen_var_826, 1 * 8);
12147 uint64_t cgen_var_827;
12148 countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_827, 1);
12149 countingStream->write((uint64_t*)&cgen_var_827, 1 * 8);
12150 countingStream->write((uint64_t*)&local_timeout, sizeof(uint64_t));
12151 uint64_t cgen_var_828;
12152 countingStream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_828, 1);
12153 countingStream->write((uint64_t*)&cgen_var_828, 1 * 8);
12154 uint64_t cgen_var_829;
12155 countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_829, 1);
12156 countingStream->write((uint64_t*)&cgen_var_829, 1 * 8);
12157 countingStream->write((uint32_t*)pImageIndex, sizeof(uint32_t));
12158 }
12159 uint32_t packetSize_vkAcquireNextImageKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12160 countingStream->rewind();
12161 uint32_t opcode_vkAcquireNextImageKHR = OP_vkAcquireNextImageKHR;
12162 stream->write(&opcode_vkAcquireNextImageKHR, sizeof(uint32_t));
12163 stream->write(&packetSize_vkAcquireNextImageKHR, sizeof(uint32_t));
12164 uint64_t cgen_var_830;
12165 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_830, 1);
12166 stream->write((uint64_t*)&cgen_var_830, 1 * 8);
12167 uint64_t cgen_var_831;
12168 stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_831, 1);
12169 stream->write((uint64_t*)&cgen_var_831, 1 * 8);
12170 stream->write((uint64_t*)&local_timeout, sizeof(uint64_t));
12171 uint64_t cgen_var_832;
12172 stream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_832, 1);
12173 stream->write((uint64_t*)&cgen_var_832, 1 * 8);
12174 uint64_t cgen_var_833;
12175 stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_833, 1);
12176 stream->write((uint64_t*)&cgen_var_833, 1 * 8);
12177 stream->write((uint32_t*)pImageIndex, sizeof(uint32_t));
12178 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR readParams");
12179 stream->read((uint32_t*)pImageIndex, sizeof(uint32_t));
12180 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR returnUnmarshal");
12181 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
12182 stream->read(&vkAcquireNextImageKHR_VkResult_return, sizeof(VkResult));
12183 countingStream->clearPool();
12184 stream->clearPool();
12185 pool->freeAll();
12186 mImpl->log("finish vkAcquireNextImageKHR");;
12187 return vkAcquireNextImageKHR_VkResult_return;
12188 }
12189
vkQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo)12190 VkResult VkEncoder::vkQueuePresentKHR(
12191 VkQueue queue,
12192 const VkPresentInfoKHR* pPresentInfo)
12193 {
12194 AEMU_SCOPED_TRACE("vkQueuePresentKHR encode");
12195 mImpl->log("start vkQueuePresentKHR");
12196 auto stream = mImpl->stream();
12197 auto countingStream = mImpl->countingStream();
12198 auto resources = mImpl->resources();
12199 auto pool = mImpl->pool();
12200 stream->setHandleMapping(resources->unwrapMapping());
12201 VkQueue local_queue;
12202 VkPresentInfoKHR* local_pPresentInfo;
12203 local_queue = queue;
12204 local_pPresentInfo = nullptr;
12205 if (pPresentInfo)
12206 {
12207 local_pPresentInfo = (VkPresentInfoKHR*)pool->alloc(sizeof(const VkPresentInfoKHR));
12208 deepcopy_VkPresentInfoKHR(pool, pPresentInfo, (VkPresentInfoKHR*)(local_pPresentInfo));
12209 }
12210 if (local_pPresentInfo)
12211 {
12212 transform_tohost_VkPresentInfoKHR(mImpl->resources(), (VkPresentInfoKHR*)(local_pPresentInfo));
12213 }
12214 countingStream->rewind();
12215 {
12216 uint64_t cgen_var_834;
12217 countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_834, 1);
12218 countingStream->write((uint64_t*)&cgen_var_834, 1 * 8);
12219 marshal_VkPresentInfoKHR(countingStream, (VkPresentInfoKHR*)(local_pPresentInfo));
12220 }
12221 uint32_t packetSize_vkQueuePresentKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12222 countingStream->rewind();
12223 uint32_t opcode_vkQueuePresentKHR = OP_vkQueuePresentKHR;
12224 stream->write(&opcode_vkQueuePresentKHR, sizeof(uint32_t));
12225 stream->write(&packetSize_vkQueuePresentKHR, sizeof(uint32_t));
12226 uint64_t cgen_var_835;
12227 stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_835, 1);
12228 stream->write((uint64_t*)&cgen_var_835, 1 * 8);
12229 marshal_VkPresentInfoKHR(stream, (VkPresentInfoKHR*)(local_pPresentInfo));
12230 AEMU_SCOPED_TRACE("vkQueuePresentKHR readParams");
12231 AEMU_SCOPED_TRACE("vkQueuePresentKHR returnUnmarshal");
12232 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
12233 stream->read(&vkQueuePresentKHR_VkResult_return, sizeof(VkResult));
12234 countingStream->clearPool();
12235 stream->clearPool();
12236 pool->freeAll();
12237 mImpl->log("finish vkQueuePresentKHR");;
12238 return vkQueuePresentKHR_VkResult_return;
12239 }
12240
vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities)12241 VkResult VkEncoder::vkGetDeviceGroupPresentCapabilitiesKHR(
12242 VkDevice device,
12243 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
12244 {
12245 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR encode");
12246 mImpl->log("start vkGetDeviceGroupPresentCapabilitiesKHR");
12247 auto stream = mImpl->stream();
12248 auto countingStream = mImpl->countingStream();
12249 auto resources = mImpl->resources();
12250 auto pool = mImpl->pool();
12251 stream->setHandleMapping(resources->unwrapMapping());
12252 VkDevice local_device;
12253 local_device = device;
12254 countingStream->rewind();
12255 {
12256 uint64_t cgen_var_836;
12257 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_836, 1);
12258 countingStream->write((uint64_t*)&cgen_var_836, 1 * 8);
12259 marshal_VkDeviceGroupPresentCapabilitiesKHR(countingStream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
12260 }
12261 uint32_t packetSize_vkGetDeviceGroupPresentCapabilitiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12262 countingStream->rewind();
12263 uint32_t opcode_vkGetDeviceGroupPresentCapabilitiesKHR = OP_vkGetDeviceGroupPresentCapabilitiesKHR;
12264 stream->write(&opcode_vkGetDeviceGroupPresentCapabilitiesKHR, sizeof(uint32_t));
12265 stream->write(&packetSize_vkGetDeviceGroupPresentCapabilitiesKHR, sizeof(uint32_t));
12266 uint64_t cgen_var_837;
12267 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_837, 1);
12268 stream->write((uint64_t*)&cgen_var_837, 1 * 8);
12269 marshal_VkDeviceGroupPresentCapabilitiesKHR(stream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
12270 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR readParams");
12271 unmarshal_VkDeviceGroupPresentCapabilitiesKHR(stream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
12272 if (pDeviceGroupPresentCapabilities)
12273 {
12274 transform_fromhost_VkDeviceGroupPresentCapabilitiesKHR(mImpl->resources(), (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
12275 }
12276 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR returnUnmarshal");
12277 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
12278 stream->read(&vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return, sizeof(VkResult));
12279 countingStream->clearPool();
12280 stream->clearPool();
12281 pool->freeAll();
12282 mImpl->log("finish vkGetDeviceGroupPresentCapabilitiesKHR");;
12283 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
12284 }
12285
vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes)12286 VkResult VkEncoder::vkGetDeviceGroupSurfacePresentModesKHR(
12287 VkDevice device,
12288 VkSurfaceKHR surface,
12289 VkDeviceGroupPresentModeFlagsKHR* pModes)
12290 {
12291 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR encode");
12292 mImpl->log("start vkGetDeviceGroupSurfacePresentModesKHR");
12293 auto stream = mImpl->stream();
12294 auto countingStream = mImpl->countingStream();
12295 auto resources = mImpl->resources();
12296 auto pool = mImpl->pool();
12297 stream->setHandleMapping(resources->unwrapMapping());
12298 VkDevice local_device;
12299 VkSurfaceKHR local_surface;
12300 local_device = device;
12301 local_surface = surface;
12302 countingStream->rewind();
12303 {
12304 uint64_t cgen_var_838;
12305 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_838, 1);
12306 countingStream->write((uint64_t*)&cgen_var_838, 1 * 8);
12307 uint64_t cgen_var_839;
12308 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_839, 1);
12309 countingStream->write((uint64_t*)&cgen_var_839, 1 * 8);
12310 // WARNING PTR CHECK
12311 uint64_t cgen_var_840 = (uint64_t)(uintptr_t)pModes;
12312 countingStream->putBe64(cgen_var_840);
12313 if (pModes)
12314 {
12315 countingStream->write((VkDeviceGroupPresentModeFlagsKHR*)pModes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
12316 }
12317 }
12318 uint32_t packetSize_vkGetDeviceGroupSurfacePresentModesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12319 countingStream->rewind();
12320 uint32_t opcode_vkGetDeviceGroupSurfacePresentModesKHR = OP_vkGetDeviceGroupSurfacePresentModesKHR;
12321 stream->write(&opcode_vkGetDeviceGroupSurfacePresentModesKHR, sizeof(uint32_t));
12322 stream->write(&packetSize_vkGetDeviceGroupSurfacePresentModesKHR, sizeof(uint32_t));
12323 uint64_t cgen_var_841;
12324 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_841, 1);
12325 stream->write((uint64_t*)&cgen_var_841, 1 * 8);
12326 uint64_t cgen_var_842;
12327 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_842, 1);
12328 stream->write((uint64_t*)&cgen_var_842, 1 * 8);
12329 // WARNING PTR CHECK
12330 uint64_t cgen_var_843 = (uint64_t)(uintptr_t)pModes;
12331 stream->putBe64(cgen_var_843);
12332 if (pModes)
12333 {
12334 stream->write((VkDeviceGroupPresentModeFlagsKHR*)pModes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
12335 }
12336 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR readParams");
12337 // WARNING PTR CHECK
12338 VkDeviceGroupPresentModeFlagsKHR* check_pModes;
12339 check_pModes = (VkDeviceGroupPresentModeFlagsKHR*)(uintptr_t)stream->getBe64();
12340 if (pModes)
12341 {
12342 if (!(check_pModes))
12343 {
12344 fprintf(stderr, "fatal: pModes inconsistent between guest and host\n");
12345 }
12346 stream->read((VkDeviceGroupPresentModeFlagsKHR*)pModes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
12347 }
12348 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR returnUnmarshal");
12349 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
12350 stream->read(&vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return, sizeof(VkResult));
12351 countingStream->clearPool();
12352 stream->clearPool();
12353 pool->freeAll();
12354 mImpl->log("finish vkGetDeviceGroupSurfacePresentModesKHR");;
12355 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
12356 }
12357
vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects)12358 VkResult VkEncoder::vkGetPhysicalDevicePresentRectanglesKHR(
12359 VkPhysicalDevice physicalDevice,
12360 VkSurfaceKHR surface,
12361 uint32_t* pRectCount,
12362 VkRect2D* pRects)
12363 {
12364 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR encode");
12365 mImpl->log("start vkGetPhysicalDevicePresentRectanglesKHR");
12366 auto stream = mImpl->stream();
12367 auto countingStream = mImpl->countingStream();
12368 auto resources = mImpl->resources();
12369 auto pool = mImpl->pool();
12370 stream->setHandleMapping(resources->unwrapMapping());
12371 VkPhysicalDevice local_physicalDevice;
12372 VkSurfaceKHR local_surface;
12373 local_physicalDevice = physicalDevice;
12374 local_surface = surface;
12375 countingStream->rewind();
12376 {
12377 uint64_t cgen_var_845;
12378 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_845, 1);
12379 countingStream->write((uint64_t*)&cgen_var_845, 1 * 8);
12380 uint64_t cgen_var_846;
12381 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_846, 1);
12382 countingStream->write((uint64_t*)&cgen_var_846, 1 * 8);
12383 // WARNING PTR CHECK
12384 uint64_t cgen_var_847 = (uint64_t)(uintptr_t)pRectCount;
12385 countingStream->putBe64(cgen_var_847);
12386 if (pRectCount)
12387 {
12388 countingStream->write((uint32_t*)pRectCount, sizeof(uint32_t));
12389 }
12390 // WARNING PTR CHECK
12391 uint64_t cgen_var_848 = (uint64_t)(uintptr_t)pRects;
12392 countingStream->putBe64(cgen_var_848);
12393 if (pRects)
12394 {
12395 for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
12396 {
12397 marshal_VkRect2D(countingStream, (VkRect2D*)(pRects + i));
12398 }
12399 }
12400 }
12401 uint32_t packetSize_vkGetPhysicalDevicePresentRectanglesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12402 countingStream->rewind();
12403 uint32_t opcode_vkGetPhysicalDevicePresentRectanglesKHR = OP_vkGetPhysicalDevicePresentRectanglesKHR;
12404 stream->write(&opcode_vkGetPhysicalDevicePresentRectanglesKHR, sizeof(uint32_t));
12405 stream->write(&packetSize_vkGetPhysicalDevicePresentRectanglesKHR, sizeof(uint32_t));
12406 uint64_t cgen_var_849;
12407 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_849, 1);
12408 stream->write((uint64_t*)&cgen_var_849, 1 * 8);
12409 uint64_t cgen_var_850;
12410 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_850, 1);
12411 stream->write((uint64_t*)&cgen_var_850, 1 * 8);
12412 // WARNING PTR CHECK
12413 uint64_t cgen_var_851 = (uint64_t)(uintptr_t)pRectCount;
12414 stream->putBe64(cgen_var_851);
12415 if (pRectCount)
12416 {
12417 stream->write((uint32_t*)pRectCount, sizeof(uint32_t));
12418 }
12419 // WARNING PTR CHECK
12420 uint64_t cgen_var_852 = (uint64_t)(uintptr_t)pRects;
12421 stream->putBe64(cgen_var_852);
12422 if (pRects)
12423 {
12424 for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
12425 {
12426 marshal_VkRect2D(stream, (VkRect2D*)(pRects + i));
12427 }
12428 }
12429 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR readParams");
12430 // WARNING PTR CHECK
12431 uint32_t* check_pRectCount;
12432 check_pRectCount = (uint32_t*)(uintptr_t)stream->getBe64();
12433 if (pRectCount)
12434 {
12435 if (!(check_pRectCount))
12436 {
12437 fprintf(stderr, "fatal: pRectCount inconsistent between guest and host\n");
12438 }
12439 stream->read((uint32_t*)pRectCount, sizeof(uint32_t));
12440 }
12441 // WARNING PTR CHECK
12442 VkRect2D* check_pRects;
12443 check_pRects = (VkRect2D*)(uintptr_t)stream->getBe64();
12444 if (pRects)
12445 {
12446 if (!(check_pRects))
12447 {
12448 fprintf(stderr, "fatal: pRects inconsistent between guest and host\n");
12449 }
12450 for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
12451 {
12452 unmarshal_VkRect2D(stream, (VkRect2D*)(pRects + i));
12453 }
12454 }
12455 if (pRects)
12456 {
12457 for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
12458 {
12459 transform_fromhost_VkRect2D(mImpl->resources(), (VkRect2D*)(pRects + i));
12460 }
12461 }
12462 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR returnUnmarshal");
12463 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
12464 stream->read(&vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return, sizeof(VkResult));
12465 countingStream->clearPool();
12466 stream->clearPool();
12467 pool->freeAll();
12468 mImpl->log("finish vkGetPhysicalDevicePresentRectanglesKHR");;
12469 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
12470 }
12471
vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex)12472 VkResult VkEncoder::vkAcquireNextImage2KHR(
12473 VkDevice device,
12474 const VkAcquireNextImageInfoKHR* pAcquireInfo,
12475 uint32_t* pImageIndex)
12476 {
12477 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR encode");
12478 mImpl->log("start vkAcquireNextImage2KHR");
12479 auto stream = mImpl->stream();
12480 auto countingStream = mImpl->countingStream();
12481 auto resources = mImpl->resources();
12482 auto pool = mImpl->pool();
12483 stream->setHandleMapping(resources->unwrapMapping());
12484 VkDevice local_device;
12485 VkAcquireNextImageInfoKHR* local_pAcquireInfo;
12486 local_device = device;
12487 local_pAcquireInfo = nullptr;
12488 if (pAcquireInfo)
12489 {
12490 local_pAcquireInfo = (VkAcquireNextImageInfoKHR*)pool->alloc(sizeof(const VkAcquireNextImageInfoKHR));
12491 deepcopy_VkAcquireNextImageInfoKHR(pool, pAcquireInfo, (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo));
12492 }
12493 if (local_pAcquireInfo)
12494 {
12495 transform_tohost_VkAcquireNextImageInfoKHR(mImpl->resources(), (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo));
12496 }
12497 countingStream->rewind();
12498 {
12499 uint64_t cgen_var_855;
12500 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_855, 1);
12501 countingStream->write((uint64_t*)&cgen_var_855, 1 * 8);
12502 marshal_VkAcquireNextImageInfoKHR(countingStream, (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo));
12503 countingStream->write((uint32_t*)pImageIndex, sizeof(uint32_t));
12504 }
12505 uint32_t packetSize_vkAcquireNextImage2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12506 countingStream->rewind();
12507 uint32_t opcode_vkAcquireNextImage2KHR = OP_vkAcquireNextImage2KHR;
12508 stream->write(&opcode_vkAcquireNextImage2KHR, sizeof(uint32_t));
12509 stream->write(&packetSize_vkAcquireNextImage2KHR, sizeof(uint32_t));
12510 uint64_t cgen_var_856;
12511 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_856, 1);
12512 stream->write((uint64_t*)&cgen_var_856, 1 * 8);
12513 marshal_VkAcquireNextImageInfoKHR(stream, (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo));
12514 stream->write((uint32_t*)pImageIndex, sizeof(uint32_t));
12515 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR readParams");
12516 stream->read((uint32_t*)pImageIndex, sizeof(uint32_t));
12517 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR returnUnmarshal");
12518 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
12519 stream->read(&vkAcquireNextImage2KHR_VkResult_return, sizeof(VkResult));
12520 countingStream->clearPool();
12521 stream->clearPool();
12522 pool->freeAll();
12523 mImpl->log("finish vkAcquireNextImage2KHR");;
12524 return vkAcquireNextImage2KHR_VkResult_return;
12525 }
12526
12527 #endif
12528 #ifdef VK_KHR_display
vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPropertiesKHR * pProperties)12529 VkResult VkEncoder::vkGetPhysicalDeviceDisplayPropertiesKHR(
12530 VkPhysicalDevice physicalDevice,
12531 uint32_t* pPropertyCount,
12532 VkDisplayPropertiesKHR* pProperties)
12533 {
12534 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR encode");
12535 mImpl->log("start vkGetPhysicalDeviceDisplayPropertiesKHR");
12536 auto stream = mImpl->stream();
12537 auto countingStream = mImpl->countingStream();
12538 auto resources = mImpl->resources();
12539 auto pool = mImpl->pool();
12540 stream->setHandleMapping(resources->unwrapMapping());
12541 VkPhysicalDevice local_physicalDevice;
12542 local_physicalDevice = physicalDevice;
12543 countingStream->rewind();
12544 {
12545 uint64_t cgen_var_857;
12546 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_857, 1);
12547 countingStream->write((uint64_t*)&cgen_var_857, 1 * 8);
12548 // WARNING PTR CHECK
12549 uint64_t cgen_var_858 = (uint64_t)(uintptr_t)pPropertyCount;
12550 countingStream->putBe64(cgen_var_858);
12551 if (pPropertyCount)
12552 {
12553 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
12554 }
12555 // WARNING PTR CHECK
12556 uint64_t cgen_var_859 = (uint64_t)(uintptr_t)pProperties;
12557 countingStream->putBe64(cgen_var_859);
12558 if (pProperties)
12559 {
12560 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12561 {
12562 marshal_VkDisplayPropertiesKHR(countingStream, (VkDisplayPropertiesKHR*)(pProperties + i));
12563 }
12564 }
12565 }
12566 uint32_t packetSize_vkGetPhysicalDeviceDisplayPropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12567 countingStream->rewind();
12568 uint32_t opcode_vkGetPhysicalDeviceDisplayPropertiesKHR = OP_vkGetPhysicalDeviceDisplayPropertiesKHR;
12569 stream->write(&opcode_vkGetPhysicalDeviceDisplayPropertiesKHR, sizeof(uint32_t));
12570 stream->write(&packetSize_vkGetPhysicalDeviceDisplayPropertiesKHR, sizeof(uint32_t));
12571 uint64_t cgen_var_860;
12572 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_860, 1);
12573 stream->write((uint64_t*)&cgen_var_860, 1 * 8);
12574 // WARNING PTR CHECK
12575 uint64_t cgen_var_861 = (uint64_t)(uintptr_t)pPropertyCount;
12576 stream->putBe64(cgen_var_861);
12577 if (pPropertyCount)
12578 {
12579 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
12580 }
12581 // WARNING PTR CHECK
12582 uint64_t cgen_var_862 = (uint64_t)(uintptr_t)pProperties;
12583 stream->putBe64(cgen_var_862);
12584 if (pProperties)
12585 {
12586 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12587 {
12588 marshal_VkDisplayPropertiesKHR(stream, (VkDisplayPropertiesKHR*)(pProperties + i));
12589 }
12590 }
12591 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR readParams");
12592 // WARNING PTR CHECK
12593 uint32_t* check_pPropertyCount;
12594 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
12595 if (pPropertyCount)
12596 {
12597 if (!(check_pPropertyCount))
12598 {
12599 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
12600 }
12601 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
12602 }
12603 // WARNING PTR CHECK
12604 VkDisplayPropertiesKHR* check_pProperties;
12605 check_pProperties = (VkDisplayPropertiesKHR*)(uintptr_t)stream->getBe64();
12606 if (pProperties)
12607 {
12608 if (!(check_pProperties))
12609 {
12610 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
12611 }
12612 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12613 {
12614 unmarshal_VkDisplayPropertiesKHR(stream, (VkDisplayPropertiesKHR*)(pProperties + i));
12615 }
12616 }
12617 if (pProperties)
12618 {
12619 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12620 {
12621 transform_fromhost_VkDisplayPropertiesKHR(mImpl->resources(), (VkDisplayPropertiesKHR*)(pProperties + i));
12622 }
12623 }
12624 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR returnUnmarshal");
12625 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
12626 stream->read(&vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return, sizeof(VkResult));
12627 countingStream->clearPool();
12628 stream->clearPool();
12629 pool->freeAll();
12630 mImpl->log("finish vkGetPhysicalDeviceDisplayPropertiesKHR");;
12631 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
12632 }
12633
vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties)12634 VkResult VkEncoder::vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
12635 VkPhysicalDevice physicalDevice,
12636 uint32_t* pPropertyCount,
12637 VkDisplayPlanePropertiesKHR* pProperties)
12638 {
12639 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR encode");
12640 mImpl->log("start vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
12641 auto stream = mImpl->stream();
12642 auto countingStream = mImpl->countingStream();
12643 auto resources = mImpl->resources();
12644 auto pool = mImpl->pool();
12645 stream->setHandleMapping(resources->unwrapMapping());
12646 VkPhysicalDevice local_physicalDevice;
12647 local_physicalDevice = physicalDevice;
12648 countingStream->rewind();
12649 {
12650 uint64_t cgen_var_865;
12651 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_865, 1);
12652 countingStream->write((uint64_t*)&cgen_var_865, 1 * 8);
12653 // WARNING PTR CHECK
12654 uint64_t cgen_var_866 = (uint64_t)(uintptr_t)pPropertyCount;
12655 countingStream->putBe64(cgen_var_866);
12656 if (pPropertyCount)
12657 {
12658 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
12659 }
12660 // WARNING PTR CHECK
12661 uint64_t cgen_var_867 = (uint64_t)(uintptr_t)pProperties;
12662 countingStream->putBe64(cgen_var_867);
12663 if (pProperties)
12664 {
12665 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12666 {
12667 marshal_VkDisplayPlanePropertiesKHR(countingStream, (VkDisplayPlanePropertiesKHR*)(pProperties + i));
12668 }
12669 }
12670 }
12671 uint32_t packetSize_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12672 countingStream->rewind();
12673 uint32_t opcode_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = OP_vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
12674 stream->write(&opcode_vkGetPhysicalDeviceDisplayPlanePropertiesKHR, sizeof(uint32_t));
12675 stream->write(&packetSize_vkGetPhysicalDeviceDisplayPlanePropertiesKHR, sizeof(uint32_t));
12676 uint64_t cgen_var_868;
12677 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_868, 1);
12678 stream->write((uint64_t*)&cgen_var_868, 1 * 8);
12679 // WARNING PTR CHECK
12680 uint64_t cgen_var_869 = (uint64_t)(uintptr_t)pPropertyCount;
12681 stream->putBe64(cgen_var_869);
12682 if (pPropertyCount)
12683 {
12684 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
12685 }
12686 // WARNING PTR CHECK
12687 uint64_t cgen_var_870 = (uint64_t)(uintptr_t)pProperties;
12688 stream->putBe64(cgen_var_870);
12689 if (pProperties)
12690 {
12691 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12692 {
12693 marshal_VkDisplayPlanePropertiesKHR(stream, (VkDisplayPlanePropertiesKHR*)(pProperties + i));
12694 }
12695 }
12696 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR readParams");
12697 // WARNING PTR CHECK
12698 uint32_t* check_pPropertyCount;
12699 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
12700 if (pPropertyCount)
12701 {
12702 if (!(check_pPropertyCount))
12703 {
12704 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
12705 }
12706 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
12707 }
12708 // WARNING PTR CHECK
12709 VkDisplayPlanePropertiesKHR* check_pProperties;
12710 check_pProperties = (VkDisplayPlanePropertiesKHR*)(uintptr_t)stream->getBe64();
12711 if (pProperties)
12712 {
12713 if (!(check_pProperties))
12714 {
12715 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
12716 }
12717 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12718 {
12719 unmarshal_VkDisplayPlanePropertiesKHR(stream, (VkDisplayPlanePropertiesKHR*)(pProperties + i));
12720 }
12721 }
12722 if (pProperties)
12723 {
12724 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12725 {
12726 transform_fromhost_VkDisplayPlanePropertiesKHR(mImpl->resources(), (VkDisplayPlanePropertiesKHR*)(pProperties + i));
12727 }
12728 }
12729 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR returnUnmarshal");
12730 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
12731 stream->read(&vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return, sizeof(VkResult));
12732 countingStream->clearPool();
12733 stream->clearPool();
12734 pool->freeAll();
12735 mImpl->log("finish vkGetPhysicalDeviceDisplayPlanePropertiesKHR");;
12736 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
12737 }
12738
vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays)12739 VkResult VkEncoder::vkGetDisplayPlaneSupportedDisplaysKHR(
12740 VkPhysicalDevice physicalDevice,
12741 uint32_t planeIndex,
12742 uint32_t* pDisplayCount,
12743 VkDisplayKHR* pDisplays)
12744 {
12745 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR encode");
12746 mImpl->log("start vkGetDisplayPlaneSupportedDisplaysKHR");
12747 auto stream = mImpl->stream();
12748 auto countingStream = mImpl->countingStream();
12749 auto resources = mImpl->resources();
12750 auto pool = mImpl->pool();
12751 stream->setHandleMapping(resources->unwrapMapping());
12752 VkPhysicalDevice local_physicalDevice;
12753 uint32_t local_planeIndex;
12754 local_physicalDevice = physicalDevice;
12755 local_planeIndex = planeIndex;
12756 countingStream->rewind();
12757 {
12758 uint64_t cgen_var_873;
12759 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_873, 1);
12760 countingStream->write((uint64_t*)&cgen_var_873, 1 * 8);
12761 countingStream->write((uint32_t*)&local_planeIndex, sizeof(uint32_t));
12762 // WARNING PTR CHECK
12763 uint64_t cgen_var_874 = (uint64_t)(uintptr_t)pDisplayCount;
12764 countingStream->putBe64(cgen_var_874);
12765 if (pDisplayCount)
12766 {
12767 countingStream->write((uint32_t*)pDisplayCount, sizeof(uint32_t));
12768 }
12769 // WARNING PTR CHECK
12770 uint64_t cgen_var_875 = (uint64_t)(uintptr_t)pDisplays;
12771 countingStream->putBe64(cgen_var_875);
12772 if (pDisplays)
12773 {
12774 if ((*(pDisplayCount)))
12775 {
12776 uint64_t* cgen_var_876;
12777 countingStream->alloc((void**)&cgen_var_876, (*(pDisplayCount)) * 8);
12778 countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplays, cgen_var_876, (*(pDisplayCount)));
12779 countingStream->write((uint64_t*)cgen_var_876, (*(pDisplayCount)) * 8);
12780 }
12781 }
12782 }
12783 uint32_t packetSize_vkGetDisplayPlaneSupportedDisplaysKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12784 countingStream->rewind();
12785 uint32_t opcode_vkGetDisplayPlaneSupportedDisplaysKHR = OP_vkGetDisplayPlaneSupportedDisplaysKHR;
12786 stream->write(&opcode_vkGetDisplayPlaneSupportedDisplaysKHR, sizeof(uint32_t));
12787 stream->write(&packetSize_vkGetDisplayPlaneSupportedDisplaysKHR, sizeof(uint32_t));
12788 uint64_t cgen_var_877;
12789 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_877, 1);
12790 stream->write((uint64_t*)&cgen_var_877, 1 * 8);
12791 stream->write((uint32_t*)&local_planeIndex, sizeof(uint32_t));
12792 // WARNING PTR CHECK
12793 uint64_t cgen_var_878 = (uint64_t)(uintptr_t)pDisplayCount;
12794 stream->putBe64(cgen_var_878);
12795 if (pDisplayCount)
12796 {
12797 stream->write((uint32_t*)pDisplayCount, sizeof(uint32_t));
12798 }
12799 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
12800 // WARNING PTR CHECK
12801 uint64_t cgen_var_879 = (uint64_t)(uintptr_t)pDisplays;
12802 stream->putBe64(cgen_var_879);
12803 if (pDisplays)
12804 {
12805 if ((*(pDisplayCount)))
12806 {
12807 uint64_t* cgen_var_880;
12808 stream->alloc((void**)&cgen_var_880, (*(pDisplayCount)) * 8);
12809 stream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplays, cgen_var_880, (*(pDisplayCount)));
12810 stream->write((uint64_t*)cgen_var_880, (*(pDisplayCount)) * 8);
12811 }
12812 }
12813 stream->setHandleMapping(resources->unwrapMapping());
12814 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR readParams");
12815 // WARNING PTR CHECK
12816 uint32_t* check_pDisplayCount;
12817 check_pDisplayCount = (uint32_t*)(uintptr_t)stream->getBe64();
12818 if (pDisplayCount)
12819 {
12820 if (!(check_pDisplayCount))
12821 {
12822 fprintf(stderr, "fatal: pDisplayCount inconsistent between guest and host\n");
12823 }
12824 stream->read((uint32_t*)pDisplayCount, sizeof(uint32_t));
12825 }
12826 // WARNING PTR CHECK
12827 VkDisplayKHR* check_pDisplays;
12828 check_pDisplays = (VkDisplayKHR*)(uintptr_t)stream->getBe64();
12829 if (pDisplays)
12830 {
12831 if (!(check_pDisplays))
12832 {
12833 fprintf(stderr, "fatal: pDisplays inconsistent between guest and host\n");
12834 }
12835 if ((*(pDisplayCount)))
12836 {
12837 uint64_t* cgen_var_883;
12838 stream->alloc((void**)&cgen_var_883, (*(pDisplayCount)) * 8);
12839 stream->read((uint64_t*)cgen_var_883, (*(pDisplayCount)) * 8);
12840 stream->handleMapping()->mapHandles_u64_VkDisplayKHR(cgen_var_883, (VkDisplayKHR*)pDisplays, (*(pDisplayCount)));
12841 }
12842 }
12843 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR returnUnmarshal");
12844 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
12845 stream->read(&vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return, sizeof(VkResult));
12846 countingStream->clearPool();
12847 stream->clearPool();
12848 pool->freeAll();
12849 mImpl->log("finish vkGetDisplayPlaneSupportedDisplaysKHR");;
12850 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
12851 }
12852
vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties)12853 VkResult VkEncoder::vkGetDisplayModePropertiesKHR(
12854 VkPhysicalDevice physicalDevice,
12855 VkDisplayKHR display,
12856 uint32_t* pPropertyCount,
12857 VkDisplayModePropertiesKHR* pProperties)
12858 {
12859 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR encode");
12860 mImpl->log("start vkGetDisplayModePropertiesKHR");
12861 auto stream = mImpl->stream();
12862 auto countingStream = mImpl->countingStream();
12863 auto resources = mImpl->resources();
12864 auto pool = mImpl->pool();
12865 stream->setHandleMapping(resources->unwrapMapping());
12866 VkPhysicalDevice local_physicalDevice;
12867 VkDisplayKHR local_display;
12868 local_physicalDevice = physicalDevice;
12869 local_display = display;
12870 countingStream->rewind();
12871 {
12872 uint64_t cgen_var_884;
12873 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_884, 1);
12874 countingStream->write((uint64_t*)&cgen_var_884, 1 * 8);
12875 uint64_t cgen_var_885;
12876 countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_885, 1);
12877 countingStream->write((uint64_t*)&cgen_var_885, 1 * 8);
12878 // WARNING PTR CHECK
12879 uint64_t cgen_var_886 = (uint64_t)(uintptr_t)pPropertyCount;
12880 countingStream->putBe64(cgen_var_886);
12881 if (pPropertyCount)
12882 {
12883 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
12884 }
12885 // WARNING PTR CHECK
12886 uint64_t cgen_var_887 = (uint64_t)(uintptr_t)pProperties;
12887 countingStream->putBe64(cgen_var_887);
12888 if (pProperties)
12889 {
12890 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12891 {
12892 marshal_VkDisplayModePropertiesKHR(countingStream, (VkDisplayModePropertiesKHR*)(pProperties + i));
12893 }
12894 }
12895 }
12896 uint32_t packetSize_vkGetDisplayModePropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
12897 countingStream->rewind();
12898 uint32_t opcode_vkGetDisplayModePropertiesKHR = OP_vkGetDisplayModePropertiesKHR;
12899 stream->write(&opcode_vkGetDisplayModePropertiesKHR, sizeof(uint32_t));
12900 stream->write(&packetSize_vkGetDisplayModePropertiesKHR, sizeof(uint32_t));
12901 uint64_t cgen_var_888;
12902 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_888, 1);
12903 stream->write((uint64_t*)&cgen_var_888, 1 * 8);
12904 uint64_t cgen_var_889;
12905 stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_889, 1);
12906 stream->write((uint64_t*)&cgen_var_889, 1 * 8);
12907 // WARNING PTR CHECK
12908 uint64_t cgen_var_890 = (uint64_t)(uintptr_t)pPropertyCount;
12909 stream->putBe64(cgen_var_890);
12910 if (pPropertyCount)
12911 {
12912 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
12913 }
12914 // WARNING PTR CHECK
12915 uint64_t cgen_var_891 = (uint64_t)(uintptr_t)pProperties;
12916 stream->putBe64(cgen_var_891);
12917 if (pProperties)
12918 {
12919 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12920 {
12921 marshal_VkDisplayModePropertiesKHR(stream, (VkDisplayModePropertiesKHR*)(pProperties + i));
12922 }
12923 }
12924 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR readParams");
12925 // WARNING PTR CHECK
12926 uint32_t* check_pPropertyCount;
12927 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
12928 if (pPropertyCount)
12929 {
12930 if (!(check_pPropertyCount))
12931 {
12932 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
12933 }
12934 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
12935 }
12936 // WARNING PTR CHECK
12937 VkDisplayModePropertiesKHR* check_pProperties;
12938 check_pProperties = (VkDisplayModePropertiesKHR*)(uintptr_t)stream->getBe64();
12939 if (pProperties)
12940 {
12941 if (!(check_pProperties))
12942 {
12943 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
12944 }
12945 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12946 {
12947 unmarshal_VkDisplayModePropertiesKHR(stream, (VkDisplayModePropertiesKHR*)(pProperties + i));
12948 }
12949 }
12950 if (pProperties)
12951 {
12952 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
12953 {
12954 transform_fromhost_VkDisplayModePropertiesKHR(mImpl->resources(), (VkDisplayModePropertiesKHR*)(pProperties + i));
12955 }
12956 }
12957 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR returnUnmarshal");
12958 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
12959 stream->read(&vkGetDisplayModePropertiesKHR_VkResult_return, sizeof(VkResult));
12960 countingStream->clearPool();
12961 stream->clearPool();
12962 pool->freeAll();
12963 mImpl->log("finish vkGetDisplayModePropertiesKHR");;
12964 return vkGetDisplayModePropertiesKHR_VkResult_return;
12965 }
12966
vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode)12967 VkResult VkEncoder::vkCreateDisplayModeKHR(
12968 VkPhysicalDevice physicalDevice,
12969 VkDisplayKHR display,
12970 const VkDisplayModeCreateInfoKHR* pCreateInfo,
12971 const VkAllocationCallbacks* pAllocator,
12972 VkDisplayModeKHR* pMode)
12973 {
12974 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR encode");
12975 mImpl->log("start vkCreateDisplayModeKHR");
12976 auto stream = mImpl->stream();
12977 auto countingStream = mImpl->countingStream();
12978 auto resources = mImpl->resources();
12979 auto pool = mImpl->pool();
12980 stream->setHandleMapping(resources->unwrapMapping());
12981 VkPhysicalDevice local_physicalDevice;
12982 VkDisplayKHR local_display;
12983 VkDisplayModeCreateInfoKHR* local_pCreateInfo;
12984 VkAllocationCallbacks* local_pAllocator;
12985 local_physicalDevice = physicalDevice;
12986 local_display = display;
12987 local_pCreateInfo = nullptr;
12988 if (pCreateInfo)
12989 {
12990 local_pCreateInfo = (VkDisplayModeCreateInfoKHR*)pool->alloc(sizeof(const VkDisplayModeCreateInfoKHR));
12991 deepcopy_VkDisplayModeCreateInfoKHR(pool, pCreateInfo, (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo));
12992 }
12993 local_pAllocator = nullptr;
12994 if (pAllocator)
12995 {
12996 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
12997 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
12998 }
12999 local_pAllocator = nullptr;
13000 if (local_pCreateInfo)
13001 {
13002 transform_tohost_VkDisplayModeCreateInfoKHR(mImpl->resources(), (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo));
13003 }
13004 if (local_pAllocator)
13005 {
13006 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
13007 }
13008 countingStream->rewind();
13009 {
13010 uint64_t cgen_var_894;
13011 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_894, 1);
13012 countingStream->write((uint64_t*)&cgen_var_894, 1 * 8);
13013 uint64_t cgen_var_895;
13014 countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_895, 1);
13015 countingStream->write((uint64_t*)&cgen_var_895, 1 * 8);
13016 marshal_VkDisplayModeCreateInfoKHR(countingStream, (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo));
13017 // WARNING PTR CHECK
13018 uint64_t cgen_var_896 = (uint64_t)(uintptr_t)local_pAllocator;
13019 countingStream->putBe64(cgen_var_896);
13020 if (local_pAllocator)
13021 {
13022 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
13023 }
13024 uint64_t cgen_var_897;
13025 countingStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(pMode, &cgen_var_897, 1);
13026 countingStream->write((uint64_t*)&cgen_var_897, 8);
13027 }
13028 uint32_t packetSize_vkCreateDisplayModeKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13029 countingStream->rewind();
13030 uint32_t opcode_vkCreateDisplayModeKHR = OP_vkCreateDisplayModeKHR;
13031 stream->write(&opcode_vkCreateDisplayModeKHR, sizeof(uint32_t));
13032 stream->write(&packetSize_vkCreateDisplayModeKHR, sizeof(uint32_t));
13033 uint64_t cgen_var_898;
13034 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_898, 1);
13035 stream->write((uint64_t*)&cgen_var_898, 1 * 8);
13036 uint64_t cgen_var_899;
13037 stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_899, 1);
13038 stream->write((uint64_t*)&cgen_var_899, 1 * 8);
13039 marshal_VkDisplayModeCreateInfoKHR(stream, (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo));
13040 // WARNING PTR CHECK
13041 uint64_t cgen_var_900 = (uint64_t)(uintptr_t)local_pAllocator;
13042 stream->putBe64(cgen_var_900);
13043 if (local_pAllocator)
13044 {
13045 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
13046 }
13047 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
13048 uint64_t cgen_var_901;
13049 stream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(pMode, &cgen_var_901, 1);
13050 stream->write((uint64_t*)&cgen_var_901, 8);
13051 stream->setHandleMapping(resources->unwrapMapping());
13052 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR readParams");
13053 stream->setHandleMapping(resources->createMapping());
13054 uint64_t cgen_var_902;
13055 stream->read((uint64_t*)&cgen_var_902, 8);
13056 stream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_902, (VkDisplayModeKHR*)pMode, 1);
13057 stream->unsetHandleMapping();
13058 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR returnUnmarshal");
13059 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
13060 stream->read(&vkCreateDisplayModeKHR_VkResult_return, sizeof(VkResult));
13061 countingStream->clearPool();
13062 stream->clearPool();
13063 pool->freeAll();
13064 mImpl->log("finish vkCreateDisplayModeKHR");;
13065 return vkCreateDisplayModeKHR_VkResult_return;
13066 }
13067
vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities)13068 VkResult VkEncoder::vkGetDisplayPlaneCapabilitiesKHR(
13069 VkPhysicalDevice physicalDevice,
13070 VkDisplayModeKHR mode,
13071 uint32_t planeIndex,
13072 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
13073 {
13074 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR encode");
13075 mImpl->log("start vkGetDisplayPlaneCapabilitiesKHR");
13076 auto stream = mImpl->stream();
13077 auto countingStream = mImpl->countingStream();
13078 auto resources = mImpl->resources();
13079 auto pool = mImpl->pool();
13080 stream->setHandleMapping(resources->unwrapMapping());
13081 VkPhysicalDevice local_physicalDevice;
13082 VkDisplayModeKHR local_mode;
13083 uint32_t local_planeIndex;
13084 local_physicalDevice = physicalDevice;
13085 local_mode = mode;
13086 local_planeIndex = planeIndex;
13087 countingStream->rewind();
13088 {
13089 uint64_t cgen_var_903;
13090 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_903, 1);
13091 countingStream->write((uint64_t*)&cgen_var_903, 1 * 8);
13092 uint64_t cgen_var_904;
13093 countingStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&local_mode, &cgen_var_904, 1);
13094 countingStream->write((uint64_t*)&cgen_var_904, 1 * 8);
13095 countingStream->write((uint32_t*)&local_planeIndex, sizeof(uint32_t));
13096 marshal_VkDisplayPlaneCapabilitiesKHR(countingStream, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities));
13097 }
13098 uint32_t packetSize_vkGetDisplayPlaneCapabilitiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13099 countingStream->rewind();
13100 uint32_t opcode_vkGetDisplayPlaneCapabilitiesKHR = OP_vkGetDisplayPlaneCapabilitiesKHR;
13101 stream->write(&opcode_vkGetDisplayPlaneCapabilitiesKHR, sizeof(uint32_t));
13102 stream->write(&packetSize_vkGetDisplayPlaneCapabilitiesKHR, sizeof(uint32_t));
13103 uint64_t cgen_var_905;
13104 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_905, 1);
13105 stream->write((uint64_t*)&cgen_var_905, 1 * 8);
13106 uint64_t cgen_var_906;
13107 stream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&local_mode, &cgen_var_906, 1);
13108 stream->write((uint64_t*)&cgen_var_906, 1 * 8);
13109 stream->write((uint32_t*)&local_planeIndex, sizeof(uint32_t));
13110 marshal_VkDisplayPlaneCapabilitiesKHR(stream, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities));
13111 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR readParams");
13112 unmarshal_VkDisplayPlaneCapabilitiesKHR(stream, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities));
13113 if (pCapabilities)
13114 {
13115 transform_fromhost_VkDisplayPlaneCapabilitiesKHR(mImpl->resources(), (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities));
13116 }
13117 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR returnUnmarshal");
13118 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
13119 stream->read(&vkGetDisplayPlaneCapabilitiesKHR_VkResult_return, sizeof(VkResult));
13120 countingStream->clearPool();
13121 stream->clearPool();
13122 pool->freeAll();
13123 mImpl->log("finish vkGetDisplayPlaneCapabilitiesKHR");;
13124 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
13125 }
13126
vkCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)13127 VkResult VkEncoder::vkCreateDisplayPlaneSurfaceKHR(
13128 VkInstance instance,
13129 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
13130 const VkAllocationCallbacks* pAllocator,
13131 VkSurfaceKHR* pSurface)
13132 {
13133 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR encode");
13134 mImpl->log("start vkCreateDisplayPlaneSurfaceKHR");
13135 auto stream = mImpl->stream();
13136 auto countingStream = mImpl->countingStream();
13137 auto resources = mImpl->resources();
13138 auto pool = mImpl->pool();
13139 stream->setHandleMapping(resources->unwrapMapping());
13140 VkInstance local_instance;
13141 VkDisplaySurfaceCreateInfoKHR* local_pCreateInfo;
13142 VkAllocationCallbacks* local_pAllocator;
13143 local_instance = instance;
13144 local_pCreateInfo = nullptr;
13145 if (pCreateInfo)
13146 {
13147 local_pCreateInfo = (VkDisplaySurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkDisplaySurfaceCreateInfoKHR));
13148 deepcopy_VkDisplaySurfaceCreateInfoKHR(pool, pCreateInfo, (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo));
13149 }
13150 local_pAllocator = nullptr;
13151 if (pAllocator)
13152 {
13153 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
13154 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
13155 }
13156 local_pAllocator = nullptr;
13157 if (local_pCreateInfo)
13158 {
13159 transform_tohost_VkDisplaySurfaceCreateInfoKHR(mImpl->resources(), (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo));
13160 }
13161 if (local_pAllocator)
13162 {
13163 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
13164 }
13165 countingStream->rewind();
13166 {
13167 uint64_t cgen_var_907;
13168 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_907, 1);
13169 countingStream->write((uint64_t*)&cgen_var_907, 1 * 8);
13170 marshal_VkDisplaySurfaceCreateInfoKHR(countingStream, (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo));
13171 // WARNING PTR CHECK
13172 uint64_t cgen_var_908 = (uint64_t)(uintptr_t)local_pAllocator;
13173 countingStream->putBe64(cgen_var_908);
13174 if (local_pAllocator)
13175 {
13176 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
13177 }
13178 uint64_t cgen_var_909;
13179 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_909, 1);
13180 countingStream->write((uint64_t*)&cgen_var_909, 8);
13181 }
13182 uint32_t packetSize_vkCreateDisplayPlaneSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13183 countingStream->rewind();
13184 uint32_t opcode_vkCreateDisplayPlaneSurfaceKHR = OP_vkCreateDisplayPlaneSurfaceKHR;
13185 stream->write(&opcode_vkCreateDisplayPlaneSurfaceKHR, sizeof(uint32_t));
13186 stream->write(&packetSize_vkCreateDisplayPlaneSurfaceKHR, sizeof(uint32_t));
13187 uint64_t cgen_var_910;
13188 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_910, 1);
13189 stream->write((uint64_t*)&cgen_var_910, 1 * 8);
13190 marshal_VkDisplaySurfaceCreateInfoKHR(stream, (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo));
13191 // WARNING PTR CHECK
13192 uint64_t cgen_var_911 = (uint64_t)(uintptr_t)local_pAllocator;
13193 stream->putBe64(cgen_var_911);
13194 if (local_pAllocator)
13195 {
13196 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
13197 }
13198 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
13199 uint64_t cgen_var_912;
13200 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_912, 1);
13201 stream->write((uint64_t*)&cgen_var_912, 8);
13202 stream->setHandleMapping(resources->unwrapMapping());
13203 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR readParams");
13204 uint64_t cgen_var_913;
13205 stream->read((uint64_t*)&cgen_var_913, 8);
13206 stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_913, (VkSurfaceKHR*)pSurface, 1);
13207 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR returnUnmarshal");
13208 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
13209 stream->read(&vkCreateDisplayPlaneSurfaceKHR_VkResult_return, sizeof(VkResult));
13210 countingStream->clearPool();
13211 stream->clearPool();
13212 pool->freeAll();
13213 mImpl->log("finish vkCreateDisplayPlaneSurfaceKHR");;
13214 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
13215 }
13216
13217 #endif
13218 #ifdef VK_KHR_display_swapchain
vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains)13219 VkResult VkEncoder::vkCreateSharedSwapchainsKHR(
13220 VkDevice device,
13221 uint32_t swapchainCount,
13222 const VkSwapchainCreateInfoKHR* pCreateInfos,
13223 const VkAllocationCallbacks* pAllocator,
13224 VkSwapchainKHR* pSwapchains)
13225 {
13226 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR encode");
13227 mImpl->log("start vkCreateSharedSwapchainsKHR");
13228 auto stream = mImpl->stream();
13229 auto countingStream = mImpl->countingStream();
13230 auto resources = mImpl->resources();
13231 auto pool = mImpl->pool();
13232 stream->setHandleMapping(resources->unwrapMapping());
13233 VkDevice local_device;
13234 uint32_t local_swapchainCount;
13235 VkSwapchainCreateInfoKHR* local_pCreateInfos;
13236 VkAllocationCallbacks* local_pAllocator;
13237 local_device = device;
13238 local_swapchainCount = swapchainCount;
13239 local_pCreateInfos = nullptr;
13240 if (pCreateInfos)
13241 {
13242 local_pCreateInfos = (VkSwapchainCreateInfoKHR*)pool->alloc(((swapchainCount)) * sizeof(const VkSwapchainCreateInfoKHR));
13243 for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
13244 {
13245 deepcopy_VkSwapchainCreateInfoKHR(pool, pCreateInfos + i, (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i));
13246 }
13247 }
13248 local_pAllocator = nullptr;
13249 if (pAllocator)
13250 {
13251 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
13252 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
13253 }
13254 local_pAllocator = nullptr;
13255 if (local_pCreateInfos)
13256 {
13257 for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
13258 {
13259 transform_tohost_VkSwapchainCreateInfoKHR(mImpl->resources(), (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i));
13260 }
13261 }
13262 if (local_pAllocator)
13263 {
13264 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
13265 }
13266 countingStream->rewind();
13267 {
13268 uint64_t cgen_var_914;
13269 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_914, 1);
13270 countingStream->write((uint64_t*)&cgen_var_914, 1 * 8);
13271 countingStream->write((uint32_t*)&local_swapchainCount, sizeof(uint32_t));
13272 for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
13273 {
13274 marshal_VkSwapchainCreateInfoKHR(countingStream, (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i));
13275 }
13276 // WARNING PTR CHECK
13277 uint64_t cgen_var_915 = (uint64_t)(uintptr_t)local_pAllocator;
13278 countingStream->putBe64(cgen_var_915);
13279 if (local_pAllocator)
13280 {
13281 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
13282 }
13283 if (((swapchainCount)))
13284 {
13285 uint64_t* cgen_var_916;
13286 countingStream->alloc((void**)&cgen_var_916, ((swapchainCount)) * 8);
13287 countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(pSwapchains, cgen_var_916, ((swapchainCount)));
13288 countingStream->write((uint64_t*)cgen_var_916, ((swapchainCount)) * 8);
13289 }
13290 }
13291 uint32_t packetSize_vkCreateSharedSwapchainsKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13292 countingStream->rewind();
13293 uint32_t opcode_vkCreateSharedSwapchainsKHR = OP_vkCreateSharedSwapchainsKHR;
13294 stream->write(&opcode_vkCreateSharedSwapchainsKHR, sizeof(uint32_t));
13295 stream->write(&packetSize_vkCreateSharedSwapchainsKHR, sizeof(uint32_t));
13296 uint64_t cgen_var_917;
13297 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_917, 1);
13298 stream->write((uint64_t*)&cgen_var_917, 1 * 8);
13299 stream->write((uint32_t*)&local_swapchainCount, sizeof(uint32_t));
13300 for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
13301 {
13302 marshal_VkSwapchainCreateInfoKHR(stream, (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i));
13303 }
13304 // WARNING PTR CHECK
13305 uint64_t cgen_var_918 = (uint64_t)(uintptr_t)local_pAllocator;
13306 stream->putBe64(cgen_var_918);
13307 if (local_pAllocator)
13308 {
13309 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
13310 }
13311 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
13312 if (((swapchainCount)))
13313 {
13314 uint64_t* cgen_var_919;
13315 stream->alloc((void**)&cgen_var_919, ((swapchainCount)) * 8);
13316 stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(pSwapchains, cgen_var_919, ((swapchainCount)));
13317 stream->write((uint64_t*)cgen_var_919, ((swapchainCount)) * 8);
13318 }
13319 stream->setHandleMapping(resources->unwrapMapping());
13320 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR readParams");
13321 if (((swapchainCount)))
13322 {
13323 uint64_t* cgen_var_920;
13324 stream->alloc((void**)&cgen_var_920, ((swapchainCount)) * 8);
13325 stream->read((uint64_t*)cgen_var_920, ((swapchainCount)) * 8);
13326 stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(cgen_var_920, (VkSwapchainKHR*)pSwapchains, ((swapchainCount)));
13327 }
13328 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR returnUnmarshal");
13329 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
13330 stream->read(&vkCreateSharedSwapchainsKHR_VkResult_return, sizeof(VkResult));
13331 countingStream->clearPool();
13332 stream->clearPool();
13333 pool->freeAll();
13334 mImpl->log("finish vkCreateSharedSwapchainsKHR");;
13335 return vkCreateSharedSwapchainsKHR_VkResult_return;
13336 }
13337
13338 #endif
13339 #ifdef VK_KHR_xlib_surface
vkCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)13340 VkResult VkEncoder::vkCreateXlibSurfaceKHR(
13341 VkInstance instance,
13342 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
13343 const VkAllocationCallbacks* pAllocator,
13344 VkSurfaceKHR* pSurface)
13345 {
13346 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR encode");
13347 mImpl->log("start vkCreateXlibSurfaceKHR");
13348 auto stream = mImpl->stream();
13349 auto countingStream = mImpl->countingStream();
13350 auto resources = mImpl->resources();
13351 auto pool = mImpl->pool();
13352 stream->setHandleMapping(resources->unwrapMapping());
13353 VkInstance local_instance;
13354 VkXlibSurfaceCreateInfoKHR* local_pCreateInfo;
13355 VkAllocationCallbacks* local_pAllocator;
13356 local_instance = instance;
13357 local_pCreateInfo = nullptr;
13358 if (pCreateInfo)
13359 {
13360 local_pCreateInfo = (VkXlibSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkXlibSurfaceCreateInfoKHR));
13361 deepcopy_VkXlibSurfaceCreateInfoKHR(pool, pCreateInfo, (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo));
13362 }
13363 local_pAllocator = nullptr;
13364 if (pAllocator)
13365 {
13366 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
13367 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
13368 }
13369 local_pAllocator = nullptr;
13370 if (local_pCreateInfo)
13371 {
13372 transform_tohost_VkXlibSurfaceCreateInfoKHR(mImpl->resources(), (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo));
13373 }
13374 if (local_pAllocator)
13375 {
13376 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
13377 }
13378 countingStream->rewind();
13379 {
13380 uint64_t cgen_var_921;
13381 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_921, 1);
13382 countingStream->write((uint64_t*)&cgen_var_921, 1 * 8);
13383 marshal_VkXlibSurfaceCreateInfoKHR(countingStream, (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo));
13384 // WARNING PTR CHECK
13385 uint64_t cgen_var_922 = (uint64_t)(uintptr_t)local_pAllocator;
13386 countingStream->putBe64(cgen_var_922);
13387 if (local_pAllocator)
13388 {
13389 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
13390 }
13391 uint64_t cgen_var_923;
13392 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_923, 1);
13393 countingStream->write((uint64_t*)&cgen_var_923, 8);
13394 }
13395 uint32_t packetSize_vkCreateXlibSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13396 countingStream->rewind();
13397 uint32_t opcode_vkCreateXlibSurfaceKHR = OP_vkCreateXlibSurfaceKHR;
13398 stream->write(&opcode_vkCreateXlibSurfaceKHR, sizeof(uint32_t));
13399 stream->write(&packetSize_vkCreateXlibSurfaceKHR, sizeof(uint32_t));
13400 uint64_t cgen_var_924;
13401 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_924, 1);
13402 stream->write((uint64_t*)&cgen_var_924, 1 * 8);
13403 marshal_VkXlibSurfaceCreateInfoKHR(stream, (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo));
13404 // WARNING PTR CHECK
13405 uint64_t cgen_var_925 = (uint64_t)(uintptr_t)local_pAllocator;
13406 stream->putBe64(cgen_var_925);
13407 if (local_pAllocator)
13408 {
13409 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
13410 }
13411 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
13412 uint64_t cgen_var_926;
13413 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_926, 1);
13414 stream->write((uint64_t*)&cgen_var_926, 8);
13415 stream->setHandleMapping(resources->unwrapMapping());
13416 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR readParams");
13417 uint64_t cgen_var_927;
13418 stream->read((uint64_t*)&cgen_var_927, 8);
13419 stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_927, (VkSurfaceKHR*)pSurface, 1);
13420 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR returnUnmarshal");
13421 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
13422 stream->read(&vkCreateXlibSurfaceKHR_VkResult_return, sizeof(VkResult));
13423 countingStream->clearPool();
13424 stream->clearPool();
13425 pool->freeAll();
13426 mImpl->log("finish vkCreateXlibSurfaceKHR");;
13427 return vkCreateXlibSurfaceKHR_VkResult_return;
13428 }
13429
vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID)13430 VkBool32 VkEncoder::vkGetPhysicalDeviceXlibPresentationSupportKHR(
13431 VkPhysicalDevice physicalDevice,
13432 uint32_t queueFamilyIndex,
13433 Display* dpy,
13434 VisualID visualID)
13435 {
13436 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR encode");
13437 mImpl->log("start vkGetPhysicalDeviceXlibPresentationSupportKHR");
13438 auto stream = mImpl->stream();
13439 auto countingStream = mImpl->countingStream();
13440 auto resources = mImpl->resources();
13441 auto pool = mImpl->pool();
13442 stream->setHandleMapping(resources->unwrapMapping());
13443 VkPhysicalDevice local_physicalDevice;
13444 uint32_t local_queueFamilyIndex;
13445 VisualID local_visualID;
13446 local_physicalDevice = physicalDevice;
13447 local_queueFamilyIndex = queueFamilyIndex;
13448 local_visualID = visualID;
13449 countingStream->rewind();
13450 {
13451 uint64_t cgen_var_928;
13452 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_928, 1);
13453 countingStream->write((uint64_t*)&cgen_var_928, 1 * 8);
13454 countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
13455 countingStream->write((Display*)dpy, sizeof(Display));
13456 countingStream->write((VisualID*)&local_visualID, sizeof(VisualID));
13457 }
13458 uint32_t packetSize_vkGetPhysicalDeviceXlibPresentationSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13459 countingStream->rewind();
13460 uint32_t opcode_vkGetPhysicalDeviceXlibPresentationSupportKHR = OP_vkGetPhysicalDeviceXlibPresentationSupportKHR;
13461 stream->write(&opcode_vkGetPhysicalDeviceXlibPresentationSupportKHR, sizeof(uint32_t));
13462 stream->write(&packetSize_vkGetPhysicalDeviceXlibPresentationSupportKHR, sizeof(uint32_t));
13463 uint64_t cgen_var_929;
13464 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_929, 1);
13465 stream->write((uint64_t*)&cgen_var_929, 1 * 8);
13466 stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
13467 stream->write((Display*)dpy, sizeof(Display));
13468 stream->write((VisualID*)&local_visualID, sizeof(VisualID));
13469 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR readParams");
13470 stream->read((Display*)dpy, sizeof(Display));
13471 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR returnUnmarshal");
13472 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
13473 stream->read(&vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
13474 countingStream->clearPool();
13475 stream->clearPool();
13476 pool->freeAll();
13477 mImpl->log("finish vkGetPhysicalDeviceXlibPresentationSupportKHR");;
13478 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
13479 }
13480
13481 #endif
13482 #ifdef VK_KHR_xcb_surface
vkCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)13483 VkResult VkEncoder::vkCreateXcbSurfaceKHR(
13484 VkInstance instance,
13485 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
13486 const VkAllocationCallbacks* pAllocator,
13487 VkSurfaceKHR* pSurface)
13488 {
13489 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR encode");
13490 mImpl->log("start vkCreateXcbSurfaceKHR");
13491 auto stream = mImpl->stream();
13492 auto countingStream = mImpl->countingStream();
13493 auto resources = mImpl->resources();
13494 auto pool = mImpl->pool();
13495 stream->setHandleMapping(resources->unwrapMapping());
13496 VkInstance local_instance;
13497 VkXcbSurfaceCreateInfoKHR* local_pCreateInfo;
13498 VkAllocationCallbacks* local_pAllocator;
13499 local_instance = instance;
13500 local_pCreateInfo = nullptr;
13501 if (pCreateInfo)
13502 {
13503 local_pCreateInfo = (VkXcbSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkXcbSurfaceCreateInfoKHR));
13504 deepcopy_VkXcbSurfaceCreateInfoKHR(pool, pCreateInfo, (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo));
13505 }
13506 local_pAllocator = nullptr;
13507 if (pAllocator)
13508 {
13509 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
13510 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
13511 }
13512 local_pAllocator = nullptr;
13513 if (local_pCreateInfo)
13514 {
13515 transform_tohost_VkXcbSurfaceCreateInfoKHR(mImpl->resources(), (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo));
13516 }
13517 if (local_pAllocator)
13518 {
13519 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
13520 }
13521 countingStream->rewind();
13522 {
13523 uint64_t cgen_var_930;
13524 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_930, 1);
13525 countingStream->write((uint64_t*)&cgen_var_930, 1 * 8);
13526 marshal_VkXcbSurfaceCreateInfoKHR(countingStream, (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo));
13527 // WARNING PTR CHECK
13528 uint64_t cgen_var_931 = (uint64_t)(uintptr_t)local_pAllocator;
13529 countingStream->putBe64(cgen_var_931);
13530 if (local_pAllocator)
13531 {
13532 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
13533 }
13534 uint64_t cgen_var_932;
13535 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_932, 1);
13536 countingStream->write((uint64_t*)&cgen_var_932, 8);
13537 }
13538 uint32_t packetSize_vkCreateXcbSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13539 countingStream->rewind();
13540 uint32_t opcode_vkCreateXcbSurfaceKHR = OP_vkCreateXcbSurfaceKHR;
13541 stream->write(&opcode_vkCreateXcbSurfaceKHR, sizeof(uint32_t));
13542 stream->write(&packetSize_vkCreateXcbSurfaceKHR, sizeof(uint32_t));
13543 uint64_t cgen_var_933;
13544 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_933, 1);
13545 stream->write((uint64_t*)&cgen_var_933, 1 * 8);
13546 marshal_VkXcbSurfaceCreateInfoKHR(stream, (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo));
13547 // WARNING PTR CHECK
13548 uint64_t cgen_var_934 = (uint64_t)(uintptr_t)local_pAllocator;
13549 stream->putBe64(cgen_var_934);
13550 if (local_pAllocator)
13551 {
13552 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
13553 }
13554 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
13555 uint64_t cgen_var_935;
13556 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_935, 1);
13557 stream->write((uint64_t*)&cgen_var_935, 8);
13558 stream->setHandleMapping(resources->unwrapMapping());
13559 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR readParams");
13560 uint64_t cgen_var_936;
13561 stream->read((uint64_t*)&cgen_var_936, 8);
13562 stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_936, (VkSurfaceKHR*)pSurface, 1);
13563 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR returnUnmarshal");
13564 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
13565 stream->read(&vkCreateXcbSurfaceKHR_VkResult_return, sizeof(VkResult));
13566 countingStream->clearPool();
13567 stream->clearPool();
13568 pool->freeAll();
13569 mImpl->log("finish vkCreateXcbSurfaceKHR");;
13570 return vkCreateXcbSurfaceKHR_VkResult_return;
13571 }
13572
vkGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id)13573 VkBool32 VkEncoder::vkGetPhysicalDeviceXcbPresentationSupportKHR(
13574 VkPhysicalDevice physicalDevice,
13575 uint32_t queueFamilyIndex,
13576 xcb_connection_t* connection,
13577 xcb_visualid_t visual_id)
13578 {
13579 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR encode");
13580 mImpl->log("start vkGetPhysicalDeviceXcbPresentationSupportKHR");
13581 auto stream = mImpl->stream();
13582 auto countingStream = mImpl->countingStream();
13583 auto resources = mImpl->resources();
13584 auto pool = mImpl->pool();
13585 stream->setHandleMapping(resources->unwrapMapping());
13586 VkPhysicalDevice local_physicalDevice;
13587 uint32_t local_queueFamilyIndex;
13588 xcb_visualid_t local_visual_id;
13589 local_physicalDevice = physicalDevice;
13590 local_queueFamilyIndex = queueFamilyIndex;
13591 local_visual_id = visual_id;
13592 countingStream->rewind();
13593 {
13594 uint64_t cgen_var_937;
13595 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_937, 1);
13596 countingStream->write((uint64_t*)&cgen_var_937, 1 * 8);
13597 countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
13598 countingStream->write((xcb_connection_t*)connection, sizeof(xcb_connection_t));
13599 countingStream->write((xcb_visualid_t*)&local_visual_id, sizeof(xcb_visualid_t));
13600 }
13601 uint32_t packetSize_vkGetPhysicalDeviceXcbPresentationSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13602 countingStream->rewind();
13603 uint32_t opcode_vkGetPhysicalDeviceXcbPresentationSupportKHR = OP_vkGetPhysicalDeviceXcbPresentationSupportKHR;
13604 stream->write(&opcode_vkGetPhysicalDeviceXcbPresentationSupportKHR, sizeof(uint32_t));
13605 stream->write(&packetSize_vkGetPhysicalDeviceXcbPresentationSupportKHR, sizeof(uint32_t));
13606 uint64_t cgen_var_938;
13607 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_938, 1);
13608 stream->write((uint64_t*)&cgen_var_938, 1 * 8);
13609 stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
13610 stream->write((xcb_connection_t*)connection, sizeof(xcb_connection_t));
13611 stream->write((xcb_visualid_t*)&local_visual_id, sizeof(xcb_visualid_t));
13612 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR readParams");
13613 stream->read((xcb_connection_t*)connection, sizeof(xcb_connection_t));
13614 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR returnUnmarshal");
13615 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
13616 stream->read(&vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
13617 countingStream->clearPool();
13618 stream->clearPool();
13619 pool->freeAll();
13620 mImpl->log("finish vkGetPhysicalDeviceXcbPresentationSupportKHR");;
13621 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
13622 }
13623
13624 #endif
13625 #ifdef VK_KHR_wayland_surface
vkCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)13626 VkResult VkEncoder::vkCreateWaylandSurfaceKHR(
13627 VkInstance instance,
13628 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
13629 const VkAllocationCallbacks* pAllocator,
13630 VkSurfaceKHR* pSurface)
13631 {
13632 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR encode");
13633 mImpl->log("start vkCreateWaylandSurfaceKHR");
13634 auto stream = mImpl->stream();
13635 auto countingStream = mImpl->countingStream();
13636 auto resources = mImpl->resources();
13637 auto pool = mImpl->pool();
13638 stream->setHandleMapping(resources->unwrapMapping());
13639 VkInstance local_instance;
13640 VkWaylandSurfaceCreateInfoKHR* local_pCreateInfo;
13641 VkAllocationCallbacks* local_pAllocator;
13642 local_instance = instance;
13643 local_pCreateInfo = nullptr;
13644 if (pCreateInfo)
13645 {
13646 local_pCreateInfo = (VkWaylandSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkWaylandSurfaceCreateInfoKHR));
13647 deepcopy_VkWaylandSurfaceCreateInfoKHR(pool, pCreateInfo, (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo));
13648 }
13649 local_pAllocator = nullptr;
13650 if (pAllocator)
13651 {
13652 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
13653 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
13654 }
13655 local_pAllocator = nullptr;
13656 if (local_pCreateInfo)
13657 {
13658 transform_tohost_VkWaylandSurfaceCreateInfoKHR(mImpl->resources(), (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo));
13659 }
13660 if (local_pAllocator)
13661 {
13662 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
13663 }
13664 countingStream->rewind();
13665 {
13666 uint64_t cgen_var_939;
13667 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_939, 1);
13668 countingStream->write((uint64_t*)&cgen_var_939, 1 * 8);
13669 marshal_VkWaylandSurfaceCreateInfoKHR(countingStream, (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo));
13670 // WARNING PTR CHECK
13671 uint64_t cgen_var_940 = (uint64_t)(uintptr_t)local_pAllocator;
13672 countingStream->putBe64(cgen_var_940);
13673 if (local_pAllocator)
13674 {
13675 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
13676 }
13677 uint64_t cgen_var_941;
13678 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_941, 1);
13679 countingStream->write((uint64_t*)&cgen_var_941, 8);
13680 }
13681 uint32_t packetSize_vkCreateWaylandSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13682 countingStream->rewind();
13683 uint32_t opcode_vkCreateWaylandSurfaceKHR = OP_vkCreateWaylandSurfaceKHR;
13684 stream->write(&opcode_vkCreateWaylandSurfaceKHR, sizeof(uint32_t));
13685 stream->write(&packetSize_vkCreateWaylandSurfaceKHR, sizeof(uint32_t));
13686 uint64_t cgen_var_942;
13687 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_942, 1);
13688 stream->write((uint64_t*)&cgen_var_942, 1 * 8);
13689 marshal_VkWaylandSurfaceCreateInfoKHR(stream, (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo));
13690 // WARNING PTR CHECK
13691 uint64_t cgen_var_943 = (uint64_t)(uintptr_t)local_pAllocator;
13692 stream->putBe64(cgen_var_943);
13693 if (local_pAllocator)
13694 {
13695 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
13696 }
13697 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
13698 uint64_t cgen_var_944;
13699 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_944, 1);
13700 stream->write((uint64_t*)&cgen_var_944, 8);
13701 stream->setHandleMapping(resources->unwrapMapping());
13702 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR readParams");
13703 uint64_t cgen_var_945;
13704 stream->read((uint64_t*)&cgen_var_945, 8);
13705 stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_945, (VkSurfaceKHR*)pSurface, 1);
13706 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR returnUnmarshal");
13707 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
13708 stream->read(&vkCreateWaylandSurfaceKHR_VkResult_return, sizeof(VkResult));
13709 countingStream->clearPool();
13710 stream->clearPool();
13711 pool->freeAll();
13712 mImpl->log("finish vkCreateWaylandSurfaceKHR");;
13713 return vkCreateWaylandSurfaceKHR_VkResult_return;
13714 }
13715
vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,wl_display * display)13716 VkBool32 VkEncoder::vkGetPhysicalDeviceWaylandPresentationSupportKHR(
13717 VkPhysicalDevice physicalDevice,
13718 uint32_t queueFamilyIndex,
13719 wl_display* display)
13720 {
13721 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR encode");
13722 mImpl->log("start vkGetPhysicalDeviceWaylandPresentationSupportKHR");
13723 auto stream = mImpl->stream();
13724 auto countingStream = mImpl->countingStream();
13725 auto resources = mImpl->resources();
13726 auto pool = mImpl->pool();
13727 stream->setHandleMapping(resources->unwrapMapping());
13728 VkPhysicalDevice local_physicalDevice;
13729 uint32_t local_queueFamilyIndex;
13730 local_physicalDevice = physicalDevice;
13731 local_queueFamilyIndex = queueFamilyIndex;
13732 countingStream->rewind();
13733 {
13734 uint64_t cgen_var_946;
13735 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_946, 1);
13736 countingStream->write((uint64_t*)&cgen_var_946, 1 * 8);
13737 countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
13738 countingStream->write((wl_display*)display, sizeof(wl_display));
13739 }
13740 uint32_t packetSize_vkGetPhysicalDeviceWaylandPresentationSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13741 countingStream->rewind();
13742 uint32_t opcode_vkGetPhysicalDeviceWaylandPresentationSupportKHR = OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR;
13743 stream->write(&opcode_vkGetPhysicalDeviceWaylandPresentationSupportKHR, sizeof(uint32_t));
13744 stream->write(&packetSize_vkGetPhysicalDeviceWaylandPresentationSupportKHR, sizeof(uint32_t));
13745 uint64_t cgen_var_947;
13746 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_947, 1);
13747 stream->write((uint64_t*)&cgen_var_947, 1 * 8);
13748 stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
13749 stream->write((wl_display*)display, sizeof(wl_display));
13750 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR readParams");
13751 stream->read((wl_display*)display, sizeof(wl_display));
13752 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR returnUnmarshal");
13753 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
13754 stream->read(&vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
13755 countingStream->clearPool();
13756 stream->clearPool();
13757 pool->freeAll();
13758 mImpl->log("finish vkGetPhysicalDeviceWaylandPresentationSupportKHR");;
13759 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
13760 }
13761
13762 #endif
13763 #ifdef VK_KHR_mir_surface
vkCreateMirSurfaceKHR(VkInstance instance,const VkMirSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)13764 VkResult VkEncoder::vkCreateMirSurfaceKHR(
13765 VkInstance instance,
13766 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
13767 const VkAllocationCallbacks* pAllocator,
13768 VkSurfaceKHR* pSurface)
13769 {
13770 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR encode");
13771 mImpl->log("start vkCreateMirSurfaceKHR");
13772 auto stream = mImpl->stream();
13773 auto countingStream = mImpl->countingStream();
13774 auto resources = mImpl->resources();
13775 auto pool = mImpl->pool();
13776 stream->setHandleMapping(resources->unwrapMapping());
13777 VkInstance local_instance;
13778 VkMirSurfaceCreateInfoKHR* local_pCreateInfo;
13779 VkAllocationCallbacks* local_pAllocator;
13780 local_instance = instance;
13781 local_pCreateInfo = nullptr;
13782 if (pCreateInfo)
13783 {
13784 local_pCreateInfo = (VkMirSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkMirSurfaceCreateInfoKHR));
13785 deepcopy_VkMirSurfaceCreateInfoKHR(pool, pCreateInfo, (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo));
13786 }
13787 local_pAllocator = nullptr;
13788 if (pAllocator)
13789 {
13790 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
13791 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
13792 }
13793 local_pAllocator = nullptr;
13794 if (local_pCreateInfo)
13795 {
13796 transform_tohost_VkMirSurfaceCreateInfoKHR(mImpl->resources(), (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo));
13797 }
13798 if (local_pAllocator)
13799 {
13800 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
13801 }
13802 countingStream->rewind();
13803 {
13804 uint64_t cgen_var_948;
13805 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_948, 1);
13806 countingStream->write((uint64_t*)&cgen_var_948, 1 * 8);
13807 marshal_VkMirSurfaceCreateInfoKHR(countingStream, (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo));
13808 // WARNING PTR CHECK
13809 uint64_t cgen_var_949 = (uint64_t)(uintptr_t)local_pAllocator;
13810 countingStream->putBe64(cgen_var_949);
13811 if (local_pAllocator)
13812 {
13813 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
13814 }
13815 uint64_t cgen_var_950;
13816 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_950, 1);
13817 countingStream->write((uint64_t*)&cgen_var_950, 8);
13818 }
13819 uint32_t packetSize_vkCreateMirSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13820 countingStream->rewind();
13821 uint32_t opcode_vkCreateMirSurfaceKHR = OP_vkCreateMirSurfaceKHR;
13822 stream->write(&opcode_vkCreateMirSurfaceKHR, sizeof(uint32_t));
13823 stream->write(&packetSize_vkCreateMirSurfaceKHR, sizeof(uint32_t));
13824 uint64_t cgen_var_951;
13825 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_951, 1);
13826 stream->write((uint64_t*)&cgen_var_951, 1 * 8);
13827 marshal_VkMirSurfaceCreateInfoKHR(stream, (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo));
13828 // WARNING PTR CHECK
13829 uint64_t cgen_var_952 = (uint64_t)(uintptr_t)local_pAllocator;
13830 stream->putBe64(cgen_var_952);
13831 if (local_pAllocator)
13832 {
13833 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
13834 }
13835 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
13836 uint64_t cgen_var_953;
13837 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_953, 1);
13838 stream->write((uint64_t*)&cgen_var_953, 8);
13839 stream->setHandleMapping(resources->unwrapMapping());
13840 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR readParams");
13841 uint64_t cgen_var_954;
13842 stream->read((uint64_t*)&cgen_var_954, 8);
13843 stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_954, (VkSurfaceKHR*)pSurface, 1);
13844 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR returnUnmarshal");
13845 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
13846 stream->read(&vkCreateMirSurfaceKHR_VkResult_return, sizeof(VkResult));
13847 countingStream->clearPool();
13848 stream->clearPool();
13849 pool->freeAll();
13850 mImpl->log("finish vkCreateMirSurfaceKHR");;
13851 return vkCreateMirSurfaceKHR_VkResult_return;
13852 }
13853
vkGetPhysicalDeviceMirPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,MirConnection * connection)13854 VkBool32 VkEncoder::vkGetPhysicalDeviceMirPresentationSupportKHR(
13855 VkPhysicalDevice physicalDevice,
13856 uint32_t queueFamilyIndex,
13857 MirConnection* connection)
13858 {
13859 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR encode");
13860 mImpl->log("start vkGetPhysicalDeviceMirPresentationSupportKHR");
13861 auto stream = mImpl->stream();
13862 auto countingStream = mImpl->countingStream();
13863 auto resources = mImpl->resources();
13864 auto pool = mImpl->pool();
13865 stream->setHandleMapping(resources->unwrapMapping());
13866 VkPhysicalDevice local_physicalDevice;
13867 uint32_t local_queueFamilyIndex;
13868 local_physicalDevice = physicalDevice;
13869 local_queueFamilyIndex = queueFamilyIndex;
13870 countingStream->rewind();
13871 {
13872 uint64_t cgen_var_955;
13873 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_955, 1);
13874 countingStream->write((uint64_t*)&cgen_var_955, 1 * 8);
13875 countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
13876 countingStream->write((MirConnection*)connection, sizeof(MirConnection));
13877 }
13878 uint32_t packetSize_vkGetPhysicalDeviceMirPresentationSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13879 countingStream->rewind();
13880 uint32_t opcode_vkGetPhysicalDeviceMirPresentationSupportKHR = OP_vkGetPhysicalDeviceMirPresentationSupportKHR;
13881 stream->write(&opcode_vkGetPhysicalDeviceMirPresentationSupportKHR, sizeof(uint32_t));
13882 stream->write(&packetSize_vkGetPhysicalDeviceMirPresentationSupportKHR, sizeof(uint32_t));
13883 uint64_t cgen_var_956;
13884 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_956, 1);
13885 stream->write((uint64_t*)&cgen_var_956, 1 * 8);
13886 stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
13887 stream->write((MirConnection*)connection, sizeof(MirConnection));
13888 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR readParams");
13889 stream->read((MirConnection*)connection, sizeof(MirConnection));
13890 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR returnUnmarshal");
13891 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
13892 stream->read(&vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
13893 countingStream->clearPool();
13894 stream->clearPool();
13895 pool->freeAll();
13896 mImpl->log("finish vkGetPhysicalDeviceMirPresentationSupportKHR");;
13897 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
13898 }
13899
13900 #endif
13901 #ifdef VK_KHR_android_surface
vkCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)13902 VkResult VkEncoder::vkCreateAndroidSurfaceKHR(
13903 VkInstance instance,
13904 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
13905 const VkAllocationCallbacks* pAllocator,
13906 VkSurfaceKHR* pSurface)
13907 {
13908 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR encode");
13909 mImpl->log("start vkCreateAndroidSurfaceKHR");
13910 auto stream = mImpl->stream();
13911 auto countingStream = mImpl->countingStream();
13912 auto resources = mImpl->resources();
13913 auto pool = mImpl->pool();
13914 stream->setHandleMapping(resources->unwrapMapping());
13915 VkInstance local_instance;
13916 VkAndroidSurfaceCreateInfoKHR* local_pCreateInfo;
13917 VkAllocationCallbacks* local_pAllocator;
13918 local_instance = instance;
13919 local_pCreateInfo = nullptr;
13920 if (pCreateInfo)
13921 {
13922 local_pCreateInfo = (VkAndroidSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkAndroidSurfaceCreateInfoKHR));
13923 deepcopy_VkAndroidSurfaceCreateInfoKHR(pool, pCreateInfo, (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo));
13924 }
13925 local_pAllocator = nullptr;
13926 if (pAllocator)
13927 {
13928 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
13929 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
13930 }
13931 local_pAllocator = nullptr;
13932 if (local_pCreateInfo)
13933 {
13934 transform_tohost_VkAndroidSurfaceCreateInfoKHR(mImpl->resources(), (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo));
13935 }
13936 if (local_pAllocator)
13937 {
13938 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
13939 }
13940 countingStream->rewind();
13941 {
13942 uint64_t cgen_var_957;
13943 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_957, 1);
13944 countingStream->write((uint64_t*)&cgen_var_957, 1 * 8);
13945 marshal_VkAndroidSurfaceCreateInfoKHR(countingStream, (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo));
13946 // WARNING PTR CHECK
13947 uint64_t cgen_var_958 = (uint64_t)(uintptr_t)local_pAllocator;
13948 countingStream->putBe64(cgen_var_958);
13949 if (local_pAllocator)
13950 {
13951 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
13952 }
13953 uint64_t cgen_var_959;
13954 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_959, 1);
13955 countingStream->write((uint64_t*)&cgen_var_959, 8);
13956 }
13957 uint32_t packetSize_vkCreateAndroidSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
13958 countingStream->rewind();
13959 uint32_t opcode_vkCreateAndroidSurfaceKHR = OP_vkCreateAndroidSurfaceKHR;
13960 stream->write(&opcode_vkCreateAndroidSurfaceKHR, sizeof(uint32_t));
13961 stream->write(&packetSize_vkCreateAndroidSurfaceKHR, sizeof(uint32_t));
13962 uint64_t cgen_var_960;
13963 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_960, 1);
13964 stream->write((uint64_t*)&cgen_var_960, 1 * 8);
13965 marshal_VkAndroidSurfaceCreateInfoKHR(stream, (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo));
13966 // WARNING PTR CHECK
13967 uint64_t cgen_var_961 = (uint64_t)(uintptr_t)local_pAllocator;
13968 stream->putBe64(cgen_var_961);
13969 if (local_pAllocator)
13970 {
13971 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
13972 }
13973 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
13974 uint64_t cgen_var_962;
13975 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_962, 1);
13976 stream->write((uint64_t*)&cgen_var_962, 8);
13977 stream->setHandleMapping(resources->unwrapMapping());
13978 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR readParams");
13979 uint64_t cgen_var_963;
13980 stream->read((uint64_t*)&cgen_var_963, 8);
13981 stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_963, (VkSurfaceKHR*)pSurface, 1);
13982 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR returnUnmarshal");
13983 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
13984 stream->read(&vkCreateAndroidSurfaceKHR_VkResult_return, sizeof(VkResult));
13985 countingStream->clearPool();
13986 stream->clearPool();
13987 pool->freeAll();
13988 mImpl->log("finish vkCreateAndroidSurfaceKHR");;
13989 return vkCreateAndroidSurfaceKHR_VkResult_return;
13990 }
13991
13992 #endif
13993 #ifdef VK_KHR_win32_surface
vkCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)13994 VkResult VkEncoder::vkCreateWin32SurfaceKHR(
13995 VkInstance instance,
13996 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
13997 const VkAllocationCallbacks* pAllocator,
13998 VkSurfaceKHR* pSurface)
13999 {
14000 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR encode");
14001 mImpl->log("start vkCreateWin32SurfaceKHR");
14002 auto stream = mImpl->stream();
14003 auto countingStream = mImpl->countingStream();
14004 auto resources = mImpl->resources();
14005 auto pool = mImpl->pool();
14006 stream->setHandleMapping(resources->unwrapMapping());
14007 VkInstance local_instance;
14008 VkWin32SurfaceCreateInfoKHR* local_pCreateInfo;
14009 VkAllocationCallbacks* local_pAllocator;
14010 local_instance = instance;
14011 local_pCreateInfo = nullptr;
14012 if (pCreateInfo)
14013 {
14014 local_pCreateInfo = (VkWin32SurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkWin32SurfaceCreateInfoKHR));
14015 deepcopy_VkWin32SurfaceCreateInfoKHR(pool, pCreateInfo, (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo));
14016 }
14017 local_pAllocator = nullptr;
14018 if (pAllocator)
14019 {
14020 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
14021 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
14022 }
14023 local_pAllocator = nullptr;
14024 if (local_pCreateInfo)
14025 {
14026 transform_tohost_VkWin32SurfaceCreateInfoKHR(mImpl->resources(), (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo));
14027 }
14028 if (local_pAllocator)
14029 {
14030 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
14031 }
14032 countingStream->rewind();
14033 {
14034 uint64_t cgen_var_964;
14035 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_964, 1);
14036 countingStream->write((uint64_t*)&cgen_var_964, 1 * 8);
14037 marshal_VkWin32SurfaceCreateInfoKHR(countingStream, (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo));
14038 // WARNING PTR CHECK
14039 uint64_t cgen_var_965 = (uint64_t)(uintptr_t)local_pAllocator;
14040 countingStream->putBe64(cgen_var_965);
14041 if (local_pAllocator)
14042 {
14043 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
14044 }
14045 uint64_t cgen_var_966;
14046 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_966, 1);
14047 countingStream->write((uint64_t*)&cgen_var_966, 8);
14048 }
14049 uint32_t packetSize_vkCreateWin32SurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14050 countingStream->rewind();
14051 uint32_t opcode_vkCreateWin32SurfaceKHR = OP_vkCreateWin32SurfaceKHR;
14052 stream->write(&opcode_vkCreateWin32SurfaceKHR, sizeof(uint32_t));
14053 stream->write(&packetSize_vkCreateWin32SurfaceKHR, sizeof(uint32_t));
14054 uint64_t cgen_var_967;
14055 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_967, 1);
14056 stream->write((uint64_t*)&cgen_var_967, 1 * 8);
14057 marshal_VkWin32SurfaceCreateInfoKHR(stream, (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo));
14058 // WARNING PTR CHECK
14059 uint64_t cgen_var_968 = (uint64_t)(uintptr_t)local_pAllocator;
14060 stream->putBe64(cgen_var_968);
14061 if (local_pAllocator)
14062 {
14063 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
14064 }
14065 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
14066 uint64_t cgen_var_969;
14067 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_969, 1);
14068 stream->write((uint64_t*)&cgen_var_969, 8);
14069 stream->setHandleMapping(resources->unwrapMapping());
14070 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR readParams");
14071 uint64_t cgen_var_970;
14072 stream->read((uint64_t*)&cgen_var_970, 8);
14073 stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_970, (VkSurfaceKHR*)pSurface, 1);
14074 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR returnUnmarshal");
14075 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
14076 stream->read(&vkCreateWin32SurfaceKHR_VkResult_return, sizeof(VkResult));
14077 countingStream->clearPool();
14078 stream->clearPool();
14079 pool->freeAll();
14080 mImpl->log("finish vkCreateWin32SurfaceKHR");;
14081 return vkCreateWin32SurfaceKHR_VkResult_return;
14082 }
14083
vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex)14084 VkBool32 VkEncoder::vkGetPhysicalDeviceWin32PresentationSupportKHR(
14085 VkPhysicalDevice physicalDevice,
14086 uint32_t queueFamilyIndex)
14087 {
14088 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR encode");
14089 mImpl->log("start vkGetPhysicalDeviceWin32PresentationSupportKHR");
14090 auto stream = mImpl->stream();
14091 auto countingStream = mImpl->countingStream();
14092 auto resources = mImpl->resources();
14093 auto pool = mImpl->pool();
14094 stream->setHandleMapping(resources->unwrapMapping());
14095 VkPhysicalDevice local_physicalDevice;
14096 uint32_t local_queueFamilyIndex;
14097 local_physicalDevice = physicalDevice;
14098 local_queueFamilyIndex = queueFamilyIndex;
14099 countingStream->rewind();
14100 {
14101 uint64_t cgen_var_971;
14102 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_971, 1);
14103 countingStream->write((uint64_t*)&cgen_var_971, 1 * 8);
14104 countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
14105 }
14106 uint32_t packetSize_vkGetPhysicalDeviceWin32PresentationSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14107 countingStream->rewind();
14108 uint32_t opcode_vkGetPhysicalDeviceWin32PresentationSupportKHR = OP_vkGetPhysicalDeviceWin32PresentationSupportKHR;
14109 stream->write(&opcode_vkGetPhysicalDeviceWin32PresentationSupportKHR, sizeof(uint32_t));
14110 stream->write(&packetSize_vkGetPhysicalDeviceWin32PresentationSupportKHR, sizeof(uint32_t));
14111 uint64_t cgen_var_972;
14112 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_972, 1);
14113 stream->write((uint64_t*)&cgen_var_972, 1 * 8);
14114 stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
14115 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR readParams");
14116 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR returnUnmarshal");
14117 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
14118 stream->read(&vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
14119 countingStream->clearPool();
14120 stream->clearPool();
14121 pool->freeAll();
14122 mImpl->log("finish vkGetPhysicalDeviceWin32PresentationSupportKHR");;
14123 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
14124 }
14125
14126 #endif
14127 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
14128 #endif
14129 #ifdef VK_KHR_multiview
14130 #endif
14131 #ifdef VK_KHR_get_physical_device_properties2
vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)14132 void VkEncoder::vkGetPhysicalDeviceFeatures2KHR(
14133 VkPhysicalDevice physicalDevice,
14134 VkPhysicalDeviceFeatures2* pFeatures)
14135 {
14136 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR encode");
14137 mImpl->log("start vkGetPhysicalDeviceFeatures2KHR");
14138 auto stream = mImpl->stream();
14139 auto countingStream = mImpl->countingStream();
14140 auto resources = mImpl->resources();
14141 auto pool = mImpl->pool();
14142 stream->setHandleMapping(resources->unwrapMapping());
14143 VkPhysicalDevice local_physicalDevice;
14144 local_physicalDevice = physicalDevice;
14145 countingStream->rewind();
14146 {
14147 uint64_t cgen_var_973;
14148 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_973, 1);
14149 countingStream->write((uint64_t*)&cgen_var_973, 1 * 8);
14150 marshal_VkPhysicalDeviceFeatures2(countingStream, (VkPhysicalDeviceFeatures2*)(pFeatures));
14151 }
14152 uint32_t packetSize_vkGetPhysicalDeviceFeatures2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14153 countingStream->rewind();
14154 uint32_t opcode_vkGetPhysicalDeviceFeatures2KHR = OP_vkGetPhysicalDeviceFeatures2KHR;
14155 stream->write(&opcode_vkGetPhysicalDeviceFeatures2KHR, sizeof(uint32_t));
14156 stream->write(&packetSize_vkGetPhysicalDeviceFeatures2KHR, sizeof(uint32_t));
14157 uint64_t cgen_var_974;
14158 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_974, 1);
14159 stream->write((uint64_t*)&cgen_var_974, 1 * 8);
14160 marshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
14161 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR readParams");
14162 unmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
14163 if (pFeatures)
14164 {
14165 transform_fromhost_VkPhysicalDeviceFeatures2(mImpl->resources(), (VkPhysicalDeviceFeatures2*)(pFeatures));
14166 }
14167 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR returnUnmarshal");
14168 mImpl->log("finish vkGetPhysicalDeviceFeatures2KHR");;
14169 }
14170
vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)14171 void VkEncoder::vkGetPhysicalDeviceProperties2KHR(
14172 VkPhysicalDevice physicalDevice,
14173 VkPhysicalDeviceProperties2* pProperties)
14174 {
14175 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR encode");
14176 mImpl->log("start vkGetPhysicalDeviceProperties2KHR");
14177 auto stream = mImpl->stream();
14178 auto countingStream = mImpl->countingStream();
14179 auto resources = mImpl->resources();
14180 auto pool = mImpl->pool();
14181 stream->setHandleMapping(resources->unwrapMapping());
14182 VkPhysicalDevice local_physicalDevice;
14183 local_physicalDevice = physicalDevice;
14184 countingStream->rewind();
14185 {
14186 uint64_t cgen_var_975;
14187 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_975, 1);
14188 countingStream->write((uint64_t*)&cgen_var_975, 1 * 8);
14189 marshal_VkPhysicalDeviceProperties2(countingStream, (VkPhysicalDeviceProperties2*)(pProperties));
14190 }
14191 uint32_t packetSize_vkGetPhysicalDeviceProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14192 countingStream->rewind();
14193 uint32_t opcode_vkGetPhysicalDeviceProperties2KHR = OP_vkGetPhysicalDeviceProperties2KHR;
14194 stream->write(&opcode_vkGetPhysicalDeviceProperties2KHR, sizeof(uint32_t));
14195 stream->write(&packetSize_vkGetPhysicalDeviceProperties2KHR, sizeof(uint32_t));
14196 uint64_t cgen_var_976;
14197 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_976, 1);
14198 stream->write((uint64_t*)&cgen_var_976, 1 * 8);
14199 marshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
14200 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR readParams");
14201 unmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
14202 if (pProperties)
14203 {
14204 transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties));
14205 }
14206 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR returnUnmarshal");
14207 mImpl->log("finish vkGetPhysicalDeviceProperties2KHR");;
14208 }
14209
vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)14210 void VkEncoder::vkGetPhysicalDeviceFormatProperties2KHR(
14211 VkPhysicalDevice physicalDevice,
14212 VkFormat format,
14213 VkFormatProperties2* pFormatProperties)
14214 {
14215 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR encode");
14216 mImpl->log("start vkGetPhysicalDeviceFormatProperties2KHR");
14217 auto stream = mImpl->stream();
14218 auto countingStream = mImpl->countingStream();
14219 auto resources = mImpl->resources();
14220 auto pool = mImpl->pool();
14221 stream->setHandleMapping(resources->unwrapMapping());
14222 VkPhysicalDevice local_physicalDevice;
14223 VkFormat local_format;
14224 local_physicalDevice = physicalDevice;
14225 local_format = format;
14226 countingStream->rewind();
14227 {
14228 uint64_t cgen_var_977;
14229 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_977, 1);
14230 countingStream->write((uint64_t*)&cgen_var_977, 1 * 8);
14231 countingStream->write((VkFormat*)&local_format, sizeof(VkFormat));
14232 marshal_VkFormatProperties2(countingStream, (VkFormatProperties2*)(pFormatProperties));
14233 }
14234 uint32_t packetSize_vkGetPhysicalDeviceFormatProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14235 countingStream->rewind();
14236 uint32_t opcode_vkGetPhysicalDeviceFormatProperties2KHR = OP_vkGetPhysicalDeviceFormatProperties2KHR;
14237 stream->write(&opcode_vkGetPhysicalDeviceFormatProperties2KHR, sizeof(uint32_t));
14238 stream->write(&packetSize_vkGetPhysicalDeviceFormatProperties2KHR, sizeof(uint32_t));
14239 uint64_t cgen_var_978;
14240 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_978, 1);
14241 stream->write((uint64_t*)&cgen_var_978, 1 * 8);
14242 stream->write((VkFormat*)&local_format, sizeof(VkFormat));
14243 marshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
14244 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR readParams");
14245 unmarshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
14246 if (pFormatProperties)
14247 {
14248 transform_fromhost_VkFormatProperties2(mImpl->resources(), (VkFormatProperties2*)(pFormatProperties));
14249 }
14250 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR returnUnmarshal");
14251 mImpl->log("finish vkGetPhysicalDeviceFormatProperties2KHR");;
14252 }
14253
vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)14254 VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties2KHR(
14255 VkPhysicalDevice physicalDevice,
14256 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
14257 VkImageFormatProperties2* pImageFormatProperties)
14258 {
14259 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR encode");
14260 mImpl->log("start vkGetPhysicalDeviceImageFormatProperties2KHR");
14261 auto stream = mImpl->stream();
14262 auto countingStream = mImpl->countingStream();
14263 auto resources = mImpl->resources();
14264 auto pool = mImpl->pool();
14265 stream->setHandleMapping(resources->unwrapMapping());
14266 VkPhysicalDevice local_physicalDevice;
14267 VkPhysicalDeviceImageFormatInfo2* local_pImageFormatInfo;
14268 local_physicalDevice = physicalDevice;
14269 local_pImageFormatInfo = nullptr;
14270 if (pImageFormatInfo)
14271 {
14272 local_pImageFormatInfo = (VkPhysicalDeviceImageFormatInfo2*)pool->alloc(sizeof(const VkPhysicalDeviceImageFormatInfo2));
14273 deepcopy_VkPhysicalDeviceImageFormatInfo2(pool, pImageFormatInfo, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
14274 }
14275 if (local_pImageFormatInfo)
14276 {
14277 transform_tohost_VkPhysicalDeviceImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
14278 }
14279 countingStream->rewind();
14280 {
14281 uint64_t cgen_var_979;
14282 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_979, 1);
14283 countingStream->write((uint64_t*)&cgen_var_979, 1 * 8);
14284 marshal_VkPhysicalDeviceImageFormatInfo2(countingStream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
14285 marshal_VkImageFormatProperties2(countingStream, (VkImageFormatProperties2*)(pImageFormatProperties));
14286 }
14287 uint32_t packetSize_vkGetPhysicalDeviceImageFormatProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14288 countingStream->rewind();
14289 uint32_t opcode_vkGetPhysicalDeviceImageFormatProperties2KHR = OP_vkGetPhysicalDeviceImageFormatProperties2KHR;
14290 stream->write(&opcode_vkGetPhysicalDeviceImageFormatProperties2KHR, sizeof(uint32_t));
14291 stream->write(&packetSize_vkGetPhysicalDeviceImageFormatProperties2KHR, sizeof(uint32_t));
14292 uint64_t cgen_var_980;
14293 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_980, 1);
14294 stream->write((uint64_t*)&cgen_var_980, 1 * 8);
14295 marshal_VkPhysicalDeviceImageFormatInfo2(stream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
14296 marshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
14297 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR readParams");
14298 unmarshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
14299 if (pImageFormatProperties)
14300 {
14301 transform_fromhost_VkImageFormatProperties2(mImpl->resources(), (VkImageFormatProperties2*)(pImageFormatProperties));
14302 }
14303 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR returnUnmarshal");
14304 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
14305 stream->read(&vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return, sizeof(VkResult));
14306 countingStream->clearPool();
14307 stream->clearPool();
14308 pool->freeAll();
14309 mImpl->log("finish vkGetPhysicalDeviceImageFormatProperties2KHR");;
14310 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
14311 }
14312
vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)14313 void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties2KHR(
14314 VkPhysicalDevice physicalDevice,
14315 uint32_t* pQueueFamilyPropertyCount,
14316 VkQueueFamilyProperties2* pQueueFamilyProperties)
14317 {
14318 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR encode");
14319 mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties2KHR");
14320 auto stream = mImpl->stream();
14321 auto countingStream = mImpl->countingStream();
14322 auto resources = mImpl->resources();
14323 auto pool = mImpl->pool();
14324 stream->setHandleMapping(resources->unwrapMapping());
14325 VkPhysicalDevice local_physicalDevice;
14326 local_physicalDevice = physicalDevice;
14327 countingStream->rewind();
14328 {
14329 uint64_t cgen_var_981;
14330 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_981, 1);
14331 countingStream->write((uint64_t*)&cgen_var_981, 1 * 8);
14332 // WARNING PTR CHECK
14333 uint64_t cgen_var_982 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
14334 countingStream->putBe64(cgen_var_982);
14335 if (pQueueFamilyPropertyCount)
14336 {
14337 countingStream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t));
14338 }
14339 // WARNING PTR CHECK
14340 uint64_t cgen_var_983 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
14341 countingStream->putBe64(cgen_var_983);
14342 if (pQueueFamilyProperties)
14343 {
14344 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
14345 {
14346 marshal_VkQueueFamilyProperties2(countingStream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
14347 }
14348 }
14349 }
14350 uint32_t packetSize_vkGetPhysicalDeviceQueueFamilyProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14351 countingStream->rewind();
14352 uint32_t opcode_vkGetPhysicalDeviceQueueFamilyProperties2KHR = OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR;
14353 stream->write(&opcode_vkGetPhysicalDeviceQueueFamilyProperties2KHR, sizeof(uint32_t));
14354 stream->write(&packetSize_vkGetPhysicalDeviceQueueFamilyProperties2KHR, sizeof(uint32_t));
14355 uint64_t cgen_var_984;
14356 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_984, 1);
14357 stream->write((uint64_t*)&cgen_var_984, 1 * 8);
14358 // WARNING PTR CHECK
14359 uint64_t cgen_var_985 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
14360 stream->putBe64(cgen_var_985);
14361 if (pQueueFamilyPropertyCount)
14362 {
14363 stream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t));
14364 }
14365 // WARNING PTR CHECK
14366 uint64_t cgen_var_986 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
14367 stream->putBe64(cgen_var_986);
14368 if (pQueueFamilyProperties)
14369 {
14370 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
14371 {
14372 marshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
14373 }
14374 }
14375 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR readParams");
14376 // WARNING PTR CHECK
14377 uint32_t* check_pQueueFamilyPropertyCount;
14378 check_pQueueFamilyPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
14379 if (pQueueFamilyPropertyCount)
14380 {
14381 if (!(check_pQueueFamilyPropertyCount))
14382 {
14383 fprintf(stderr, "fatal: pQueueFamilyPropertyCount inconsistent between guest and host\n");
14384 }
14385 stream->read((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t));
14386 }
14387 // WARNING PTR CHECK
14388 VkQueueFamilyProperties2* check_pQueueFamilyProperties;
14389 check_pQueueFamilyProperties = (VkQueueFamilyProperties2*)(uintptr_t)stream->getBe64();
14390 if (pQueueFamilyProperties)
14391 {
14392 if (!(check_pQueueFamilyProperties))
14393 {
14394 fprintf(stderr, "fatal: pQueueFamilyProperties inconsistent between guest and host\n");
14395 }
14396 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
14397 {
14398 unmarshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
14399 }
14400 }
14401 if (pQueueFamilyProperties)
14402 {
14403 for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
14404 {
14405 transform_fromhost_VkQueueFamilyProperties2(mImpl->resources(), (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
14406 }
14407 }
14408 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR returnUnmarshal");
14409 mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties2KHR");;
14410 }
14411
vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)14412 void VkEncoder::vkGetPhysicalDeviceMemoryProperties2KHR(
14413 VkPhysicalDevice physicalDevice,
14414 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
14415 {
14416 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR encode");
14417 mImpl->log("start vkGetPhysicalDeviceMemoryProperties2KHR");
14418 auto stream = mImpl->stream();
14419 auto countingStream = mImpl->countingStream();
14420 auto resources = mImpl->resources();
14421 auto pool = mImpl->pool();
14422 stream->setHandleMapping(resources->unwrapMapping());
14423 VkPhysicalDevice local_physicalDevice;
14424 local_physicalDevice = physicalDevice;
14425 countingStream->rewind();
14426 {
14427 uint64_t cgen_var_989;
14428 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_989, 1);
14429 countingStream->write((uint64_t*)&cgen_var_989, 1 * 8);
14430 marshal_VkPhysicalDeviceMemoryProperties2(countingStream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
14431 }
14432 uint32_t packetSize_vkGetPhysicalDeviceMemoryProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14433 countingStream->rewind();
14434 uint32_t opcode_vkGetPhysicalDeviceMemoryProperties2KHR = OP_vkGetPhysicalDeviceMemoryProperties2KHR;
14435 stream->write(&opcode_vkGetPhysicalDeviceMemoryProperties2KHR, sizeof(uint32_t));
14436 stream->write(&packetSize_vkGetPhysicalDeviceMemoryProperties2KHR, sizeof(uint32_t));
14437 uint64_t cgen_var_990;
14438 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_990, 1);
14439 stream->write((uint64_t*)&cgen_var_990, 1 * 8);
14440 marshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
14441 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR readParams");
14442 unmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
14443 if (pMemoryProperties)
14444 {
14445 transform_fromhost_VkPhysicalDeviceMemoryProperties2(mImpl->resources(), (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
14446 }
14447 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR returnUnmarshal");
14448 mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties2KHR(this, physicalDevice, pMemoryProperties);
14449 mImpl->log("finish vkGetPhysicalDeviceMemoryProperties2KHR");;
14450 }
14451
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)14452 void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
14453 VkPhysicalDevice physicalDevice,
14454 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
14455 uint32_t* pPropertyCount,
14456 VkSparseImageFormatProperties2* pProperties)
14457 {
14458 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR encode");
14459 mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
14460 auto stream = mImpl->stream();
14461 auto countingStream = mImpl->countingStream();
14462 auto resources = mImpl->resources();
14463 auto pool = mImpl->pool();
14464 stream->setHandleMapping(resources->unwrapMapping());
14465 VkPhysicalDevice local_physicalDevice;
14466 VkPhysicalDeviceSparseImageFormatInfo2* local_pFormatInfo;
14467 local_physicalDevice = physicalDevice;
14468 local_pFormatInfo = nullptr;
14469 if (pFormatInfo)
14470 {
14471 local_pFormatInfo = (VkPhysicalDeviceSparseImageFormatInfo2*)pool->alloc(sizeof(const VkPhysicalDeviceSparseImageFormatInfo2));
14472 deepcopy_VkPhysicalDeviceSparseImageFormatInfo2(pool, pFormatInfo, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
14473 }
14474 if (local_pFormatInfo)
14475 {
14476 transform_tohost_VkPhysicalDeviceSparseImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
14477 }
14478 countingStream->rewind();
14479 {
14480 uint64_t cgen_var_991;
14481 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_991, 1);
14482 countingStream->write((uint64_t*)&cgen_var_991, 1 * 8);
14483 marshal_VkPhysicalDeviceSparseImageFormatInfo2(countingStream, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
14484 // WARNING PTR CHECK
14485 uint64_t cgen_var_992 = (uint64_t)(uintptr_t)pPropertyCount;
14486 countingStream->putBe64(cgen_var_992);
14487 if (pPropertyCount)
14488 {
14489 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
14490 }
14491 // WARNING PTR CHECK
14492 uint64_t cgen_var_993 = (uint64_t)(uintptr_t)pProperties;
14493 countingStream->putBe64(cgen_var_993);
14494 if (pProperties)
14495 {
14496 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
14497 {
14498 marshal_VkSparseImageFormatProperties2(countingStream, (VkSparseImageFormatProperties2*)(pProperties + i));
14499 }
14500 }
14501 }
14502 uint32_t packetSize_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14503 countingStream->rewind();
14504 uint32_t opcode_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
14505 stream->write(&opcode_vkGetPhysicalDeviceSparseImageFormatProperties2KHR, sizeof(uint32_t));
14506 stream->write(&packetSize_vkGetPhysicalDeviceSparseImageFormatProperties2KHR, sizeof(uint32_t));
14507 uint64_t cgen_var_994;
14508 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_994, 1);
14509 stream->write((uint64_t*)&cgen_var_994, 1 * 8);
14510 marshal_VkPhysicalDeviceSparseImageFormatInfo2(stream, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo));
14511 // WARNING PTR CHECK
14512 uint64_t cgen_var_995 = (uint64_t)(uintptr_t)pPropertyCount;
14513 stream->putBe64(cgen_var_995);
14514 if (pPropertyCount)
14515 {
14516 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
14517 }
14518 // WARNING PTR CHECK
14519 uint64_t cgen_var_996 = (uint64_t)(uintptr_t)pProperties;
14520 stream->putBe64(cgen_var_996);
14521 if (pProperties)
14522 {
14523 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
14524 {
14525 marshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
14526 }
14527 }
14528 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR readParams");
14529 // WARNING PTR CHECK
14530 uint32_t* check_pPropertyCount;
14531 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
14532 if (pPropertyCount)
14533 {
14534 if (!(check_pPropertyCount))
14535 {
14536 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
14537 }
14538 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
14539 }
14540 // WARNING PTR CHECK
14541 VkSparseImageFormatProperties2* check_pProperties;
14542 check_pProperties = (VkSparseImageFormatProperties2*)(uintptr_t)stream->getBe64();
14543 if (pProperties)
14544 {
14545 if (!(check_pProperties))
14546 {
14547 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
14548 }
14549 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
14550 {
14551 unmarshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
14552 }
14553 }
14554 if (pProperties)
14555 {
14556 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
14557 {
14558 transform_fromhost_VkSparseImageFormatProperties2(mImpl->resources(), (VkSparseImageFormatProperties2*)(pProperties + i));
14559 }
14560 }
14561 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR returnUnmarshal");
14562 mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties2KHR");;
14563 }
14564
14565 #endif
14566 #ifdef VK_KHR_device_group
vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)14567 void VkEncoder::vkGetDeviceGroupPeerMemoryFeaturesKHR(
14568 VkDevice device,
14569 uint32_t heapIndex,
14570 uint32_t localDeviceIndex,
14571 uint32_t remoteDeviceIndex,
14572 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
14573 {
14574 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR encode");
14575 mImpl->log("start vkGetDeviceGroupPeerMemoryFeaturesKHR");
14576 auto stream = mImpl->stream();
14577 auto countingStream = mImpl->countingStream();
14578 auto resources = mImpl->resources();
14579 auto pool = mImpl->pool();
14580 stream->setHandleMapping(resources->unwrapMapping());
14581 VkDevice local_device;
14582 uint32_t local_heapIndex;
14583 uint32_t local_localDeviceIndex;
14584 uint32_t local_remoteDeviceIndex;
14585 local_device = device;
14586 local_heapIndex = heapIndex;
14587 local_localDeviceIndex = localDeviceIndex;
14588 local_remoteDeviceIndex = remoteDeviceIndex;
14589 countingStream->rewind();
14590 {
14591 uint64_t cgen_var_999;
14592 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_999, 1);
14593 countingStream->write((uint64_t*)&cgen_var_999, 1 * 8);
14594 countingStream->write((uint32_t*)&local_heapIndex, sizeof(uint32_t));
14595 countingStream->write((uint32_t*)&local_localDeviceIndex, sizeof(uint32_t));
14596 countingStream->write((uint32_t*)&local_remoteDeviceIndex, sizeof(uint32_t));
14597 countingStream->write((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags));
14598 }
14599 uint32_t packetSize_vkGetDeviceGroupPeerMemoryFeaturesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14600 countingStream->rewind();
14601 uint32_t opcode_vkGetDeviceGroupPeerMemoryFeaturesKHR = OP_vkGetDeviceGroupPeerMemoryFeaturesKHR;
14602 stream->write(&opcode_vkGetDeviceGroupPeerMemoryFeaturesKHR, sizeof(uint32_t));
14603 stream->write(&packetSize_vkGetDeviceGroupPeerMemoryFeaturesKHR, sizeof(uint32_t));
14604 uint64_t cgen_var_1000;
14605 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1000, 1);
14606 stream->write((uint64_t*)&cgen_var_1000, 1 * 8);
14607 stream->write((uint32_t*)&local_heapIndex, sizeof(uint32_t));
14608 stream->write((uint32_t*)&local_localDeviceIndex, sizeof(uint32_t));
14609 stream->write((uint32_t*)&local_remoteDeviceIndex, sizeof(uint32_t));
14610 stream->write((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags));
14611 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR readParams");
14612 stream->read((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags));
14613 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR returnUnmarshal");
14614 mImpl->log("finish vkGetDeviceGroupPeerMemoryFeaturesKHR");;
14615 }
14616
vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask)14617 void VkEncoder::vkCmdSetDeviceMaskKHR(
14618 VkCommandBuffer commandBuffer,
14619 uint32_t deviceMask)
14620 {
14621 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR encode");
14622 mImpl->log("start vkCmdSetDeviceMaskKHR");
14623 auto stream = mImpl->stream();
14624 auto countingStream = mImpl->countingStream();
14625 auto resources = mImpl->resources();
14626 auto pool = mImpl->pool();
14627 stream->setHandleMapping(resources->unwrapMapping());
14628 VkCommandBuffer local_commandBuffer;
14629 uint32_t local_deviceMask;
14630 local_commandBuffer = commandBuffer;
14631 local_deviceMask = deviceMask;
14632 countingStream->rewind();
14633 {
14634 uint64_t cgen_var_1001;
14635 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1001, 1);
14636 countingStream->write((uint64_t*)&cgen_var_1001, 1 * 8);
14637 countingStream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t));
14638 }
14639 uint32_t packetSize_vkCmdSetDeviceMaskKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14640 countingStream->rewind();
14641 uint32_t opcode_vkCmdSetDeviceMaskKHR = OP_vkCmdSetDeviceMaskKHR;
14642 stream->write(&opcode_vkCmdSetDeviceMaskKHR, sizeof(uint32_t));
14643 stream->write(&packetSize_vkCmdSetDeviceMaskKHR, sizeof(uint32_t));
14644 uint64_t cgen_var_1002;
14645 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1002, 1);
14646 stream->write((uint64_t*)&cgen_var_1002, 1 * 8);
14647 stream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t));
14648 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR readParams");
14649 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR returnUnmarshal");
14650 mImpl->log("finish vkCmdSetDeviceMaskKHR");;
14651 }
14652
vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)14653 void VkEncoder::vkCmdDispatchBaseKHR(
14654 VkCommandBuffer commandBuffer,
14655 uint32_t baseGroupX,
14656 uint32_t baseGroupY,
14657 uint32_t baseGroupZ,
14658 uint32_t groupCountX,
14659 uint32_t groupCountY,
14660 uint32_t groupCountZ)
14661 {
14662 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR encode");
14663 mImpl->log("start vkCmdDispatchBaseKHR");
14664 auto stream = mImpl->stream();
14665 auto countingStream = mImpl->countingStream();
14666 auto resources = mImpl->resources();
14667 auto pool = mImpl->pool();
14668 stream->setHandleMapping(resources->unwrapMapping());
14669 VkCommandBuffer local_commandBuffer;
14670 uint32_t local_baseGroupX;
14671 uint32_t local_baseGroupY;
14672 uint32_t local_baseGroupZ;
14673 uint32_t local_groupCountX;
14674 uint32_t local_groupCountY;
14675 uint32_t local_groupCountZ;
14676 local_commandBuffer = commandBuffer;
14677 local_baseGroupX = baseGroupX;
14678 local_baseGroupY = baseGroupY;
14679 local_baseGroupZ = baseGroupZ;
14680 local_groupCountX = groupCountX;
14681 local_groupCountY = groupCountY;
14682 local_groupCountZ = groupCountZ;
14683 countingStream->rewind();
14684 {
14685 uint64_t cgen_var_1003;
14686 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1003, 1);
14687 countingStream->write((uint64_t*)&cgen_var_1003, 1 * 8);
14688 countingStream->write((uint32_t*)&local_baseGroupX, sizeof(uint32_t));
14689 countingStream->write((uint32_t*)&local_baseGroupY, sizeof(uint32_t));
14690 countingStream->write((uint32_t*)&local_baseGroupZ, sizeof(uint32_t));
14691 countingStream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t));
14692 countingStream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t));
14693 countingStream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t));
14694 }
14695 uint32_t packetSize_vkCmdDispatchBaseKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14696 countingStream->rewind();
14697 uint32_t opcode_vkCmdDispatchBaseKHR = OP_vkCmdDispatchBaseKHR;
14698 stream->write(&opcode_vkCmdDispatchBaseKHR, sizeof(uint32_t));
14699 stream->write(&packetSize_vkCmdDispatchBaseKHR, sizeof(uint32_t));
14700 uint64_t cgen_var_1004;
14701 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1004, 1);
14702 stream->write((uint64_t*)&cgen_var_1004, 1 * 8);
14703 stream->write((uint32_t*)&local_baseGroupX, sizeof(uint32_t));
14704 stream->write((uint32_t*)&local_baseGroupY, sizeof(uint32_t));
14705 stream->write((uint32_t*)&local_baseGroupZ, sizeof(uint32_t));
14706 stream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t));
14707 stream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t));
14708 stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t));
14709 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR readParams");
14710 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR returnUnmarshal");
14711 mImpl->log("finish vkCmdDispatchBaseKHR");;
14712 }
14713
14714 #endif
14715 #ifdef VK_KHR_shader_draw_parameters
14716 #endif
14717 #ifdef VK_KHR_maintenance1
vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)14718 void VkEncoder::vkTrimCommandPoolKHR(
14719 VkDevice device,
14720 VkCommandPool commandPool,
14721 VkCommandPoolTrimFlags flags)
14722 {
14723 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR encode");
14724 mImpl->log("start vkTrimCommandPoolKHR");
14725 auto stream = mImpl->stream();
14726 auto countingStream = mImpl->countingStream();
14727 auto resources = mImpl->resources();
14728 auto pool = mImpl->pool();
14729 stream->setHandleMapping(resources->unwrapMapping());
14730 VkDevice local_device;
14731 VkCommandPool local_commandPool;
14732 VkCommandPoolTrimFlags local_flags;
14733 local_device = device;
14734 local_commandPool = commandPool;
14735 local_flags = flags;
14736 countingStream->rewind();
14737 {
14738 uint64_t cgen_var_1005;
14739 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1005, 1);
14740 countingStream->write((uint64_t*)&cgen_var_1005, 1 * 8);
14741 uint64_t cgen_var_1006;
14742 countingStream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_1006, 1);
14743 countingStream->write((uint64_t*)&cgen_var_1006, 1 * 8);
14744 countingStream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags));
14745 }
14746 uint32_t packetSize_vkTrimCommandPoolKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14747 countingStream->rewind();
14748 uint32_t opcode_vkTrimCommandPoolKHR = OP_vkTrimCommandPoolKHR;
14749 stream->write(&opcode_vkTrimCommandPoolKHR, sizeof(uint32_t));
14750 stream->write(&packetSize_vkTrimCommandPoolKHR, sizeof(uint32_t));
14751 uint64_t cgen_var_1007;
14752 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1007, 1);
14753 stream->write((uint64_t*)&cgen_var_1007, 1 * 8);
14754 uint64_t cgen_var_1008;
14755 stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_1008, 1);
14756 stream->write((uint64_t*)&cgen_var_1008, 1 * 8);
14757 stream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags));
14758 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR readParams");
14759 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR returnUnmarshal");
14760 mImpl->log("finish vkTrimCommandPoolKHR");;
14761 }
14762
14763 #endif
14764 #ifdef VK_KHR_device_group_creation
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)14765 VkResult VkEncoder::vkEnumeratePhysicalDeviceGroupsKHR(
14766 VkInstance instance,
14767 uint32_t* pPhysicalDeviceGroupCount,
14768 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
14769 {
14770 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR encode");
14771 mImpl->log("start vkEnumeratePhysicalDeviceGroupsKHR");
14772 auto stream = mImpl->stream();
14773 auto countingStream = mImpl->countingStream();
14774 auto resources = mImpl->resources();
14775 auto pool = mImpl->pool();
14776 stream->setHandleMapping(resources->unwrapMapping());
14777 VkInstance local_instance;
14778 local_instance = instance;
14779 countingStream->rewind();
14780 {
14781 uint64_t cgen_var_1009;
14782 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1009, 1);
14783 countingStream->write((uint64_t*)&cgen_var_1009, 1 * 8);
14784 // WARNING PTR CHECK
14785 uint64_t cgen_var_1010 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount;
14786 countingStream->putBe64(cgen_var_1010);
14787 if (pPhysicalDeviceGroupCount)
14788 {
14789 countingStream->write((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t));
14790 }
14791 // WARNING PTR CHECK
14792 uint64_t cgen_var_1011 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties;
14793 countingStream->putBe64(cgen_var_1011);
14794 if (pPhysicalDeviceGroupProperties)
14795 {
14796 for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
14797 {
14798 marshal_VkPhysicalDeviceGroupProperties(countingStream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
14799 }
14800 }
14801 }
14802 uint32_t packetSize_vkEnumeratePhysicalDeviceGroupsKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14803 countingStream->rewind();
14804 uint32_t opcode_vkEnumeratePhysicalDeviceGroupsKHR = OP_vkEnumeratePhysicalDeviceGroupsKHR;
14805 stream->write(&opcode_vkEnumeratePhysicalDeviceGroupsKHR, sizeof(uint32_t));
14806 stream->write(&packetSize_vkEnumeratePhysicalDeviceGroupsKHR, sizeof(uint32_t));
14807 uint64_t cgen_var_1012;
14808 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1012, 1);
14809 stream->write((uint64_t*)&cgen_var_1012, 1 * 8);
14810 // WARNING PTR CHECK
14811 uint64_t cgen_var_1013 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount;
14812 stream->putBe64(cgen_var_1013);
14813 if (pPhysicalDeviceGroupCount)
14814 {
14815 stream->write((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t));
14816 }
14817 // WARNING PTR CHECK
14818 uint64_t cgen_var_1014 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties;
14819 stream->putBe64(cgen_var_1014);
14820 if (pPhysicalDeviceGroupProperties)
14821 {
14822 for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
14823 {
14824 marshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
14825 }
14826 }
14827 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR readParams");
14828 // WARNING PTR CHECK
14829 uint32_t* check_pPhysicalDeviceGroupCount;
14830 check_pPhysicalDeviceGroupCount = (uint32_t*)(uintptr_t)stream->getBe64();
14831 if (pPhysicalDeviceGroupCount)
14832 {
14833 if (!(check_pPhysicalDeviceGroupCount))
14834 {
14835 fprintf(stderr, "fatal: pPhysicalDeviceGroupCount inconsistent between guest and host\n");
14836 }
14837 stream->read((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t));
14838 }
14839 // WARNING PTR CHECK
14840 VkPhysicalDeviceGroupProperties* check_pPhysicalDeviceGroupProperties;
14841 check_pPhysicalDeviceGroupProperties = (VkPhysicalDeviceGroupProperties*)(uintptr_t)stream->getBe64();
14842 if (pPhysicalDeviceGroupProperties)
14843 {
14844 if (!(check_pPhysicalDeviceGroupProperties))
14845 {
14846 fprintf(stderr, "fatal: pPhysicalDeviceGroupProperties inconsistent between guest and host\n");
14847 }
14848 for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
14849 {
14850 unmarshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
14851 }
14852 }
14853 if (pPhysicalDeviceGroupProperties)
14854 {
14855 for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
14856 {
14857 transform_fromhost_VkPhysicalDeviceGroupProperties(mImpl->resources(), (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
14858 }
14859 }
14860 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR returnUnmarshal");
14861 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
14862 stream->read(&vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return, sizeof(VkResult));
14863 countingStream->clearPool();
14864 stream->clearPool();
14865 pool->freeAll();
14866 mImpl->log("finish vkEnumeratePhysicalDeviceGroupsKHR");;
14867 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
14868 }
14869
14870 #endif
14871 #ifdef VK_KHR_external_memory_capabilities
vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)14872 void VkEncoder::vkGetPhysicalDeviceExternalBufferPropertiesKHR(
14873 VkPhysicalDevice physicalDevice,
14874 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
14875 VkExternalBufferProperties* pExternalBufferProperties)
14876 {
14877 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR encode");
14878 mImpl->log("start vkGetPhysicalDeviceExternalBufferPropertiesKHR");
14879 auto stream = mImpl->stream();
14880 auto countingStream = mImpl->countingStream();
14881 auto resources = mImpl->resources();
14882 auto pool = mImpl->pool();
14883 stream->setHandleMapping(resources->unwrapMapping());
14884 VkPhysicalDevice local_physicalDevice;
14885 VkPhysicalDeviceExternalBufferInfo* local_pExternalBufferInfo;
14886 local_physicalDevice = physicalDevice;
14887 local_pExternalBufferInfo = nullptr;
14888 if (pExternalBufferInfo)
14889 {
14890 local_pExternalBufferInfo = (VkPhysicalDeviceExternalBufferInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalBufferInfo));
14891 deepcopy_VkPhysicalDeviceExternalBufferInfo(pool, pExternalBufferInfo, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
14892 }
14893 if (local_pExternalBufferInfo)
14894 {
14895 mImpl->resources()->transformImpl_VkPhysicalDeviceExternalBufferInfo_tohost(local_pExternalBufferInfo, 1);
14896 transform_tohost_VkPhysicalDeviceExternalBufferInfo(mImpl->resources(), (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
14897 }
14898 countingStream->rewind();
14899 {
14900 uint64_t cgen_var_1017;
14901 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1017, 1);
14902 countingStream->write((uint64_t*)&cgen_var_1017, 1 * 8);
14903 marshal_VkPhysicalDeviceExternalBufferInfo(countingStream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
14904 marshal_VkExternalBufferProperties(countingStream, (VkExternalBufferProperties*)(pExternalBufferProperties));
14905 }
14906 uint32_t packetSize_vkGetPhysicalDeviceExternalBufferPropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14907 countingStream->rewind();
14908 uint32_t opcode_vkGetPhysicalDeviceExternalBufferPropertiesKHR = OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR;
14909 stream->write(&opcode_vkGetPhysicalDeviceExternalBufferPropertiesKHR, sizeof(uint32_t));
14910 stream->write(&packetSize_vkGetPhysicalDeviceExternalBufferPropertiesKHR, sizeof(uint32_t));
14911 uint64_t cgen_var_1018;
14912 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1018, 1);
14913 stream->write((uint64_t*)&cgen_var_1018, 1 * 8);
14914 marshal_VkPhysicalDeviceExternalBufferInfo(stream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
14915 marshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
14916 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR readParams");
14917 unmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
14918 if (pExternalBufferProperties)
14919 {
14920 mImpl->resources()->transformImpl_VkExternalBufferProperties_fromhost(pExternalBufferProperties, 1);
14921 transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties));
14922 }
14923 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR returnUnmarshal");
14924 mImpl->log("finish vkGetPhysicalDeviceExternalBufferPropertiesKHR");;
14925 }
14926
14927 #endif
14928 #ifdef VK_KHR_external_memory
14929 #endif
14930 #ifdef VK_KHR_external_memory_win32
vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)14931 VkResult VkEncoder::vkGetMemoryWin32HandleKHR(
14932 VkDevice device,
14933 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
14934 HANDLE* pHandle)
14935 {
14936 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR encode");
14937 mImpl->log("start vkGetMemoryWin32HandleKHR");
14938 auto stream = mImpl->stream();
14939 auto countingStream = mImpl->countingStream();
14940 auto resources = mImpl->resources();
14941 auto pool = mImpl->pool();
14942 stream->setHandleMapping(resources->unwrapMapping());
14943 VkDevice local_device;
14944 VkMemoryGetWin32HandleInfoKHR* local_pGetWin32HandleInfo;
14945 local_device = device;
14946 local_pGetWin32HandleInfo = nullptr;
14947 if (pGetWin32HandleInfo)
14948 {
14949 local_pGetWin32HandleInfo = (VkMemoryGetWin32HandleInfoKHR*)pool->alloc(sizeof(const VkMemoryGetWin32HandleInfoKHR));
14950 deepcopy_VkMemoryGetWin32HandleInfoKHR(pool, pGetWin32HandleInfo, (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
14951 }
14952 if (local_pGetWin32HandleInfo)
14953 {
14954 transform_tohost_VkMemoryGetWin32HandleInfoKHR(mImpl->resources(), (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
14955 }
14956 countingStream->rewind();
14957 {
14958 uint64_t cgen_var_1019;
14959 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1019, 1);
14960 countingStream->write((uint64_t*)&cgen_var_1019, 1 * 8);
14961 marshal_VkMemoryGetWin32HandleInfoKHR(countingStream, (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
14962 countingStream->write((HANDLE*)pHandle, sizeof(HANDLE));
14963 }
14964 uint32_t packetSize_vkGetMemoryWin32HandleKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
14965 countingStream->rewind();
14966 uint32_t opcode_vkGetMemoryWin32HandleKHR = OP_vkGetMemoryWin32HandleKHR;
14967 stream->write(&opcode_vkGetMemoryWin32HandleKHR, sizeof(uint32_t));
14968 stream->write(&packetSize_vkGetMemoryWin32HandleKHR, sizeof(uint32_t));
14969 uint64_t cgen_var_1020;
14970 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1020, 1);
14971 stream->write((uint64_t*)&cgen_var_1020, 1 * 8);
14972 marshal_VkMemoryGetWin32HandleInfoKHR(stream, (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
14973 stream->write((HANDLE*)pHandle, sizeof(HANDLE));
14974 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR readParams");
14975 stream->read((HANDLE*)pHandle, sizeof(HANDLE));
14976 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR returnUnmarshal");
14977 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
14978 stream->read(&vkGetMemoryWin32HandleKHR_VkResult_return, sizeof(VkResult));
14979 countingStream->clearPool();
14980 stream->clearPool();
14981 pool->freeAll();
14982 mImpl->log("finish vkGetMemoryWin32HandleKHR");;
14983 return vkGetMemoryWin32HandleKHR_VkResult_return;
14984 }
14985
vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties)14986 VkResult VkEncoder::vkGetMemoryWin32HandlePropertiesKHR(
14987 VkDevice device,
14988 VkExternalMemoryHandleTypeFlagBits handleType,
14989 HANDLE handle,
14990 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
14991 {
14992 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR encode");
14993 mImpl->log("start vkGetMemoryWin32HandlePropertiesKHR");
14994 auto stream = mImpl->stream();
14995 auto countingStream = mImpl->countingStream();
14996 auto resources = mImpl->resources();
14997 auto pool = mImpl->pool();
14998 stream->setHandleMapping(resources->unwrapMapping());
14999 VkDevice local_device;
15000 VkExternalMemoryHandleTypeFlagBits local_handleType;
15001 HANDLE local_handle;
15002 local_device = device;
15003 local_handleType = handleType;
15004 local_handle = handle;
15005 countingStream->rewind();
15006 {
15007 uint64_t cgen_var_1021;
15008 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1021, 1);
15009 countingStream->write((uint64_t*)&cgen_var_1021, 1 * 8);
15010 countingStream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
15011 countingStream->write((HANDLE*)&local_handle, sizeof(HANDLE));
15012 marshal_VkMemoryWin32HandlePropertiesKHR(countingStream, (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties));
15013 }
15014 uint32_t packetSize_vkGetMemoryWin32HandlePropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15015 countingStream->rewind();
15016 uint32_t opcode_vkGetMemoryWin32HandlePropertiesKHR = OP_vkGetMemoryWin32HandlePropertiesKHR;
15017 stream->write(&opcode_vkGetMemoryWin32HandlePropertiesKHR, sizeof(uint32_t));
15018 stream->write(&packetSize_vkGetMemoryWin32HandlePropertiesKHR, sizeof(uint32_t));
15019 uint64_t cgen_var_1022;
15020 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1022, 1);
15021 stream->write((uint64_t*)&cgen_var_1022, 1 * 8);
15022 stream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
15023 stream->write((HANDLE*)&local_handle, sizeof(HANDLE));
15024 marshal_VkMemoryWin32HandlePropertiesKHR(stream, (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties));
15025 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR readParams");
15026 unmarshal_VkMemoryWin32HandlePropertiesKHR(stream, (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties));
15027 if (pMemoryWin32HandleProperties)
15028 {
15029 transform_fromhost_VkMemoryWin32HandlePropertiesKHR(mImpl->resources(), (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties));
15030 }
15031 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR returnUnmarshal");
15032 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
15033 stream->read(&vkGetMemoryWin32HandlePropertiesKHR_VkResult_return, sizeof(VkResult));
15034 countingStream->clearPool();
15035 stream->clearPool();
15036 pool->freeAll();
15037 mImpl->log("finish vkGetMemoryWin32HandlePropertiesKHR");;
15038 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
15039 }
15040
15041 #endif
15042 #ifdef VK_KHR_external_memory_fd
vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd)15043 VkResult VkEncoder::vkGetMemoryFdKHR(
15044 VkDevice device,
15045 const VkMemoryGetFdInfoKHR* pGetFdInfo,
15046 int* pFd)
15047 {
15048 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR encode");
15049 mImpl->log("start vkGetMemoryFdKHR");
15050 auto stream = mImpl->stream();
15051 auto countingStream = mImpl->countingStream();
15052 auto resources = mImpl->resources();
15053 auto pool = mImpl->pool();
15054 stream->setHandleMapping(resources->unwrapMapping());
15055 VkDevice local_device;
15056 VkMemoryGetFdInfoKHR* local_pGetFdInfo;
15057 local_device = device;
15058 local_pGetFdInfo = nullptr;
15059 if (pGetFdInfo)
15060 {
15061 local_pGetFdInfo = (VkMemoryGetFdInfoKHR*)pool->alloc(sizeof(const VkMemoryGetFdInfoKHR));
15062 deepcopy_VkMemoryGetFdInfoKHR(pool, pGetFdInfo, (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo));
15063 }
15064 if (local_pGetFdInfo)
15065 {
15066 transform_tohost_VkMemoryGetFdInfoKHR(mImpl->resources(), (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo));
15067 }
15068 countingStream->rewind();
15069 {
15070 uint64_t cgen_var_1023;
15071 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1023, 1);
15072 countingStream->write((uint64_t*)&cgen_var_1023, 1 * 8);
15073 marshal_VkMemoryGetFdInfoKHR(countingStream, (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo));
15074 countingStream->write((int*)pFd, sizeof(int));
15075 }
15076 uint32_t packetSize_vkGetMemoryFdKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15077 countingStream->rewind();
15078 uint32_t opcode_vkGetMemoryFdKHR = OP_vkGetMemoryFdKHR;
15079 stream->write(&opcode_vkGetMemoryFdKHR, sizeof(uint32_t));
15080 stream->write(&packetSize_vkGetMemoryFdKHR, sizeof(uint32_t));
15081 uint64_t cgen_var_1024;
15082 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1024, 1);
15083 stream->write((uint64_t*)&cgen_var_1024, 1 * 8);
15084 marshal_VkMemoryGetFdInfoKHR(stream, (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo));
15085 stream->write((int*)pFd, sizeof(int));
15086 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR readParams");
15087 stream->read((int*)pFd, sizeof(int));
15088 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR returnUnmarshal");
15089 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
15090 stream->read(&vkGetMemoryFdKHR_VkResult_return, sizeof(VkResult));
15091 countingStream->clearPool();
15092 stream->clearPool();
15093 pool->freeAll();
15094 mImpl->log("finish vkGetMemoryFdKHR");;
15095 return vkGetMemoryFdKHR_VkResult_return;
15096 }
15097
vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties)15098 VkResult VkEncoder::vkGetMemoryFdPropertiesKHR(
15099 VkDevice device,
15100 VkExternalMemoryHandleTypeFlagBits handleType,
15101 int fd,
15102 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
15103 {
15104 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR encode");
15105 mImpl->log("start vkGetMemoryFdPropertiesKHR");
15106 auto stream = mImpl->stream();
15107 auto countingStream = mImpl->countingStream();
15108 auto resources = mImpl->resources();
15109 auto pool = mImpl->pool();
15110 stream->setHandleMapping(resources->unwrapMapping());
15111 VkDevice local_device;
15112 VkExternalMemoryHandleTypeFlagBits local_handleType;
15113 int local_fd;
15114 local_device = device;
15115 local_handleType = handleType;
15116 local_fd = fd;
15117 countingStream->rewind();
15118 {
15119 uint64_t cgen_var_1025;
15120 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1025, 1);
15121 countingStream->write((uint64_t*)&cgen_var_1025, 1 * 8);
15122 countingStream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
15123 countingStream->write((int*)&local_fd, sizeof(int));
15124 marshal_VkMemoryFdPropertiesKHR(countingStream, (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties));
15125 }
15126 uint32_t packetSize_vkGetMemoryFdPropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15127 countingStream->rewind();
15128 uint32_t opcode_vkGetMemoryFdPropertiesKHR = OP_vkGetMemoryFdPropertiesKHR;
15129 stream->write(&opcode_vkGetMemoryFdPropertiesKHR, sizeof(uint32_t));
15130 stream->write(&packetSize_vkGetMemoryFdPropertiesKHR, sizeof(uint32_t));
15131 uint64_t cgen_var_1026;
15132 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1026, 1);
15133 stream->write((uint64_t*)&cgen_var_1026, 1 * 8);
15134 stream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
15135 stream->write((int*)&local_fd, sizeof(int));
15136 marshal_VkMemoryFdPropertiesKHR(stream, (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties));
15137 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR readParams");
15138 unmarshal_VkMemoryFdPropertiesKHR(stream, (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties));
15139 if (pMemoryFdProperties)
15140 {
15141 transform_fromhost_VkMemoryFdPropertiesKHR(mImpl->resources(), (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties));
15142 }
15143 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR returnUnmarshal");
15144 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
15145 stream->read(&vkGetMemoryFdPropertiesKHR_VkResult_return, sizeof(VkResult));
15146 countingStream->clearPool();
15147 stream->clearPool();
15148 pool->freeAll();
15149 mImpl->log("finish vkGetMemoryFdPropertiesKHR");;
15150 return vkGetMemoryFdPropertiesKHR_VkResult_return;
15151 }
15152
15153 #endif
15154 #ifdef VK_KHR_win32_keyed_mutex
15155 #endif
15156 #ifdef VK_KHR_external_semaphore_capabilities
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)15157 void VkEncoder::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
15158 VkPhysicalDevice physicalDevice,
15159 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
15160 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
15161 {
15162 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR encode");
15163 mImpl->log("start vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
15164 auto stream = mImpl->stream();
15165 auto countingStream = mImpl->countingStream();
15166 auto resources = mImpl->resources();
15167 auto pool = mImpl->pool();
15168 stream->setHandleMapping(resources->unwrapMapping());
15169 VkPhysicalDevice local_physicalDevice;
15170 VkPhysicalDeviceExternalSemaphoreInfo* local_pExternalSemaphoreInfo;
15171 local_physicalDevice = physicalDevice;
15172 local_pExternalSemaphoreInfo = nullptr;
15173 if (pExternalSemaphoreInfo)
15174 {
15175 local_pExternalSemaphoreInfo = (VkPhysicalDeviceExternalSemaphoreInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalSemaphoreInfo));
15176 deepcopy_VkPhysicalDeviceExternalSemaphoreInfo(pool, pExternalSemaphoreInfo, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
15177 }
15178 if (local_pExternalSemaphoreInfo)
15179 {
15180 transform_tohost_VkPhysicalDeviceExternalSemaphoreInfo(mImpl->resources(), (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
15181 }
15182 countingStream->rewind();
15183 {
15184 uint64_t cgen_var_1027;
15185 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1027, 1);
15186 countingStream->write((uint64_t*)&cgen_var_1027, 1 * 8);
15187 marshal_VkPhysicalDeviceExternalSemaphoreInfo(countingStream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
15188 marshal_VkExternalSemaphoreProperties(countingStream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
15189 }
15190 uint32_t packetSize_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15191 countingStream->rewind();
15192 uint32_t opcode_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
15193 stream->write(&opcode_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, sizeof(uint32_t));
15194 stream->write(&packetSize_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, sizeof(uint32_t));
15195 uint64_t cgen_var_1028;
15196 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1028, 1);
15197 stream->write((uint64_t*)&cgen_var_1028, 1 * 8);
15198 marshal_VkPhysicalDeviceExternalSemaphoreInfo(stream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
15199 marshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
15200 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR readParams");
15201 unmarshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
15202 if (pExternalSemaphoreProperties)
15203 {
15204 transform_fromhost_VkExternalSemaphoreProperties(mImpl->resources(), (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
15205 }
15206 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR returnUnmarshal");
15207 mImpl->log("finish vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");;
15208 }
15209
15210 #endif
15211 #ifdef VK_KHR_external_semaphore
15212 #endif
15213 #ifdef VK_KHR_external_semaphore_win32
vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo)15214 VkResult VkEncoder::vkImportSemaphoreWin32HandleKHR(
15215 VkDevice device,
15216 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
15217 {
15218 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR encode");
15219 mImpl->log("start vkImportSemaphoreWin32HandleKHR");
15220 auto stream = mImpl->stream();
15221 auto countingStream = mImpl->countingStream();
15222 auto resources = mImpl->resources();
15223 auto pool = mImpl->pool();
15224 stream->setHandleMapping(resources->unwrapMapping());
15225 VkDevice local_device;
15226 VkImportSemaphoreWin32HandleInfoKHR* local_pImportSemaphoreWin32HandleInfo;
15227 local_device = device;
15228 local_pImportSemaphoreWin32HandleInfo = nullptr;
15229 if (pImportSemaphoreWin32HandleInfo)
15230 {
15231 local_pImportSemaphoreWin32HandleInfo = (VkImportSemaphoreWin32HandleInfoKHR*)pool->alloc(sizeof(const VkImportSemaphoreWin32HandleInfoKHR));
15232 deepcopy_VkImportSemaphoreWin32HandleInfoKHR(pool, pImportSemaphoreWin32HandleInfo, (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo));
15233 }
15234 if (local_pImportSemaphoreWin32HandleInfo)
15235 {
15236 transform_tohost_VkImportSemaphoreWin32HandleInfoKHR(mImpl->resources(), (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo));
15237 }
15238 countingStream->rewind();
15239 {
15240 uint64_t cgen_var_1029;
15241 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1029, 1);
15242 countingStream->write((uint64_t*)&cgen_var_1029, 1 * 8);
15243 marshal_VkImportSemaphoreWin32HandleInfoKHR(countingStream, (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo));
15244 }
15245 uint32_t packetSize_vkImportSemaphoreWin32HandleKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15246 countingStream->rewind();
15247 uint32_t opcode_vkImportSemaphoreWin32HandleKHR = OP_vkImportSemaphoreWin32HandleKHR;
15248 stream->write(&opcode_vkImportSemaphoreWin32HandleKHR, sizeof(uint32_t));
15249 stream->write(&packetSize_vkImportSemaphoreWin32HandleKHR, sizeof(uint32_t));
15250 uint64_t cgen_var_1030;
15251 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1030, 1);
15252 stream->write((uint64_t*)&cgen_var_1030, 1 * 8);
15253 marshal_VkImportSemaphoreWin32HandleInfoKHR(stream, (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo));
15254 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR readParams");
15255 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR returnUnmarshal");
15256 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
15257 stream->read(&vkImportSemaphoreWin32HandleKHR_VkResult_return, sizeof(VkResult));
15258 countingStream->clearPool();
15259 stream->clearPool();
15260 pool->freeAll();
15261 mImpl->log("finish vkImportSemaphoreWin32HandleKHR");;
15262 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
15263 }
15264
vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)15265 VkResult VkEncoder::vkGetSemaphoreWin32HandleKHR(
15266 VkDevice device,
15267 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
15268 HANDLE* pHandle)
15269 {
15270 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR encode");
15271 mImpl->log("start vkGetSemaphoreWin32HandleKHR");
15272 auto stream = mImpl->stream();
15273 auto countingStream = mImpl->countingStream();
15274 auto resources = mImpl->resources();
15275 auto pool = mImpl->pool();
15276 stream->setHandleMapping(resources->unwrapMapping());
15277 VkDevice local_device;
15278 VkSemaphoreGetWin32HandleInfoKHR* local_pGetWin32HandleInfo;
15279 local_device = device;
15280 local_pGetWin32HandleInfo = nullptr;
15281 if (pGetWin32HandleInfo)
15282 {
15283 local_pGetWin32HandleInfo = (VkSemaphoreGetWin32HandleInfoKHR*)pool->alloc(sizeof(const VkSemaphoreGetWin32HandleInfoKHR));
15284 deepcopy_VkSemaphoreGetWin32HandleInfoKHR(pool, pGetWin32HandleInfo, (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
15285 }
15286 if (local_pGetWin32HandleInfo)
15287 {
15288 transform_tohost_VkSemaphoreGetWin32HandleInfoKHR(mImpl->resources(), (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
15289 }
15290 countingStream->rewind();
15291 {
15292 uint64_t cgen_var_1031;
15293 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1031, 1);
15294 countingStream->write((uint64_t*)&cgen_var_1031, 1 * 8);
15295 marshal_VkSemaphoreGetWin32HandleInfoKHR(countingStream, (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
15296 countingStream->write((HANDLE*)pHandle, sizeof(HANDLE));
15297 }
15298 uint32_t packetSize_vkGetSemaphoreWin32HandleKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15299 countingStream->rewind();
15300 uint32_t opcode_vkGetSemaphoreWin32HandleKHR = OP_vkGetSemaphoreWin32HandleKHR;
15301 stream->write(&opcode_vkGetSemaphoreWin32HandleKHR, sizeof(uint32_t));
15302 stream->write(&packetSize_vkGetSemaphoreWin32HandleKHR, sizeof(uint32_t));
15303 uint64_t cgen_var_1032;
15304 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1032, 1);
15305 stream->write((uint64_t*)&cgen_var_1032, 1 * 8);
15306 marshal_VkSemaphoreGetWin32HandleInfoKHR(stream, (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
15307 stream->write((HANDLE*)pHandle, sizeof(HANDLE));
15308 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR readParams");
15309 stream->read((HANDLE*)pHandle, sizeof(HANDLE));
15310 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR returnUnmarshal");
15311 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
15312 stream->read(&vkGetSemaphoreWin32HandleKHR_VkResult_return, sizeof(VkResult));
15313 countingStream->clearPool();
15314 stream->clearPool();
15315 pool->freeAll();
15316 mImpl->log("finish vkGetSemaphoreWin32HandleKHR");;
15317 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
15318 }
15319
15320 #endif
15321 #ifdef VK_KHR_external_semaphore_fd
vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)15322 VkResult VkEncoder::vkImportSemaphoreFdKHR(
15323 VkDevice device,
15324 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
15325 {
15326 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR encode");
15327 mImpl->log("start vkImportSemaphoreFdKHR");
15328 auto stream = mImpl->stream();
15329 auto countingStream = mImpl->countingStream();
15330 auto resources = mImpl->resources();
15331 auto pool = mImpl->pool();
15332 stream->setHandleMapping(resources->unwrapMapping());
15333 VkDevice local_device;
15334 VkImportSemaphoreFdInfoKHR* local_pImportSemaphoreFdInfo;
15335 local_device = device;
15336 local_pImportSemaphoreFdInfo = nullptr;
15337 if (pImportSemaphoreFdInfo)
15338 {
15339 local_pImportSemaphoreFdInfo = (VkImportSemaphoreFdInfoKHR*)pool->alloc(sizeof(const VkImportSemaphoreFdInfoKHR));
15340 deepcopy_VkImportSemaphoreFdInfoKHR(pool, pImportSemaphoreFdInfo, (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo));
15341 }
15342 if (local_pImportSemaphoreFdInfo)
15343 {
15344 transform_tohost_VkImportSemaphoreFdInfoKHR(mImpl->resources(), (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo));
15345 }
15346 countingStream->rewind();
15347 {
15348 uint64_t cgen_var_1033;
15349 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1033, 1);
15350 countingStream->write((uint64_t*)&cgen_var_1033, 1 * 8);
15351 marshal_VkImportSemaphoreFdInfoKHR(countingStream, (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo));
15352 }
15353 uint32_t packetSize_vkImportSemaphoreFdKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15354 countingStream->rewind();
15355 uint32_t opcode_vkImportSemaphoreFdKHR = OP_vkImportSemaphoreFdKHR;
15356 stream->write(&opcode_vkImportSemaphoreFdKHR, sizeof(uint32_t));
15357 stream->write(&packetSize_vkImportSemaphoreFdKHR, sizeof(uint32_t));
15358 uint64_t cgen_var_1034;
15359 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1034, 1);
15360 stream->write((uint64_t*)&cgen_var_1034, 1 * 8);
15361 marshal_VkImportSemaphoreFdInfoKHR(stream, (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo));
15362 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR readParams");
15363 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR returnUnmarshal");
15364 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
15365 stream->read(&vkImportSemaphoreFdKHR_VkResult_return, sizeof(VkResult));
15366 countingStream->clearPool();
15367 stream->clearPool();
15368 pool->freeAll();
15369 mImpl->log("finish vkImportSemaphoreFdKHR");;
15370 return vkImportSemaphoreFdKHR_VkResult_return;
15371 }
15372
vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)15373 VkResult VkEncoder::vkGetSemaphoreFdKHR(
15374 VkDevice device,
15375 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
15376 int* pFd)
15377 {
15378 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR encode");
15379 mImpl->log("start vkGetSemaphoreFdKHR");
15380 auto stream = mImpl->stream();
15381 auto countingStream = mImpl->countingStream();
15382 auto resources = mImpl->resources();
15383 auto pool = mImpl->pool();
15384 stream->setHandleMapping(resources->unwrapMapping());
15385 VkDevice local_device;
15386 VkSemaphoreGetFdInfoKHR* local_pGetFdInfo;
15387 local_device = device;
15388 local_pGetFdInfo = nullptr;
15389 if (pGetFdInfo)
15390 {
15391 local_pGetFdInfo = (VkSemaphoreGetFdInfoKHR*)pool->alloc(sizeof(const VkSemaphoreGetFdInfoKHR));
15392 deepcopy_VkSemaphoreGetFdInfoKHR(pool, pGetFdInfo, (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo));
15393 }
15394 if (local_pGetFdInfo)
15395 {
15396 transform_tohost_VkSemaphoreGetFdInfoKHR(mImpl->resources(), (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo));
15397 }
15398 countingStream->rewind();
15399 {
15400 uint64_t cgen_var_1035;
15401 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1035, 1);
15402 countingStream->write((uint64_t*)&cgen_var_1035, 1 * 8);
15403 marshal_VkSemaphoreGetFdInfoKHR(countingStream, (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo));
15404 countingStream->write((int*)pFd, sizeof(int));
15405 }
15406 uint32_t packetSize_vkGetSemaphoreFdKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15407 countingStream->rewind();
15408 uint32_t opcode_vkGetSemaphoreFdKHR = OP_vkGetSemaphoreFdKHR;
15409 stream->write(&opcode_vkGetSemaphoreFdKHR, sizeof(uint32_t));
15410 stream->write(&packetSize_vkGetSemaphoreFdKHR, sizeof(uint32_t));
15411 uint64_t cgen_var_1036;
15412 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1036, 1);
15413 stream->write((uint64_t*)&cgen_var_1036, 1 * 8);
15414 marshal_VkSemaphoreGetFdInfoKHR(stream, (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo));
15415 stream->write((int*)pFd, sizeof(int));
15416 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR readParams");
15417 stream->read((int*)pFd, sizeof(int));
15418 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR returnUnmarshal");
15419 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
15420 stream->read(&vkGetSemaphoreFdKHR_VkResult_return, sizeof(VkResult));
15421 countingStream->clearPool();
15422 stream->clearPool();
15423 pool->freeAll();
15424 mImpl->log("finish vkGetSemaphoreFdKHR");;
15425 return vkGetSemaphoreFdKHR_VkResult_return;
15426 }
15427
15428 #endif
15429 #ifdef VK_KHR_push_descriptor
vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites)15430 void VkEncoder::vkCmdPushDescriptorSetKHR(
15431 VkCommandBuffer commandBuffer,
15432 VkPipelineBindPoint pipelineBindPoint,
15433 VkPipelineLayout layout,
15434 uint32_t set,
15435 uint32_t descriptorWriteCount,
15436 const VkWriteDescriptorSet* pDescriptorWrites)
15437 {
15438 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR encode");
15439 mImpl->log("start vkCmdPushDescriptorSetKHR");
15440 auto stream = mImpl->stream();
15441 auto countingStream = mImpl->countingStream();
15442 auto resources = mImpl->resources();
15443 auto pool = mImpl->pool();
15444 stream->setHandleMapping(resources->unwrapMapping());
15445 VkCommandBuffer local_commandBuffer;
15446 VkPipelineBindPoint local_pipelineBindPoint;
15447 VkPipelineLayout local_layout;
15448 uint32_t local_set;
15449 uint32_t local_descriptorWriteCount;
15450 VkWriteDescriptorSet* local_pDescriptorWrites;
15451 local_commandBuffer = commandBuffer;
15452 local_pipelineBindPoint = pipelineBindPoint;
15453 local_layout = layout;
15454 local_set = set;
15455 local_descriptorWriteCount = descriptorWriteCount;
15456 local_pDescriptorWrites = nullptr;
15457 if (pDescriptorWrites)
15458 {
15459 local_pDescriptorWrites = (VkWriteDescriptorSet*)pool->alloc(((descriptorWriteCount)) * sizeof(const VkWriteDescriptorSet));
15460 for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
15461 {
15462 deepcopy_VkWriteDescriptorSet(pool, pDescriptorWrites + i, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
15463 }
15464 }
15465 if (local_pDescriptorWrites)
15466 {
15467 for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
15468 {
15469 transform_tohost_VkWriteDescriptorSet(mImpl->resources(), (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
15470 }
15471 }
15472 countingStream->rewind();
15473 {
15474 uint64_t cgen_var_1037;
15475 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1037, 1);
15476 countingStream->write((uint64_t*)&cgen_var_1037, 1 * 8);
15477 countingStream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint));
15478 uint64_t cgen_var_1038;
15479 countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_1038, 1);
15480 countingStream->write((uint64_t*)&cgen_var_1038, 1 * 8);
15481 countingStream->write((uint32_t*)&local_set, sizeof(uint32_t));
15482 countingStream->write((uint32_t*)&local_descriptorWriteCount, sizeof(uint32_t));
15483 for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
15484 {
15485 marshal_VkWriteDescriptorSet(countingStream, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
15486 }
15487 }
15488 uint32_t packetSize_vkCmdPushDescriptorSetKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15489 countingStream->rewind();
15490 uint32_t opcode_vkCmdPushDescriptorSetKHR = OP_vkCmdPushDescriptorSetKHR;
15491 stream->write(&opcode_vkCmdPushDescriptorSetKHR, sizeof(uint32_t));
15492 stream->write(&packetSize_vkCmdPushDescriptorSetKHR, sizeof(uint32_t));
15493 uint64_t cgen_var_1039;
15494 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1039, 1);
15495 stream->write((uint64_t*)&cgen_var_1039, 1 * 8);
15496 stream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint));
15497 uint64_t cgen_var_1040;
15498 stream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_1040, 1);
15499 stream->write((uint64_t*)&cgen_var_1040, 1 * 8);
15500 stream->write((uint32_t*)&local_set, sizeof(uint32_t));
15501 stream->write((uint32_t*)&local_descriptorWriteCount, sizeof(uint32_t));
15502 for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
15503 {
15504 marshal_VkWriteDescriptorSet(stream, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
15505 }
15506 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR readParams");
15507 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR returnUnmarshal");
15508 mImpl->log("finish vkCmdPushDescriptorSetKHR");;
15509 }
15510
vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData)15511 void VkEncoder::vkCmdPushDescriptorSetWithTemplateKHR(
15512 VkCommandBuffer commandBuffer,
15513 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
15514 VkPipelineLayout layout,
15515 uint32_t set,
15516 const void* pData)
15517 {
15518 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR encode");
15519 mImpl->log("start vkCmdPushDescriptorSetWithTemplateKHR");
15520 auto stream = mImpl->stream();
15521 auto countingStream = mImpl->countingStream();
15522 auto resources = mImpl->resources();
15523 auto pool = mImpl->pool();
15524 stream->setHandleMapping(resources->unwrapMapping());
15525 VkCommandBuffer local_commandBuffer;
15526 VkDescriptorUpdateTemplate local_descriptorUpdateTemplate;
15527 VkPipelineLayout local_layout;
15528 uint32_t local_set;
15529 void* local_pData;
15530 local_commandBuffer = commandBuffer;
15531 local_descriptorUpdateTemplate = descriptorUpdateTemplate;
15532 local_layout = layout;
15533 local_set = set;
15534 local_pData = nullptr;
15535 if (pData)
15536 {
15537 local_pData = (void*)pool->dupArray(pData, sizeof(const uint8_t));
15538 }
15539 countingStream->rewind();
15540 {
15541 uint64_t cgen_var_1041;
15542 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1041, 1);
15543 countingStream->write((uint64_t*)&cgen_var_1041, 1 * 8);
15544 uint64_t cgen_var_1042;
15545 countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1042, 1);
15546 countingStream->write((uint64_t*)&cgen_var_1042, 1 * 8);
15547 uint64_t cgen_var_1043;
15548 countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_1043, 1);
15549 countingStream->write((uint64_t*)&cgen_var_1043, 1 * 8);
15550 countingStream->write((uint32_t*)&local_set, sizeof(uint32_t));
15551 // WARNING PTR CHECK
15552 uint64_t cgen_var_1044 = (uint64_t)(uintptr_t)local_pData;
15553 countingStream->putBe64(cgen_var_1044);
15554 if (local_pData)
15555 {
15556 countingStream->write((void*)local_pData, sizeof(uint8_t));
15557 }
15558 }
15559 uint32_t packetSize_vkCmdPushDescriptorSetWithTemplateKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15560 countingStream->rewind();
15561 uint32_t opcode_vkCmdPushDescriptorSetWithTemplateKHR = OP_vkCmdPushDescriptorSetWithTemplateKHR;
15562 stream->write(&opcode_vkCmdPushDescriptorSetWithTemplateKHR, sizeof(uint32_t));
15563 stream->write(&packetSize_vkCmdPushDescriptorSetWithTemplateKHR, sizeof(uint32_t));
15564 uint64_t cgen_var_1045;
15565 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1045, 1);
15566 stream->write((uint64_t*)&cgen_var_1045, 1 * 8);
15567 uint64_t cgen_var_1046;
15568 stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1046, 1);
15569 stream->write((uint64_t*)&cgen_var_1046, 1 * 8);
15570 uint64_t cgen_var_1047;
15571 stream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_1047, 1);
15572 stream->write((uint64_t*)&cgen_var_1047, 1 * 8);
15573 stream->write((uint32_t*)&local_set, sizeof(uint32_t));
15574 // WARNING PTR CHECK
15575 uint64_t cgen_var_1048 = (uint64_t)(uintptr_t)local_pData;
15576 stream->putBe64(cgen_var_1048);
15577 if (local_pData)
15578 {
15579 stream->write((void*)local_pData, sizeof(uint8_t));
15580 }
15581 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR readParams");
15582 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR returnUnmarshal");
15583 mImpl->log("finish vkCmdPushDescriptorSetWithTemplateKHR");;
15584 }
15585
15586 #endif
15587 #ifdef VK_KHR_16bit_storage
15588 #endif
15589 #ifdef VK_KHR_incremental_present
15590 #endif
15591 #ifdef VK_KHR_descriptor_update_template
vkCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)15592 VkResult VkEncoder::vkCreateDescriptorUpdateTemplateKHR(
15593 VkDevice device,
15594 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
15595 const VkAllocationCallbacks* pAllocator,
15596 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
15597 {
15598 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR encode");
15599 mImpl->log("start vkCreateDescriptorUpdateTemplateKHR");
15600 auto stream = mImpl->stream();
15601 auto countingStream = mImpl->countingStream();
15602 auto resources = mImpl->resources();
15603 auto pool = mImpl->pool();
15604 stream->setHandleMapping(resources->unwrapMapping());
15605 VkDevice local_device;
15606 VkDescriptorUpdateTemplateCreateInfo* local_pCreateInfo;
15607 VkAllocationCallbacks* local_pAllocator;
15608 local_device = device;
15609 local_pCreateInfo = nullptr;
15610 if (pCreateInfo)
15611 {
15612 local_pCreateInfo = (VkDescriptorUpdateTemplateCreateInfo*)pool->alloc(sizeof(const VkDescriptorUpdateTemplateCreateInfo));
15613 deepcopy_VkDescriptorUpdateTemplateCreateInfo(pool, pCreateInfo, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
15614 }
15615 local_pAllocator = nullptr;
15616 if (pAllocator)
15617 {
15618 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
15619 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
15620 }
15621 local_pAllocator = nullptr;
15622 if (local_pCreateInfo)
15623 {
15624 transform_tohost_VkDescriptorUpdateTemplateCreateInfo(mImpl->resources(), (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
15625 }
15626 if (local_pAllocator)
15627 {
15628 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
15629 }
15630 countingStream->rewind();
15631 {
15632 uint64_t cgen_var_1049;
15633 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1049, 1);
15634 countingStream->write((uint64_t*)&cgen_var_1049, 1 * 8);
15635 marshal_VkDescriptorUpdateTemplateCreateInfo(countingStream, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
15636 // WARNING PTR CHECK
15637 uint64_t cgen_var_1050 = (uint64_t)(uintptr_t)local_pAllocator;
15638 countingStream->putBe64(cgen_var_1050);
15639 if (local_pAllocator)
15640 {
15641 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
15642 }
15643 uint64_t cgen_var_1051;
15644 countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(pDescriptorUpdateTemplate, &cgen_var_1051, 1);
15645 countingStream->write((uint64_t*)&cgen_var_1051, 8);
15646 }
15647 uint32_t packetSize_vkCreateDescriptorUpdateTemplateKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15648 countingStream->rewind();
15649 uint32_t opcode_vkCreateDescriptorUpdateTemplateKHR = OP_vkCreateDescriptorUpdateTemplateKHR;
15650 stream->write(&opcode_vkCreateDescriptorUpdateTemplateKHR, sizeof(uint32_t));
15651 stream->write(&packetSize_vkCreateDescriptorUpdateTemplateKHR, sizeof(uint32_t));
15652 uint64_t cgen_var_1052;
15653 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1052, 1);
15654 stream->write((uint64_t*)&cgen_var_1052, 1 * 8);
15655 marshal_VkDescriptorUpdateTemplateCreateInfo(stream, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo));
15656 // WARNING PTR CHECK
15657 uint64_t cgen_var_1053 = (uint64_t)(uintptr_t)local_pAllocator;
15658 stream->putBe64(cgen_var_1053);
15659 if (local_pAllocator)
15660 {
15661 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
15662 }
15663 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
15664 uint64_t cgen_var_1054;
15665 stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(pDescriptorUpdateTemplate, &cgen_var_1054, 1);
15666 stream->write((uint64_t*)&cgen_var_1054, 8);
15667 stream->setHandleMapping(resources->unwrapMapping());
15668 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR readParams");
15669 stream->setHandleMapping(resources->createMapping());
15670 uint64_t cgen_var_1055;
15671 stream->read((uint64_t*)&cgen_var_1055, 8);
15672 stream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(&cgen_var_1055, (VkDescriptorUpdateTemplate*)pDescriptorUpdateTemplate, 1);
15673 stream->unsetHandleMapping();
15674 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR returnUnmarshal");
15675 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
15676 stream->read(&vkCreateDescriptorUpdateTemplateKHR_VkResult_return, sizeof(VkResult));
15677 countingStream->clearPool();
15678 stream->clearPool();
15679 pool->freeAll();
15680 mImpl->resources()->on_vkCreateDescriptorUpdateTemplateKHR(this, vkCreateDescriptorUpdateTemplateKHR_VkResult_return, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
15681 mImpl->log("finish vkCreateDescriptorUpdateTemplateKHR");;
15682 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
15683 }
15684
vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)15685 void VkEncoder::vkDestroyDescriptorUpdateTemplateKHR(
15686 VkDevice device,
15687 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
15688 const VkAllocationCallbacks* pAllocator)
15689 {
15690 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR encode");
15691 mImpl->log("start vkDestroyDescriptorUpdateTemplateKHR");
15692 auto stream = mImpl->stream();
15693 auto countingStream = mImpl->countingStream();
15694 auto resources = mImpl->resources();
15695 auto pool = mImpl->pool();
15696 stream->setHandleMapping(resources->unwrapMapping());
15697 VkDevice local_device;
15698 VkDescriptorUpdateTemplate local_descriptorUpdateTemplate;
15699 VkAllocationCallbacks* local_pAllocator;
15700 local_device = device;
15701 local_descriptorUpdateTemplate = descriptorUpdateTemplate;
15702 local_pAllocator = nullptr;
15703 if (pAllocator)
15704 {
15705 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
15706 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
15707 }
15708 local_pAllocator = nullptr;
15709 if (local_pAllocator)
15710 {
15711 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
15712 }
15713 countingStream->rewind();
15714 {
15715 uint64_t cgen_var_1056;
15716 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1056, 1);
15717 countingStream->write((uint64_t*)&cgen_var_1056, 1 * 8);
15718 uint64_t cgen_var_1057;
15719 countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1057, 1);
15720 countingStream->write((uint64_t*)&cgen_var_1057, 1 * 8);
15721 // WARNING PTR CHECK
15722 uint64_t cgen_var_1058 = (uint64_t)(uintptr_t)local_pAllocator;
15723 countingStream->putBe64(cgen_var_1058);
15724 if (local_pAllocator)
15725 {
15726 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
15727 }
15728 }
15729 uint32_t packetSize_vkDestroyDescriptorUpdateTemplateKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15730 countingStream->rewind();
15731 uint32_t opcode_vkDestroyDescriptorUpdateTemplateKHR = OP_vkDestroyDescriptorUpdateTemplateKHR;
15732 stream->write(&opcode_vkDestroyDescriptorUpdateTemplateKHR, sizeof(uint32_t));
15733 stream->write(&packetSize_vkDestroyDescriptorUpdateTemplateKHR, sizeof(uint32_t));
15734 uint64_t cgen_var_1059;
15735 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1059, 1);
15736 stream->write((uint64_t*)&cgen_var_1059, 1 * 8);
15737 uint64_t cgen_var_1060;
15738 stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1060, 1);
15739 stream->write((uint64_t*)&cgen_var_1060, 1 * 8);
15740 // WARNING PTR CHECK
15741 uint64_t cgen_var_1061 = (uint64_t)(uintptr_t)local_pAllocator;
15742 stream->putBe64(cgen_var_1061);
15743 if (local_pAllocator)
15744 {
15745 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
15746 }
15747 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR readParams");
15748 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR returnUnmarshal");
15749 resources->destroyMapping()->mapHandles_VkDescriptorUpdateTemplate((VkDescriptorUpdateTemplate*)&descriptorUpdateTemplate);
15750 mImpl->log("finish vkDestroyDescriptorUpdateTemplateKHR");;
15751 }
15752
vkUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)15753 void VkEncoder::vkUpdateDescriptorSetWithTemplateKHR(
15754 VkDevice device,
15755 VkDescriptorSet descriptorSet,
15756 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
15757 const void* pData)
15758 {
15759 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR encode");
15760 mImpl->log("start vkUpdateDescriptorSetWithTemplateKHR");
15761 auto stream = mImpl->stream();
15762 auto countingStream = mImpl->countingStream();
15763 auto resources = mImpl->resources();
15764 auto pool = mImpl->pool();
15765 stream->setHandleMapping(resources->unwrapMapping());
15766 VkDevice local_device;
15767 VkDescriptorSet local_descriptorSet;
15768 VkDescriptorUpdateTemplate local_descriptorUpdateTemplate;
15769 void* local_pData;
15770 local_device = device;
15771 local_descriptorSet = descriptorSet;
15772 local_descriptorUpdateTemplate = descriptorUpdateTemplate;
15773 local_pData = nullptr;
15774 if (pData)
15775 {
15776 local_pData = (void*)pool->dupArray(pData, sizeof(const uint8_t));
15777 }
15778 countingStream->rewind();
15779 {
15780 uint64_t cgen_var_1062;
15781 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1062, 1);
15782 countingStream->write((uint64_t*)&cgen_var_1062, 1 * 8);
15783 uint64_t cgen_var_1063;
15784 countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_1063, 1);
15785 countingStream->write((uint64_t*)&cgen_var_1063, 1 * 8);
15786 uint64_t cgen_var_1064;
15787 countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1064, 1);
15788 countingStream->write((uint64_t*)&cgen_var_1064, 1 * 8);
15789 // WARNING PTR CHECK
15790 uint64_t cgen_var_1065 = (uint64_t)(uintptr_t)local_pData;
15791 countingStream->putBe64(cgen_var_1065);
15792 if (local_pData)
15793 {
15794 countingStream->write((void*)local_pData, sizeof(uint8_t));
15795 }
15796 }
15797 uint32_t packetSize_vkUpdateDescriptorSetWithTemplateKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15798 countingStream->rewind();
15799 uint32_t opcode_vkUpdateDescriptorSetWithTemplateKHR = OP_vkUpdateDescriptorSetWithTemplateKHR;
15800 stream->write(&opcode_vkUpdateDescriptorSetWithTemplateKHR, sizeof(uint32_t));
15801 stream->write(&packetSize_vkUpdateDescriptorSetWithTemplateKHR, sizeof(uint32_t));
15802 uint64_t cgen_var_1066;
15803 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1066, 1);
15804 stream->write((uint64_t*)&cgen_var_1066, 1 * 8);
15805 uint64_t cgen_var_1067;
15806 stream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_1067, 1);
15807 stream->write((uint64_t*)&cgen_var_1067, 1 * 8);
15808 uint64_t cgen_var_1068;
15809 stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1068, 1);
15810 stream->write((uint64_t*)&cgen_var_1068, 1 * 8);
15811 // WARNING PTR CHECK
15812 uint64_t cgen_var_1069 = (uint64_t)(uintptr_t)local_pData;
15813 stream->putBe64(cgen_var_1069);
15814 if (local_pData)
15815 {
15816 stream->write((void*)local_pData, sizeof(uint8_t));
15817 }
15818 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR readParams");
15819 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR returnUnmarshal");
15820 mImpl->log("finish vkUpdateDescriptorSetWithTemplateKHR");;
15821 }
15822
15823 #endif
15824 #ifdef VK_KHR_create_renderpass2
vkCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2KHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)15825 VkResult VkEncoder::vkCreateRenderPass2KHR(
15826 VkDevice device,
15827 const VkRenderPassCreateInfo2KHR* pCreateInfo,
15828 const VkAllocationCallbacks* pAllocator,
15829 VkRenderPass* pRenderPass)
15830 {
15831 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR encode");
15832 mImpl->log("start vkCreateRenderPass2KHR");
15833 auto stream = mImpl->stream();
15834 auto countingStream = mImpl->countingStream();
15835 auto resources = mImpl->resources();
15836 auto pool = mImpl->pool();
15837 stream->setHandleMapping(resources->unwrapMapping());
15838 VkDevice local_device;
15839 VkRenderPassCreateInfo2KHR* local_pCreateInfo;
15840 VkAllocationCallbacks* local_pAllocator;
15841 local_device = device;
15842 local_pCreateInfo = nullptr;
15843 if (pCreateInfo)
15844 {
15845 local_pCreateInfo = (VkRenderPassCreateInfo2KHR*)pool->alloc(sizeof(const VkRenderPassCreateInfo2KHR));
15846 deepcopy_VkRenderPassCreateInfo2KHR(pool, pCreateInfo, (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo));
15847 }
15848 local_pAllocator = nullptr;
15849 if (pAllocator)
15850 {
15851 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
15852 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
15853 }
15854 local_pAllocator = nullptr;
15855 if (local_pCreateInfo)
15856 {
15857 transform_tohost_VkRenderPassCreateInfo2KHR(mImpl->resources(), (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo));
15858 }
15859 if (local_pAllocator)
15860 {
15861 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
15862 }
15863 countingStream->rewind();
15864 {
15865 uint64_t cgen_var_1070;
15866 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1070, 1);
15867 countingStream->write((uint64_t*)&cgen_var_1070, 1 * 8);
15868 marshal_VkRenderPassCreateInfo2KHR(countingStream, (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo));
15869 // WARNING PTR CHECK
15870 uint64_t cgen_var_1071 = (uint64_t)(uintptr_t)local_pAllocator;
15871 countingStream->putBe64(cgen_var_1071);
15872 if (local_pAllocator)
15873 {
15874 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
15875 }
15876 uint64_t cgen_var_1072;
15877 countingStream->handleMapping()->mapHandles_VkRenderPass_u64(pRenderPass, &cgen_var_1072, 1);
15878 countingStream->write((uint64_t*)&cgen_var_1072, 8);
15879 }
15880 uint32_t packetSize_vkCreateRenderPass2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15881 countingStream->rewind();
15882 uint32_t opcode_vkCreateRenderPass2KHR = OP_vkCreateRenderPass2KHR;
15883 stream->write(&opcode_vkCreateRenderPass2KHR, sizeof(uint32_t));
15884 stream->write(&packetSize_vkCreateRenderPass2KHR, sizeof(uint32_t));
15885 uint64_t cgen_var_1073;
15886 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1073, 1);
15887 stream->write((uint64_t*)&cgen_var_1073, 1 * 8);
15888 marshal_VkRenderPassCreateInfo2KHR(stream, (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo));
15889 // WARNING PTR CHECK
15890 uint64_t cgen_var_1074 = (uint64_t)(uintptr_t)local_pAllocator;
15891 stream->putBe64(cgen_var_1074);
15892 if (local_pAllocator)
15893 {
15894 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
15895 }
15896 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
15897 uint64_t cgen_var_1075;
15898 stream->handleMapping()->mapHandles_VkRenderPass_u64(pRenderPass, &cgen_var_1075, 1);
15899 stream->write((uint64_t*)&cgen_var_1075, 8);
15900 stream->setHandleMapping(resources->unwrapMapping());
15901 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR readParams");
15902 uint64_t cgen_var_1076;
15903 stream->read((uint64_t*)&cgen_var_1076, 8);
15904 stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_1076, (VkRenderPass*)pRenderPass, 1);
15905 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR returnUnmarshal");
15906 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
15907 stream->read(&vkCreateRenderPass2KHR_VkResult_return, sizeof(VkResult));
15908 countingStream->clearPool();
15909 stream->clearPool();
15910 pool->freeAll();
15911 mImpl->log("finish vkCreateRenderPass2KHR");;
15912 return vkCreateRenderPass2KHR_VkResult_return;
15913 }
15914
vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfoKHR * pSubpassBeginInfo)15915 void VkEncoder::vkCmdBeginRenderPass2KHR(
15916 VkCommandBuffer commandBuffer,
15917 const VkRenderPassBeginInfo* pRenderPassBegin,
15918 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
15919 {
15920 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR encode");
15921 mImpl->log("start vkCmdBeginRenderPass2KHR");
15922 auto stream = mImpl->stream();
15923 auto countingStream = mImpl->countingStream();
15924 auto resources = mImpl->resources();
15925 auto pool = mImpl->pool();
15926 stream->setHandleMapping(resources->unwrapMapping());
15927 VkCommandBuffer local_commandBuffer;
15928 VkRenderPassBeginInfo* local_pRenderPassBegin;
15929 VkSubpassBeginInfoKHR* local_pSubpassBeginInfo;
15930 local_commandBuffer = commandBuffer;
15931 local_pRenderPassBegin = nullptr;
15932 if (pRenderPassBegin)
15933 {
15934 local_pRenderPassBegin = (VkRenderPassBeginInfo*)pool->alloc(sizeof(const VkRenderPassBeginInfo));
15935 deepcopy_VkRenderPassBeginInfo(pool, pRenderPassBegin, (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
15936 }
15937 local_pSubpassBeginInfo = nullptr;
15938 if (pSubpassBeginInfo)
15939 {
15940 local_pSubpassBeginInfo = (VkSubpassBeginInfoKHR*)pool->alloc(sizeof(const VkSubpassBeginInfoKHR));
15941 deepcopy_VkSubpassBeginInfoKHR(pool, pSubpassBeginInfo, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
15942 }
15943 if (local_pRenderPassBegin)
15944 {
15945 transform_tohost_VkRenderPassBeginInfo(mImpl->resources(), (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
15946 }
15947 if (local_pSubpassBeginInfo)
15948 {
15949 transform_tohost_VkSubpassBeginInfoKHR(mImpl->resources(), (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
15950 }
15951 countingStream->rewind();
15952 {
15953 uint64_t cgen_var_1077;
15954 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1077, 1);
15955 countingStream->write((uint64_t*)&cgen_var_1077, 1 * 8);
15956 marshal_VkRenderPassBeginInfo(countingStream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
15957 marshal_VkSubpassBeginInfoKHR(countingStream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
15958 }
15959 uint32_t packetSize_vkCmdBeginRenderPass2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
15960 countingStream->rewind();
15961 uint32_t opcode_vkCmdBeginRenderPass2KHR = OP_vkCmdBeginRenderPass2KHR;
15962 stream->write(&opcode_vkCmdBeginRenderPass2KHR, sizeof(uint32_t));
15963 stream->write(&packetSize_vkCmdBeginRenderPass2KHR, sizeof(uint32_t));
15964 uint64_t cgen_var_1078;
15965 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1078, 1);
15966 stream->write((uint64_t*)&cgen_var_1078, 1 * 8);
15967 marshal_VkRenderPassBeginInfo(stream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
15968 marshal_VkSubpassBeginInfoKHR(stream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
15969 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR readParams");
15970 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR returnUnmarshal");
15971 mImpl->log("finish vkCmdBeginRenderPass2KHR");;
15972 }
15973
vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfoKHR * pSubpassBeginInfo,const VkSubpassEndInfoKHR * pSubpassEndInfo)15974 void VkEncoder::vkCmdNextSubpass2KHR(
15975 VkCommandBuffer commandBuffer,
15976 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
15977 const VkSubpassEndInfoKHR* pSubpassEndInfo)
15978 {
15979 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR encode");
15980 mImpl->log("start vkCmdNextSubpass2KHR");
15981 auto stream = mImpl->stream();
15982 auto countingStream = mImpl->countingStream();
15983 auto resources = mImpl->resources();
15984 auto pool = mImpl->pool();
15985 stream->setHandleMapping(resources->unwrapMapping());
15986 VkCommandBuffer local_commandBuffer;
15987 VkSubpassBeginInfoKHR* local_pSubpassBeginInfo;
15988 VkSubpassEndInfoKHR* local_pSubpassEndInfo;
15989 local_commandBuffer = commandBuffer;
15990 local_pSubpassBeginInfo = nullptr;
15991 if (pSubpassBeginInfo)
15992 {
15993 local_pSubpassBeginInfo = (VkSubpassBeginInfoKHR*)pool->alloc(sizeof(const VkSubpassBeginInfoKHR));
15994 deepcopy_VkSubpassBeginInfoKHR(pool, pSubpassBeginInfo, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
15995 }
15996 local_pSubpassEndInfo = nullptr;
15997 if (pSubpassEndInfo)
15998 {
15999 local_pSubpassEndInfo = (VkSubpassEndInfoKHR*)pool->alloc(sizeof(const VkSubpassEndInfoKHR));
16000 deepcopy_VkSubpassEndInfoKHR(pool, pSubpassEndInfo, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
16001 }
16002 if (local_pSubpassBeginInfo)
16003 {
16004 transform_tohost_VkSubpassBeginInfoKHR(mImpl->resources(), (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
16005 }
16006 if (local_pSubpassEndInfo)
16007 {
16008 transform_tohost_VkSubpassEndInfoKHR(mImpl->resources(), (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
16009 }
16010 countingStream->rewind();
16011 {
16012 uint64_t cgen_var_1079;
16013 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1079, 1);
16014 countingStream->write((uint64_t*)&cgen_var_1079, 1 * 8);
16015 marshal_VkSubpassBeginInfoKHR(countingStream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
16016 marshal_VkSubpassEndInfoKHR(countingStream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
16017 }
16018 uint32_t packetSize_vkCmdNextSubpass2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16019 countingStream->rewind();
16020 uint32_t opcode_vkCmdNextSubpass2KHR = OP_vkCmdNextSubpass2KHR;
16021 stream->write(&opcode_vkCmdNextSubpass2KHR, sizeof(uint32_t));
16022 stream->write(&packetSize_vkCmdNextSubpass2KHR, sizeof(uint32_t));
16023 uint64_t cgen_var_1080;
16024 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1080, 1);
16025 stream->write((uint64_t*)&cgen_var_1080, 1 * 8);
16026 marshal_VkSubpassBeginInfoKHR(stream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
16027 marshal_VkSubpassEndInfoKHR(stream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
16028 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR readParams");
16029 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR returnUnmarshal");
16030 mImpl->log("finish vkCmdNextSubpass2KHR");;
16031 }
16032
vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfoKHR * pSubpassEndInfo)16033 void VkEncoder::vkCmdEndRenderPass2KHR(
16034 VkCommandBuffer commandBuffer,
16035 const VkSubpassEndInfoKHR* pSubpassEndInfo)
16036 {
16037 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR encode");
16038 mImpl->log("start vkCmdEndRenderPass2KHR");
16039 auto stream = mImpl->stream();
16040 auto countingStream = mImpl->countingStream();
16041 auto resources = mImpl->resources();
16042 auto pool = mImpl->pool();
16043 stream->setHandleMapping(resources->unwrapMapping());
16044 VkCommandBuffer local_commandBuffer;
16045 VkSubpassEndInfoKHR* local_pSubpassEndInfo;
16046 local_commandBuffer = commandBuffer;
16047 local_pSubpassEndInfo = nullptr;
16048 if (pSubpassEndInfo)
16049 {
16050 local_pSubpassEndInfo = (VkSubpassEndInfoKHR*)pool->alloc(sizeof(const VkSubpassEndInfoKHR));
16051 deepcopy_VkSubpassEndInfoKHR(pool, pSubpassEndInfo, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
16052 }
16053 if (local_pSubpassEndInfo)
16054 {
16055 transform_tohost_VkSubpassEndInfoKHR(mImpl->resources(), (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
16056 }
16057 countingStream->rewind();
16058 {
16059 uint64_t cgen_var_1081;
16060 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1081, 1);
16061 countingStream->write((uint64_t*)&cgen_var_1081, 1 * 8);
16062 marshal_VkSubpassEndInfoKHR(countingStream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
16063 }
16064 uint32_t packetSize_vkCmdEndRenderPass2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16065 countingStream->rewind();
16066 uint32_t opcode_vkCmdEndRenderPass2KHR = OP_vkCmdEndRenderPass2KHR;
16067 stream->write(&opcode_vkCmdEndRenderPass2KHR, sizeof(uint32_t));
16068 stream->write(&packetSize_vkCmdEndRenderPass2KHR, sizeof(uint32_t));
16069 uint64_t cgen_var_1082;
16070 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1082, 1);
16071 stream->write((uint64_t*)&cgen_var_1082, 1 * 8);
16072 marshal_VkSubpassEndInfoKHR(stream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
16073 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR readParams");
16074 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR returnUnmarshal");
16075 mImpl->log("finish vkCmdEndRenderPass2KHR");;
16076 }
16077
16078 #endif
16079 #ifdef VK_KHR_shared_presentable_image
vkGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain)16080 VkResult VkEncoder::vkGetSwapchainStatusKHR(
16081 VkDevice device,
16082 VkSwapchainKHR swapchain)
16083 {
16084 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR encode");
16085 mImpl->log("start vkGetSwapchainStatusKHR");
16086 auto stream = mImpl->stream();
16087 auto countingStream = mImpl->countingStream();
16088 auto resources = mImpl->resources();
16089 auto pool = mImpl->pool();
16090 stream->setHandleMapping(resources->unwrapMapping());
16091 VkDevice local_device;
16092 VkSwapchainKHR local_swapchain;
16093 local_device = device;
16094 local_swapchain = swapchain;
16095 countingStream->rewind();
16096 {
16097 uint64_t cgen_var_1083;
16098 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1083, 1);
16099 countingStream->write((uint64_t*)&cgen_var_1083, 1 * 8);
16100 uint64_t cgen_var_1084;
16101 countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1084, 1);
16102 countingStream->write((uint64_t*)&cgen_var_1084, 1 * 8);
16103 }
16104 uint32_t packetSize_vkGetSwapchainStatusKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16105 countingStream->rewind();
16106 uint32_t opcode_vkGetSwapchainStatusKHR = OP_vkGetSwapchainStatusKHR;
16107 stream->write(&opcode_vkGetSwapchainStatusKHR, sizeof(uint32_t));
16108 stream->write(&packetSize_vkGetSwapchainStatusKHR, sizeof(uint32_t));
16109 uint64_t cgen_var_1085;
16110 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1085, 1);
16111 stream->write((uint64_t*)&cgen_var_1085, 1 * 8);
16112 uint64_t cgen_var_1086;
16113 stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1086, 1);
16114 stream->write((uint64_t*)&cgen_var_1086, 1 * 8);
16115 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR readParams");
16116 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR returnUnmarshal");
16117 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
16118 stream->read(&vkGetSwapchainStatusKHR_VkResult_return, sizeof(VkResult));
16119 countingStream->clearPool();
16120 stream->clearPool();
16121 pool->freeAll();
16122 mImpl->log("finish vkGetSwapchainStatusKHR");;
16123 return vkGetSwapchainStatusKHR_VkResult_return;
16124 }
16125
16126 #endif
16127 #ifdef VK_KHR_external_fence_capabilities
vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)16128 void VkEncoder::vkGetPhysicalDeviceExternalFencePropertiesKHR(
16129 VkPhysicalDevice physicalDevice,
16130 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
16131 VkExternalFenceProperties* pExternalFenceProperties)
16132 {
16133 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR encode");
16134 mImpl->log("start vkGetPhysicalDeviceExternalFencePropertiesKHR");
16135 auto stream = mImpl->stream();
16136 auto countingStream = mImpl->countingStream();
16137 auto resources = mImpl->resources();
16138 auto pool = mImpl->pool();
16139 stream->setHandleMapping(resources->unwrapMapping());
16140 VkPhysicalDevice local_physicalDevice;
16141 VkPhysicalDeviceExternalFenceInfo* local_pExternalFenceInfo;
16142 local_physicalDevice = physicalDevice;
16143 local_pExternalFenceInfo = nullptr;
16144 if (pExternalFenceInfo)
16145 {
16146 local_pExternalFenceInfo = (VkPhysicalDeviceExternalFenceInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalFenceInfo));
16147 deepcopy_VkPhysicalDeviceExternalFenceInfo(pool, pExternalFenceInfo, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
16148 }
16149 if (local_pExternalFenceInfo)
16150 {
16151 transform_tohost_VkPhysicalDeviceExternalFenceInfo(mImpl->resources(), (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
16152 }
16153 countingStream->rewind();
16154 {
16155 uint64_t cgen_var_1087;
16156 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1087, 1);
16157 countingStream->write((uint64_t*)&cgen_var_1087, 1 * 8);
16158 marshal_VkPhysicalDeviceExternalFenceInfo(countingStream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
16159 marshal_VkExternalFenceProperties(countingStream, (VkExternalFenceProperties*)(pExternalFenceProperties));
16160 }
16161 uint32_t packetSize_vkGetPhysicalDeviceExternalFencePropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16162 countingStream->rewind();
16163 uint32_t opcode_vkGetPhysicalDeviceExternalFencePropertiesKHR = OP_vkGetPhysicalDeviceExternalFencePropertiesKHR;
16164 stream->write(&opcode_vkGetPhysicalDeviceExternalFencePropertiesKHR, sizeof(uint32_t));
16165 stream->write(&packetSize_vkGetPhysicalDeviceExternalFencePropertiesKHR, sizeof(uint32_t));
16166 uint64_t cgen_var_1088;
16167 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1088, 1);
16168 stream->write((uint64_t*)&cgen_var_1088, 1 * 8);
16169 marshal_VkPhysicalDeviceExternalFenceInfo(stream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
16170 marshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
16171 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR readParams");
16172 unmarshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
16173 if (pExternalFenceProperties)
16174 {
16175 transform_fromhost_VkExternalFenceProperties(mImpl->resources(), (VkExternalFenceProperties*)(pExternalFenceProperties));
16176 }
16177 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR returnUnmarshal");
16178 mImpl->log("finish vkGetPhysicalDeviceExternalFencePropertiesKHR");;
16179 }
16180
16181 #endif
16182 #ifdef VK_KHR_external_fence
16183 #endif
16184 #ifdef VK_KHR_external_fence_win32
vkImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo)16185 VkResult VkEncoder::vkImportFenceWin32HandleKHR(
16186 VkDevice device,
16187 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
16188 {
16189 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR encode");
16190 mImpl->log("start vkImportFenceWin32HandleKHR");
16191 auto stream = mImpl->stream();
16192 auto countingStream = mImpl->countingStream();
16193 auto resources = mImpl->resources();
16194 auto pool = mImpl->pool();
16195 stream->setHandleMapping(resources->unwrapMapping());
16196 VkDevice local_device;
16197 VkImportFenceWin32HandleInfoKHR* local_pImportFenceWin32HandleInfo;
16198 local_device = device;
16199 local_pImportFenceWin32HandleInfo = nullptr;
16200 if (pImportFenceWin32HandleInfo)
16201 {
16202 local_pImportFenceWin32HandleInfo = (VkImportFenceWin32HandleInfoKHR*)pool->alloc(sizeof(const VkImportFenceWin32HandleInfoKHR));
16203 deepcopy_VkImportFenceWin32HandleInfoKHR(pool, pImportFenceWin32HandleInfo, (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo));
16204 }
16205 if (local_pImportFenceWin32HandleInfo)
16206 {
16207 transform_tohost_VkImportFenceWin32HandleInfoKHR(mImpl->resources(), (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo));
16208 }
16209 countingStream->rewind();
16210 {
16211 uint64_t cgen_var_1089;
16212 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1089, 1);
16213 countingStream->write((uint64_t*)&cgen_var_1089, 1 * 8);
16214 marshal_VkImportFenceWin32HandleInfoKHR(countingStream, (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo));
16215 }
16216 uint32_t packetSize_vkImportFenceWin32HandleKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16217 countingStream->rewind();
16218 uint32_t opcode_vkImportFenceWin32HandleKHR = OP_vkImportFenceWin32HandleKHR;
16219 stream->write(&opcode_vkImportFenceWin32HandleKHR, sizeof(uint32_t));
16220 stream->write(&packetSize_vkImportFenceWin32HandleKHR, sizeof(uint32_t));
16221 uint64_t cgen_var_1090;
16222 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1090, 1);
16223 stream->write((uint64_t*)&cgen_var_1090, 1 * 8);
16224 marshal_VkImportFenceWin32HandleInfoKHR(stream, (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo));
16225 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR readParams");
16226 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR returnUnmarshal");
16227 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
16228 stream->read(&vkImportFenceWin32HandleKHR_VkResult_return, sizeof(VkResult));
16229 countingStream->clearPool();
16230 stream->clearPool();
16231 pool->freeAll();
16232 mImpl->log("finish vkImportFenceWin32HandleKHR");;
16233 return vkImportFenceWin32HandleKHR_VkResult_return;
16234 }
16235
vkGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)16236 VkResult VkEncoder::vkGetFenceWin32HandleKHR(
16237 VkDevice device,
16238 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
16239 HANDLE* pHandle)
16240 {
16241 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR encode");
16242 mImpl->log("start vkGetFenceWin32HandleKHR");
16243 auto stream = mImpl->stream();
16244 auto countingStream = mImpl->countingStream();
16245 auto resources = mImpl->resources();
16246 auto pool = mImpl->pool();
16247 stream->setHandleMapping(resources->unwrapMapping());
16248 VkDevice local_device;
16249 VkFenceGetWin32HandleInfoKHR* local_pGetWin32HandleInfo;
16250 local_device = device;
16251 local_pGetWin32HandleInfo = nullptr;
16252 if (pGetWin32HandleInfo)
16253 {
16254 local_pGetWin32HandleInfo = (VkFenceGetWin32HandleInfoKHR*)pool->alloc(sizeof(const VkFenceGetWin32HandleInfoKHR));
16255 deepcopy_VkFenceGetWin32HandleInfoKHR(pool, pGetWin32HandleInfo, (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
16256 }
16257 if (local_pGetWin32HandleInfo)
16258 {
16259 transform_tohost_VkFenceGetWin32HandleInfoKHR(mImpl->resources(), (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
16260 }
16261 countingStream->rewind();
16262 {
16263 uint64_t cgen_var_1091;
16264 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1091, 1);
16265 countingStream->write((uint64_t*)&cgen_var_1091, 1 * 8);
16266 marshal_VkFenceGetWin32HandleInfoKHR(countingStream, (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
16267 countingStream->write((HANDLE*)pHandle, sizeof(HANDLE));
16268 }
16269 uint32_t packetSize_vkGetFenceWin32HandleKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16270 countingStream->rewind();
16271 uint32_t opcode_vkGetFenceWin32HandleKHR = OP_vkGetFenceWin32HandleKHR;
16272 stream->write(&opcode_vkGetFenceWin32HandleKHR, sizeof(uint32_t));
16273 stream->write(&packetSize_vkGetFenceWin32HandleKHR, sizeof(uint32_t));
16274 uint64_t cgen_var_1092;
16275 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1092, 1);
16276 stream->write((uint64_t*)&cgen_var_1092, 1 * 8);
16277 marshal_VkFenceGetWin32HandleInfoKHR(stream, (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
16278 stream->write((HANDLE*)pHandle, sizeof(HANDLE));
16279 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR readParams");
16280 stream->read((HANDLE*)pHandle, sizeof(HANDLE));
16281 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR returnUnmarshal");
16282 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
16283 stream->read(&vkGetFenceWin32HandleKHR_VkResult_return, sizeof(VkResult));
16284 countingStream->clearPool();
16285 stream->clearPool();
16286 pool->freeAll();
16287 mImpl->log("finish vkGetFenceWin32HandleKHR");;
16288 return vkGetFenceWin32HandleKHR_VkResult_return;
16289 }
16290
16291 #endif
16292 #ifdef VK_KHR_external_fence_fd
vkImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo)16293 VkResult VkEncoder::vkImportFenceFdKHR(
16294 VkDevice device,
16295 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
16296 {
16297 AEMU_SCOPED_TRACE("vkImportFenceFdKHR encode");
16298 mImpl->log("start vkImportFenceFdKHR");
16299 auto stream = mImpl->stream();
16300 auto countingStream = mImpl->countingStream();
16301 auto resources = mImpl->resources();
16302 auto pool = mImpl->pool();
16303 stream->setHandleMapping(resources->unwrapMapping());
16304 VkDevice local_device;
16305 VkImportFenceFdInfoKHR* local_pImportFenceFdInfo;
16306 local_device = device;
16307 local_pImportFenceFdInfo = nullptr;
16308 if (pImportFenceFdInfo)
16309 {
16310 local_pImportFenceFdInfo = (VkImportFenceFdInfoKHR*)pool->alloc(sizeof(const VkImportFenceFdInfoKHR));
16311 deepcopy_VkImportFenceFdInfoKHR(pool, pImportFenceFdInfo, (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo));
16312 }
16313 if (local_pImportFenceFdInfo)
16314 {
16315 transform_tohost_VkImportFenceFdInfoKHR(mImpl->resources(), (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo));
16316 }
16317 countingStream->rewind();
16318 {
16319 uint64_t cgen_var_1093;
16320 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1093, 1);
16321 countingStream->write((uint64_t*)&cgen_var_1093, 1 * 8);
16322 marshal_VkImportFenceFdInfoKHR(countingStream, (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo));
16323 }
16324 uint32_t packetSize_vkImportFenceFdKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16325 countingStream->rewind();
16326 uint32_t opcode_vkImportFenceFdKHR = OP_vkImportFenceFdKHR;
16327 stream->write(&opcode_vkImportFenceFdKHR, sizeof(uint32_t));
16328 stream->write(&packetSize_vkImportFenceFdKHR, sizeof(uint32_t));
16329 uint64_t cgen_var_1094;
16330 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1094, 1);
16331 stream->write((uint64_t*)&cgen_var_1094, 1 * 8);
16332 marshal_VkImportFenceFdInfoKHR(stream, (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo));
16333 AEMU_SCOPED_TRACE("vkImportFenceFdKHR readParams");
16334 AEMU_SCOPED_TRACE("vkImportFenceFdKHR returnUnmarshal");
16335 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
16336 stream->read(&vkImportFenceFdKHR_VkResult_return, sizeof(VkResult));
16337 countingStream->clearPool();
16338 stream->clearPool();
16339 pool->freeAll();
16340 mImpl->log("finish vkImportFenceFdKHR");;
16341 return vkImportFenceFdKHR_VkResult_return;
16342 }
16343
vkGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd)16344 VkResult VkEncoder::vkGetFenceFdKHR(
16345 VkDevice device,
16346 const VkFenceGetFdInfoKHR* pGetFdInfo,
16347 int* pFd)
16348 {
16349 AEMU_SCOPED_TRACE("vkGetFenceFdKHR encode");
16350 mImpl->log("start vkGetFenceFdKHR");
16351 auto stream = mImpl->stream();
16352 auto countingStream = mImpl->countingStream();
16353 auto resources = mImpl->resources();
16354 auto pool = mImpl->pool();
16355 stream->setHandleMapping(resources->unwrapMapping());
16356 VkDevice local_device;
16357 VkFenceGetFdInfoKHR* local_pGetFdInfo;
16358 local_device = device;
16359 local_pGetFdInfo = nullptr;
16360 if (pGetFdInfo)
16361 {
16362 local_pGetFdInfo = (VkFenceGetFdInfoKHR*)pool->alloc(sizeof(const VkFenceGetFdInfoKHR));
16363 deepcopy_VkFenceGetFdInfoKHR(pool, pGetFdInfo, (VkFenceGetFdInfoKHR*)(local_pGetFdInfo));
16364 }
16365 if (local_pGetFdInfo)
16366 {
16367 transform_tohost_VkFenceGetFdInfoKHR(mImpl->resources(), (VkFenceGetFdInfoKHR*)(local_pGetFdInfo));
16368 }
16369 countingStream->rewind();
16370 {
16371 uint64_t cgen_var_1095;
16372 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1095, 1);
16373 countingStream->write((uint64_t*)&cgen_var_1095, 1 * 8);
16374 marshal_VkFenceGetFdInfoKHR(countingStream, (VkFenceGetFdInfoKHR*)(local_pGetFdInfo));
16375 countingStream->write((int*)pFd, sizeof(int));
16376 }
16377 uint32_t packetSize_vkGetFenceFdKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16378 countingStream->rewind();
16379 uint32_t opcode_vkGetFenceFdKHR = OP_vkGetFenceFdKHR;
16380 stream->write(&opcode_vkGetFenceFdKHR, sizeof(uint32_t));
16381 stream->write(&packetSize_vkGetFenceFdKHR, sizeof(uint32_t));
16382 uint64_t cgen_var_1096;
16383 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1096, 1);
16384 stream->write((uint64_t*)&cgen_var_1096, 1 * 8);
16385 marshal_VkFenceGetFdInfoKHR(stream, (VkFenceGetFdInfoKHR*)(local_pGetFdInfo));
16386 stream->write((int*)pFd, sizeof(int));
16387 AEMU_SCOPED_TRACE("vkGetFenceFdKHR readParams");
16388 stream->read((int*)pFd, sizeof(int));
16389 AEMU_SCOPED_TRACE("vkGetFenceFdKHR returnUnmarshal");
16390 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
16391 stream->read(&vkGetFenceFdKHR_VkResult_return, sizeof(VkResult));
16392 countingStream->clearPool();
16393 stream->clearPool();
16394 pool->freeAll();
16395 mImpl->log("finish vkGetFenceFdKHR");;
16396 return vkGetFenceFdKHR_VkResult_return;
16397 }
16398
16399 #endif
16400 #ifdef VK_KHR_maintenance2
16401 #endif
16402 #ifdef VK_KHR_get_surface_capabilities2
vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkSurfaceCapabilities2KHR * pSurfaceCapabilities)16403 VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilities2KHR(
16404 VkPhysicalDevice physicalDevice,
16405 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
16406 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
16407 {
16408 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR encode");
16409 mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilities2KHR");
16410 auto stream = mImpl->stream();
16411 auto countingStream = mImpl->countingStream();
16412 auto resources = mImpl->resources();
16413 auto pool = mImpl->pool();
16414 stream->setHandleMapping(resources->unwrapMapping());
16415 VkPhysicalDevice local_physicalDevice;
16416 VkPhysicalDeviceSurfaceInfo2KHR* local_pSurfaceInfo;
16417 local_physicalDevice = physicalDevice;
16418 local_pSurfaceInfo = nullptr;
16419 if (pSurfaceInfo)
16420 {
16421 local_pSurfaceInfo = (VkPhysicalDeviceSurfaceInfo2KHR*)pool->alloc(sizeof(const VkPhysicalDeviceSurfaceInfo2KHR));
16422 deepcopy_VkPhysicalDeviceSurfaceInfo2KHR(pool, pSurfaceInfo, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
16423 }
16424 if (local_pSurfaceInfo)
16425 {
16426 transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(mImpl->resources(), (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
16427 }
16428 countingStream->rewind();
16429 {
16430 uint64_t cgen_var_1097;
16431 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1097, 1);
16432 countingStream->write((uint64_t*)&cgen_var_1097, 1 * 8);
16433 marshal_VkPhysicalDeviceSurfaceInfo2KHR(countingStream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
16434 marshal_VkSurfaceCapabilities2KHR(countingStream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities));
16435 }
16436 uint32_t packetSize_vkGetPhysicalDeviceSurfaceCapabilities2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16437 countingStream->rewind();
16438 uint32_t opcode_vkGetPhysicalDeviceSurfaceCapabilities2KHR = OP_vkGetPhysicalDeviceSurfaceCapabilities2KHR;
16439 stream->write(&opcode_vkGetPhysicalDeviceSurfaceCapabilities2KHR, sizeof(uint32_t));
16440 stream->write(&packetSize_vkGetPhysicalDeviceSurfaceCapabilities2KHR, sizeof(uint32_t));
16441 uint64_t cgen_var_1098;
16442 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1098, 1);
16443 stream->write((uint64_t*)&cgen_var_1098, 1 * 8);
16444 marshal_VkPhysicalDeviceSurfaceInfo2KHR(stream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
16445 marshal_VkSurfaceCapabilities2KHR(stream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities));
16446 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR readParams");
16447 unmarshal_VkSurfaceCapabilities2KHR(stream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities));
16448 if (pSurfaceCapabilities)
16449 {
16450 transform_fromhost_VkSurfaceCapabilities2KHR(mImpl->resources(), (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities));
16451 }
16452 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR returnUnmarshal");
16453 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
16454 stream->read(&vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return, sizeof(VkResult));
16455 countingStream->clearPool();
16456 stream->clearPool();
16457 pool->freeAll();
16458 mImpl->log("finish vkGetPhysicalDeviceSurfaceCapabilities2KHR");;
16459 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
16460 }
16461
vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VkSurfaceFormat2KHR * pSurfaceFormats)16462 VkResult VkEncoder::vkGetPhysicalDeviceSurfaceFormats2KHR(
16463 VkPhysicalDevice physicalDevice,
16464 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
16465 uint32_t* pSurfaceFormatCount,
16466 VkSurfaceFormat2KHR* pSurfaceFormats)
16467 {
16468 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR encode");
16469 mImpl->log("start vkGetPhysicalDeviceSurfaceFormats2KHR");
16470 auto stream = mImpl->stream();
16471 auto countingStream = mImpl->countingStream();
16472 auto resources = mImpl->resources();
16473 auto pool = mImpl->pool();
16474 stream->setHandleMapping(resources->unwrapMapping());
16475 VkPhysicalDevice local_physicalDevice;
16476 VkPhysicalDeviceSurfaceInfo2KHR* local_pSurfaceInfo;
16477 local_physicalDevice = physicalDevice;
16478 local_pSurfaceInfo = nullptr;
16479 if (pSurfaceInfo)
16480 {
16481 local_pSurfaceInfo = (VkPhysicalDeviceSurfaceInfo2KHR*)pool->alloc(sizeof(const VkPhysicalDeviceSurfaceInfo2KHR));
16482 deepcopy_VkPhysicalDeviceSurfaceInfo2KHR(pool, pSurfaceInfo, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
16483 }
16484 if (local_pSurfaceInfo)
16485 {
16486 transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(mImpl->resources(), (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
16487 }
16488 countingStream->rewind();
16489 {
16490 uint64_t cgen_var_1099;
16491 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1099, 1);
16492 countingStream->write((uint64_t*)&cgen_var_1099, 1 * 8);
16493 marshal_VkPhysicalDeviceSurfaceInfo2KHR(countingStream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
16494 // WARNING PTR CHECK
16495 uint64_t cgen_var_1100 = (uint64_t)(uintptr_t)pSurfaceFormatCount;
16496 countingStream->putBe64(cgen_var_1100);
16497 if (pSurfaceFormatCount)
16498 {
16499 countingStream->write((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t));
16500 }
16501 // WARNING PTR CHECK
16502 uint64_t cgen_var_1101 = (uint64_t)(uintptr_t)pSurfaceFormats;
16503 countingStream->putBe64(cgen_var_1101);
16504 if (pSurfaceFormats)
16505 {
16506 for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
16507 {
16508 marshal_VkSurfaceFormat2KHR(countingStream, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
16509 }
16510 }
16511 }
16512 uint32_t packetSize_vkGetPhysicalDeviceSurfaceFormats2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16513 countingStream->rewind();
16514 uint32_t opcode_vkGetPhysicalDeviceSurfaceFormats2KHR = OP_vkGetPhysicalDeviceSurfaceFormats2KHR;
16515 stream->write(&opcode_vkGetPhysicalDeviceSurfaceFormats2KHR, sizeof(uint32_t));
16516 stream->write(&packetSize_vkGetPhysicalDeviceSurfaceFormats2KHR, sizeof(uint32_t));
16517 uint64_t cgen_var_1102;
16518 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1102, 1);
16519 stream->write((uint64_t*)&cgen_var_1102, 1 * 8);
16520 marshal_VkPhysicalDeviceSurfaceInfo2KHR(stream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
16521 // WARNING PTR CHECK
16522 uint64_t cgen_var_1103 = (uint64_t)(uintptr_t)pSurfaceFormatCount;
16523 stream->putBe64(cgen_var_1103);
16524 if (pSurfaceFormatCount)
16525 {
16526 stream->write((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t));
16527 }
16528 // WARNING PTR CHECK
16529 uint64_t cgen_var_1104 = (uint64_t)(uintptr_t)pSurfaceFormats;
16530 stream->putBe64(cgen_var_1104);
16531 if (pSurfaceFormats)
16532 {
16533 for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
16534 {
16535 marshal_VkSurfaceFormat2KHR(stream, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
16536 }
16537 }
16538 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR readParams");
16539 // WARNING PTR CHECK
16540 uint32_t* check_pSurfaceFormatCount;
16541 check_pSurfaceFormatCount = (uint32_t*)(uintptr_t)stream->getBe64();
16542 if (pSurfaceFormatCount)
16543 {
16544 if (!(check_pSurfaceFormatCount))
16545 {
16546 fprintf(stderr, "fatal: pSurfaceFormatCount inconsistent between guest and host\n");
16547 }
16548 stream->read((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t));
16549 }
16550 // WARNING PTR CHECK
16551 VkSurfaceFormat2KHR* check_pSurfaceFormats;
16552 check_pSurfaceFormats = (VkSurfaceFormat2KHR*)(uintptr_t)stream->getBe64();
16553 if (pSurfaceFormats)
16554 {
16555 if (!(check_pSurfaceFormats))
16556 {
16557 fprintf(stderr, "fatal: pSurfaceFormats inconsistent between guest and host\n");
16558 }
16559 for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
16560 {
16561 unmarshal_VkSurfaceFormat2KHR(stream, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
16562 }
16563 }
16564 if (pSurfaceFormats)
16565 {
16566 for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
16567 {
16568 transform_fromhost_VkSurfaceFormat2KHR(mImpl->resources(), (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
16569 }
16570 }
16571 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR returnUnmarshal");
16572 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
16573 stream->read(&vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return, sizeof(VkResult));
16574 countingStream->clearPool();
16575 stream->clearPool();
16576 pool->freeAll();
16577 mImpl->log("finish vkGetPhysicalDeviceSurfaceFormats2KHR");;
16578 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
16579 }
16580
16581 #endif
16582 #ifdef VK_KHR_variable_pointers
16583 #endif
16584 #ifdef VK_KHR_get_display_properties2
vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayProperties2KHR * pProperties)16585 VkResult VkEncoder::vkGetPhysicalDeviceDisplayProperties2KHR(
16586 VkPhysicalDevice physicalDevice,
16587 uint32_t* pPropertyCount,
16588 VkDisplayProperties2KHR* pProperties)
16589 {
16590 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR encode");
16591 mImpl->log("start vkGetPhysicalDeviceDisplayProperties2KHR");
16592 auto stream = mImpl->stream();
16593 auto countingStream = mImpl->countingStream();
16594 auto resources = mImpl->resources();
16595 auto pool = mImpl->pool();
16596 stream->setHandleMapping(resources->unwrapMapping());
16597 VkPhysicalDevice local_physicalDevice;
16598 local_physicalDevice = physicalDevice;
16599 countingStream->rewind();
16600 {
16601 uint64_t cgen_var_1107;
16602 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1107, 1);
16603 countingStream->write((uint64_t*)&cgen_var_1107, 1 * 8);
16604 // WARNING PTR CHECK
16605 uint64_t cgen_var_1108 = (uint64_t)(uintptr_t)pPropertyCount;
16606 countingStream->putBe64(cgen_var_1108);
16607 if (pPropertyCount)
16608 {
16609 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
16610 }
16611 // WARNING PTR CHECK
16612 uint64_t cgen_var_1109 = (uint64_t)(uintptr_t)pProperties;
16613 countingStream->putBe64(cgen_var_1109);
16614 if (pProperties)
16615 {
16616 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16617 {
16618 marshal_VkDisplayProperties2KHR(countingStream, (VkDisplayProperties2KHR*)(pProperties + i));
16619 }
16620 }
16621 }
16622 uint32_t packetSize_vkGetPhysicalDeviceDisplayProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16623 countingStream->rewind();
16624 uint32_t opcode_vkGetPhysicalDeviceDisplayProperties2KHR = OP_vkGetPhysicalDeviceDisplayProperties2KHR;
16625 stream->write(&opcode_vkGetPhysicalDeviceDisplayProperties2KHR, sizeof(uint32_t));
16626 stream->write(&packetSize_vkGetPhysicalDeviceDisplayProperties2KHR, sizeof(uint32_t));
16627 uint64_t cgen_var_1110;
16628 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1110, 1);
16629 stream->write((uint64_t*)&cgen_var_1110, 1 * 8);
16630 // WARNING PTR CHECK
16631 uint64_t cgen_var_1111 = (uint64_t)(uintptr_t)pPropertyCount;
16632 stream->putBe64(cgen_var_1111);
16633 if (pPropertyCount)
16634 {
16635 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
16636 }
16637 // WARNING PTR CHECK
16638 uint64_t cgen_var_1112 = (uint64_t)(uintptr_t)pProperties;
16639 stream->putBe64(cgen_var_1112);
16640 if (pProperties)
16641 {
16642 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16643 {
16644 marshal_VkDisplayProperties2KHR(stream, (VkDisplayProperties2KHR*)(pProperties + i));
16645 }
16646 }
16647 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR readParams");
16648 // WARNING PTR CHECK
16649 uint32_t* check_pPropertyCount;
16650 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
16651 if (pPropertyCount)
16652 {
16653 if (!(check_pPropertyCount))
16654 {
16655 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
16656 }
16657 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
16658 }
16659 // WARNING PTR CHECK
16660 VkDisplayProperties2KHR* check_pProperties;
16661 check_pProperties = (VkDisplayProperties2KHR*)(uintptr_t)stream->getBe64();
16662 if (pProperties)
16663 {
16664 if (!(check_pProperties))
16665 {
16666 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
16667 }
16668 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16669 {
16670 unmarshal_VkDisplayProperties2KHR(stream, (VkDisplayProperties2KHR*)(pProperties + i));
16671 }
16672 }
16673 if (pProperties)
16674 {
16675 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16676 {
16677 transform_fromhost_VkDisplayProperties2KHR(mImpl->resources(), (VkDisplayProperties2KHR*)(pProperties + i));
16678 }
16679 }
16680 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR returnUnmarshal");
16681 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
16682 stream->read(&vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return, sizeof(VkResult));
16683 countingStream->clearPool();
16684 stream->clearPool();
16685 pool->freeAll();
16686 mImpl->log("finish vkGetPhysicalDeviceDisplayProperties2KHR");;
16687 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
16688 }
16689
vkGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlaneProperties2KHR * pProperties)16690 VkResult VkEncoder::vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
16691 VkPhysicalDevice physicalDevice,
16692 uint32_t* pPropertyCount,
16693 VkDisplayPlaneProperties2KHR* pProperties)
16694 {
16695 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR encode");
16696 mImpl->log("start vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
16697 auto stream = mImpl->stream();
16698 auto countingStream = mImpl->countingStream();
16699 auto resources = mImpl->resources();
16700 auto pool = mImpl->pool();
16701 stream->setHandleMapping(resources->unwrapMapping());
16702 VkPhysicalDevice local_physicalDevice;
16703 local_physicalDevice = physicalDevice;
16704 countingStream->rewind();
16705 {
16706 uint64_t cgen_var_1115;
16707 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1115, 1);
16708 countingStream->write((uint64_t*)&cgen_var_1115, 1 * 8);
16709 // WARNING PTR CHECK
16710 uint64_t cgen_var_1116 = (uint64_t)(uintptr_t)pPropertyCount;
16711 countingStream->putBe64(cgen_var_1116);
16712 if (pPropertyCount)
16713 {
16714 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
16715 }
16716 // WARNING PTR CHECK
16717 uint64_t cgen_var_1117 = (uint64_t)(uintptr_t)pProperties;
16718 countingStream->putBe64(cgen_var_1117);
16719 if (pProperties)
16720 {
16721 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16722 {
16723 marshal_VkDisplayPlaneProperties2KHR(countingStream, (VkDisplayPlaneProperties2KHR*)(pProperties + i));
16724 }
16725 }
16726 }
16727 uint32_t packetSize_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16728 countingStream->rewind();
16729 uint32_t opcode_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = OP_vkGetPhysicalDeviceDisplayPlaneProperties2KHR;
16730 stream->write(&opcode_vkGetPhysicalDeviceDisplayPlaneProperties2KHR, sizeof(uint32_t));
16731 stream->write(&packetSize_vkGetPhysicalDeviceDisplayPlaneProperties2KHR, sizeof(uint32_t));
16732 uint64_t cgen_var_1118;
16733 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1118, 1);
16734 stream->write((uint64_t*)&cgen_var_1118, 1 * 8);
16735 // WARNING PTR CHECK
16736 uint64_t cgen_var_1119 = (uint64_t)(uintptr_t)pPropertyCount;
16737 stream->putBe64(cgen_var_1119);
16738 if (pPropertyCount)
16739 {
16740 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
16741 }
16742 // WARNING PTR CHECK
16743 uint64_t cgen_var_1120 = (uint64_t)(uintptr_t)pProperties;
16744 stream->putBe64(cgen_var_1120);
16745 if (pProperties)
16746 {
16747 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16748 {
16749 marshal_VkDisplayPlaneProperties2KHR(stream, (VkDisplayPlaneProperties2KHR*)(pProperties + i));
16750 }
16751 }
16752 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR readParams");
16753 // WARNING PTR CHECK
16754 uint32_t* check_pPropertyCount;
16755 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
16756 if (pPropertyCount)
16757 {
16758 if (!(check_pPropertyCount))
16759 {
16760 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
16761 }
16762 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
16763 }
16764 // WARNING PTR CHECK
16765 VkDisplayPlaneProperties2KHR* check_pProperties;
16766 check_pProperties = (VkDisplayPlaneProperties2KHR*)(uintptr_t)stream->getBe64();
16767 if (pProperties)
16768 {
16769 if (!(check_pProperties))
16770 {
16771 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
16772 }
16773 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16774 {
16775 unmarshal_VkDisplayPlaneProperties2KHR(stream, (VkDisplayPlaneProperties2KHR*)(pProperties + i));
16776 }
16777 }
16778 if (pProperties)
16779 {
16780 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16781 {
16782 transform_fromhost_VkDisplayPlaneProperties2KHR(mImpl->resources(), (VkDisplayPlaneProperties2KHR*)(pProperties + i));
16783 }
16784 }
16785 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR returnUnmarshal");
16786 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
16787 stream->read(&vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return, sizeof(VkResult));
16788 countingStream->clearPool();
16789 stream->clearPool();
16790 pool->freeAll();
16791 mImpl->log("finish vkGetPhysicalDeviceDisplayPlaneProperties2KHR");;
16792 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
16793 }
16794
vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties)16795 VkResult VkEncoder::vkGetDisplayModeProperties2KHR(
16796 VkPhysicalDevice physicalDevice,
16797 VkDisplayKHR display,
16798 uint32_t* pPropertyCount,
16799 VkDisplayModeProperties2KHR* pProperties)
16800 {
16801 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR encode");
16802 mImpl->log("start vkGetDisplayModeProperties2KHR");
16803 auto stream = mImpl->stream();
16804 auto countingStream = mImpl->countingStream();
16805 auto resources = mImpl->resources();
16806 auto pool = mImpl->pool();
16807 stream->setHandleMapping(resources->unwrapMapping());
16808 VkPhysicalDevice local_physicalDevice;
16809 VkDisplayKHR local_display;
16810 local_physicalDevice = physicalDevice;
16811 local_display = display;
16812 countingStream->rewind();
16813 {
16814 uint64_t cgen_var_1123;
16815 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1123, 1);
16816 countingStream->write((uint64_t*)&cgen_var_1123, 1 * 8);
16817 uint64_t cgen_var_1124;
16818 countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1124, 1);
16819 countingStream->write((uint64_t*)&cgen_var_1124, 1 * 8);
16820 // WARNING PTR CHECK
16821 uint64_t cgen_var_1125 = (uint64_t)(uintptr_t)pPropertyCount;
16822 countingStream->putBe64(cgen_var_1125);
16823 if (pPropertyCount)
16824 {
16825 countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
16826 }
16827 // WARNING PTR CHECK
16828 uint64_t cgen_var_1126 = (uint64_t)(uintptr_t)pProperties;
16829 countingStream->putBe64(cgen_var_1126);
16830 if (pProperties)
16831 {
16832 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16833 {
16834 marshal_VkDisplayModeProperties2KHR(countingStream, (VkDisplayModeProperties2KHR*)(pProperties + i));
16835 }
16836 }
16837 }
16838 uint32_t packetSize_vkGetDisplayModeProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16839 countingStream->rewind();
16840 uint32_t opcode_vkGetDisplayModeProperties2KHR = OP_vkGetDisplayModeProperties2KHR;
16841 stream->write(&opcode_vkGetDisplayModeProperties2KHR, sizeof(uint32_t));
16842 stream->write(&packetSize_vkGetDisplayModeProperties2KHR, sizeof(uint32_t));
16843 uint64_t cgen_var_1127;
16844 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1127, 1);
16845 stream->write((uint64_t*)&cgen_var_1127, 1 * 8);
16846 uint64_t cgen_var_1128;
16847 stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1128, 1);
16848 stream->write((uint64_t*)&cgen_var_1128, 1 * 8);
16849 // WARNING PTR CHECK
16850 uint64_t cgen_var_1129 = (uint64_t)(uintptr_t)pPropertyCount;
16851 stream->putBe64(cgen_var_1129);
16852 if (pPropertyCount)
16853 {
16854 stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t));
16855 }
16856 // WARNING PTR CHECK
16857 uint64_t cgen_var_1130 = (uint64_t)(uintptr_t)pProperties;
16858 stream->putBe64(cgen_var_1130);
16859 if (pProperties)
16860 {
16861 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16862 {
16863 marshal_VkDisplayModeProperties2KHR(stream, (VkDisplayModeProperties2KHR*)(pProperties + i));
16864 }
16865 }
16866 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR readParams");
16867 // WARNING PTR CHECK
16868 uint32_t* check_pPropertyCount;
16869 check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
16870 if (pPropertyCount)
16871 {
16872 if (!(check_pPropertyCount))
16873 {
16874 fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
16875 }
16876 stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
16877 }
16878 // WARNING PTR CHECK
16879 VkDisplayModeProperties2KHR* check_pProperties;
16880 check_pProperties = (VkDisplayModeProperties2KHR*)(uintptr_t)stream->getBe64();
16881 if (pProperties)
16882 {
16883 if (!(check_pProperties))
16884 {
16885 fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
16886 }
16887 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16888 {
16889 unmarshal_VkDisplayModeProperties2KHR(stream, (VkDisplayModeProperties2KHR*)(pProperties + i));
16890 }
16891 }
16892 if (pProperties)
16893 {
16894 for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
16895 {
16896 transform_fromhost_VkDisplayModeProperties2KHR(mImpl->resources(), (VkDisplayModeProperties2KHR*)(pProperties + i));
16897 }
16898 }
16899 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR returnUnmarshal");
16900 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
16901 stream->read(&vkGetDisplayModeProperties2KHR_VkResult_return, sizeof(VkResult));
16902 countingStream->clearPool();
16903 stream->clearPool();
16904 pool->freeAll();
16905 mImpl->log("finish vkGetDisplayModeProperties2KHR");;
16906 return vkGetDisplayModeProperties2KHR_VkResult_return;
16907 }
16908
vkGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,VkDisplayPlaneCapabilities2KHR * pCapabilities)16909 VkResult VkEncoder::vkGetDisplayPlaneCapabilities2KHR(
16910 VkPhysicalDevice physicalDevice,
16911 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
16912 VkDisplayPlaneCapabilities2KHR* pCapabilities)
16913 {
16914 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR encode");
16915 mImpl->log("start vkGetDisplayPlaneCapabilities2KHR");
16916 auto stream = mImpl->stream();
16917 auto countingStream = mImpl->countingStream();
16918 auto resources = mImpl->resources();
16919 auto pool = mImpl->pool();
16920 stream->setHandleMapping(resources->unwrapMapping());
16921 VkPhysicalDevice local_physicalDevice;
16922 VkDisplayPlaneInfo2KHR* local_pDisplayPlaneInfo;
16923 local_physicalDevice = physicalDevice;
16924 local_pDisplayPlaneInfo = nullptr;
16925 if (pDisplayPlaneInfo)
16926 {
16927 local_pDisplayPlaneInfo = (VkDisplayPlaneInfo2KHR*)pool->alloc(sizeof(const VkDisplayPlaneInfo2KHR));
16928 deepcopy_VkDisplayPlaneInfo2KHR(pool, pDisplayPlaneInfo, (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo));
16929 }
16930 if (local_pDisplayPlaneInfo)
16931 {
16932 transform_tohost_VkDisplayPlaneInfo2KHR(mImpl->resources(), (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo));
16933 }
16934 countingStream->rewind();
16935 {
16936 uint64_t cgen_var_1133;
16937 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1133, 1);
16938 countingStream->write((uint64_t*)&cgen_var_1133, 1 * 8);
16939 marshal_VkDisplayPlaneInfo2KHR(countingStream, (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo));
16940 marshal_VkDisplayPlaneCapabilities2KHR(countingStream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities));
16941 }
16942 uint32_t packetSize_vkGetDisplayPlaneCapabilities2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
16943 countingStream->rewind();
16944 uint32_t opcode_vkGetDisplayPlaneCapabilities2KHR = OP_vkGetDisplayPlaneCapabilities2KHR;
16945 stream->write(&opcode_vkGetDisplayPlaneCapabilities2KHR, sizeof(uint32_t));
16946 stream->write(&packetSize_vkGetDisplayPlaneCapabilities2KHR, sizeof(uint32_t));
16947 uint64_t cgen_var_1134;
16948 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1134, 1);
16949 stream->write((uint64_t*)&cgen_var_1134, 1 * 8);
16950 marshal_VkDisplayPlaneInfo2KHR(stream, (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo));
16951 marshal_VkDisplayPlaneCapabilities2KHR(stream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities));
16952 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR readParams");
16953 unmarshal_VkDisplayPlaneCapabilities2KHR(stream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities));
16954 if (pCapabilities)
16955 {
16956 transform_fromhost_VkDisplayPlaneCapabilities2KHR(mImpl->resources(), (VkDisplayPlaneCapabilities2KHR*)(pCapabilities));
16957 }
16958 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR returnUnmarshal");
16959 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
16960 stream->read(&vkGetDisplayPlaneCapabilities2KHR_VkResult_return, sizeof(VkResult));
16961 countingStream->clearPool();
16962 stream->clearPool();
16963 pool->freeAll();
16964 mImpl->log("finish vkGetDisplayPlaneCapabilities2KHR");;
16965 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
16966 }
16967
16968 #endif
16969 #ifdef VK_KHR_dedicated_allocation
16970 #endif
16971 #ifdef VK_KHR_storage_buffer_storage_class
16972 #endif
16973 #ifdef VK_KHR_relaxed_block_layout
16974 #endif
16975 #ifdef VK_KHR_get_memory_requirements2
vkGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)16976 void VkEncoder::vkGetImageMemoryRequirements2KHR(
16977 VkDevice device,
16978 const VkImageMemoryRequirementsInfo2* pInfo,
16979 VkMemoryRequirements2* pMemoryRequirements)
16980 {
16981 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR encode");
16982 mImpl->log("start vkGetImageMemoryRequirements2KHR");
16983 auto stream = mImpl->stream();
16984 auto countingStream = mImpl->countingStream();
16985 auto resources = mImpl->resources();
16986 auto pool = mImpl->pool();
16987 stream->setHandleMapping(resources->unwrapMapping());
16988 VkDevice local_device;
16989 VkImageMemoryRequirementsInfo2* local_pInfo;
16990 local_device = device;
16991 local_pInfo = nullptr;
16992 if (pInfo)
16993 {
16994 local_pInfo = (VkImageMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkImageMemoryRequirementsInfo2));
16995 deepcopy_VkImageMemoryRequirementsInfo2(pool, pInfo, (VkImageMemoryRequirementsInfo2*)(local_pInfo));
16996 }
16997 if (local_pInfo)
16998 {
16999 transform_tohost_VkImageMemoryRequirementsInfo2(mImpl->resources(), (VkImageMemoryRequirementsInfo2*)(local_pInfo));
17000 }
17001 countingStream->rewind();
17002 {
17003 uint64_t cgen_var_1135;
17004 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1135, 1);
17005 countingStream->write((uint64_t*)&cgen_var_1135, 1 * 8);
17006 marshal_VkImageMemoryRequirementsInfo2(countingStream, (VkImageMemoryRequirementsInfo2*)(local_pInfo));
17007 marshal_VkMemoryRequirements2(countingStream, (VkMemoryRequirements2*)(pMemoryRequirements));
17008 }
17009 uint32_t packetSize_vkGetImageMemoryRequirements2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17010 countingStream->rewind();
17011 uint32_t opcode_vkGetImageMemoryRequirements2KHR = OP_vkGetImageMemoryRequirements2KHR;
17012 stream->write(&opcode_vkGetImageMemoryRequirements2KHR, sizeof(uint32_t));
17013 stream->write(&packetSize_vkGetImageMemoryRequirements2KHR, sizeof(uint32_t));
17014 uint64_t cgen_var_1136;
17015 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1136, 1);
17016 stream->write((uint64_t*)&cgen_var_1136, 1 * 8);
17017 marshal_VkImageMemoryRequirementsInfo2(stream, (VkImageMemoryRequirementsInfo2*)(local_pInfo));
17018 marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
17019 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR readParams");
17020 unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
17021 if (pMemoryRequirements)
17022 {
17023 transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
17024 }
17025 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR returnUnmarshal");
17026 mImpl->log("finish vkGetImageMemoryRequirements2KHR");;
17027 }
17028
vkGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)17029 void VkEncoder::vkGetBufferMemoryRequirements2KHR(
17030 VkDevice device,
17031 const VkBufferMemoryRequirementsInfo2* pInfo,
17032 VkMemoryRequirements2* pMemoryRequirements)
17033 {
17034 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR encode");
17035 mImpl->log("start vkGetBufferMemoryRequirements2KHR");
17036 auto stream = mImpl->stream();
17037 auto countingStream = mImpl->countingStream();
17038 auto resources = mImpl->resources();
17039 auto pool = mImpl->pool();
17040 stream->setHandleMapping(resources->unwrapMapping());
17041 VkDevice local_device;
17042 VkBufferMemoryRequirementsInfo2* local_pInfo;
17043 local_device = device;
17044 local_pInfo = nullptr;
17045 if (pInfo)
17046 {
17047 local_pInfo = (VkBufferMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkBufferMemoryRequirementsInfo2));
17048 deepcopy_VkBufferMemoryRequirementsInfo2(pool, pInfo, (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
17049 }
17050 if (local_pInfo)
17051 {
17052 transform_tohost_VkBufferMemoryRequirementsInfo2(mImpl->resources(), (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
17053 }
17054 countingStream->rewind();
17055 {
17056 uint64_t cgen_var_1137;
17057 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1137, 1);
17058 countingStream->write((uint64_t*)&cgen_var_1137, 1 * 8);
17059 marshal_VkBufferMemoryRequirementsInfo2(countingStream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
17060 marshal_VkMemoryRequirements2(countingStream, (VkMemoryRequirements2*)(pMemoryRequirements));
17061 }
17062 uint32_t packetSize_vkGetBufferMemoryRequirements2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17063 countingStream->rewind();
17064 uint32_t opcode_vkGetBufferMemoryRequirements2KHR = OP_vkGetBufferMemoryRequirements2KHR;
17065 stream->write(&opcode_vkGetBufferMemoryRequirements2KHR, sizeof(uint32_t));
17066 stream->write(&packetSize_vkGetBufferMemoryRequirements2KHR, sizeof(uint32_t));
17067 uint64_t cgen_var_1138;
17068 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1138, 1);
17069 stream->write((uint64_t*)&cgen_var_1138, 1 * 8);
17070 marshal_VkBufferMemoryRequirementsInfo2(stream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
17071 marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
17072 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR readParams");
17073 unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
17074 if (pMemoryRequirements)
17075 {
17076 transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
17077 }
17078 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR returnUnmarshal");
17079 mImpl->log("finish vkGetBufferMemoryRequirements2KHR");;
17080 }
17081
vkGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)17082 void VkEncoder::vkGetImageSparseMemoryRequirements2KHR(
17083 VkDevice device,
17084 const VkImageSparseMemoryRequirementsInfo2* pInfo,
17085 uint32_t* pSparseMemoryRequirementCount,
17086 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
17087 {
17088 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR encode");
17089 mImpl->log("start vkGetImageSparseMemoryRequirements2KHR");
17090 auto stream = mImpl->stream();
17091 auto countingStream = mImpl->countingStream();
17092 auto resources = mImpl->resources();
17093 auto pool = mImpl->pool();
17094 stream->setHandleMapping(resources->unwrapMapping());
17095 VkDevice local_device;
17096 VkImageSparseMemoryRequirementsInfo2* local_pInfo;
17097 local_device = device;
17098 local_pInfo = nullptr;
17099 if (pInfo)
17100 {
17101 local_pInfo = (VkImageSparseMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkImageSparseMemoryRequirementsInfo2));
17102 deepcopy_VkImageSparseMemoryRequirementsInfo2(pool, pInfo, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
17103 }
17104 if (local_pInfo)
17105 {
17106 transform_tohost_VkImageSparseMemoryRequirementsInfo2(mImpl->resources(), (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
17107 }
17108 countingStream->rewind();
17109 {
17110 uint64_t cgen_var_1139;
17111 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1139, 1);
17112 countingStream->write((uint64_t*)&cgen_var_1139, 1 * 8);
17113 marshal_VkImageSparseMemoryRequirementsInfo2(countingStream, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
17114 // WARNING PTR CHECK
17115 uint64_t cgen_var_1140 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
17116 countingStream->putBe64(cgen_var_1140);
17117 if (pSparseMemoryRequirementCount)
17118 {
17119 countingStream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
17120 }
17121 // WARNING PTR CHECK
17122 uint64_t cgen_var_1141 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
17123 countingStream->putBe64(cgen_var_1141);
17124 if (pSparseMemoryRequirements)
17125 {
17126 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
17127 {
17128 marshal_VkSparseImageMemoryRequirements2(countingStream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
17129 }
17130 }
17131 }
17132 uint32_t packetSize_vkGetImageSparseMemoryRequirements2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17133 countingStream->rewind();
17134 uint32_t opcode_vkGetImageSparseMemoryRequirements2KHR = OP_vkGetImageSparseMemoryRequirements2KHR;
17135 stream->write(&opcode_vkGetImageSparseMemoryRequirements2KHR, sizeof(uint32_t));
17136 stream->write(&packetSize_vkGetImageSparseMemoryRequirements2KHR, sizeof(uint32_t));
17137 uint64_t cgen_var_1142;
17138 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1142, 1);
17139 stream->write((uint64_t*)&cgen_var_1142, 1 * 8);
17140 marshal_VkImageSparseMemoryRequirementsInfo2(stream, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo));
17141 // WARNING PTR CHECK
17142 uint64_t cgen_var_1143 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
17143 stream->putBe64(cgen_var_1143);
17144 if (pSparseMemoryRequirementCount)
17145 {
17146 stream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
17147 }
17148 // WARNING PTR CHECK
17149 uint64_t cgen_var_1144 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
17150 stream->putBe64(cgen_var_1144);
17151 if (pSparseMemoryRequirements)
17152 {
17153 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
17154 {
17155 marshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
17156 }
17157 }
17158 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR readParams");
17159 // WARNING PTR CHECK
17160 uint32_t* check_pSparseMemoryRequirementCount;
17161 check_pSparseMemoryRequirementCount = (uint32_t*)(uintptr_t)stream->getBe64();
17162 if (pSparseMemoryRequirementCount)
17163 {
17164 if (!(check_pSparseMemoryRequirementCount))
17165 {
17166 fprintf(stderr, "fatal: pSparseMemoryRequirementCount inconsistent between guest and host\n");
17167 }
17168 stream->read((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
17169 }
17170 // WARNING PTR CHECK
17171 VkSparseImageMemoryRequirements2* check_pSparseMemoryRequirements;
17172 check_pSparseMemoryRequirements = (VkSparseImageMemoryRequirements2*)(uintptr_t)stream->getBe64();
17173 if (pSparseMemoryRequirements)
17174 {
17175 if (!(check_pSparseMemoryRequirements))
17176 {
17177 fprintf(stderr, "fatal: pSparseMemoryRequirements inconsistent between guest and host\n");
17178 }
17179 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
17180 {
17181 unmarshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
17182 }
17183 }
17184 if (pSparseMemoryRequirements)
17185 {
17186 for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
17187 {
17188 transform_fromhost_VkSparseImageMemoryRequirements2(mImpl->resources(), (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
17189 }
17190 }
17191 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR returnUnmarshal");
17192 mImpl->log("finish vkGetImageSparseMemoryRequirements2KHR");;
17193 }
17194
17195 #endif
17196 #ifdef VK_KHR_image_format_list
17197 #endif
17198 #ifdef VK_KHR_sampler_ycbcr_conversion
vkCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)17199 VkResult VkEncoder::vkCreateSamplerYcbcrConversionKHR(
17200 VkDevice device,
17201 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
17202 const VkAllocationCallbacks* pAllocator,
17203 VkSamplerYcbcrConversion* pYcbcrConversion)
17204 {
17205 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR encode");
17206 mImpl->log("start vkCreateSamplerYcbcrConversionKHR");
17207 auto stream = mImpl->stream();
17208 auto countingStream = mImpl->countingStream();
17209 auto resources = mImpl->resources();
17210 auto pool = mImpl->pool();
17211 stream->setHandleMapping(resources->unwrapMapping());
17212 VkDevice local_device;
17213 VkSamplerYcbcrConversionCreateInfo* local_pCreateInfo;
17214 VkAllocationCallbacks* local_pAllocator;
17215 local_device = device;
17216 local_pCreateInfo = nullptr;
17217 if (pCreateInfo)
17218 {
17219 local_pCreateInfo = (VkSamplerYcbcrConversionCreateInfo*)pool->alloc(sizeof(const VkSamplerYcbcrConversionCreateInfo));
17220 deepcopy_VkSamplerYcbcrConversionCreateInfo(pool, pCreateInfo, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
17221 }
17222 local_pAllocator = nullptr;
17223 if (pAllocator)
17224 {
17225 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
17226 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
17227 }
17228 local_pAllocator = nullptr;
17229 if (local_pCreateInfo)
17230 {
17231 transform_tohost_VkSamplerYcbcrConversionCreateInfo(mImpl->resources(), (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
17232 }
17233 if (local_pAllocator)
17234 {
17235 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
17236 }
17237 countingStream->rewind();
17238 {
17239 uint64_t cgen_var_1147;
17240 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1147, 1);
17241 countingStream->write((uint64_t*)&cgen_var_1147, 1 * 8);
17242 marshal_VkSamplerYcbcrConversionCreateInfo(countingStream, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
17243 // WARNING PTR CHECK
17244 uint64_t cgen_var_1148 = (uint64_t)(uintptr_t)local_pAllocator;
17245 countingStream->putBe64(cgen_var_1148);
17246 if (local_pAllocator)
17247 {
17248 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
17249 }
17250 uint64_t cgen_var_1149;
17251 countingStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(pYcbcrConversion, &cgen_var_1149, 1);
17252 countingStream->write((uint64_t*)&cgen_var_1149, 8);
17253 }
17254 uint32_t packetSize_vkCreateSamplerYcbcrConversionKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17255 countingStream->rewind();
17256 uint32_t opcode_vkCreateSamplerYcbcrConversionKHR = OP_vkCreateSamplerYcbcrConversionKHR;
17257 stream->write(&opcode_vkCreateSamplerYcbcrConversionKHR, sizeof(uint32_t));
17258 stream->write(&packetSize_vkCreateSamplerYcbcrConversionKHR, sizeof(uint32_t));
17259 uint64_t cgen_var_1150;
17260 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1150, 1);
17261 stream->write((uint64_t*)&cgen_var_1150, 1 * 8);
17262 marshal_VkSamplerYcbcrConversionCreateInfo(stream, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo));
17263 // WARNING PTR CHECK
17264 uint64_t cgen_var_1151 = (uint64_t)(uintptr_t)local_pAllocator;
17265 stream->putBe64(cgen_var_1151);
17266 if (local_pAllocator)
17267 {
17268 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
17269 }
17270 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
17271 uint64_t cgen_var_1152;
17272 stream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(pYcbcrConversion, &cgen_var_1152, 1);
17273 stream->write((uint64_t*)&cgen_var_1152, 8);
17274 stream->setHandleMapping(resources->unwrapMapping());
17275 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR readParams");
17276 stream->setHandleMapping(resources->createMapping());
17277 uint64_t cgen_var_1153;
17278 stream->read((uint64_t*)&cgen_var_1153, 8);
17279 stream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_1153, (VkSamplerYcbcrConversion*)pYcbcrConversion, 1);
17280 stream->unsetHandleMapping();
17281 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR returnUnmarshal");
17282 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
17283 stream->read(&vkCreateSamplerYcbcrConversionKHR_VkResult_return, sizeof(VkResult));
17284 countingStream->clearPool();
17285 stream->clearPool();
17286 pool->freeAll();
17287 mImpl->log("finish vkCreateSamplerYcbcrConversionKHR");;
17288 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
17289 }
17290
vkDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)17291 void VkEncoder::vkDestroySamplerYcbcrConversionKHR(
17292 VkDevice device,
17293 VkSamplerYcbcrConversion ycbcrConversion,
17294 const VkAllocationCallbacks* pAllocator)
17295 {
17296 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR encode");
17297 mImpl->log("start vkDestroySamplerYcbcrConversionKHR");
17298 auto stream = mImpl->stream();
17299 auto countingStream = mImpl->countingStream();
17300 auto resources = mImpl->resources();
17301 auto pool = mImpl->pool();
17302 stream->setHandleMapping(resources->unwrapMapping());
17303 VkDevice local_device;
17304 VkSamplerYcbcrConversion local_ycbcrConversion;
17305 VkAllocationCallbacks* local_pAllocator;
17306 local_device = device;
17307 local_ycbcrConversion = ycbcrConversion;
17308 local_pAllocator = nullptr;
17309 if (pAllocator)
17310 {
17311 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
17312 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
17313 }
17314 local_pAllocator = nullptr;
17315 if (local_pAllocator)
17316 {
17317 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
17318 }
17319 countingStream->rewind();
17320 {
17321 uint64_t cgen_var_1154;
17322 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1154, 1);
17323 countingStream->write((uint64_t*)&cgen_var_1154, 1 * 8);
17324 uint64_t cgen_var_1155;
17325 countingStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&local_ycbcrConversion, &cgen_var_1155, 1);
17326 countingStream->write((uint64_t*)&cgen_var_1155, 1 * 8);
17327 // WARNING PTR CHECK
17328 uint64_t cgen_var_1156 = (uint64_t)(uintptr_t)local_pAllocator;
17329 countingStream->putBe64(cgen_var_1156);
17330 if (local_pAllocator)
17331 {
17332 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
17333 }
17334 }
17335 uint32_t packetSize_vkDestroySamplerYcbcrConversionKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17336 countingStream->rewind();
17337 uint32_t opcode_vkDestroySamplerYcbcrConversionKHR = OP_vkDestroySamplerYcbcrConversionKHR;
17338 stream->write(&opcode_vkDestroySamplerYcbcrConversionKHR, sizeof(uint32_t));
17339 stream->write(&packetSize_vkDestroySamplerYcbcrConversionKHR, sizeof(uint32_t));
17340 uint64_t cgen_var_1157;
17341 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1157, 1);
17342 stream->write((uint64_t*)&cgen_var_1157, 1 * 8);
17343 uint64_t cgen_var_1158;
17344 stream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&local_ycbcrConversion, &cgen_var_1158, 1);
17345 stream->write((uint64_t*)&cgen_var_1158, 1 * 8);
17346 // WARNING PTR CHECK
17347 uint64_t cgen_var_1159 = (uint64_t)(uintptr_t)local_pAllocator;
17348 stream->putBe64(cgen_var_1159);
17349 if (local_pAllocator)
17350 {
17351 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
17352 }
17353 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR readParams");
17354 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR returnUnmarshal");
17355 resources->destroyMapping()->mapHandles_VkSamplerYcbcrConversion((VkSamplerYcbcrConversion*)&ycbcrConversion);
17356 mImpl->log("finish vkDestroySamplerYcbcrConversionKHR");;
17357 }
17358
17359 #endif
17360 #ifdef VK_KHR_bind_memory2
vkBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)17361 VkResult VkEncoder::vkBindBufferMemory2KHR(
17362 VkDevice device,
17363 uint32_t bindInfoCount,
17364 const VkBindBufferMemoryInfo* pBindInfos)
17365 {
17366 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR encode");
17367 mImpl->log("start vkBindBufferMemory2KHR");
17368 auto stream = mImpl->stream();
17369 auto countingStream = mImpl->countingStream();
17370 auto resources = mImpl->resources();
17371 auto pool = mImpl->pool();
17372 stream->setHandleMapping(resources->unwrapMapping());
17373 VkDevice local_device;
17374 uint32_t local_bindInfoCount;
17375 VkBindBufferMemoryInfo* local_pBindInfos;
17376 local_device = device;
17377 local_bindInfoCount = bindInfoCount;
17378 local_pBindInfos = nullptr;
17379 if (pBindInfos)
17380 {
17381 local_pBindInfos = (VkBindBufferMemoryInfo*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindBufferMemoryInfo));
17382 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
17383 {
17384 deepcopy_VkBindBufferMemoryInfo(pool, pBindInfos + i, (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
17385 }
17386 }
17387 if (local_pBindInfos)
17388 {
17389 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
17390 {
17391 transform_tohost_VkBindBufferMemoryInfo(mImpl->resources(), (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
17392 }
17393 }
17394 countingStream->rewind();
17395 {
17396 uint64_t cgen_var_1160;
17397 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1160, 1);
17398 countingStream->write((uint64_t*)&cgen_var_1160, 1 * 8);
17399 countingStream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
17400 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
17401 {
17402 marshal_VkBindBufferMemoryInfo(countingStream, (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
17403 }
17404 }
17405 uint32_t packetSize_vkBindBufferMemory2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17406 countingStream->rewind();
17407 uint32_t opcode_vkBindBufferMemory2KHR = OP_vkBindBufferMemory2KHR;
17408 stream->write(&opcode_vkBindBufferMemory2KHR, sizeof(uint32_t));
17409 stream->write(&packetSize_vkBindBufferMemory2KHR, sizeof(uint32_t));
17410 uint64_t cgen_var_1161;
17411 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1161, 1);
17412 stream->write((uint64_t*)&cgen_var_1161, 1 * 8);
17413 stream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
17414 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
17415 {
17416 marshal_VkBindBufferMemoryInfo(stream, (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
17417 }
17418 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR readParams");
17419 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR returnUnmarshal");
17420 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
17421 stream->read(&vkBindBufferMemory2KHR_VkResult_return, sizeof(VkResult));
17422 countingStream->clearPool();
17423 stream->clearPool();
17424 pool->freeAll();
17425 mImpl->log("finish vkBindBufferMemory2KHR");;
17426 return vkBindBufferMemory2KHR_VkResult_return;
17427 }
17428
vkBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)17429 VkResult VkEncoder::vkBindImageMemory2KHR(
17430 VkDevice device,
17431 uint32_t bindInfoCount,
17432 const VkBindImageMemoryInfo* pBindInfos)
17433 {
17434 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR encode");
17435 mImpl->log("start vkBindImageMemory2KHR");
17436 auto stream = mImpl->stream();
17437 auto countingStream = mImpl->countingStream();
17438 auto resources = mImpl->resources();
17439 auto pool = mImpl->pool();
17440 stream->setHandleMapping(resources->unwrapMapping());
17441 VkDevice local_device;
17442 uint32_t local_bindInfoCount;
17443 VkBindImageMemoryInfo* local_pBindInfos;
17444 local_device = device;
17445 local_bindInfoCount = bindInfoCount;
17446 local_pBindInfos = nullptr;
17447 if (pBindInfos)
17448 {
17449 local_pBindInfos = (VkBindImageMemoryInfo*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindImageMemoryInfo));
17450 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
17451 {
17452 deepcopy_VkBindImageMemoryInfo(pool, pBindInfos + i, (VkBindImageMemoryInfo*)(local_pBindInfos + i));
17453 }
17454 }
17455 if (local_pBindInfos)
17456 {
17457 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
17458 {
17459 transform_tohost_VkBindImageMemoryInfo(mImpl->resources(), (VkBindImageMemoryInfo*)(local_pBindInfos + i));
17460 }
17461 }
17462 countingStream->rewind();
17463 {
17464 uint64_t cgen_var_1162;
17465 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1162, 1);
17466 countingStream->write((uint64_t*)&cgen_var_1162, 1 * 8);
17467 countingStream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
17468 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
17469 {
17470 marshal_VkBindImageMemoryInfo(countingStream, (VkBindImageMemoryInfo*)(local_pBindInfos + i));
17471 }
17472 }
17473 uint32_t packetSize_vkBindImageMemory2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17474 countingStream->rewind();
17475 uint32_t opcode_vkBindImageMemory2KHR = OP_vkBindImageMemory2KHR;
17476 stream->write(&opcode_vkBindImageMemory2KHR, sizeof(uint32_t));
17477 stream->write(&packetSize_vkBindImageMemory2KHR, sizeof(uint32_t));
17478 uint64_t cgen_var_1163;
17479 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1163, 1);
17480 stream->write((uint64_t*)&cgen_var_1163, 1 * 8);
17481 stream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
17482 for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
17483 {
17484 marshal_VkBindImageMemoryInfo(stream, (VkBindImageMemoryInfo*)(local_pBindInfos + i));
17485 }
17486 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR readParams");
17487 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR returnUnmarshal");
17488 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
17489 stream->read(&vkBindImageMemory2KHR_VkResult_return, sizeof(VkResult));
17490 countingStream->clearPool();
17491 stream->clearPool();
17492 pool->freeAll();
17493 mImpl->log("finish vkBindImageMemory2KHR");;
17494 return vkBindImageMemory2KHR_VkResult_return;
17495 }
17496
17497 #endif
17498 #ifdef VK_KHR_maintenance3
vkGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)17499 void VkEncoder::vkGetDescriptorSetLayoutSupportKHR(
17500 VkDevice device,
17501 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
17502 VkDescriptorSetLayoutSupport* pSupport)
17503 {
17504 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR encode");
17505 mImpl->log("start vkGetDescriptorSetLayoutSupportKHR");
17506 auto stream = mImpl->stream();
17507 auto countingStream = mImpl->countingStream();
17508 auto resources = mImpl->resources();
17509 auto pool = mImpl->pool();
17510 stream->setHandleMapping(resources->unwrapMapping());
17511 VkDevice local_device;
17512 VkDescriptorSetLayoutCreateInfo* local_pCreateInfo;
17513 local_device = device;
17514 local_pCreateInfo = nullptr;
17515 if (pCreateInfo)
17516 {
17517 local_pCreateInfo = (VkDescriptorSetLayoutCreateInfo*)pool->alloc(sizeof(const VkDescriptorSetLayoutCreateInfo));
17518 deepcopy_VkDescriptorSetLayoutCreateInfo(pool, pCreateInfo, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
17519 }
17520 if (local_pCreateInfo)
17521 {
17522 transform_tohost_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
17523 }
17524 countingStream->rewind();
17525 {
17526 uint64_t cgen_var_1164;
17527 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1164, 1);
17528 countingStream->write((uint64_t*)&cgen_var_1164, 1 * 8);
17529 marshal_VkDescriptorSetLayoutCreateInfo(countingStream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
17530 marshal_VkDescriptorSetLayoutSupport(countingStream, (VkDescriptorSetLayoutSupport*)(pSupport));
17531 }
17532 uint32_t packetSize_vkGetDescriptorSetLayoutSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17533 countingStream->rewind();
17534 uint32_t opcode_vkGetDescriptorSetLayoutSupportKHR = OP_vkGetDescriptorSetLayoutSupportKHR;
17535 stream->write(&opcode_vkGetDescriptorSetLayoutSupportKHR, sizeof(uint32_t));
17536 stream->write(&packetSize_vkGetDescriptorSetLayoutSupportKHR, sizeof(uint32_t));
17537 uint64_t cgen_var_1165;
17538 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1165, 1);
17539 stream->write((uint64_t*)&cgen_var_1165, 1 * 8);
17540 marshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
17541 marshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
17542 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR readParams");
17543 unmarshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
17544 if (pSupport)
17545 {
17546 transform_fromhost_VkDescriptorSetLayoutSupport(mImpl->resources(), (VkDescriptorSetLayoutSupport*)(pSupport));
17547 }
17548 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR returnUnmarshal");
17549 mImpl->log("finish vkGetDescriptorSetLayoutSupportKHR");;
17550 }
17551
17552 #endif
17553 #ifdef VK_KHR_draw_indirect_count
vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)17554 void VkEncoder::vkCmdDrawIndirectCountKHR(
17555 VkCommandBuffer commandBuffer,
17556 VkBuffer buffer,
17557 VkDeviceSize offset,
17558 VkBuffer countBuffer,
17559 VkDeviceSize countBufferOffset,
17560 uint32_t maxDrawCount,
17561 uint32_t stride)
17562 {
17563 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR encode");
17564 mImpl->log("start vkCmdDrawIndirectCountKHR");
17565 auto stream = mImpl->stream();
17566 auto countingStream = mImpl->countingStream();
17567 auto resources = mImpl->resources();
17568 auto pool = mImpl->pool();
17569 stream->setHandleMapping(resources->unwrapMapping());
17570 VkCommandBuffer local_commandBuffer;
17571 VkBuffer local_buffer;
17572 VkDeviceSize local_offset;
17573 VkBuffer local_countBuffer;
17574 VkDeviceSize local_countBufferOffset;
17575 uint32_t local_maxDrawCount;
17576 uint32_t local_stride;
17577 local_commandBuffer = commandBuffer;
17578 local_buffer = buffer;
17579 local_offset = offset;
17580 local_countBuffer = countBuffer;
17581 local_countBufferOffset = countBufferOffset;
17582 local_maxDrawCount = maxDrawCount;
17583 local_stride = stride;
17584 countingStream->rewind();
17585 {
17586 uint64_t cgen_var_1166;
17587 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1166, 1);
17588 countingStream->write((uint64_t*)&cgen_var_1166, 1 * 8);
17589 uint64_t cgen_var_1167;
17590 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1167, 1);
17591 countingStream->write((uint64_t*)&cgen_var_1167, 1 * 8);
17592 countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
17593 uint64_t cgen_var_1168;
17594 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1168, 1);
17595 countingStream->write((uint64_t*)&cgen_var_1168, 1 * 8);
17596 countingStream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
17597 countingStream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
17598 countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t));
17599 }
17600 uint32_t packetSize_vkCmdDrawIndirectCountKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17601 countingStream->rewind();
17602 uint32_t opcode_vkCmdDrawIndirectCountKHR = OP_vkCmdDrawIndirectCountKHR;
17603 stream->write(&opcode_vkCmdDrawIndirectCountKHR, sizeof(uint32_t));
17604 stream->write(&packetSize_vkCmdDrawIndirectCountKHR, sizeof(uint32_t));
17605 uint64_t cgen_var_1169;
17606 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1169, 1);
17607 stream->write((uint64_t*)&cgen_var_1169, 1 * 8);
17608 uint64_t cgen_var_1170;
17609 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1170, 1);
17610 stream->write((uint64_t*)&cgen_var_1170, 1 * 8);
17611 stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
17612 uint64_t cgen_var_1171;
17613 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1171, 1);
17614 stream->write((uint64_t*)&cgen_var_1171, 1 * 8);
17615 stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
17616 stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
17617 stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
17618 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR readParams");
17619 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR returnUnmarshal");
17620 mImpl->log("finish vkCmdDrawIndirectCountKHR");;
17621 }
17622
vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)17623 void VkEncoder::vkCmdDrawIndexedIndirectCountKHR(
17624 VkCommandBuffer commandBuffer,
17625 VkBuffer buffer,
17626 VkDeviceSize offset,
17627 VkBuffer countBuffer,
17628 VkDeviceSize countBufferOffset,
17629 uint32_t maxDrawCount,
17630 uint32_t stride)
17631 {
17632 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR encode");
17633 mImpl->log("start vkCmdDrawIndexedIndirectCountKHR");
17634 auto stream = mImpl->stream();
17635 auto countingStream = mImpl->countingStream();
17636 auto resources = mImpl->resources();
17637 auto pool = mImpl->pool();
17638 stream->setHandleMapping(resources->unwrapMapping());
17639 VkCommandBuffer local_commandBuffer;
17640 VkBuffer local_buffer;
17641 VkDeviceSize local_offset;
17642 VkBuffer local_countBuffer;
17643 VkDeviceSize local_countBufferOffset;
17644 uint32_t local_maxDrawCount;
17645 uint32_t local_stride;
17646 local_commandBuffer = commandBuffer;
17647 local_buffer = buffer;
17648 local_offset = offset;
17649 local_countBuffer = countBuffer;
17650 local_countBufferOffset = countBufferOffset;
17651 local_maxDrawCount = maxDrawCount;
17652 local_stride = stride;
17653 countingStream->rewind();
17654 {
17655 uint64_t cgen_var_1172;
17656 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1172, 1);
17657 countingStream->write((uint64_t*)&cgen_var_1172, 1 * 8);
17658 uint64_t cgen_var_1173;
17659 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1173, 1);
17660 countingStream->write((uint64_t*)&cgen_var_1173, 1 * 8);
17661 countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
17662 uint64_t cgen_var_1174;
17663 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1174, 1);
17664 countingStream->write((uint64_t*)&cgen_var_1174, 1 * 8);
17665 countingStream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
17666 countingStream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
17667 countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t));
17668 }
17669 uint32_t packetSize_vkCmdDrawIndexedIndirectCountKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17670 countingStream->rewind();
17671 uint32_t opcode_vkCmdDrawIndexedIndirectCountKHR = OP_vkCmdDrawIndexedIndirectCountKHR;
17672 stream->write(&opcode_vkCmdDrawIndexedIndirectCountKHR, sizeof(uint32_t));
17673 stream->write(&packetSize_vkCmdDrawIndexedIndirectCountKHR, sizeof(uint32_t));
17674 uint64_t cgen_var_1175;
17675 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1175, 1);
17676 stream->write((uint64_t*)&cgen_var_1175, 1 * 8);
17677 uint64_t cgen_var_1176;
17678 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1176, 1);
17679 stream->write((uint64_t*)&cgen_var_1176, 1 * 8);
17680 stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
17681 uint64_t cgen_var_1177;
17682 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1177, 1);
17683 stream->write((uint64_t*)&cgen_var_1177, 1 * 8);
17684 stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
17685 stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
17686 stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
17687 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR readParams");
17688 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR returnUnmarshal");
17689 mImpl->log("finish vkCmdDrawIndexedIndirectCountKHR");;
17690 }
17691
17692 #endif
17693 #ifdef VK_KHR_8bit_storage
17694 #endif
17695 #ifdef VK_ANDROID_native_buffer
vkGetSwapchainGrallocUsageANDROID(VkDevice device,VkFormat format,VkImageUsageFlags imageUsage,int * grallocUsage)17696 VkResult VkEncoder::vkGetSwapchainGrallocUsageANDROID(
17697 VkDevice device,
17698 VkFormat format,
17699 VkImageUsageFlags imageUsage,
17700 int* grallocUsage)
17701 {
17702 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID encode");
17703 mImpl->log("start vkGetSwapchainGrallocUsageANDROID");
17704 auto stream = mImpl->stream();
17705 auto countingStream = mImpl->countingStream();
17706 auto resources = mImpl->resources();
17707 auto pool = mImpl->pool();
17708 stream->setHandleMapping(resources->unwrapMapping());
17709 VkDevice local_device;
17710 VkFormat local_format;
17711 VkImageUsageFlags local_imageUsage;
17712 local_device = device;
17713 local_format = format;
17714 local_imageUsage = imageUsage;
17715 countingStream->rewind();
17716 {
17717 uint64_t cgen_var_1178;
17718 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1178, 1);
17719 countingStream->write((uint64_t*)&cgen_var_1178, 1 * 8);
17720 countingStream->write((VkFormat*)&local_format, sizeof(VkFormat));
17721 countingStream->write((VkImageUsageFlags*)&local_imageUsage, sizeof(VkImageUsageFlags));
17722 countingStream->write((int*)grallocUsage, sizeof(int));
17723 }
17724 uint32_t packetSize_vkGetSwapchainGrallocUsageANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17725 countingStream->rewind();
17726 uint32_t opcode_vkGetSwapchainGrallocUsageANDROID = OP_vkGetSwapchainGrallocUsageANDROID;
17727 stream->write(&opcode_vkGetSwapchainGrallocUsageANDROID, sizeof(uint32_t));
17728 stream->write(&packetSize_vkGetSwapchainGrallocUsageANDROID, sizeof(uint32_t));
17729 uint64_t cgen_var_1179;
17730 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1179, 1);
17731 stream->write((uint64_t*)&cgen_var_1179, 1 * 8);
17732 stream->write((VkFormat*)&local_format, sizeof(VkFormat));
17733 stream->write((VkImageUsageFlags*)&local_imageUsage, sizeof(VkImageUsageFlags));
17734 stream->write((int*)grallocUsage, sizeof(int));
17735 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID readParams");
17736 stream->read((int*)grallocUsage, sizeof(int));
17737 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID returnUnmarshal");
17738 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
17739 stream->read(&vkGetSwapchainGrallocUsageANDROID_VkResult_return, sizeof(VkResult));
17740 countingStream->clearPool();
17741 stream->clearPool();
17742 pool->freeAll();
17743 mImpl->log("finish vkGetSwapchainGrallocUsageANDROID");;
17744 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
17745 }
17746
vkAcquireImageANDROID(VkDevice device,VkImage image,int nativeFenceFd,VkSemaphore semaphore,VkFence fence)17747 VkResult VkEncoder::vkAcquireImageANDROID(
17748 VkDevice device,
17749 VkImage image,
17750 int nativeFenceFd,
17751 VkSemaphore semaphore,
17752 VkFence fence)
17753 {
17754 AEMU_SCOPED_TRACE("vkAcquireImageANDROID encode");
17755 mImpl->log("start vkAcquireImageANDROID");
17756 auto stream = mImpl->stream();
17757 auto countingStream = mImpl->countingStream();
17758 auto resources = mImpl->resources();
17759 auto pool = mImpl->pool();
17760 stream->setHandleMapping(resources->unwrapMapping());
17761 VkDevice local_device;
17762 VkImage local_image;
17763 int local_nativeFenceFd;
17764 VkSemaphore local_semaphore;
17765 VkFence local_fence;
17766 local_device = device;
17767 local_image = image;
17768 local_nativeFenceFd = nativeFenceFd;
17769 local_semaphore = semaphore;
17770 local_fence = fence;
17771 mImpl->resources()->unwrap_vkAcquireImageANDROID_nativeFenceFd(nativeFenceFd, &local_nativeFenceFd);
17772 countingStream->rewind();
17773 {
17774 uint64_t cgen_var_1180;
17775 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1180, 1);
17776 countingStream->write((uint64_t*)&cgen_var_1180, 1 * 8);
17777 uint64_t cgen_var_1181;
17778 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1181, 1);
17779 countingStream->write((uint64_t*)&cgen_var_1181, 1 * 8);
17780 countingStream->write((int*)&local_nativeFenceFd, sizeof(int));
17781 uint64_t cgen_var_1182;
17782 countingStream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_1182, 1);
17783 countingStream->write((uint64_t*)&cgen_var_1182, 1 * 8);
17784 uint64_t cgen_var_1183;
17785 countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_1183, 1);
17786 countingStream->write((uint64_t*)&cgen_var_1183, 1 * 8);
17787 }
17788 uint32_t packetSize_vkAcquireImageANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17789 countingStream->rewind();
17790 uint32_t opcode_vkAcquireImageANDROID = OP_vkAcquireImageANDROID;
17791 stream->write(&opcode_vkAcquireImageANDROID, sizeof(uint32_t));
17792 stream->write(&packetSize_vkAcquireImageANDROID, sizeof(uint32_t));
17793 uint64_t cgen_var_1184;
17794 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1184, 1);
17795 stream->write((uint64_t*)&cgen_var_1184, 1 * 8);
17796 uint64_t cgen_var_1185;
17797 stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1185, 1);
17798 stream->write((uint64_t*)&cgen_var_1185, 1 * 8);
17799 stream->write((int*)&local_nativeFenceFd, sizeof(int));
17800 uint64_t cgen_var_1186;
17801 stream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_1186, 1);
17802 stream->write((uint64_t*)&cgen_var_1186, 1 * 8);
17803 uint64_t cgen_var_1187;
17804 stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_1187, 1);
17805 stream->write((uint64_t*)&cgen_var_1187, 1 * 8);
17806 AEMU_SCOPED_TRACE("vkAcquireImageANDROID readParams");
17807 AEMU_SCOPED_TRACE("vkAcquireImageANDROID returnUnmarshal");
17808 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
17809 stream->read(&vkAcquireImageANDROID_VkResult_return, sizeof(VkResult));
17810 countingStream->clearPool();
17811 stream->clearPool();
17812 pool->freeAll();
17813 mImpl->log("finish vkAcquireImageANDROID");;
17814 return vkAcquireImageANDROID_VkResult_return;
17815 }
17816
vkQueueSignalReleaseImageANDROID(VkQueue queue,uint32_t waitSemaphoreCount,const VkSemaphore * pWaitSemaphores,VkImage image,int * pNativeFenceFd)17817 VkResult VkEncoder::vkQueueSignalReleaseImageANDROID(
17818 VkQueue queue,
17819 uint32_t waitSemaphoreCount,
17820 const VkSemaphore* pWaitSemaphores,
17821 VkImage image,
17822 int* pNativeFenceFd)
17823 {
17824 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID encode");
17825 mImpl->log("start vkQueueSignalReleaseImageANDROID");
17826 auto stream = mImpl->stream();
17827 auto countingStream = mImpl->countingStream();
17828 auto resources = mImpl->resources();
17829 auto pool = mImpl->pool();
17830 stream->setHandleMapping(resources->unwrapMapping());
17831 VkQueue local_queue;
17832 uint32_t local_waitSemaphoreCount;
17833 VkSemaphore* local_pWaitSemaphores;
17834 VkImage local_image;
17835 local_queue = queue;
17836 local_waitSemaphoreCount = waitSemaphoreCount;
17837 local_pWaitSemaphores = nullptr;
17838 if (pWaitSemaphores)
17839 {
17840 local_pWaitSemaphores = (VkSemaphore*)pool->dupArray(pWaitSemaphores, ((waitSemaphoreCount)) * sizeof(const VkSemaphore));
17841 }
17842 local_image = image;
17843 countingStream->rewind();
17844 {
17845 uint64_t cgen_var_1188;
17846 countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1188, 1);
17847 countingStream->write((uint64_t*)&cgen_var_1188, 1 * 8);
17848 countingStream->write((uint32_t*)&local_waitSemaphoreCount, sizeof(uint32_t));
17849 // WARNING PTR CHECK
17850 uint64_t cgen_var_1189 = (uint64_t)(uintptr_t)local_pWaitSemaphores;
17851 countingStream->putBe64(cgen_var_1189);
17852 if (local_pWaitSemaphores)
17853 {
17854 if (((waitSemaphoreCount)))
17855 {
17856 uint64_t* cgen_var_1190;
17857 countingStream->alloc((void**)&cgen_var_1190, ((waitSemaphoreCount)) * 8);
17858 countingStream->handleMapping()->mapHandles_VkSemaphore_u64(local_pWaitSemaphores, cgen_var_1190, ((waitSemaphoreCount)));
17859 countingStream->write((uint64_t*)cgen_var_1190, ((waitSemaphoreCount)) * 8);
17860 }
17861 }
17862 uint64_t cgen_var_1191;
17863 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1191, 1);
17864 countingStream->write((uint64_t*)&cgen_var_1191, 1 * 8);
17865 countingStream->write((int*)pNativeFenceFd, sizeof(int));
17866 }
17867 uint32_t packetSize_vkQueueSignalReleaseImageANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17868 countingStream->rewind();
17869 uint32_t opcode_vkQueueSignalReleaseImageANDROID = OP_vkQueueSignalReleaseImageANDROID;
17870 stream->write(&opcode_vkQueueSignalReleaseImageANDROID, sizeof(uint32_t));
17871 stream->write(&packetSize_vkQueueSignalReleaseImageANDROID, sizeof(uint32_t));
17872 uint64_t cgen_var_1192;
17873 stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1192, 1);
17874 stream->write((uint64_t*)&cgen_var_1192, 1 * 8);
17875 stream->write((uint32_t*)&local_waitSemaphoreCount, sizeof(uint32_t));
17876 // WARNING PTR CHECK
17877 uint64_t cgen_var_1193 = (uint64_t)(uintptr_t)local_pWaitSemaphores;
17878 stream->putBe64(cgen_var_1193);
17879 if (local_pWaitSemaphores)
17880 {
17881 if (((waitSemaphoreCount)))
17882 {
17883 uint64_t* cgen_var_1194;
17884 stream->alloc((void**)&cgen_var_1194, ((waitSemaphoreCount)) * 8);
17885 stream->handleMapping()->mapHandles_VkSemaphore_u64(local_pWaitSemaphores, cgen_var_1194, ((waitSemaphoreCount)));
17886 stream->write((uint64_t*)cgen_var_1194, ((waitSemaphoreCount)) * 8);
17887 }
17888 }
17889 uint64_t cgen_var_1195;
17890 stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1195, 1);
17891 stream->write((uint64_t*)&cgen_var_1195, 1 * 8);
17892 stream->write((int*)pNativeFenceFd, sizeof(int));
17893 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID readParams");
17894 stream->read((int*)pNativeFenceFd, sizeof(int));
17895 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID returnUnmarshal");
17896 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
17897 stream->read(&vkQueueSignalReleaseImageANDROID_VkResult_return, sizeof(VkResult));
17898 countingStream->clearPool();
17899 stream->clearPool();
17900 pool->freeAll();
17901 mImpl->log("finish vkQueueSignalReleaseImageANDROID");;
17902 return vkQueueSignalReleaseImageANDROID_VkResult_return;
17903 }
17904
17905 #endif
17906 #ifdef VK_EXT_debug_report
vkCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback)17907 VkResult VkEncoder::vkCreateDebugReportCallbackEXT(
17908 VkInstance instance,
17909 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
17910 const VkAllocationCallbacks* pAllocator,
17911 VkDebugReportCallbackEXT* pCallback)
17912 {
17913 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT encode");
17914 mImpl->log("start vkCreateDebugReportCallbackEXT");
17915 auto stream = mImpl->stream();
17916 auto countingStream = mImpl->countingStream();
17917 auto resources = mImpl->resources();
17918 auto pool = mImpl->pool();
17919 stream->setHandleMapping(resources->unwrapMapping());
17920 VkInstance local_instance;
17921 VkDebugReportCallbackCreateInfoEXT* local_pCreateInfo;
17922 VkAllocationCallbacks* local_pAllocator;
17923 local_instance = instance;
17924 local_pCreateInfo = nullptr;
17925 if (pCreateInfo)
17926 {
17927 local_pCreateInfo = (VkDebugReportCallbackCreateInfoEXT*)pool->alloc(sizeof(const VkDebugReportCallbackCreateInfoEXT));
17928 deepcopy_VkDebugReportCallbackCreateInfoEXT(pool, pCreateInfo, (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo));
17929 }
17930 local_pAllocator = nullptr;
17931 if (pAllocator)
17932 {
17933 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
17934 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
17935 }
17936 local_pAllocator = nullptr;
17937 if (local_pCreateInfo)
17938 {
17939 transform_tohost_VkDebugReportCallbackCreateInfoEXT(mImpl->resources(), (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo));
17940 }
17941 if (local_pAllocator)
17942 {
17943 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
17944 }
17945 countingStream->rewind();
17946 {
17947 uint64_t cgen_var_1196;
17948 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1196, 1);
17949 countingStream->write((uint64_t*)&cgen_var_1196, 1 * 8);
17950 marshal_VkDebugReportCallbackCreateInfoEXT(countingStream, (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo));
17951 // WARNING PTR CHECK
17952 uint64_t cgen_var_1197 = (uint64_t)(uintptr_t)local_pAllocator;
17953 countingStream->putBe64(cgen_var_1197);
17954 if (local_pAllocator)
17955 {
17956 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
17957 }
17958 uint64_t cgen_var_1198;
17959 countingStream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(pCallback, &cgen_var_1198, 1);
17960 countingStream->write((uint64_t*)&cgen_var_1198, 8);
17961 }
17962 uint32_t packetSize_vkCreateDebugReportCallbackEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
17963 countingStream->rewind();
17964 uint32_t opcode_vkCreateDebugReportCallbackEXT = OP_vkCreateDebugReportCallbackEXT;
17965 stream->write(&opcode_vkCreateDebugReportCallbackEXT, sizeof(uint32_t));
17966 stream->write(&packetSize_vkCreateDebugReportCallbackEXT, sizeof(uint32_t));
17967 uint64_t cgen_var_1199;
17968 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1199, 1);
17969 stream->write((uint64_t*)&cgen_var_1199, 1 * 8);
17970 marshal_VkDebugReportCallbackCreateInfoEXT(stream, (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo));
17971 // WARNING PTR CHECK
17972 uint64_t cgen_var_1200 = (uint64_t)(uintptr_t)local_pAllocator;
17973 stream->putBe64(cgen_var_1200);
17974 if (local_pAllocator)
17975 {
17976 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
17977 }
17978 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
17979 uint64_t cgen_var_1201;
17980 stream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(pCallback, &cgen_var_1201, 1);
17981 stream->write((uint64_t*)&cgen_var_1201, 8);
17982 stream->setHandleMapping(resources->unwrapMapping());
17983 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT readParams");
17984 stream->setHandleMapping(resources->createMapping());
17985 uint64_t cgen_var_1202;
17986 stream->read((uint64_t*)&cgen_var_1202, 8);
17987 stream->handleMapping()->mapHandles_u64_VkDebugReportCallbackEXT(&cgen_var_1202, (VkDebugReportCallbackEXT*)pCallback, 1);
17988 stream->unsetHandleMapping();
17989 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT returnUnmarshal");
17990 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
17991 stream->read(&vkCreateDebugReportCallbackEXT_VkResult_return, sizeof(VkResult));
17992 countingStream->clearPool();
17993 stream->clearPool();
17994 pool->freeAll();
17995 mImpl->log("finish vkCreateDebugReportCallbackEXT");;
17996 return vkCreateDebugReportCallbackEXT_VkResult_return;
17997 }
17998
vkDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator)17999 void VkEncoder::vkDestroyDebugReportCallbackEXT(
18000 VkInstance instance,
18001 VkDebugReportCallbackEXT callback,
18002 const VkAllocationCallbacks* pAllocator)
18003 {
18004 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT encode");
18005 mImpl->log("start vkDestroyDebugReportCallbackEXT");
18006 auto stream = mImpl->stream();
18007 auto countingStream = mImpl->countingStream();
18008 auto resources = mImpl->resources();
18009 auto pool = mImpl->pool();
18010 stream->setHandleMapping(resources->unwrapMapping());
18011 VkInstance local_instance;
18012 VkDebugReportCallbackEXT local_callback;
18013 VkAllocationCallbacks* local_pAllocator;
18014 local_instance = instance;
18015 local_callback = callback;
18016 local_pAllocator = nullptr;
18017 if (pAllocator)
18018 {
18019 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
18020 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
18021 }
18022 local_pAllocator = nullptr;
18023 if (local_pAllocator)
18024 {
18025 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
18026 }
18027 countingStream->rewind();
18028 {
18029 uint64_t cgen_var_1203;
18030 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1203, 1);
18031 countingStream->write((uint64_t*)&cgen_var_1203, 1 * 8);
18032 uint64_t cgen_var_1204;
18033 countingStream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(&local_callback, &cgen_var_1204, 1);
18034 countingStream->write((uint64_t*)&cgen_var_1204, 1 * 8);
18035 // WARNING PTR CHECK
18036 uint64_t cgen_var_1205 = (uint64_t)(uintptr_t)local_pAllocator;
18037 countingStream->putBe64(cgen_var_1205);
18038 if (local_pAllocator)
18039 {
18040 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
18041 }
18042 }
18043 uint32_t packetSize_vkDestroyDebugReportCallbackEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18044 countingStream->rewind();
18045 uint32_t opcode_vkDestroyDebugReportCallbackEXT = OP_vkDestroyDebugReportCallbackEXT;
18046 stream->write(&opcode_vkDestroyDebugReportCallbackEXT, sizeof(uint32_t));
18047 stream->write(&packetSize_vkDestroyDebugReportCallbackEXT, sizeof(uint32_t));
18048 uint64_t cgen_var_1206;
18049 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1206, 1);
18050 stream->write((uint64_t*)&cgen_var_1206, 1 * 8);
18051 uint64_t cgen_var_1207;
18052 stream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(&local_callback, &cgen_var_1207, 1);
18053 stream->write((uint64_t*)&cgen_var_1207, 1 * 8);
18054 // WARNING PTR CHECK
18055 uint64_t cgen_var_1208 = (uint64_t)(uintptr_t)local_pAllocator;
18056 stream->putBe64(cgen_var_1208);
18057 if (local_pAllocator)
18058 {
18059 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
18060 }
18061 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT readParams");
18062 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT returnUnmarshal");
18063 resources->destroyMapping()->mapHandles_VkDebugReportCallbackEXT((VkDebugReportCallbackEXT*)&callback);
18064 mImpl->log("finish vkDestroyDebugReportCallbackEXT");;
18065 }
18066
vkDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage)18067 void VkEncoder::vkDebugReportMessageEXT(
18068 VkInstance instance,
18069 VkDebugReportFlagsEXT flags,
18070 VkDebugReportObjectTypeEXT objectType,
18071 uint64_t object,
18072 size_t location,
18073 int32_t messageCode,
18074 const char* pLayerPrefix,
18075 const char* pMessage)
18076 {
18077 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT encode");
18078 mImpl->log("start vkDebugReportMessageEXT");
18079 auto stream = mImpl->stream();
18080 auto countingStream = mImpl->countingStream();
18081 auto resources = mImpl->resources();
18082 auto pool = mImpl->pool();
18083 stream->setHandleMapping(resources->unwrapMapping());
18084 VkInstance local_instance;
18085 VkDebugReportFlagsEXT local_flags;
18086 VkDebugReportObjectTypeEXT local_objectType;
18087 uint64_t local_object;
18088 size_t local_location;
18089 int32_t local_messageCode;
18090 char* local_pLayerPrefix;
18091 char* local_pMessage;
18092 local_instance = instance;
18093 local_flags = flags;
18094 local_objectType = objectType;
18095 local_object = object;
18096 local_location = location;
18097 local_messageCode = messageCode;
18098 local_pLayerPrefix = nullptr;
18099 if (pLayerPrefix)
18100 {
18101 local_pLayerPrefix = pool->strDup(pLayerPrefix);
18102 }
18103 local_pMessage = nullptr;
18104 if (pMessage)
18105 {
18106 local_pMessage = pool->strDup(pMessage);
18107 }
18108 countingStream->rewind();
18109 {
18110 uint64_t cgen_var_1209;
18111 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1209, 1);
18112 countingStream->write((uint64_t*)&cgen_var_1209, 1 * 8);
18113 countingStream->write((VkDebugReportFlagsEXT*)&local_flags, sizeof(VkDebugReportFlagsEXT));
18114 countingStream->write((VkDebugReportObjectTypeEXT*)&local_objectType, sizeof(VkDebugReportObjectTypeEXT));
18115 countingStream->write((uint64_t*)&local_object, sizeof(uint64_t));
18116 uint64_t cgen_var_1210 = (uint64_t)local_location;
18117 countingStream->putBe64(cgen_var_1210);
18118 countingStream->write((int32_t*)&local_messageCode, sizeof(int32_t));
18119 countingStream->putString(local_pLayerPrefix);
18120 countingStream->putString(local_pMessage);
18121 }
18122 uint32_t packetSize_vkDebugReportMessageEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18123 countingStream->rewind();
18124 uint32_t opcode_vkDebugReportMessageEXT = OP_vkDebugReportMessageEXT;
18125 stream->write(&opcode_vkDebugReportMessageEXT, sizeof(uint32_t));
18126 stream->write(&packetSize_vkDebugReportMessageEXT, sizeof(uint32_t));
18127 uint64_t cgen_var_1211;
18128 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1211, 1);
18129 stream->write((uint64_t*)&cgen_var_1211, 1 * 8);
18130 stream->write((VkDebugReportFlagsEXT*)&local_flags, sizeof(VkDebugReportFlagsEXT));
18131 stream->write((VkDebugReportObjectTypeEXT*)&local_objectType, sizeof(VkDebugReportObjectTypeEXT));
18132 stream->write((uint64_t*)&local_object, sizeof(uint64_t));
18133 uint64_t cgen_var_1212 = (uint64_t)local_location;
18134 stream->putBe64(cgen_var_1212);
18135 stream->write((int32_t*)&local_messageCode, sizeof(int32_t));
18136 stream->putString(local_pLayerPrefix);
18137 stream->putString(local_pMessage);
18138 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT readParams");
18139 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT returnUnmarshal");
18140 mImpl->log("finish vkDebugReportMessageEXT");;
18141 }
18142
18143 #endif
18144 #ifdef VK_NV_glsl_shader
18145 #endif
18146 #ifdef VK_EXT_depth_range_unrestricted
18147 #endif
18148 #ifdef VK_IMG_filter_cubic
18149 #endif
18150 #ifdef VK_AMD_rasterization_order
18151 #endif
18152 #ifdef VK_AMD_shader_trinary_minmax
18153 #endif
18154 #ifdef VK_AMD_shader_explicit_vertex_parameter
18155 #endif
18156 #ifdef VK_EXT_debug_marker
vkDebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo)18157 VkResult VkEncoder::vkDebugMarkerSetObjectTagEXT(
18158 VkDevice device,
18159 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
18160 {
18161 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT encode");
18162 mImpl->log("start vkDebugMarkerSetObjectTagEXT");
18163 auto stream = mImpl->stream();
18164 auto countingStream = mImpl->countingStream();
18165 auto resources = mImpl->resources();
18166 auto pool = mImpl->pool();
18167 stream->setHandleMapping(resources->unwrapMapping());
18168 VkDevice local_device;
18169 VkDebugMarkerObjectTagInfoEXT* local_pTagInfo;
18170 local_device = device;
18171 local_pTagInfo = nullptr;
18172 if (pTagInfo)
18173 {
18174 local_pTagInfo = (VkDebugMarkerObjectTagInfoEXT*)pool->alloc(sizeof(const VkDebugMarkerObjectTagInfoEXT));
18175 deepcopy_VkDebugMarkerObjectTagInfoEXT(pool, pTagInfo, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo));
18176 }
18177 if (local_pTagInfo)
18178 {
18179 transform_tohost_VkDebugMarkerObjectTagInfoEXT(mImpl->resources(), (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo));
18180 }
18181 countingStream->rewind();
18182 {
18183 uint64_t cgen_var_1213;
18184 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1213, 1);
18185 countingStream->write((uint64_t*)&cgen_var_1213, 1 * 8);
18186 marshal_VkDebugMarkerObjectTagInfoEXT(countingStream, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo));
18187 }
18188 uint32_t packetSize_vkDebugMarkerSetObjectTagEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18189 countingStream->rewind();
18190 uint32_t opcode_vkDebugMarkerSetObjectTagEXT = OP_vkDebugMarkerSetObjectTagEXT;
18191 stream->write(&opcode_vkDebugMarkerSetObjectTagEXT, sizeof(uint32_t));
18192 stream->write(&packetSize_vkDebugMarkerSetObjectTagEXT, sizeof(uint32_t));
18193 uint64_t cgen_var_1214;
18194 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1214, 1);
18195 stream->write((uint64_t*)&cgen_var_1214, 1 * 8);
18196 marshal_VkDebugMarkerObjectTagInfoEXT(stream, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo));
18197 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT readParams");
18198 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT returnUnmarshal");
18199 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
18200 stream->read(&vkDebugMarkerSetObjectTagEXT_VkResult_return, sizeof(VkResult));
18201 countingStream->clearPool();
18202 stream->clearPool();
18203 pool->freeAll();
18204 mImpl->log("finish vkDebugMarkerSetObjectTagEXT");;
18205 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
18206 }
18207
vkDebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo)18208 VkResult VkEncoder::vkDebugMarkerSetObjectNameEXT(
18209 VkDevice device,
18210 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
18211 {
18212 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT encode");
18213 mImpl->log("start vkDebugMarkerSetObjectNameEXT");
18214 auto stream = mImpl->stream();
18215 auto countingStream = mImpl->countingStream();
18216 auto resources = mImpl->resources();
18217 auto pool = mImpl->pool();
18218 stream->setHandleMapping(resources->unwrapMapping());
18219 VkDevice local_device;
18220 VkDebugMarkerObjectNameInfoEXT* local_pNameInfo;
18221 local_device = device;
18222 local_pNameInfo = nullptr;
18223 if (pNameInfo)
18224 {
18225 local_pNameInfo = (VkDebugMarkerObjectNameInfoEXT*)pool->alloc(sizeof(const VkDebugMarkerObjectNameInfoEXT));
18226 deepcopy_VkDebugMarkerObjectNameInfoEXT(pool, pNameInfo, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo));
18227 }
18228 if (local_pNameInfo)
18229 {
18230 transform_tohost_VkDebugMarkerObjectNameInfoEXT(mImpl->resources(), (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo));
18231 }
18232 countingStream->rewind();
18233 {
18234 uint64_t cgen_var_1215;
18235 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1215, 1);
18236 countingStream->write((uint64_t*)&cgen_var_1215, 1 * 8);
18237 marshal_VkDebugMarkerObjectNameInfoEXT(countingStream, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo));
18238 }
18239 uint32_t packetSize_vkDebugMarkerSetObjectNameEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18240 countingStream->rewind();
18241 uint32_t opcode_vkDebugMarkerSetObjectNameEXT = OP_vkDebugMarkerSetObjectNameEXT;
18242 stream->write(&opcode_vkDebugMarkerSetObjectNameEXT, sizeof(uint32_t));
18243 stream->write(&packetSize_vkDebugMarkerSetObjectNameEXT, sizeof(uint32_t));
18244 uint64_t cgen_var_1216;
18245 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1216, 1);
18246 stream->write((uint64_t*)&cgen_var_1216, 1 * 8);
18247 marshal_VkDebugMarkerObjectNameInfoEXT(stream, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo));
18248 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT readParams");
18249 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT returnUnmarshal");
18250 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
18251 stream->read(&vkDebugMarkerSetObjectNameEXT_VkResult_return, sizeof(VkResult));
18252 countingStream->clearPool();
18253 stream->clearPool();
18254 pool->freeAll();
18255 mImpl->log("finish vkDebugMarkerSetObjectNameEXT");;
18256 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
18257 }
18258
vkCmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo)18259 void VkEncoder::vkCmdDebugMarkerBeginEXT(
18260 VkCommandBuffer commandBuffer,
18261 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
18262 {
18263 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT encode");
18264 mImpl->log("start vkCmdDebugMarkerBeginEXT");
18265 auto stream = mImpl->stream();
18266 auto countingStream = mImpl->countingStream();
18267 auto resources = mImpl->resources();
18268 auto pool = mImpl->pool();
18269 stream->setHandleMapping(resources->unwrapMapping());
18270 VkCommandBuffer local_commandBuffer;
18271 VkDebugMarkerMarkerInfoEXT* local_pMarkerInfo;
18272 local_commandBuffer = commandBuffer;
18273 local_pMarkerInfo = nullptr;
18274 if (pMarkerInfo)
18275 {
18276 local_pMarkerInfo = (VkDebugMarkerMarkerInfoEXT*)pool->alloc(sizeof(const VkDebugMarkerMarkerInfoEXT));
18277 deepcopy_VkDebugMarkerMarkerInfoEXT(pool, pMarkerInfo, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
18278 }
18279 if (local_pMarkerInfo)
18280 {
18281 transform_tohost_VkDebugMarkerMarkerInfoEXT(mImpl->resources(), (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
18282 }
18283 countingStream->rewind();
18284 {
18285 uint64_t cgen_var_1217;
18286 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1217, 1);
18287 countingStream->write((uint64_t*)&cgen_var_1217, 1 * 8);
18288 marshal_VkDebugMarkerMarkerInfoEXT(countingStream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
18289 }
18290 uint32_t packetSize_vkCmdDebugMarkerBeginEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18291 countingStream->rewind();
18292 uint32_t opcode_vkCmdDebugMarkerBeginEXT = OP_vkCmdDebugMarkerBeginEXT;
18293 stream->write(&opcode_vkCmdDebugMarkerBeginEXT, sizeof(uint32_t));
18294 stream->write(&packetSize_vkCmdDebugMarkerBeginEXT, sizeof(uint32_t));
18295 uint64_t cgen_var_1218;
18296 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1218, 1);
18297 stream->write((uint64_t*)&cgen_var_1218, 1 * 8);
18298 marshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
18299 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT readParams");
18300 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT returnUnmarshal");
18301 mImpl->log("finish vkCmdDebugMarkerBeginEXT");;
18302 }
18303
vkCmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer)18304 void VkEncoder::vkCmdDebugMarkerEndEXT(
18305 VkCommandBuffer commandBuffer)
18306 {
18307 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT encode");
18308 mImpl->log("start vkCmdDebugMarkerEndEXT");
18309 auto stream = mImpl->stream();
18310 auto countingStream = mImpl->countingStream();
18311 auto resources = mImpl->resources();
18312 auto pool = mImpl->pool();
18313 stream->setHandleMapping(resources->unwrapMapping());
18314 VkCommandBuffer local_commandBuffer;
18315 local_commandBuffer = commandBuffer;
18316 countingStream->rewind();
18317 {
18318 uint64_t cgen_var_1219;
18319 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1219, 1);
18320 countingStream->write((uint64_t*)&cgen_var_1219, 1 * 8);
18321 }
18322 uint32_t packetSize_vkCmdDebugMarkerEndEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18323 countingStream->rewind();
18324 uint32_t opcode_vkCmdDebugMarkerEndEXT = OP_vkCmdDebugMarkerEndEXT;
18325 stream->write(&opcode_vkCmdDebugMarkerEndEXT, sizeof(uint32_t));
18326 stream->write(&packetSize_vkCmdDebugMarkerEndEXT, sizeof(uint32_t));
18327 uint64_t cgen_var_1220;
18328 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1220, 1);
18329 stream->write((uint64_t*)&cgen_var_1220, 1 * 8);
18330 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT readParams");
18331 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT returnUnmarshal");
18332 mImpl->log("finish vkCmdDebugMarkerEndEXT");;
18333 }
18334
vkCmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo)18335 void VkEncoder::vkCmdDebugMarkerInsertEXT(
18336 VkCommandBuffer commandBuffer,
18337 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
18338 {
18339 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT encode");
18340 mImpl->log("start vkCmdDebugMarkerInsertEXT");
18341 auto stream = mImpl->stream();
18342 auto countingStream = mImpl->countingStream();
18343 auto resources = mImpl->resources();
18344 auto pool = mImpl->pool();
18345 stream->setHandleMapping(resources->unwrapMapping());
18346 VkCommandBuffer local_commandBuffer;
18347 VkDebugMarkerMarkerInfoEXT* local_pMarkerInfo;
18348 local_commandBuffer = commandBuffer;
18349 local_pMarkerInfo = nullptr;
18350 if (pMarkerInfo)
18351 {
18352 local_pMarkerInfo = (VkDebugMarkerMarkerInfoEXT*)pool->alloc(sizeof(const VkDebugMarkerMarkerInfoEXT));
18353 deepcopy_VkDebugMarkerMarkerInfoEXT(pool, pMarkerInfo, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
18354 }
18355 if (local_pMarkerInfo)
18356 {
18357 transform_tohost_VkDebugMarkerMarkerInfoEXT(mImpl->resources(), (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
18358 }
18359 countingStream->rewind();
18360 {
18361 uint64_t cgen_var_1221;
18362 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1221, 1);
18363 countingStream->write((uint64_t*)&cgen_var_1221, 1 * 8);
18364 marshal_VkDebugMarkerMarkerInfoEXT(countingStream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
18365 }
18366 uint32_t packetSize_vkCmdDebugMarkerInsertEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18367 countingStream->rewind();
18368 uint32_t opcode_vkCmdDebugMarkerInsertEXT = OP_vkCmdDebugMarkerInsertEXT;
18369 stream->write(&opcode_vkCmdDebugMarkerInsertEXT, sizeof(uint32_t));
18370 stream->write(&packetSize_vkCmdDebugMarkerInsertEXT, sizeof(uint32_t));
18371 uint64_t cgen_var_1222;
18372 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1222, 1);
18373 stream->write((uint64_t*)&cgen_var_1222, 1 * 8);
18374 marshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
18375 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT readParams");
18376 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT returnUnmarshal");
18377 mImpl->log("finish vkCmdDebugMarkerInsertEXT");;
18378 }
18379
18380 #endif
18381 #ifdef VK_AMD_gcn_shader
18382 #endif
18383 #ifdef VK_NV_dedicated_allocation
18384 #endif
18385 #ifdef VK_AMD_draw_indirect_count
vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)18386 void VkEncoder::vkCmdDrawIndirectCountAMD(
18387 VkCommandBuffer commandBuffer,
18388 VkBuffer buffer,
18389 VkDeviceSize offset,
18390 VkBuffer countBuffer,
18391 VkDeviceSize countBufferOffset,
18392 uint32_t maxDrawCount,
18393 uint32_t stride)
18394 {
18395 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD encode");
18396 mImpl->log("start vkCmdDrawIndirectCountAMD");
18397 auto stream = mImpl->stream();
18398 auto countingStream = mImpl->countingStream();
18399 auto resources = mImpl->resources();
18400 auto pool = mImpl->pool();
18401 stream->setHandleMapping(resources->unwrapMapping());
18402 VkCommandBuffer local_commandBuffer;
18403 VkBuffer local_buffer;
18404 VkDeviceSize local_offset;
18405 VkBuffer local_countBuffer;
18406 VkDeviceSize local_countBufferOffset;
18407 uint32_t local_maxDrawCount;
18408 uint32_t local_stride;
18409 local_commandBuffer = commandBuffer;
18410 local_buffer = buffer;
18411 local_offset = offset;
18412 local_countBuffer = countBuffer;
18413 local_countBufferOffset = countBufferOffset;
18414 local_maxDrawCount = maxDrawCount;
18415 local_stride = stride;
18416 countingStream->rewind();
18417 {
18418 uint64_t cgen_var_1223;
18419 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1223, 1);
18420 countingStream->write((uint64_t*)&cgen_var_1223, 1 * 8);
18421 uint64_t cgen_var_1224;
18422 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1224, 1);
18423 countingStream->write((uint64_t*)&cgen_var_1224, 1 * 8);
18424 countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
18425 uint64_t cgen_var_1225;
18426 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1225, 1);
18427 countingStream->write((uint64_t*)&cgen_var_1225, 1 * 8);
18428 countingStream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
18429 countingStream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
18430 countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t));
18431 }
18432 uint32_t packetSize_vkCmdDrawIndirectCountAMD = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18433 countingStream->rewind();
18434 uint32_t opcode_vkCmdDrawIndirectCountAMD = OP_vkCmdDrawIndirectCountAMD;
18435 stream->write(&opcode_vkCmdDrawIndirectCountAMD, sizeof(uint32_t));
18436 stream->write(&packetSize_vkCmdDrawIndirectCountAMD, sizeof(uint32_t));
18437 uint64_t cgen_var_1226;
18438 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1226, 1);
18439 stream->write((uint64_t*)&cgen_var_1226, 1 * 8);
18440 uint64_t cgen_var_1227;
18441 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1227, 1);
18442 stream->write((uint64_t*)&cgen_var_1227, 1 * 8);
18443 stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
18444 uint64_t cgen_var_1228;
18445 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1228, 1);
18446 stream->write((uint64_t*)&cgen_var_1228, 1 * 8);
18447 stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
18448 stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
18449 stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
18450 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD readParams");
18451 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD returnUnmarshal");
18452 mImpl->log("finish vkCmdDrawIndirectCountAMD");;
18453 }
18454
vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)18455 void VkEncoder::vkCmdDrawIndexedIndirectCountAMD(
18456 VkCommandBuffer commandBuffer,
18457 VkBuffer buffer,
18458 VkDeviceSize offset,
18459 VkBuffer countBuffer,
18460 VkDeviceSize countBufferOffset,
18461 uint32_t maxDrawCount,
18462 uint32_t stride)
18463 {
18464 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD encode");
18465 mImpl->log("start vkCmdDrawIndexedIndirectCountAMD");
18466 auto stream = mImpl->stream();
18467 auto countingStream = mImpl->countingStream();
18468 auto resources = mImpl->resources();
18469 auto pool = mImpl->pool();
18470 stream->setHandleMapping(resources->unwrapMapping());
18471 VkCommandBuffer local_commandBuffer;
18472 VkBuffer local_buffer;
18473 VkDeviceSize local_offset;
18474 VkBuffer local_countBuffer;
18475 VkDeviceSize local_countBufferOffset;
18476 uint32_t local_maxDrawCount;
18477 uint32_t local_stride;
18478 local_commandBuffer = commandBuffer;
18479 local_buffer = buffer;
18480 local_offset = offset;
18481 local_countBuffer = countBuffer;
18482 local_countBufferOffset = countBufferOffset;
18483 local_maxDrawCount = maxDrawCount;
18484 local_stride = stride;
18485 countingStream->rewind();
18486 {
18487 uint64_t cgen_var_1229;
18488 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1229, 1);
18489 countingStream->write((uint64_t*)&cgen_var_1229, 1 * 8);
18490 uint64_t cgen_var_1230;
18491 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1230, 1);
18492 countingStream->write((uint64_t*)&cgen_var_1230, 1 * 8);
18493 countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
18494 uint64_t cgen_var_1231;
18495 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1231, 1);
18496 countingStream->write((uint64_t*)&cgen_var_1231, 1 * 8);
18497 countingStream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
18498 countingStream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
18499 countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t));
18500 }
18501 uint32_t packetSize_vkCmdDrawIndexedIndirectCountAMD = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18502 countingStream->rewind();
18503 uint32_t opcode_vkCmdDrawIndexedIndirectCountAMD = OP_vkCmdDrawIndexedIndirectCountAMD;
18504 stream->write(&opcode_vkCmdDrawIndexedIndirectCountAMD, sizeof(uint32_t));
18505 stream->write(&packetSize_vkCmdDrawIndexedIndirectCountAMD, sizeof(uint32_t));
18506 uint64_t cgen_var_1232;
18507 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1232, 1);
18508 stream->write((uint64_t*)&cgen_var_1232, 1 * 8);
18509 uint64_t cgen_var_1233;
18510 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1233, 1);
18511 stream->write((uint64_t*)&cgen_var_1233, 1 * 8);
18512 stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
18513 uint64_t cgen_var_1234;
18514 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1234, 1);
18515 stream->write((uint64_t*)&cgen_var_1234, 1 * 8);
18516 stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
18517 stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
18518 stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
18519 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD readParams");
18520 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD returnUnmarshal");
18521 mImpl->log("finish vkCmdDrawIndexedIndirectCountAMD");;
18522 }
18523
18524 #endif
18525 #ifdef VK_AMD_negative_viewport_height
18526 #endif
18527 #ifdef VK_AMD_gpu_shader_half_float
18528 #endif
18529 #ifdef VK_AMD_shader_ballot
18530 #endif
18531 #ifdef VK_AMD_texture_gather_bias_lod
18532 #endif
18533 #ifdef VK_AMD_shader_info
vkGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo)18534 VkResult VkEncoder::vkGetShaderInfoAMD(
18535 VkDevice device,
18536 VkPipeline pipeline,
18537 VkShaderStageFlagBits shaderStage,
18538 VkShaderInfoTypeAMD infoType,
18539 size_t* pInfoSize,
18540 void* pInfo)
18541 {
18542 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD encode");
18543 mImpl->log("start vkGetShaderInfoAMD");
18544 auto stream = mImpl->stream();
18545 auto countingStream = mImpl->countingStream();
18546 auto resources = mImpl->resources();
18547 auto pool = mImpl->pool();
18548 stream->setHandleMapping(resources->unwrapMapping());
18549 VkDevice local_device;
18550 VkPipeline local_pipeline;
18551 VkShaderStageFlagBits local_shaderStage;
18552 VkShaderInfoTypeAMD local_infoType;
18553 local_device = device;
18554 local_pipeline = pipeline;
18555 local_shaderStage = shaderStage;
18556 local_infoType = infoType;
18557 countingStream->rewind();
18558 {
18559 uint64_t cgen_var_1235;
18560 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1235, 1);
18561 countingStream->write((uint64_t*)&cgen_var_1235, 1 * 8);
18562 uint64_t cgen_var_1236;
18563 countingStream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_1236, 1);
18564 countingStream->write((uint64_t*)&cgen_var_1236, 1 * 8);
18565 countingStream->write((VkShaderStageFlagBits*)&local_shaderStage, sizeof(VkShaderStageFlagBits));
18566 countingStream->write((VkShaderInfoTypeAMD*)&local_infoType, sizeof(VkShaderInfoTypeAMD));
18567 // WARNING PTR CHECK
18568 uint64_t cgen_var_1237 = (uint64_t)(uintptr_t)pInfoSize;
18569 countingStream->putBe64(cgen_var_1237);
18570 if (pInfoSize)
18571 {
18572 uint64_t cgen_var_1238 = (uint64_t)(*pInfoSize);
18573 countingStream->putBe64(cgen_var_1238);
18574 }
18575 // WARNING PTR CHECK
18576 uint64_t cgen_var_1239 = (uint64_t)(uintptr_t)pInfo;
18577 countingStream->putBe64(cgen_var_1239);
18578 if (pInfo)
18579 {
18580 countingStream->write((void*)pInfo, (*(pInfoSize)) * sizeof(uint8_t));
18581 }
18582 }
18583 uint32_t packetSize_vkGetShaderInfoAMD = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18584 countingStream->rewind();
18585 uint32_t opcode_vkGetShaderInfoAMD = OP_vkGetShaderInfoAMD;
18586 stream->write(&opcode_vkGetShaderInfoAMD, sizeof(uint32_t));
18587 stream->write(&packetSize_vkGetShaderInfoAMD, sizeof(uint32_t));
18588 uint64_t cgen_var_1240;
18589 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1240, 1);
18590 stream->write((uint64_t*)&cgen_var_1240, 1 * 8);
18591 uint64_t cgen_var_1241;
18592 stream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_1241, 1);
18593 stream->write((uint64_t*)&cgen_var_1241, 1 * 8);
18594 stream->write((VkShaderStageFlagBits*)&local_shaderStage, sizeof(VkShaderStageFlagBits));
18595 stream->write((VkShaderInfoTypeAMD*)&local_infoType, sizeof(VkShaderInfoTypeAMD));
18596 // WARNING PTR CHECK
18597 uint64_t cgen_var_1242 = (uint64_t)(uintptr_t)pInfoSize;
18598 stream->putBe64(cgen_var_1242);
18599 if (pInfoSize)
18600 {
18601 uint64_t cgen_var_1243 = (uint64_t)(*pInfoSize);
18602 stream->putBe64(cgen_var_1243);
18603 }
18604 // WARNING PTR CHECK
18605 uint64_t cgen_var_1244 = (uint64_t)(uintptr_t)pInfo;
18606 stream->putBe64(cgen_var_1244);
18607 if (pInfo)
18608 {
18609 stream->write((void*)pInfo, (*(pInfoSize)) * sizeof(uint8_t));
18610 }
18611 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD readParams");
18612 // WARNING PTR CHECK
18613 size_t* check_pInfoSize;
18614 check_pInfoSize = (size_t*)(uintptr_t)stream->getBe64();
18615 if (pInfoSize)
18616 {
18617 if (!(check_pInfoSize))
18618 {
18619 fprintf(stderr, "fatal: pInfoSize inconsistent between guest and host\n");
18620 }
18621 (*pInfoSize) = (size_t)stream->getBe64();
18622 }
18623 // WARNING PTR CHECK
18624 void* check_pInfo;
18625 check_pInfo = (void*)(uintptr_t)stream->getBe64();
18626 if (pInfo)
18627 {
18628 if (!(check_pInfo))
18629 {
18630 fprintf(stderr, "fatal: pInfo inconsistent between guest and host\n");
18631 }
18632 stream->read((void*)pInfo, (*(pInfoSize)) * sizeof(uint8_t));
18633 }
18634 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD returnUnmarshal");
18635 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
18636 stream->read(&vkGetShaderInfoAMD_VkResult_return, sizeof(VkResult));
18637 countingStream->clearPool();
18638 stream->clearPool();
18639 pool->freeAll();
18640 mImpl->log("finish vkGetShaderInfoAMD");;
18641 return vkGetShaderInfoAMD_VkResult_return;
18642 }
18643
18644 #endif
18645 #ifdef VK_AMD_shader_image_load_store_lod
18646 #endif
18647 #ifdef VK_IMG_format_pvrtc
18648 #endif
18649 #ifdef VK_NV_external_memory_capabilities
vkGetPhysicalDeviceExternalImageFormatPropertiesNV(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkExternalMemoryHandleTypeFlagsNV externalHandleType,VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties)18650 VkResult VkEncoder::vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
18651 VkPhysicalDevice physicalDevice,
18652 VkFormat format,
18653 VkImageType type,
18654 VkImageTiling tiling,
18655 VkImageUsageFlags usage,
18656 VkImageCreateFlags flags,
18657 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
18658 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
18659 {
18660 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV encode");
18661 mImpl->log("start vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
18662 auto stream = mImpl->stream();
18663 auto countingStream = mImpl->countingStream();
18664 auto resources = mImpl->resources();
18665 auto pool = mImpl->pool();
18666 stream->setHandleMapping(resources->unwrapMapping());
18667 VkPhysicalDevice local_physicalDevice;
18668 VkFormat local_format;
18669 VkImageType local_type;
18670 VkImageTiling local_tiling;
18671 VkImageUsageFlags local_usage;
18672 VkImageCreateFlags local_flags;
18673 VkExternalMemoryHandleTypeFlagsNV local_externalHandleType;
18674 local_physicalDevice = physicalDevice;
18675 local_format = format;
18676 local_type = type;
18677 local_tiling = tiling;
18678 local_usage = usage;
18679 local_flags = flags;
18680 local_externalHandleType = externalHandleType;
18681 countingStream->rewind();
18682 {
18683 uint64_t cgen_var_1248;
18684 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1248, 1);
18685 countingStream->write((uint64_t*)&cgen_var_1248, 1 * 8);
18686 countingStream->write((VkFormat*)&local_format, sizeof(VkFormat));
18687 countingStream->write((VkImageType*)&local_type, sizeof(VkImageType));
18688 countingStream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling));
18689 countingStream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags));
18690 countingStream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags));
18691 countingStream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_externalHandleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
18692 marshal_VkExternalImageFormatPropertiesNV(countingStream, (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties));
18693 }
18694 uint32_t packetSize_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18695 countingStream->rewind();
18696 uint32_t opcode_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
18697 stream->write(&opcode_vkGetPhysicalDeviceExternalImageFormatPropertiesNV, sizeof(uint32_t));
18698 stream->write(&packetSize_vkGetPhysicalDeviceExternalImageFormatPropertiesNV, sizeof(uint32_t));
18699 uint64_t cgen_var_1249;
18700 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1249, 1);
18701 stream->write((uint64_t*)&cgen_var_1249, 1 * 8);
18702 stream->write((VkFormat*)&local_format, sizeof(VkFormat));
18703 stream->write((VkImageType*)&local_type, sizeof(VkImageType));
18704 stream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling));
18705 stream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags));
18706 stream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags));
18707 stream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_externalHandleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
18708 marshal_VkExternalImageFormatPropertiesNV(stream, (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties));
18709 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV readParams");
18710 unmarshal_VkExternalImageFormatPropertiesNV(stream, (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties));
18711 if (pExternalImageFormatProperties)
18712 {
18713 transform_fromhost_VkExternalImageFormatPropertiesNV(mImpl->resources(), (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties));
18714 }
18715 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV returnUnmarshal");
18716 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
18717 stream->read(&vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return, sizeof(VkResult));
18718 countingStream->clearPool();
18719 stream->clearPool();
18720 pool->freeAll();
18721 mImpl->log("finish vkGetPhysicalDeviceExternalImageFormatPropertiesNV");;
18722 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
18723 }
18724
18725 #endif
18726 #ifdef VK_NV_external_memory
18727 #endif
18728 #ifdef VK_NV_external_memory_win32
vkGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle)18729 VkResult VkEncoder::vkGetMemoryWin32HandleNV(
18730 VkDevice device,
18731 VkDeviceMemory memory,
18732 VkExternalMemoryHandleTypeFlagsNV handleType,
18733 HANDLE* pHandle)
18734 {
18735 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV encode");
18736 mImpl->log("start vkGetMemoryWin32HandleNV");
18737 auto stream = mImpl->stream();
18738 auto countingStream = mImpl->countingStream();
18739 auto resources = mImpl->resources();
18740 auto pool = mImpl->pool();
18741 stream->setHandleMapping(resources->unwrapMapping());
18742 VkDevice local_device;
18743 VkDeviceMemory local_memory;
18744 VkExternalMemoryHandleTypeFlagsNV local_handleType;
18745 local_device = device;
18746 local_memory = memory;
18747 local_handleType = handleType;
18748 mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
18749 countingStream->rewind();
18750 {
18751 uint64_t cgen_var_1250;
18752 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1250, 1);
18753 countingStream->write((uint64_t*)&cgen_var_1250, 1 * 8);
18754 uint64_t cgen_var_1251;
18755 countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1251, 1);
18756 countingStream->write((uint64_t*)&cgen_var_1251, 1 * 8);
18757 countingStream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
18758 countingStream->write((HANDLE*)pHandle, sizeof(HANDLE));
18759 }
18760 uint32_t packetSize_vkGetMemoryWin32HandleNV = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18761 countingStream->rewind();
18762 uint32_t opcode_vkGetMemoryWin32HandleNV = OP_vkGetMemoryWin32HandleNV;
18763 stream->write(&opcode_vkGetMemoryWin32HandleNV, sizeof(uint32_t));
18764 stream->write(&packetSize_vkGetMemoryWin32HandleNV, sizeof(uint32_t));
18765 uint64_t cgen_var_1252;
18766 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1252, 1);
18767 stream->write((uint64_t*)&cgen_var_1252, 1 * 8);
18768 uint64_t cgen_var_1253;
18769 stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1253, 1);
18770 stream->write((uint64_t*)&cgen_var_1253, 1 * 8);
18771 stream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
18772 stream->write((HANDLE*)pHandle, sizeof(HANDLE));
18773 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV readParams");
18774 stream->read((HANDLE*)pHandle, sizeof(HANDLE));
18775 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV returnUnmarshal");
18776 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
18777 stream->read(&vkGetMemoryWin32HandleNV_VkResult_return, sizeof(VkResult));
18778 countingStream->clearPool();
18779 stream->clearPool();
18780 pool->freeAll();
18781 mImpl->log("finish vkGetMemoryWin32HandleNV");;
18782 return vkGetMemoryWin32HandleNV_VkResult_return;
18783 }
18784
18785 #endif
18786 #ifdef VK_NV_win32_keyed_mutex
18787 #endif
18788 #ifdef VK_EXT_validation_flags
18789 #endif
18790 #ifdef VK_NN_vi_surface
vkCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)18791 VkResult VkEncoder::vkCreateViSurfaceNN(
18792 VkInstance instance,
18793 const VkViSurfaceCreateInfoNN* pCreateInfo,
18794 const VkAllocationCallbacks* pAllocator,
18795 VkSurfaceKHR* pSurface)
18796 {
18797 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN encode");
18798 mImpl->log("start vkCreateViSurfaceNN");
18799 auto stream = mImpl->stream();
18800 auto countingStream = mImpl->countingStream();
18801 auto resources = mImpl->resources();
18802 auto pool = mImpl->pool();
18803 stream->setHandleMapping(resources->unwrapMapping());
18804 VkInstance local_instance;
18805 VkViSurfaceCreateInfoNN* local_pCreateInfo;
18806 VkAllocationCallbacks* local_pAllocator;
18807 local_instance = instance;
18808 local_pCreateInfo = nullptr;
18809 if (pCreateInfo)
18810 {
18811 local_pCreateInfo = (VkViSurfaceCreateInfoNN*)pool->alloc(sizeof(const VkViSurfaceCreateInfoNN));
18812 deepcopy_VkViSurfaceCreateInfoNN(pool, pCreateInfo, (VkViSurfaceCreateInfoNN*)(local_pCreateInfo));
18813 }
18814 local_pAllocator = nullptr;
18815 if (pAllocator)
18816 {
18817 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
18818 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
18819 }
18820 local_pAllocator = nullptr;
18821 if (local_pCreateInfo)
18822 {
18823 transform_tohost_VkViSurfaceCreateInfoNN(mImpl->resources(), (VkViSurfaceCreateInfoNN*)(local_pCreateInfo));
18824 }
18825 if (local_pAllocator)
18826 {
18827 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
18828 }
18829 countingStream->rewind();
18830 {
18831 uint64_t cgen_var_1254;
18832 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1254, 1);
18833 countingStream->write((uint64_t*)&cgen_var_1254, 1 * 8);
18834 marshal_VkViSurfaceCreateInfoNN(countingStream, (VkViSurfaceCreateInfoNN*)(local_pCreateInfo));
18835 // WARNING PTR CHECK
18836 uint64_t cgen_var_1255 = (uint64_t)(uintptr_t)local_pAllocator;
18837 countingStream->putBe64(cgen_var_1255);
18838 if (local_pAllocator)
18839 {
18840 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
18841 }
18842 uint64_t cgen_var_1256;
18843 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1256, 1);
18844 countingStream->write((uint64_t*)&cgen_var_1256, 8);
18845 }
18846 uint32_t packetSize_vkCreateViSurfaceNN = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18847 countingStream->rewind();
18848 uint32_t opcode_vkCreateViSurfaceNN = OP_vkCreateViSurfaceNN;
18849 stream->write(&opcode_vkCreateViSurfaceNN, sizeof(uint32_t));
18850 stream->write(&packetSize_vkCreateViSurfaceNN, sizeof(uint32_t));
18851 uint64_t cgen_var_1257;
18852 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1257, 1);
18853 stream->write((uint64_t*)&cgen_var_1257, 1 * 8);
18854 marshal_VkViSurfaceCreateInfoNN(stream, (VkViSurfaceCreateInfoNN*)(local_pCreateInfo));
18855 // WARNING PTR CHECK
18856 uint64_t cgen_var_1258 = (uint64_t)(uintptr_t)local_pAllocator;
18857 stream->putBe64(cgen_var_1258);
18858 if (local_pAllocator)
18859 {
18860 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
18861 }
18862 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
18863 uint64_t cgen_var_1259;
18864 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1259, 1);
18865 stream->write((uint64_t*)&cgen_var_1259, 8);
18866 stream->setHandleMapping(resources->unwrapMapping());
18867 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN readParams");
18868 uint64_t cgen_var_1260;
18869 stream->read((uint64_t*)&cgen_var_1260, 8);
18870 stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1260, (VkSurfaceKHR*)pSurface, 1);
18871 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN returnUnmarshal");
18872 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
18873 stream->read(&vkCreateViSurfaceNN_VkResult_return, sizeof(VkResult));
18874 countingStream->clearPool();
18875 stream->clearPool();
18876 pool->freeAll();
18877 mImpl->log("finish vkCreateViSurfaceNN");;
18878 return vkCreateViSurfaceNN_VkResult_return;
18879 }
18880
18881 #endif
18882 #ifdef VK_EXT_shader_subgroup_ballot
18883 #endif
18884 #ifdef VK_EXT_shader_subgroup_vote
18885 #endif
18886 #ifdef VK_EXT_conditional_rendering
vkCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin)18887 void VkEncoder::vkCmdBeginConditionalRenderingEXT(
18888 VkCommandBuffer commandBuffer,
18889 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
18890 {
18891 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT encode");
18892 mImpl->log("start vkCmdBeginConditionalRenderingEXT");
18893 auto stream = mImpl->stream();
18894 auto countingStream = mImpl->countingStream();
18895 auto resources = mImpl->resources();
18896 auto pool = mImpl->pool();
18897 stream->setHandleMapping(resources->unwrapMapping());
18898 VkCommandBuffer local_commandBuffer;
18899 VkConditionalRenderingBeginInfoEXT* local_pConditionalRenderingBegin;
18900 local_commandBuffer = commandBuffer;
18901 local_pConditionalRenderingBegin = nullptr;
18902 if (pConditionalRenderingBegin)
18903 {
18904 local_pConditionalRenderingBegin = (VkConditionalRenderingBeginInfoEXT*)pool->alloc(sizeof(const VkConditionalRenderingBeginInfoEXT));
18905 deepcopy_VkConditionalRenderingBeginInfoEXT(pool, pConditionalRenderingBegin, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin));
18906 }
18907 if (local_pConditionalRenderingBegin)
18908 {
18909 transform_tohost_VkConditionalRenderingBeginInfoEXT(mImpl->resources(), (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin));
18910 }
18911 countingStream->rewind();
18912 {
18913 uint64_t cgen_var_1261;
18914 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1261, 1);
18915 countingStream->write((uint64_t*)&cgen_var_1261, 1 * 8);
18916 marshal_VkConditionalRenderingBeginInfoEXT(countingStream, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin));
18917 }
18918 uint32_t packetSize_vkCmdBeginConditionalRenderingEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18919 countingStream->rewind();
18920 uint32_t opcode_vkCmdBeginConditionalRenderingEXT = OP_vkCmdBeginConditionalRenderingEXT;
18921 stream->write(&opcode_vkCmdBeginConditionalRenderingEXT, sizeof(uint32_t));
18922 stream->write(&packetSize_vkCmdBeginConditionalRenderingEXT, sizeof(uint32_t));
18923 uint64_t cgen_var_1262;
18924 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1262, 1);
18925 stream->write((uint64_t*)&cgen_var_1262, 1 * 8);
18926 marshal_VkConditionalRenderingBeginInfoEXT(stream, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin));
18927 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT readParams");
18928 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT returnUnmarshal");
18929 mImpl->log("finish vkCmdBeginConditionalRenderingEXT");;
18930 }
18931
vkCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer)18932 void VkEncoder::vkCmdEndConditionalRenderingEXT(
18933 VkCommandBuffer commandBuffer)
18934 {
18935 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT encode");
18936 mImpl->log("start vkCmdEndConditionalRenderingEXT");
18937 auto stream = mImpl->stream();
18938 auto countingStream = mImpl->countingStream();
18939 auto resources = mImpl->resources();
18940 auto pool = mImpl->pool();
18941 stream->setHandleMapping(resources->unwrapMapping());
18942 VkCommandBuffer local_commandBuffer;
18943 local_commandBuffer = commandBuffer;
18944 countingStream->rewind();
18945 {
18946 uint64_t cgen_var_1263;
18947 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1263, 1);
18948 countingStream->write((uint64_t*)&cgen_var_1263, 1 * 8);
18949 }
18950 uint32_t packetSize_vkCmdEndConditionalRenderingEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18951 countingStream->rewind();
18952 uint32_t opcode_vkCmdEndConditionalRenderingEXT = OP_vkCmdEndConditionalRenderingEXT;
18953 stream->write(&opcode_vkCmdEndConditionalRenderingEXT, sizeof(uint32_t));
18954 stream->write(&packetSize_vkCmdEndConditionalRenderingEXT, sizeof(uint32_t));
18955 uint64_t cgen_var_1264;
18956 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1264, 1);
18957 stream->write((uint64_t*)&cgen_var_1264, 1 * 8);
18958 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT readParams");
18959 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT returnUnmarshal");
18960 mImpl->log("finish vkCmdEndConditionalRenderingEXT");;
18961 }
18962
18963 #endif
18964 #ifdef VK_NVX_device_generated_commands
vkCmdProcessCommandsNVX(VkCommandBuffer commandBuffer,const VkCmdProcessCommandsInfoNVX * pProcessCommandsInfo)18965 void VkEncoder::vkCmdProcessCommandsNVX(
18966 VkCommandBuffer commandBuffer,
18967 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
18968 {
18969 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX encode");
18970 mImpl->log("start vkCmdProcessCommandsNVX");
18971 auto stream = mImpl->stream();
18972 auto countingStream = mImpl->countingStream();
18973 auto resources = mImpl->resources();
18974 auto pool = mImpl->pool();
18975 stream->setHandleMapping(resources->unwrapMapping());
18976 VkCommandBuffer local_commandBuffer;
18977 VkCmdProcessCommandsInfoNVX* local_pProcessCommandsInfo;
18978 local_commandBuffer = commandBuffer;
18979 local_pProcessCommandsInfo = nullptr;
18980 if (pProcessCommandsInfo)
18981 {
18982 local_pProcessCommandsInfo = (VkCmdProcessCommandsInfoNVX*)pool->alloc(sizeof(const VkCmdProcessCommandsInfoNVX));
18983 deepcopy_VkCmdProcessCommandsInfoNVX(pool, pProcessCommandsInfo, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
18984 }
18985 if (local_pProcessCommandsInfo)
18986 {
18987 transform_tohost_VkCmdProcessCommandsInfoNVX(mImpl->resources(), (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
18988 }
18989 countingStream->rewind();
18990 {
18991 uint64_t cgen_var_1265;
18992 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1265, 1);
18993 countingStream->write((uint64_t*)&cgen_var_1265, 1 * 8);
18994 marshal_VkCmdProcessCommandsInfoNVX(countingStream, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
18995 }
18996 uint32_t packetSize_vkCmdProcessCommandsNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
18997 countingStream->rewind();
18998 uint32_t opcode_vkCmdProcessCommandsNVX = OP_vkCmdProcessCommandsNVX;
18999 stream->write(&opcode_vkCmdProcessCommandsNVX, sizeof(uint32_t));
19000 stream->write(&packetSize_vkCmdProcessCommandsNVX, sizeof(uint32_t));
19001 uint64_t cgen_var_1266;
19002 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1266, 1);
19003 stream->write((uint64_t*)&cgen_var_1266, 1 * 8);
19004 marshal_VkCmdProcessCommandsInfoNVX(stream, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
19005 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX readParams");
19006 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX returnUnmarshal");
19007 mImpl->log("finish vkCmdProcessCommandsNVX");;
19008 }
19009
vkCmdReserveSpaceForCommandsNVX(VkCommandBuffer commandBuffer,const VkCmdReserveSpaceForCommandsInfoNVX * pReserveSpaceInfo)19010 void VkEncoder::vkCmdReserveSpaceForCommandsNVX(
19011 VkCommandBuffer commandBuffer,
19012 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
19013 {
19014 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX encode");
19015 mImpl->log("start vkCmdReserveSpaceForCommandsNVX");
19016 auto stream = mImpl->stream();
19017 auto countingStream = mImpl->countingStream();
19018 auto resources = mImpl->resources();
19019 auto pool = mImpl->pool();
19020 stream->setHandleMapping(resources->unwrapMapping());
19021 VkCommandBuffer local_commandBuffer;
19022 VkCmdReserveSpaceForCommandsInfoNVX* local_pReserveSpaceInfo;
19023 local_commandBuffer = commandBuffer;
19024 local_pReserveSpaceInfo = nullptr;
19025 if (pReserveSpaceInfo)
19026 {
19027 local_pReserveSpaceInfo = (VkCmdReserveSpaceForCommandsInfoNVX*)pool->alloc(sizeof(const VkCmdReserveSpaceForCommandsInfoNVX));
19028 deepcopy_VkCmdReserveSpaceForCommandsInfoNVX(pool, pReserveSpaceInfo, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
19029 }
19030 if (local_pReserveSpaceInfo)
19031 {
19032 transform_tohost_VkCmdReserveSpaceForCommandsInfoNVX(mImpl->resources(), (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
19033 }
19034 countingStream->rewind();
19035 {
19036 uint64_t cgen_var_1267;
19037 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1267, 1);
19038 countingStream->write((uint64_t*)&cgen_var_1267, 1 * 8);
19039 marshal_VkCmdReserveSpaceForCommandsInfoNVX(countingStream, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
19040 }
19041 uint32_t packetSize_vkCmdReserveSpaceForCommandsNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19042 countingStream->rewind();
19043 uint32_t opcode_vkCmdReserveSpaceForCommandsNVX = OP_vkCmdReserveSpaceForCommandsNVX;
19044 stream->write(&opcode_vkCmdReserveSpaceForCommandsNVX, sizeof(uint32_t));
19045 stream->write(&packetSize_vkCmdReserveSpaceForCommandsNVX, sizeof(uint32_t));
19046 uint64_t cgen_var_1268;
19047 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1268, 1);
19048 stream->write((uint64_t*)&cgen_var_1268, 1 * 8);
19049 marshal_VkCmdReserveSpaceForCommandsInfoNVX(stream, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
19050 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX readParams");
19051 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX returnUnmarshal");
19052 mImpl->log("finish vkCmdReserveSpaceForCommandsNVX");;
19053 }
19054
vkCreateIndirectCommandsLayoutNVX(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNVX * pIndirectCommandsLayout)19055 VkResult VkEncoder::vkCreateIndirectCommandsLayoutNVX(
19056 VkDevice device,
19057 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
19058 const VkAllocationCallbacks* pAllocator,
19059 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
19060 {
19061 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX encode");
19062 mImpl->log("start vkCreateIndirectCommandsLayoutNVX");
19063 auto stream = mImpl->stream();
19064 auto countingStream = mImpl->countingStream();
19065 auto resources = mImpl->resources();
19066 auto pool = mImpl->pool();
19067 stream->setHandleMapping(resources->unwrapMapping());
19068 VkDevice local_device;
19069 VkIndirectCommandsLayoutCreateInfoNVX* local_pCreateInfo;
19070 VkAllocationCallbacks* local_pAllocator;
19071 local_device = device;
19072 local_pCreateInfo = nullptr;
19073 if (pCreateInfo)
19074 {
19075 local_pCreateInfo = (VkIndirectCommandsLayoutCreateInfoNVX*)pool->alloc(sizeof(const VkIndirectCommandsLayoutCreateInfoNVX));
19076 deepcopy_VkIndirectCommandsLayoutCreateInfoNVX(pool, pCreateInfo, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo));
19077 }
19078 local_pAllocator = nullptr;
19079 if (pAllocator)
19080 {
19081 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
19082 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
19083 }
19084 local_pAllocator = nullptr;
19085 if (local_pCreateInfo)
19086 {
19087 transform_tohost_VkIndirectCommandsLayoutCreateInfoNVX(mImpl->resources(), (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo));
19088 }
19089 if (local_pAllocator)
19090 {
19091 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
19092 }
19093 countingStream->rewind();
19094 {
19095 uint64_t cgen_var_1269;
19096 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1269, 1);
19097 countingStream->write((uint64_t*)&cgen_var_1269, 1 * 8);
19098 marshal_VkIndirectCommandsLayoutCreateInfoNVX(countingStream, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo));
19099 // WARNING PTR CHECK
19100 uint64_t cgen_var_1270 = (uint64_t)(uintptr_t)local_pAllocator;
19101 countingStream->putBe64(cgen_var_1270);
19102 if (local_pAllocator)
19103 {
19104 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
19105 }
19106 uint64_t cgen_var_1271;
19107 countingStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(pIndirectCommandsLayout, &cgen_var_1271, 1);
19108 countingStream->write((uint64_t*)&cgen_var_1271, 8);
19109 }
19110 uint32_t packetSize_vkCreateIndirectCommandsLayoutNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19111 countingStream->rewind();
19112 uint32_t opcode_vkCreateIndirectCommandsLayoutNVX = OP_vkCreateIndirectCommandsLayoutNVX;
19113 stream->write(&opcode_vkCreateIndirectCommandsLayoutNVX, sizeof(uint32_t));
19114 stream->write(&packetSize_vkCreateIndirectCommandsLayoutNVX, sizeof(uint32_t));
19115 uint64_t cgen_var_1272;
19116 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1272, 1);
19117 stream->write((uint64_t*)&cgen_var_1272, 1 * 8);
19118 marshal_VkIndirectCommandsLayoutCreateInfoNVX(stream, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo));
19119 // WARNING PTR CHECK
19120 uint64_t cgen_var_1273 = (uint64_t)(uintptr_t)local_pAllocator;
19121 stream->putBe64(cgen_var_1273);
19122 if (local_pAllocator)
19123 {
19124 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
19125 }
19126 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
19127 uint64_t cgen_var_1274;
19128 stream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(pIndirectCommandsLayout, &cgen_var_1274, 1);
19129 stream->write((uint64_t*)&cgen_var_1274, 8);
19130 stream->setHandleMapping(resources->unwrapMapping());
19131 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX readParams");
19132 stream->setHandleMapping(resources->createMapping());
19133 uint64_t cgen_var_1275;
19134 stream->read((uint64_t*)&cgen_var_1275, 8);
19135 stream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_1275, (VkIndirectCommandsLayoutNVX*)pIndirectCommandsLayout, 1);
19136 stream->unsetHandleMapping();
19137 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX returnUnmarshal");
19138 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
19139 stream->read(&vkCreateIndirectCommandsLayoutNVX_VkResult_return, sizeof(VkResult));
19140 countingStream->clearPool();
19141 stream->clearPool();
19142 pool->freeAll();
19143 mImpl->log("finish vkCreateIndirectCommandsLayoutNVX");;
19144 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
19145 }
19146
vkDestroyIndirectCommandsLayoutNVX(VkDevice device,VkIndirectCommandsLayoutNVX indirectCommandsLayout,const VkAllocationCallbacks * pAllocator)19147 void VkEncoder::vkDestroyIndirectCommandsLayoutNVX(
19148 VkDevice device,
19149 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
19150 const VkAllocationCallbacks* pAllocator)
19151 {
19152 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX encode");
19153 mImpl->log("start vkDestroyIndirectCommandsLayoutNVX");
19154 auto stream = mImpl->stream();
19155 auto countingStream = mImpl->countingStream();
19156 auto resources = mImpl->resources();
19157 auto pool = mImpl->pool();
19158 stream->setHandleMapping(resources->unwrapMapping());
19159 VkDevice local_device;
19160 VkIndirectCommandsLayoutNVX local_indirectCommandsLayout;
19161 VkAllocationCallbacks* local_pAllocator;
19162 local_device = device;
19163 local_indirectCommandsLayout = indirectCommandsLayout;
19164 local_pAllocator = nullptr;
19165 if (pAllocator)
19166 {
19167 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
19168 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
19169 }
19170 local_pAllocator = nullptr;
19171 if (local_pAllocator)
19172 {
19173 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
19174 }
19175 countingStream->rewind();
19176 {
19177 uint64_t cgen_var_1276;
19178 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1276, 1);
19179 countingStream->write((uint64_t*)&cgen_var_1276, 1 * 8);
19180 uint64_t cgen_var_1277;
19181 countingStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&local_indirectCommandsLayout, &cgen_var_1277, 1);
19182 countingStream->write((uint64_t*)&cgen_var_1277, 1 * 8);
19183 // WARNING PTR CHECK
19184 uint64_t cgen_var_1278 = (uint64_t)(uintptr_t)local_pAllocator;
19185 countingStream->putBe64(cgen_var_1278);
19186 if (local_pAllocator)
19187 {
19188 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
19189 }
19190 }
19191 uint32_t packetSize_vkDestroyIndirectCommandsLayoutNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19192 countingStream->rewind();
19193 uint32_t opcode_vkDestroyIndirectCommandsLayoutNVX = OP_vkDestroyIndirectCommandsLayoutNVX;
19194 stream->write(&opcode_vkDestroyIndirectCommandsLayoutNVX, sizeof(uint32_t));
19195 stream->write(&packetSize_vkDestroyIndirectCommandsLayoutNVX, sizeof(uint32_t));
19196 uint64_t cgen_var_1279;
19197 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1279, 1);
19198 stream->write((uint64_t*)&cgen_var_1279, 1 * 8);
19199 uint64_t cgen_var_1280;
19200 stream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&local_indirectCommandsLayout, &cgen_var_1280, 1);
19201 stream->write((uint64_t*)&cgen_var_1280, 1 * 8);
19202 // WARNING PTR CHECK
19203 uint64_t cgen_var_1281 = (uint64_t)(uintptr_t)local_pAllocator;
19204 stream->putBe64(cgen_var_1281);
19205 if (local_pAllocator)
19206 {
19207 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
19208 }
19209 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX readParams");
19210 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX returnUnmarshal");
19211 resources->destroyMapping()->mapHandles_VkIndirectCommandsLayoutNVX((VkIndirectCommandsLayoutNVX*)&indirectCommandsLayout);
19212 mImpl->log("finish vkDestroyIndirectCommandsLayoutNVX");;
19213 }
19214
vkCreateObjectTableNVX(VkDevice device,const VkObjectTableCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkObjectTableNVX * pObjectTable)19215 VkResult VkEncoder::vkCreateObjectTableNVX(
19216 VkDevice device,
19217 const VkObjectTableCreateInfoNVX* pCreateInfo,
19218 const VkAllocationCallbacks* pAllocator,
19219 VkObjectTableNVX* pObjectTable)
19220 {
19221 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX encode");
19222 mImpl->log("start vkCreateObjectTableNVX");
19223 auto stream = mImpl->stream();
19224 auto countingStream = mImpl->countingStream();
19225 auto resources = mImpl->resources();
19226 auto pool = mImpl->pool();
19227 stream->setHandleMapping(resources->unwrapMapping());
19228 VkDevice local_device;
19229 VkObjectTableCreateInfoNVX* local_pCreateInfo;
19230 VkAllocationCallbacks* local_pAllocator;
19231 local_device = device;
19232 local_pCreateInfo = nullptr;
19233 if (pCreateInfo)
19234 {
19235 local_pCreateInfo = (VkObjectTableCreateInfoNVX*)pool->alloc(sizeof(const VkObjectTableCreateInfoNVX));
19236 deepcopy_VkObjectTableCreateInfoNVX(pool, pCreateInfo, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo));
19237 }
19238 local_pAllocator = nullptr;
19239 if (pAllocator)
19240 {
19241 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
19242 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
19243 }
19244 local_pAllocator = nullptr;
19245 if (local_pCreateInfo)
19246 {
19247 transform_tohost_VkObjectTableCreateInfoNVX(mImpl->resources(), (VkObjectTableCreateInfoNVX*)(local_pCreateInfo));
19248 }
19249 if (local_pAllocator)
19250 {
19251 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
19252 }
19253 countingStream->rewind();
19254 {
19255 uint64_t cgen_var_1282;
19256 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1282, 1);
19257 countingStream->write((uint64_t*)&cgen_var_1282, 1 * 8);
19258 marshal_VkObjectTableCreateInfoNVX(countingStream, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo));
19259 // WARNING PTR CHECK
19260 uint64_t cgen_var_1283 = (uint64_t)(uintptr_t)local_pAllocator;
19261 countingStream->putBe64(cgen_var_1283);
19262 if (local_pAllocator)
19263 {
19264 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
19265 }
19266 uint64_t cgen_var_1284;
19267 countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(pObjectTable, &cgen_var_1284, 1);
19268 countingStream->write((uint64_t*)&cgen_var_1284, 8);
19269 }
19270 uint32_t packetSize_vkCreateObjectTableNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19271 countingStream->rewind();
19272 uint32_t opcode_vkCreateObjectTableNVX = OP_vkCreateObjectTableNVX;
19273 stream->write(&opcode_vkCreateObjectTableNVX, sizeof(uint32_t));
19274 stream->write(&packetSize_vkCreateObjectTableNVX, sizeof(uint32_t));
19275 uint64_t cgen_var_1285;
19276 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1285, 1);
19277 stream->write((uint64_t*)&cgen_var_1285, 1 * 8);
19278 marshal_VkObjectTableCreateInfoNVX(stream, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo));
19279 // WARNING PTR CHECK
19280 uint64_t cgen_var_1286 = (uint64_t)(uintptr_t)local_pAllocator;
19281 stream->putBe64(cgen_var_1286);
19282 if (local_pAllocator)
19283 {
19284 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
19285 }
19286 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
19287 uint64_t cgen_var_1287;
19288 stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(pObjectTable, &cgen_var_1287, 1);
19289 stream->write((uint64_t*)&cgen_var_1287, 8);
19290 stream->setHandleMapping(resources->unwrapMapping());
19291 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX readParams");
19292 stream->setHandleMapping(resources->createMapping());
19293 uint64_t cgen_var_1288;
19294 stream->read((uint64_t*)&cgen_var_1288, 8);
19295 stream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_1288, (VkObjectTableNVX*)pObjectTable, 1);
19296 stream->unsetHandleMapping();
19297 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX returnUnmarshal");
19298 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
19299 stream->read(&vkCreateObjectTableNVX_VkResult_return, sizeof(VkResult));
19300 countingStream->clearPool();
19301 stream->clearPool();
19302 pool->freeAll();
19303 mImpl->log("finish vkCreateObjectTableNVX");;
19304 return vkCreateObjectTableNVX_VkResult_return;
19305 }
19306
vkDestroyObjectTableNVX(VkDevice device,VkObjectTableNVX objectTable,const VkAllocationCallbacks * pAllocator)19307 void VkEncoder::vkDestroyObjectTableNVX(
19308 VkDevice device,
19309 VkObjectTableNVX objectTable,
19310 const VkAllocationCallbacks* pAllocator)
19311 {
19312 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX encode");
19313 mImpl->log("start vkDestroyObjectTableNVX");
19314 auto stream = mImpl->stream();
19315 auto countingStream = mImpl->countingStream();
19316 auto resources = mImpl->resources();
19317 auto pool = mImpl->pool();
19318 stream->setHandleMapping(resources->unwrapMapping());
19319 VkDevice local_device;
19320 VkObjectTableNVX local_objectTable;
19321 VkAllocationCallbacks* local_pAllocator;
19322 local_device = device;
19323 local_objectTable = objectTable;
19324 local_pAllocator = nullptr;
19325 if (pAllocator)
19326 {
19327 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
19328 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
19329 }
19330 local_pAllocator = nullptr;
19331 if (local_pAllocator)
19332 {
19333 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
19334 }
19335 countingStream->rewind();
19336 {
19337 uint64_t cgen_var_1289;
19338 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1289, 1);
19339 countingStream->write((uint64_t*)&cgen_var_1289, 1 * 8);
19340 uint64_t cgen_var_1290;
19341 countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1290, 1);
19342 countingStream->write((uint64_t*)&cgen_var_1290, 1 * 8);
19343 // WARNING PTR CHECK
19344 uint64_t cgen_var_1291 = (uint64_t)(uintptr_t)local_pAllocator;
19345 countingStream->putBe64(cgen_var_1291);
19346 if (local_pAllocator)
19347 {
19348 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
19349 }
19350 }
19351 uint32_t packetSize_vkDestroyObjectTableNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19352 countingStream->rewind();
19353 uint32_t opcode_vkDestroyObjectTableNVX = OP_vkDestroyObjectTableNVX;
19354 stream->write(&opcode_vkDestroyObjectTableNVX, sizeof(uint32_t));
19355 stream->write(&packetSize_vkDestroyObjectTableNVX, sizeof(uint32_t));
19356 uint64_t cgen_var_1292;
19357 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1292, 1);
19358 stream->write((uint64_t*)&cgen_var_1292, 1 * 8);
19359 uint64_t cgen_var_1293;
19360 stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1293, 1);
19361 stream->write((uint64_t*)&cgen_var_1293, 1 * 8);
19362 // WARNING PTR CHECK
19363 uint64_t cgen_var_1294 = (uint64_t)(uintptr_t)local_pAllocator;
19364 stream->putBe64(cgen_var_1294);
19365 if (local_pAllocator)
19366 {
19367 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
19368 }
19369 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX readParams");
19370 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX returnUnmarshal");
19371 resources->destroyMapping()->mapHandles_VkObjectTableNVX((VkObjectTableNVX*)&objectTable);
19372 mImpl->log("finish vkDestroyObjectTableNVX");;
19373 }
19374
vkRegisterObjectsNVX(VkDevice device,VkObjectTableNVX objectTable,uint32_t objectCount,const VkObjectTableEntryNVX * const * ppObjectTableEntries,const uint32_t * pObjectIndices)19375 VkResult VkEncoder::vkRegisterObjectsNVX(
19376 VkDevice device,
19377 VkObjectTableNVX objectTable,
19378 uint32_t objectCount,
19379 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
19380 const uint32_t* pObjectIndices)
19381 {
19382 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX encode");
19383 mImpl->log("start vkRegisterObjectsNVX");
19384 auto stream = mImpl->stream();
19385 auto countingStream = mImpl->countingStream();
19386 auto resources = mImpl->resources();
19387 auto pool = mImpl->pool();
19388 stream->setHandleMapping(resources->unwrapMapping());
19389 VkDevice local_device;
19390 VkObjectTableNVX local_objectTable;
19391 uint32_t local_objectCount;
19392 VkObjectTableEntryNVX** local_ppObjectTableEntries;
19393 uint32_t* local_pObjectIndices;
19394 local_device = device;
19395 local_objectTable = objectTable;
19396 local_objectCount = objectCount;
19397 (void)ppObjectTableEntries;
19398 local_pObjectIndices = nullptr;
19399 if (pObjectIndices)
19400 {
19401 local_pObjectIndices = (uint32_t*)pool->dupArray(pObjectIndices, ((objectCount)) * sizeof(const uint32_t));
19402 }
19403 (void)local_ppObjectTableEntries;
19404 countingStream->rewind();
19405 {
19406 uint64_t cgen_var_1295;
19407 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1295, 1);
19408 countingStream->write((uint64_t*)&cgen_var_1295, 1 * 8);
19409 uint64_t cgen_var_1296;
19410 countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1296, 1);
19411 countingStream->write((uint64_t*)&cgen_var_1296, 1 * 8);
19412 countingStream->write((uint32_t*)&local_objectCount, sizeof(uint32_t));
19413 (void)local_ppObjectTableEntries;
19414 countingStream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
19415 }
19416 uint32_t packetSize_vkRegisterObjectsNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19417 countingStream->rewind();
19418 uint32_t opcode_vkRegisterObjectsNVX = OP_vkRegisterObjectsNVX;
19419 stream->write(&opcode_vkRegisterObjectsNVX, sizeof(uint32_t));
19420 stream->write(&packetSize_vkRegisterObjectsNVX, sizeof(uint32_t));
19421 uint64_t cgen_var_1297;
19422 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1297, 1);
19423 stream->write((uint64_t*)&cgen_var_1297, 1 * 8);
19424 uint64_t cgen_var_1298;
19425 stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1298, 1);
19426 stream->write((uint64_t*)&cgen_var_1298, 1 * 8);
19427 stream->write((uint32_t*)&local_objectCount, sizeof(uint32_t));
19428 (void)local_ppObjectTableEntries;
19429 stream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
19430 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX readParams");
19431 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX returnUnmarshal");
19432 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
19433 stream->read(&vkRegisterObjectsNVX_VkResult_return, sizeof(VkResult));
19434 countingStream->clearPool();
19435 stream->clearPool();
19436 pool->freeAll();
19437 mImpl->log("finish vkRegisterObjectsNVX");;
19438 return vkRegisterObjectsNVX_VkResult_return;
19439 }
19440
vkUnregisterObjectsNVX(VkDevice device,VkObjectTableNVX objectTable,uint32_t objectCount,const VkObjectEntryTypeNVX * pObjectEntryTypes,const uint32_t * pObjectIndices)19441 VkResult VkEncoder::vkUnregisterObjectsNVX(
19442 VkDevice device,
19443 VkObjectTableNVX objectTable,
19444 uint32_t objectCount,
19445 const VkObjectEntryTypeNVX* pObjectEntryTypes,
19446 const uint32_t* pObjectIndices)
19447 {
19448 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX encode");
19449 mImpl->log("start vkUnregisterObjectsNVX");
19450 auto stream = mImpl->stream();
19451 auto countingStream = mImpl->countingStream();
19452 auto resources = mImpl->resources();
19453 auto pool = mImpl->pool();
19454 stream->setHandleMapping(resources->unwrapMapping());
19455 VkDevice local_device;
19456 VkObjectTableNVX local_objectTable;
19457 uint32_t local_objectCount;
19458 VkObjectEntryTypeNVX* local_pObjectEntryTypes;
19459 uint32_t* local_pObjectIndices;
19460 local_device = device;
19461 local_objectTable = objectTable;
19462 local_objectCount = objectCount;
19463 local_pObjectEntryTypes = nullptr;
19464 if (pObjectEntryTypes)
19465 {
19466 local_pObjectEntryTypes = (VkObjectEntryTypeNVX*)pool->dupArray(pObjectEntryTypes, ((objectCount)) * sizeof(const VkObjectEntryTypeNVX));
19467 }
19468 local_pObjectIndices = nullptr;
19469 if (pObjectIndices)
19470 {
19471 local_pObjectIndices = (uint32_t*)pool->dupArray(pObjectIndices, ((objectCount)) * sizeof(const uint32_t));
19472 }
19473 countingStream->rewind();
19474 {
19475 uint64_t cgen_var_1299;
19476 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1299, 1);
19477 countingStream->write((uint64_t*)&cgen_var_1299, 1 * 8);
19478 uint64_t cgen_var_1300;
19479 countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1300, 1);
19480 countingStream->write((uint64_t*)&cgen_var_1300, 1 * 8);
19481 countingStream->write((uint32_t*)&local_objectCount, sizeof(uint32_t));
19482 countingStream->write((VkObjectEntryTypeNVX*)local_pObjectEntryTypes, ((objectCount)) * sizeof(VkObjectEntryTypeNVX));
19483 countingStream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
19484 }
19485 uint32_t packetSize_vkUnregisterObjectsNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19486 countingStream->rewind();
19487 uint32_t opcode_vkUnregisterObjectsNVX = OP_vkUnregisterObjectsNVX;
19488 stream->write(&opcode_vkUnregisterObjectsNVX, sizeof(uint32_t));
19489 stream->write(&packetSize_vkUnregisterObjectsNVX, sizeof(uint32_t));
19490 uint64_t cgen_var_1301;
19491 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1301, 1);
19492 stream->write((uint64_t*)&cgen_var_1301, 1 * 8);
19493 uint64_t cgen_var_1302;
19494 stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1302, 1);
19495 stream->write((uint64_t*)&cgen_var_1302, 1 * 8);
19496 stream->write((uint32_t*)&local_objectCount, sizeof(uint32_t));
19497 stream->write((VkObjectEntryTypeNVX*)local_pObjectEntryTypes, ((objectCount)) * sizeof(VkObjectEntryTypeNVX));
19498 stream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
19499 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX readParams");
19500 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX returnUnmarshal");
19501 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
19502 stream->read(&vkUnregisterObjectsNVX_VkResult_return, sizeof(VkResult));
19503 countingStream->clearPool();
19504 stream->clearPool();
19505 pool->freeAll();
19506 mImpl->log("finish vkUnregisterObjectsNVX");;
19507 return vkUnregisterObjectsNVX_VkResult_return;
19508 }
19509
vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(VkPhysicalDevice physicalDevice,VkDeviceGeneratedCommandsFeaturesNVX * pFeatures,VkDeviceGeneratedCommandsLimitsNVX * pLimits)19510 void VkEncoder::vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
19511 VkPhysicalDevice physicalDevice,
19512 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
19513 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
19514 {
19515 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX encode");
19516 mImpl->log("start vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
19517 auto stream = mImpl->stream();
19518 auto countingStream = mImpl->countingStream();
19519 auto resources = mImpl->resources();
19520 auto pool = mImpl->pool();
19521 stream->setHandleMapping(resources->unwrapMapping());
19522 VkPhysicalDevice local_physicalDevice;
19523 local_physicalDevice = physicalDevice;
19524 countingStream->rewind();
19525 {
19526 uint64_t cgen_var_1303;
19527 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1303, 1);
19528 countingStream->write((uint64_t*)&cgen_var_1303, 1 * 8);
19529 marshal_VkDeviceGeneratedCommandsFeaturesNVX(countingStream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
19530 marshal_VkDeviceGeneratedCommandsLimitsNVX(countingStream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
19531 }
19532 uint32_t packetSize_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19533 countingStream->rewind();
19534 uint32_t opcode_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX;
19535 stream->write(&opcode_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, sizeof(uint32_t));
19536 stream->write(&packetSize_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, sizeof(uint32_t));
19537 uint64_t cgen_var_1304;
19538 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1304, 1);
19539 stream->write((uint64_t*)&cgen_var_1304, 1 * 8);
19540 marshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
19541 marshal_VkDeviceGeneratedCommandsLimitsNVX(stream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
19542 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX readParams");
19543 unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
19544 if (pFeatures)
19545 {
19546 transform_fromhost_VkDeviceGeneratedCommandsFeaturesNVX(mImpl->resources(), (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
19547 }
19548 unmarshal_VkDeviceGeneratedCommandsLimitsNVX(stream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
19549 if (pLimits)
19550 {
19551 transform_fromhost_VkDeviceGeneratedCommandsLimitsNVX(mImpl->resources(), (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
19552 }
19553 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX returnUnmarshal");
19554 mImpl->log("finish vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");;
19555 }
19556
19557 #endif
19558 #ifdef VK_NV_clip_space_w_scaling
vkCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings)19559 void VkEncoder::vkCmdSetViewportWScalingNV(
19560 VkCommandBuffer commandBuffer,
19561 uint32_t firstViewport,
19562 uint32_t viewportCount,
19563 const VkViewportWScalingNV* pViewportWScalings)
19564 {
19565 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV encode");
19566 mImpl->log("start vkCmdSetViewportWScalingNV");
19567 auto stream = mImpl->stream();
19568 auto countingStream = mImpl->countingStream();
19569 auto resources = mImpl->resources();
19570 auto pool = mImpl->pool();
19571 stream->setHandleMapping(resources->unwrapMapping());
19572 VkCommandBuffer local_commandBuffer;
19573 uint32_t local_firstViewport;
19574 uint32_t local_viewportCount;
19575 VkViewportWScalingNV* local_pViewportWScalings;
19576 local_commandBuffer = commandBuffer;
19577 local_firstViewport = firstViewport;
19578 local_viewportCount = viewportCount;
19579 local_pViewportWScalings = nullptr;
19580 if (pViewportWScalings)
19581 {
19582 local_pViewportWScalings = (VkViewportWScalingNV*)pool->alloc(((viewportCount)) * sizeof(const VkViewportWScalingNV));
19583 for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
19584 {
19585 deepcopy_VkViewportWScalingNV(pool, pViewportWScalings + i, (VkViewportWScalingNV*)(local_pViewportWScalings + i));
19586 }
19587 }
19588 if (local_pViewportWScalings)
19589 {
19590 for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
19591 {
19592 transform_tohost_VkViewportWScalingNV(mImpl->resources(), (VkViewportWScalingNV*)(local_pViewportWScalings + i));
19593 }
19594 }
19595 countingStream->rewind();
19596 {
19597 uint64_t cgen_var_1305;
19598 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1305, 1);
19599 countingStream->write((uint64_t*)&cgen_var_1305, 1 * 8);
19600 countingStream->write((uint32_t*)&local_firstViewport, sizeof(uint32_t));
19601 countingStream->write((uint32_t*)&local_viewportCount, sizeof(uint32_t));
19602 for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
19603 {
19604 marshal_VkViewportWScalingNV(countingStream, (VkViewportWScalingNV*)(local_pViewportWScalings + i));
19605 }
19606 }
19607 uint32_t packetSize_vkCmdSetViewportWScalingNV = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19608 countingStream->rewind();
19609 uint32_t opcode_vkCmdSetViewportWScalingNV = OP_vkCmdSetViewportWScalingNV;
19610 stream->write(&opcode_vkCmdSetViewportWScalingNV, sizeof(uint32_t));
19611 stream->write(&packetSize_vkCmdSetViewportWScalingNV, sizeof(uint32_t));
19612 uint64_t cgen_var_1306;
19613 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1306, 1);
19614 stream->write((uint64_t*)&cgen_var_1306, 1 * 8);
19615 stream->write((uint32_t*)&local_firstViewport, sizeof(uint32_t));
19616 stream->write((uint32_t*)&local_viewportCount, sizeof(uint32_t));
19617 for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
19618 {
19619 marshal_VkViewportWScalingNV(stream, (VkViewportWScalingNV*)(local_pViewportWScalings + i));
19620 }
19621 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV readParams");
19622 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV returnUnmarshal");
19623 mImpl->log("finish vkCmdSetViewportWScalingNV");;
19624 }
19625
19626 #endif
19627 #ifdef VK_EXT_direct_mode_display
vkReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display)19628 VkResult VkEncoder::vkReleaseDisplayEXT(
19629 VkPhysicalDevice physicalDevice,
19630 VkDisplayKHR display)
19631 {
19632 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT encode");
19633 mImpl->log("start vkReleaseDisplayEXT");
19634 auto stream = mImpl->stream();
19635 auto countingStream = mImpl->countingStream();
19636 auto resources = mImpl->resources();
19637 auto pool = mImpl->pool();
19638 stream->setHandleMapping(resources->unwrapMapping());
19639 VkPhysicalDevice local_physicalDevice;
19640 VkDisplayKHR local_display;
19641 local_physicalDevice = physicalDevice;
19642 local_display = display;
19643 countingStream->rewind();
19644 {
19645 uint64_t cgen_var_1307;
19646 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1307, 1);
19647 countingStream->write((uint64_t*)&cgen_var_1307, 1 * 8);
19648 uint64_t cgen_var_1308;
19649 countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1308, 1);
19650 countingStream->write((uint64_t*)&cgen_var_1308, 1 * 8);
19651 }
19652 uint32_t packetSize_vkReleaseDisplayEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19653 countingStream->rewind();
19654 uint32_t opcode_vkReleaseDisplayEXT = OP_vkReleaseDisplayEXT;
19655 stream->write(&opcode_vkReleaseDisplayEXT, sizeof(uint32_t));
19656 stream->write(&packetSize_vkReleaseDisplayEXT, sizeof(uint32_t));
19657 uint64_t cgen_var_1309;
19658 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1309, 1);
19659 stream->write((uint64_t*)&cgen_var_1309, 1 * 8);
19660 uint64_t cgen_var_1310;
19661 stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1310, 1);
19662 stream->write((uint64_t*)&cgen_var_1310, 1 * 8);
19663 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT readParams");
19664 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT returnUnmarshal");
19665 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
19666 stream->read(&vkReleaseDisplayEXT_VkResult_return, sizeof(VkResult));
19667 countingStream->clearPool();
19668 stream->clearPool();
19669 pool->freeAll();
19670 mImpl->log("finish vkReleaseDisplayEXT");;
19671 return vkReleaseDisplayEXT_VkResult_return;
19672 }
19673
19674 #endif
19675 #ifdef VK_EXT_acquire_xlib_display
vkAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display)19676 VkResult VkEncoder::vkAcquireXlibDisplayEXT(
19677 VkPhysicalDevice physicalDevice,
19678 Display* dpy,
19679 VkDisplayKHR display)
19680 {
19681 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT encode");
19682 mImpl->log("start vkAcquireXlibDisplayEXT");
19683 auto stream = mImpl->stream();
19684 auto countingStream = mImpl->countingStream();
19685 auto resources = mImpl->resources();
19686 auto pool = mImpl->pool();
19687 stream->setHandleMapping(resources->unwrapMapping());
19688 VkPhysicalDevice local_physicalDevice;
19689 VkDisplayKHR local_display;
19690 local_physicalDevice = physicalDevice;
19691 local_display = display;
19692 countingStream->rewind();
19693 {
19694 uint64_t cgen_var_1311;
19695 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1311, 1);
19696 countingStream->write((uint64_t*)&cgen_var_1311, 1 * 8);
19697 countingStream->write((Display*)dpy, sizeof(Display));
19698 uint64_t cgen_var_1312;
19699 countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1312, 1);
19700 countingStream->write((uint64_t*)&cgen_var_1312, 1 * 8);
19701 }
19702 uint32_t packetSize_vkAcquireXlibDisplayEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19703 countingStream->rewind();
19704 uint32_t opcode_vkAcquireXlibDisplayEXT = OP_vkAcquireXlibDisplayEXT;
19705 stream->write(&opcode_vkAcquireXlibDisplayEXT, sizeof(uint32_t));
19706 stream->write(&packetSize_vkAcquireXlibDisplayEXT, sizeof(uint32_t));
19707 uint64_t cgen_var_1313;
19708 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1313, 1);
19709 stream->write((uint64_t*)&cgen_var_1313, 1 * 8);
19710 stream->write((Display*)dpy, sizeof(Display));
19711 uint64_t cgen_var_1314;
19712 stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1314, 1);
19713 stream->write((uint64_t*)&cgen_var_1314, 1 * 8);
19714 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT readParams");
19715 stream->read((Display*)dpy, sizeof(Display));
19716 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT returnUnmarshal");
19717 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
19718 stream->read(&vkAcquireXlibDisplayEXT_VkResult_return, sizeof(VkResult));
19719 countingStream->clearPool();
19720 stream->clearPool();
19721 pool->freeAll();
19722 mImpl->log("finish vkAcquireXlibDisplayEXT");;
19723 return vkAcquireXlibDisplayEXT_VkResult_return;
19724 }
19725
vkGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay)19726 VkResult VkEncoder::vkGetRandROutputDisplayEXT(
19727 VkPhysicalDevice physicalDevice,
19728 Display* dpy,
19729 RROutput rrOutput,
19730 VkDisplayKHR* pDisplay)
19731 {
19732 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT encode");
19733 mImpl->log("start vkGetRandROutputDisplayEXT");
19734 auto stream = mImpl->stream();
19735 auto countingStream = mImpl->countingStream();
19736 auto resources = mImpl->resources();
19737 auto pool = mImpl->pool();
19738 stream->setHandleMapping(resources->unwrapMapping());
19739 VkPhysicalDevice local_physicalDevice;
19740 RROutput local_rrOutput;
19741 local_physicalDevice = physicalDevice;
19742 local_rrOutput = rrOutput;
19743 countingStream->rewind();
19744 {
19745 uint64_t cgen_var_1315;
19746 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1315, 1);
19747 countingStream->write((uint64_t*)&cgen_var_1315, 1 * 8);
19748 countingStream->write((Display*)dpy, sizeof(Display));
19749 countingStream->write((RROutput*)&local_rrOutput, sizeof(RROutput));
19750 uint64_t cgen_var_1316;
19751 countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplay, &cgen_var_1316, 1);
19752 countingStream->write((uint64_t*)&cgen_var_1316, 8);
19753 }
19754 uint32_t packetSize_vkGetRandROutputDisplayEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19755 countingStream->rewind();
19756 uint32_t opcode_vkGetRandROutputDisplayEXT = OP_vkGetRandROutputDisplayEXT;
19757 stream->write(&opcode_vkGetRandROutputDisplayEXT, sizeof(uint32_t));
19758 stream->write(&packetSize_vkGetRandROutputDisplayEXT, sizeof(uint32_t));
19759 uint64_t cgen_var_1317;
19760 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1317, 1);
19761 stream->write((uint64_t*)&cgen_var_1317, 1 * 8);
19762 stream->write((Display*)dpy, sizeof(Display));
19763 stream->write((RROutput*)&local_rrOutput, sizeof(RROutput));
19764 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
19765 uint64_t cgen_var_1318;
19766 stream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplay, &cgen_var_1318, 1);
19767 stream->write((uint64_t*)&cgen_var_1318, 8);
19768 stream->setHandleMapping(resources->unwrapMapping());
19769 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT readParams");
19770 stream->read((Display*)dpy, sizeof(Display));
19771 uint64_t cgen_var_1319;
19772 stream->read((uint64_t*)&cgen_var_1319, 8);
19773 stream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_1319, (VkDisplayKHR*)pDisplay, 1);
19774 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT returnUnmarshal");
19775 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
19776 stream->read(&vkGetRandROutputDisplayEXT_VkResult_return, sizeof(VkResult));
19777 countingStream->clearPool();
19778 stream->clearPool();
19779 pool->freeAll();
19780 mImpl->log("finish vkGetRandROutputDisplayEXT");;
19781 return vkGetRandROutputDisplayEXT_VkResult_return;
19782 }
19783
19784 #endif
19785 #ifdef VK_EXT_display_surface_counter
vkGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities)19786 VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilities2EXT(
19787 VkPhysicalDevice physicalDevice,
19788 VkSurfaceKHR surface,
19789 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
19790 {
19791 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT encode");
19792 mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilities2EXT");
19793 auto stream = mImpl->stream();
19794 auto countingStream = mImpl->countingStream();
19795 auto resources = mImpl->resources();
19796 auto pool = mImpl->pool();
19797 stream->setHandleMapping(resources->unwrapMapping());
19798 VkPhysicalDevice local_physicalDevice;
19799 VkSurfaceKHR local_surface;
19800 local_physicalDevice = physicalDevice;
19801 local_surface = surface;
19802 countingStream->rewind();
19803 {
19804 uint64_t cgen_var_1320;
19805 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1320, 1);
19806 countingStream->write((uint64_t*)&cgen_var_1320, 1 * 8);
19807 uint64_t cgen_var_1321;
19808 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_1321, 1);
19809 countingStream->write((uint64_t*)&cgen_var_1321, 1 * 8);
19810 marshal_VkSurfaceCapabilities2EXT(countingStream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
19811 }
19812 uint32_t packetSize_vkGetPhysicalDeviceSurfaceCapabilities2EXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19813 countingStream->rewind();
19814 uint32_t opcode_vkGetPhysicalDeviceSurfaceCapabilities2EXT = OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT;
19815 stream->write(&opcode_vkGetPhysicalDeviceSurfaceCapabilities2EXT, sizeof(uint32_t));
19816 stream->write(&packetSize_vkGetPhysicalDeviceSurfaceCapabilities2EXT, sizeof(uint32_t));
19817 uint64_t cgen_var_1322;
19818 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1322, 1);
19819 stream->write((uint64_t*)&cgen_var_1322, 1 * 8);
19820 uint64_t cgen_var_1323;
19821 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_1323, 1);
19822 stream->write((uint64_t*)&cgen_var_1323, 1 * 8);
19823 marshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
19824 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT readParams");
19825 unmarshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
19826 if (pSurfaceCapabilities)
19827 {
19828 transform_fromhost_VkSurfaceCapabilities2EXT(mImpl->resources(), (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
19829 }
19830 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT returnUnmarshal");
19831 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
19832 stream->read(&vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return, sizeof(VkResult));
19833 countingStream->clearPool();
19834 stream->clearPool();
19835 pool->freeAll();
19836 mImpl->log("finish vkGetPhysicalDeviceSurfaceCapabilities2EXT");;
19837 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
19838 }
19839
19840 #endif
19841 #ifdef VK_EXT_display_control
vkDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo)19842 VkResult VkEncoder::vkDisplayPowerControlEXT(
19843 VkDevice device,
19844 VkDisplayKHR display,
19845 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
19846 {
19847 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT encode");
19848 mImpl->log("start vkDisplayPowerControlEXT");
19849 auto stream = mImpl->stream();
19850 auto countingStream = mImpl->countingStream();
19851 auto resources = mImpl->resources();
19852 auto pool = mImpl->pool();
19853 stream->setHandleMapping(resources->unwrapMapping());
19854 VkDevice local_device;
19855 VkDisplayKHR local_display;
19856 VkDisplayPowerInfoEXT* local_pDisplayPowerInfo;
19857 local_device = device;
19858 local_display = display;
19859 local_pDisplayPowerInfo = nullptr;
19860 if (pDisplayPowerInfo)
19861 {
19862 local_pDisplayPowerInfo = (VkDisplayPowerInfoEXT*)pool->alloc(sizeof(const VkDisplayPowerInfoEXT));
19863 deepcopy_VkDisplayPowerInfoEXT(pool, pDisplayPowerInfo, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo));
19864 }
19865 if (local_pDisplayPowerInfo)
19866 {
19867 transform_tohost_VkDisplayPowerInfoEXT(mImpl->resources(), (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo));
19868 }
19869 countingStream->rewind();
19870 {
19871 uint64_t cgen_var_1324;
19872 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1324, 1);
19873 countingStream->write((uint64_t*)&cgen_var_1324, 1 * 8);
19874 uint64_t cgen_var_1325;
19875 countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1325, 1);
19876 countingStream->write((uint64_t*)&cgen_var_1325, 1 * 8);
19877 marshal_VkDisplayPowerInfoEXT(countingStream, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo));
19878 }
19879 uint32_t packetSize_vkDisplayPowerControlEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19880 countingStream->rewind();
19881 uint32_t opcode_vkDisplayPowerControlEXT = OP_vkDisplayPowerControlEXT;
19882 stream->write(&opcode_vkDisplayPowerControlEXT, sizeof(uint32_t));
19883 stream->write(&packetSize_vkDisplayPowerControlEXT, sizeof(uint32_t));
19884 uint64_t cgen_var_1326;
19885 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1326, 1);
19886 stream->write((uint64_t*)&cgen_var_1326, 1 * 8);
19887 uint64_t cgen_var_1327;
19888 stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1327, 1);
19889 stream->write((uint64_t*)&cgen_var_1327, 1 * 8);
19890 marshal_VkDisplayPowerInfoEXT(stream, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo));
19891 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT readParams");
19892 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT returnUnmarshal");
19893 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
19894 stream->read(&vkDisplayPowerControlEXT_VkResult_return, sizeof(VkResult));
19895 countingStream->clearPool();
19896 stream->clearPool();
19897 pool->freeAll();
19898 mImpl->log("finish vkDisplayPowerControlEXT");;
19899 return vkDisplayPowerControlEXT_VkResult_return;
19900 }
19901
vkRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)19902 VkResult VkEncoder::vkRegisterDeviceEventEXT(
19903 VkDevice device,
19904 const VkDeviceEventInfoEXT* pDeviceEventInfo,
19905 const VkAllocationCallbacks* pAllocator,
19906 VkFence* pFence)
19907 {
19908 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT encode");
19909 mImpl->log("start vkRegisterDeviceEventEXT");
19910 auto stream = mImpl->stream();
19911 auto countingStream = mImpl->countingStream();
19912 auto resources = mImpl->resources();
19913 auto pool = mImpl->pool();
19914 stream->setHandleMapping(resources->unwrapMapping());
19915 VkDevice local_device;
19916 VkDeviceEventInfoEXT* local_pDeviceEventInfo;
19917 VkAllocationCallbacks* local_pAllocator;
19918 local_device = device;
19919 local_pDeviceEventInfo = nullptr;
19920 if (pDeviceEventInfo)
19921 {
19922 local_pDeviceEventInfo = (VkDeviceEventInfoEXT*)pool->alloc(sizeof(const VkDeviceEventInfoEXT));
19923 deepcopy_VkDeviceEventInfoEXT(pool, pDeviceEventInfo, (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo));
19924 }
19925 local_pAllocator = nullptr;
19926 if (pAllocator)
19927 {
19928 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
19929 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
19930 }
19931 local_pAllocator = nullptr;
19932 if (local_pDeviceEventInfo)
19933 {
19934 transform_tohost_VkDeviceEventInfoEXT(mImpl->resources(), (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo));
19935 }
19936 if (local_pAllocator)
19937 {
19938 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
19939 }
19940 countingStream->rewind();
19941 {
19942 uint64_t cgen_var_1328;
19943 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1328, 1);
19944 countingStream->write((uint64_t*)&cgen_var_1328, 1 * 8);
19945 marshal_VkDeviceEventInfoEXT(countingStream, (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo));
19946 // WARNING PTR CHECK
19947 uint64_t cgen_var_1329 = (uint64_t)(uintptr_t)local_pAllocator;
19948 countingStream->putBe64(cgen_var_1329);
19949 if (local_pAllocator)
19950 {
19951 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
19952 }
19953 uint64_t cgen_var_1330;
19954 countingStream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1330, 1);
19955 countingStream->write((uint64_t*)&cgen_var_1330, 8);
19956 }
19957 uint32_t packetSize_vkRegisterDeviceEventEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
19958 countingStream->rewind();
19959 uint32_t opcode_vkRegisterDeviceEventEXT = OP_vkRegisterDeviceEventEXT;
19960 stream->write(&opcode_vkRegisterDeviceEventEXT, sizeof(uint32_t));
19961 stream->write(&packetSize_vkRegisterDeviceEventEXT, sizeof(uint32_t));
19962 uint64_t cgen_var_1331;
19963 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1331, 1);
19964 stream->write((uint64_t*)&cgen_var_1331, 1 * 8);
19965 marshal_VkDeviceEventInfoEXT(stream, (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo));
19966 // WARNING PTR CHECK
19967 uint64_t cgen_var_1332 = (uint64_t)(uintptr_t)local_pAllocator;
19968 stream->putBe64(cgen_var_1332);
19969 if (local_pAllocator)
19970 {
19971 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
19972 }
19973 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
19974 uint64_t cgen_var_1333;
19975 stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1333, 1);
19976 stream->write((uint64_t*)&cgen_var_1333, 8);
19977 stream->setHandleMapping(resources->unwrapMapping());
19978 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT readParams");
19979 uint64_t cgen_var_1334;
19980 stream->read((uint64_t*)&cgen_var_1334, 8);
19981 stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1334, (VkFence*)pFence, 1);
19982 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT returnUnmarshal");
19983 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
19984 stream->read(&vkRegisterDeviceEventEXT_VkResult_return, sizeof(VkResult));
19985 countingStream->clearPool();
19986 stream->clearPool();
19987 pool->freeAll();
19988 mImpl->log("finish vkRegisterDeviceEventEXT");;
19989 return vkRegisterDeviceEventEXT_VkResult_return;
19990 }
19991
vkRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)19992 VkResult VkEncoder::vkRegisterDisplayEventEXT(
19993 VkDevice device,
19994 VkDisplayKHR display,
19995 const VkDisplayEventInfoEXT* pDisplayEventInfo,
19996 const VkAllocationCallbacks* pAllocator,
19997 VkFence* pFence)
19998 {
19999 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT encode");
20000 mImpl->log("start vkRegisterDisplayEventEXT");
20001 auto stream = mImpl->stream();
20002 auto countingStream = mImpl->countingStream();
20003 auto resources = mImpl->resources();
20004 auto pool = mImpl->pool();
20005 stream->setHandleMapping(resources->unwrapMapping());
20006 VkDevice local_device;
20007 VkDisplayKHR local_display;
20008 VkDisplayEventInfoEXT* local_pDisplayEventInfo;
20009 VkAllocationCallbacks* local_pAllocator;
20010 local_device = device;
20011 local_display = display;
20012 local_pDisplayEventInfo = nullptr;
20013 if (pDisplayEventInfo)
20014 {
20015 local_pDisplayEventInfo = (VkDisplayEventInfoEXT*)pool->alloc(sizeof(const VkDisplayEventInfoEXT));
20016 deepcopy_VkDisplayEventInfoEXT(pool, pDisplayEventInfo, (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo));
20017 }
20018 local_pAllocator = nullptr;
20019 if (pAllocator)
20020 {
20021 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
20022 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
20023 }
20024 local_pAllocator = nullptr;
20025 if (local_pDisplayEventInfo)
20026 {
20027 transform_tohost_VkDisplayEventInfoEXT(mImpl->resources(), (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo));
20028 }
20029 if (local_pAllocator)
20030 {
20031 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
20032 }
20033 countingStream->rewind();
20034 {
20035 uint64_t cgen_var_1335;
20036 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1335, 1);
20037 countingStream->write((uint64_t*)&cgen_var_1335, 1 * 8);
20038 uint64_t cgen_var_1336;
20039 countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1336, 1);
20040 countingStream->write((uint64_t*)&cgen_var_1336, 1 * 8);
20041 marshal_VkDisplayEventInfoEXT(countingStream, (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo));
20042 // WARNING PTR CHECK
20043 uint64_t cgen_var_1337 = (uint64_t)(uintptr_t)local_pAllocator;
20044 countingStream->putBe64(cgen_var_1337);
20045 if (local_pAllocator)
20046 {
20047 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
20048 }
20049 uint64_t cgen_var_1338;
20050 countingStream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1338, 1);
20051 countingStream->write((uint64_t*)&cgen_var_1338, 8);
20052 }
20053 uint32_t packetSize_vkRegisterDisplayEventEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20054 countingStream->rewind();
20055 uint32_t opcode_vkRegisterDisplayEventEXT = OP_vkRegisterDisplayEventEXT;
20056 stream->write(&opcode_vkRegisterDisplayEventEXT, sizeof(uint32_t));
20057 stream->write(&packetSize_vkRegisterDisplayEventEXT, sizeof(uint32_t));
20058 uint64_t cgen_var_1339;
20059 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1339, 1);
20060 stream->write((uint64_t*)&cgen_var_1339, 1 * 8);
20061 uint64_t cgen_var_1340;
20062 stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1340, 1);
20063 stream->write((uint64_t*)&cgen_var_1340, 1 * 8);
20064 marshal_VkDisplayEventInfoEXT(stream, (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo));
20065 // WARNING PTR CHECK
20066 uint64_t cgen_var_1341 = (uint64_t)(uintptr_t)local_pAllocator;
20067 stream->putBe64(cgen_var_1341);
20068 if (local_pAllocator)
20069 {
20070 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
20071 }
20072 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
20073 uint64_t cgen_var_1342;
20074 stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1342, 1);
20075 stream->write((uint64_t*)&cgen_var_1342, 8);
20076 stream->setHandleMapping(resources->unwrapMapping());
20077 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT readParams");
20078 uint64_t cgen_var_1343;
20079 stream->read((uint64_t*)&cgen_var_1343, 8);
20080 stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1343, (VkFence*)pFence, 1);
20081 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT returnUnmarshal");
20082 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
20083 stream->read(&vkRegisterDisplayEventEXT_VkResult_return, sizeof(VkResult));
20084 countingStream->clearPool();
20085 stream->clearPool();
20086 pool->freeAll();
20087 mImpl->log("finish vkRegisterDisplayEventEXT");;
20088 return vkRegisterDisplayEventEXT_VkResult_return;
20089 }
20090
vkGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue)20091 VkResult VkEncoder::vkGetSwapchainCounterEXT(
20092 VkDevice device,
20093 VkSwapchainKHR swapchain,
20094 VkSurfaceCounterFlagBitsEXT counter,
20095 uint64_t* pCounterValue)
20096 {
20097 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT encode");
20098 mImpl->log("start vkGetSwapchainCounterEXT");
20099 auto stream = mImpl->stream();
20100 auto countingStream = mImpl->countingStream();
20101 auto resources = mImpl->resources();
20102 auto pool = mImpl->pool();
20103 stream->setHandleMapping(resources->unwrapMapping());
20104 VkDevice local_device;
20105 VkSwapchainKHR local_swapchain;
20106 VkSurfaceCounterFlagBitsEXT local_counter;
20107 local_device = device;
20108 local_swapchain = swapchain;
20109 local_counter = counter;
20110 countingStream->rewind();
20111 {
20112 uint64_t cgen_var_1344;
20113 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1344, 1);
20114 countingStream->write((uint64_t*)&cgen_var_1344, 1 * 8);
20115 uint64_t cgen_var_1345;
20116 countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1345, 1);
20117 countingStream->write((uint64_t*)&cgen_var_1345, 1 * 8);
20118 countingStream->write((VkSurfaceCounterFlagBitsEXT*)&local_counter, sizeof(VkSurfaceCounterFlagBitsEXT));
20119 countingStream->write((uint64_t*)pCounterValue, sizeof(uint64_t));
20120 }
20121 uint32_t packetSize_vkGetSwapchainCounterEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20122 countingStream->rewind();
20123 uint32_t opcode_vkGetSwapchainCounterEXT = OP_vkGetSwapchainCounterEXT;
20124 stream->write(&opcode_vkGetSwapchainCounterEXT, sizeof(uint32_t));
20125 stream->write(&packetSize_vkGetSwapchainCounterEXT, sizeof(uint32_t));
20126 uint64_t cgen_var_1346;
20127 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1346, 1);
20128 stream->write((uint64_t*)&cgen_var_1346, 1 * 8);
20129 uint64_t cgen_var_1347;
20130 stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1347, 1);
20131 stream->write((uint64_t*)&cgen_var_1347, 1 * 8);
20132 stream->write((VkSurfaceCounterFlagBitsEXT*)&local_counter, sizeof(VkSurfaceCounterFlagBitsEXT));
20133 stream->write((uint64_t*)pCounterValue, sizeof(uint64_t));
20134 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT readParams");
20135 stream->read((uint64_t*)pCounterValue, sizeof(uint64_t));
20136 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT returnUnmarshal");
20137 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
20138 stream->read(&vkGetSwapchainCounterEXT_VkResult_return, sizeof(VkResult));
20139 countingStream->clearPool();
20140 stream->clearPool();
20141 pool->freeAll();
20142 mImpl->log("finish vkGetSwapchainCounterEXT");;
20143 return vkGetSwapchainCounterEXT_VkResult_return;
20144 }
20145
20146 #endif
20147 #ifdef VK_GOOGLE_display_timing
vkGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties)20148 VkResult VkEncoder::vkGetRefreshCycleDurationGOOGLE(
20149 VkDevice device,
20150 VkSwapchainKHR swapchain,
20151 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
20152 {
20153 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE encode");
20154 mImpl->log("start vkGetRefreshCycleDurationGOOGLE");
20155 auto stream = mImpl->stream();
20156 auto countingStream = mImpl->countingStream();
20157 auto resources = mImpl->resources();
20158 auto pool = mImpl->pool();
20159 stream->setHandleMapping(resources->unwrapMapping());
20160 VkDevice local_device;
20161 VkSwapchainKHR local_swapchain;
20162 local_device = device;
20163 local_swapchain = swapchain;
20164 countingStream->rewind();
20165 {
20166 uint64_t cgen_var_1348;
20167 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1348, 1);
20168 countingStream->write((uint64_t*)&cgen_var_1348, 1 * 8);
20169 uint64_t cgen_var_1349;
20170 countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1349, 1);
20171 countingStream->write((uint64_t*)&cgen_var_1349, 1 * 8);
20172 marshal_VkRefreshCycleDurationGOOGLE(countingStream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
20173 }
20174 uint32_t packetSize_vkGetRefreshCycleDurationGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20175 countingStream->rewind();
20176 uint32_t opcode_vkGetRefreshCycleDurationGOOGLE = OP_vkGetRefreshCycleDurationGOOGLE;
20177 stream->write(&opcode_vkGetRefreshCycleDurationGOOGLE, sizeof(uint32_t));
20178 stream->write(&packetSize_vkGetRefreshCycleDurationGOOGLE, sizeof(uint32_t));
20179 uint64_t cgen_var_1350;
20180 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1350, 1);
20181 stream->write((uint64_t*)&cgen_var_1350, 1 * 8);
20182 uint64_t cgen_var_1351;
20183 stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1351, 1);
20184 stream->write((uint64_t*)&cgen_var_1351, 1 * 8);
20185 marshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
20186 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE readParams");
20187 unmarshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
20188 if (pDisplayTimingProperties)
20189 {
20190 transform_fromhost_VkRefreshCycleDurationGOOGLE(mImpl->resources(), (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
20191 }
20192 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE returnUnmarshal");
20193 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
20194 stream->read(&vkGetRefreshCycleDurationGOOGLE_VkResult_return, sizeof(VkResult));
20195 countingStream->clearPool();
20196 stream->clearPool();
20197 pool->freeAll();
20198 mImpl->log("finish vkGetRefreshCycleDurationGOOGLE");;
20199 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
20200 }
20201
vkGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings)20202 VkResult VkEncoder::vkGetPastPresentationTimingGOOGLE(
20203 VkDevice device,
20204 VkSwapchainKHR swapchain,
20205 uint32_t* pPresentationTimingCount,
20206 VkPastPresentationTimingGOOGLE* pPresentationTimings)
20207 {
20208 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE encode");
20209 mImpl->log("start vkGetPastPresentationTimingGOOGLE");
20210 auto stream = mImpl->stream();
20211 auto countingStream = mImpl->countingStream();
20212 auto resources = mImpl->resources();
20213 auto pool = mImpl->pool();
20214 stream->setHandleMapping(resources->unwrapMapping());
20215 VkDevice local_device;
20216 VkSwapchainKHR local_swapchain;
20217 local_device = device;
20218 local_swapchain = swapchain;
20219 countingStream->rewind();
20220 {
20221 uint64_t cgen_var_1352;
20222 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1352, 1);
20223 countingStream->write((uint64_t*)&cgen_var_1352, 1 * 8);
20224 uint64_t cgen_var_1353;
20225 countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1353, 1);
20226 countingStream->write((uint64_t*)&cgen_var_1353, 1 * 8);
20227 // WARNING PTR CHECK
20228 uint64_t cgen_var_1354 = (uint64_t)(uintptr_t)pPresentationTimingCount;
20229 countingStream->putBe64(cgen_var_1354);
20230 if (pPresentationTimingCount)
20231 {
20232 countingStream->write((uint32_t*)pPresentationTimingCount, sizeof(uint32_t));
20233 }
20234 // WARNING PTR CHECK
20235 uint64_t cgen_var_1355 = (uint64_t)(uintptr_t)pPresentationTimings;
20236 countingStream->putBe64(cgen_var_1355);
20237 if (pPresentationTimings)
20238 {
20239 for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
20240 {
20241 marshal_VkPastPresentationTimingGOOGLE(countingStream, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
20242 }
20243 }
20244 }
20245 uint32_t packetSize_vkGetPastPresentationTimingGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20246 countingStream->rewind();
20247 uint32_t opcode_vkGetPastPresentationTimingGOOGLE = OP_vkGetPastPresentationTimingGOOGLE;
20248 stream->write(&opcode_vkGetPastPresentationTimingGOOGLE, sizeof(uint32_t));
20249 stream->write(&packetSize_vkGetPastPresentationTimingGOOGLE, sizeof(uint32_t));
20250 uint64_t cgen_var_1356;
20251 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1356, 1);
20252 stream->write((uint64_t*)&cgen_var_1356, 1 * 8);
20253 uint64_t cgen_var_1357;
20254 stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1357, 1);
20255 stream->write((uint64_t*)&cgen_var_1357, 1 * 8);
20256 // WARNING PTR CHECK
20257 uint64_t cgen_var_1358 = (uint64_t)(uintptr_t)pPresentationTimingCount;
20258 stream->putBe64(cgen_var_1358);
20259 if (pPresentationTimingCount)
20260 {
20261 stream->write((uint32_t*)pPresentationTimingCount, sizeof(uint32_t));
20262 }
20263 // WARNING PTR CHECK
20264 uint64_t cgen_var_1359 = (uint64_t)(uintptr_t)pPresentationTimings;
20265 stream->putBe64(cgen_var_1359);
20266 if (pPresentationTimings)
20267 {
20268 for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
20269 {
20270 marshal_VkPastPresentationTimingGOOGLE(stream, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
20271 }
20272 }
20273 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE readParams");
20274 // WARNING PTR CHECK
20275 uint32_t* check_pPresentationTimingCount;
20276 check_pPresentationTimingCount = (uint32_t*)(uintptr_t)stream->getBe64();
20277 if (pPresentationTimingCount)
20278 {
20279 if (!(check_pPresentationTimingCount))
20280 {
20281 fprintf(stderr, "fatal: pPresentationTimingCount inconsistent between guest and host\n");
20282 }
20283 stream->read((uint32_t*)pPresentationTimingCount, sizeof(uint32_t));
20284 }
20285 // WARNING PTR CHECK
20286 VkPastPresentationTimingGOOGLE* check_pPresentationTimings;
20287 check_pPresentationTimings = (VkPastPresentationTimingGOOGLE*)(uintptr_t)stream->getBe64();
20288 if (pPresentationTimings)
20289 {
20290 if (!(check_pPresentationTimings))
20291 {
20292 fprintf(stderr, "fatal: pPresentationTimings inconsistent between guest and host\n");
20293 }
20294 for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
20295 {
20296 unmarshal_VkPastPresentationTimingGOOGLE(stream, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
20297 }
20298 }
20299 if (pPresentationTimings)
20300 {
20301 for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
20302 {
20303 transform_fromhost_VkPastPresentationTimingGOOGLE(mImpl->resources(), (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
20304 }
20305 }
20306 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE returnUnmarshal");
20307 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
20308 stream->read(&vkGetPastPresentationTimingGOOGLE_VkResult_return, sizeof(VkResult));
20309 countingStream->clearPool();
20310 stream->clearPool();
20311 pool->freeAll();
20312 mImpl->log("finish vkGetPastPresentationTimingGOOGLE");;
20313 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
20314 }
20315
20316 #endif
20317 #ifdef VK_NV_sample_mask_override_coverage
20318 #endif
20319 #ifdef VK_NV_geometry_shader_passthrough
20320 #endif
20321 #ifdef VK_NV_viewport_array2
20322 #endif
20323 #ifdef VK_NVX_multiview_per_view_attributes
20324 #endif
20325 #ifdef VK_NV_viewport_swizzle
20326 #endif
20327 #ifdef VK_EXT_discard_rectangles
vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles)20328 void VkEncoder::vkCmdSetDiscardRectangleEXT(
20329 VkCommandBuffer commandBuffer,
20330 uint32_t firstDiscardRectangle,
20331 uint32_t discardRectangleCount,
20332 const VkRect2D* pDiscardRectangles)
20333 {
20334 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT encode");
20335 mImpl->log("start vkCmdSetDiscardRectangleEXT");
20336 auto stream = mImpl->stream();
20337 auto countingStream = mImpl->countingStream();
20338 auto resources = mImpl->resources();
20339 auto pool = mImpl->pool();
20340 stream->setHandleMapping(resources->unwrapMapping());
20341 VkCommandBuffer local_commandBuffer;
20342 uint32_t local_firstDiscardRectangle;
20343 uint32_t local_discardRectangleCount;
20344 VkRect2D* local_pDiscardRectangles;
20345 local_commandBuffer = commandBuffer;
20346 local_firstDiscardRectangle = firstDiscardRectangle;
20347 local_discardRectangleCount = discardRectangleCount;
20348 local_pDiscardRectangles = nullptr;
20349 if (pDiscardRectangles)
20350 {
20351 local_pDiscardRectangles = (VkRect2D*)pool->alloc(((discardRectangleCount)) * sizeof(const VkRect2D));
20352 for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i)
20353 {
20354 deepcopy_VkRect2D(pool, pDiscardRectangles + i, (VkRect2D*)(local_pDiscardRectangles + i));
20355 }
20356 }
20357 if (local_pDiscardRectangles)
20358 {
20359 for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i)
20360 {
20361 transform_tohost_VkRect2D(mImpl->resources(), (VkRect2D*)(local_pDiscardRectangles + i));
20362 }
20363 }
20364 countingStream->rewind();
20365 {
20366 uint64_t cgen_var_1362;
20367 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1362, 1);
20368 countingStream->write((uint64_t*)&cgen_var_1362, 1 * 8);
20369 countingStream->write((uint32_t*)&local_firstDiscardRectangle, sizeof(uint32_t));
20370 countingStream->write((uint32_t*)&local_discardRectangleCount, sizeof(uint32_t));
20371 for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i)
20372 {
20373 marshal_VkRect2D(countingStream, (VkRect2D*)(local_pDiscardRectangles + i));
20374 }
20375 }
20376 uint32_t packetSize_vkCmdSetDiscardRectangleEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20377 countingStream->rewind();
20378 uint32_t opcode_vkCmdSetDiscardRectangleEXT = OP_vkCmdSetDiscardRectangleEXT;
20379 stream->write(&opcode_vkCmdSetDiscardRectangleEXT, sizeof(uint32_t));
20380 stream->write(&packetSize_vkCmdSetDiscardRectangleEXT, sizeof(uint32_t));
20381 uint64_t cgen_var_1363;
20382 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1363, 1);
20383 stream->write((uint64_t*)&cgen_var_1363, 1 * 8);
20384 stream->write((uint32_t*)&local_firstDiscardRectangle, sizeof(uint32_t));
20385 stream->write((uint32_t*)&local_discardRectangleCount, sizeof(uint32_t));
20386 for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i)
20387 {
20388 marshal_VkRect2D(stream, (VkRect2D*)(local_pDiscardRectangles + i));
20389 }
20390 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT readParams");
20391 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT returnUnmarshal");
20392 mImpl->log("finish vkCmdSetDiscardRectangleEXT");;
20393 }
20394
20395 #endif
20396 #ifdef VK_EXT_conservative_rasterization
20397 #endif
20398 #ifdef VK_EXT_swapchain_colorspace
20399 #endif
20400 #ifdef VK_EXT_hdr_metadata
vkSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata)20401 void VkEncoder::vkSetHdrMetadataEXT(
20402 VkDevice device,
20403 uint32_t swapchainCount,
20404 const VkSwapchainKHR* pSwapchains,
20405 const VkHdrMetadataEXT* pMetadata)
20406 {
20407 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT encode");
20408 mImpl->log("start vkSetHdrMetadataEXT");
20409 auto stream = mImpl->stream();
20410 auto countingStream = mImpl->countingStream();
20411 auto resources = mImpl->resources();
20412 auto pool = mImpl->pool();
20413 stream->setHandleMapping(resources->unwrapMapping());
20414 VkDevice local_device;
20415 uint32_t local_swapchainCount;
20416 VkSwapchainKHR* local_pSwapchains;
20417 VkHdrMetadataEXT* local_pMetadata;
20418 local_device = device;
20419 local_swapchainCount = swapchainCount;
20420 local_pSwapchains = nullptr;
20421 if (pSwapchains)
20422 {
20423 local_pSwapchains = (VkSwapchainKHR*)pool->dupArray(pSwapchains, ((swapchainCount)) * sizeof(const VkSwapchainKHR));
20424 }
20425 local_pMetadata = nullptr;
20426 if (pMetadata)
20427 {
20428 local_pMetadata = (VkHdrMetadataEXT*)pool->alloc(((swapchainCount)) * sizeof(const VkHdrMetadataEXT));
20429 for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
20430 {
20431 deepcopy_VkHdrMetadataEXT(pool, pMetadata + i, (VkHdrMetadataEXT*)(local_pMetadata + i));
20432 }
20433 }
20434 if (local_pMetadata)
20435 {
20436 for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
20437 {
20438 transform_tohost_VkHdrMetadataEXT(mImpl->resources(), (VkHdrMetadataEXT*)(local_pMetadata + i));
20439 }
20440 }
20441 countingStream->rewind();
20442 {
20443 uint64_t cgen_var_1364;
20444 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1364, 1);
20445 countingStream->write((uint64_t*)&cgen_var_1364, 1 * 8);
20446 countingStream->write((uint32_t*)&local_swapchainCount, sizeof(uint32_t));
20447 if (((swapchainCount)))
20448 {
20449 uint64_t* cgen_var_1365;
20450 countingStream->alloc((void**)&cgen_var_1365, ((swapchainCount)) * 8);
20451 countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(local_pSwapchains, cgen_var_1365, ((swapchainCount)));
20452 countingStream->write((uint64_t*)cgen_var_1365, ((swapchainCount)) * 8);
20453 }
20454 for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
20455 {
20456 marshal_VkHdrMetadataEXT(countingStream, (VkHdrMetadataEXT*)(local_pMetadata + i));
20457 }
20458 }
20459 uint32_t packetSize_vkSetHdrMetadataEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20460 countingStream->rewind();
20461 uint32_t opcode_vkSetHdrMetadataEXT = OP_vkSetHdrMetadataEXT;
20462 stream->write(&opcode_vkSetHdrMetadataEXT, sizeof(uint32_t));
20463 stream->write(&packetSize_vkSetHdrMetadataEXT, sizeof(uint32_t));
20464 uint64_t cgen_var_1366;
20465 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1366, 1);
20466 stream->write((uint64_t*)&cgen_var_1366, 1 * 8);
20467 stream->write((uint32_t*)&local_swapchainCount, sizeof(uint32_t));
20468 if (((swapchainCount)))
20469 {
20470 uint64_t* cgen_var_1367;
20471 stream->alloc((void**)&cgen_var_1367, ((swapchainCount)) * 8);
20472 stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(local_pSwapchains, cgen_var_1367, ((swapchainCount)));
20473 stream->write((uint64_t*)cgen_var_1367, ((swapchainCount)) * 8);
20474 }
20475 for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
20476 {
20477 marshal_VkHdrMetadataEXT(stream, (VkHdrMetadataEXT*)(local_pMetadata + i));
20478 }
20479 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT readParams");
20480 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT returnUnmarshal");
20481 mImpl->log("finish vkSetHdrMetadataEXT");;
20482 }
20483
20484 #endif
20485 #ifdef VK_MVK_ios_surface
vkCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)20486 VkResult VkEncoder::vkCreateIOSSurfaceMVK(
20487 VkInstance instance,
20488 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
20489 const VkAllocationCallbacks* pAllocator,
20490 VkSurfaceKHR* pSurface)
20491 {
20492 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK encode");
20493 mImpl->log("start vkCreateIOSSurfaceMVK");
20494 auto stream = mImpl->stream();
20495 auto countingStream = mImpl->countingStream();
20496 auto resources = mImpl->resources();
20497 auto pool = mImpl->pool();
20498 stream->setHandleMapping(resources->unwrapMapping());
20499 VkInstance local_instance;
20500 VkIOSSurfaceCreateInfoMVK* local_pCreateInfo;
20501 VkAllocationCallbacks* local_pAllocator;
20502 local_instance = instance;
20503 local_pCreateInfo = nullptr;
20504 if (pCreateInfo)
20505 {
20506 local_pCreateInfo = (VkIOSSurfaceCreateInfoMVK*)pool->alloc(sizeof(const VkIOSSurfaceCreateInfoMVK));
20507 deepcopy_VkIOSSurfaceCreateInfoMVK(pool, pCreateInfo, (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
20508 }
20509 local_pAllocator = nullptr;
20510 if (pAllocator)
20511 {
20512 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
20513 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
20514 }
20515 local_pAllocator = nullptr;
20516 if (local_pCreateInfo)
20517 {
20518 transform_tohost_VkIOSSurfaceCreateInfoMVK(mImpl->resources(), (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
20519 }
20520 if (local_pAllocator)
20521 {
20522 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
20523 }
20524 countingStream->rewind();
20525 {
20526 uint64_t cgen_var_1368;
20527 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1368, 1);
20528 countingStream->write((uint64_t*)&cgen_var_1368, 1 * 8);
20529 marshal_VkIOSSurfaceCreateInfoMVK(countingStream, (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
20530 // WARNING PTR CHECK
20531 uint64_t cgen_var_1369 = (uint64_t)(uintptr_t)local_pAllocator;
20532 countingStream->putBe64(cgen_var_1369);
20533 if (local_pAllocator)
20534 {
20535 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
20536 }
20537 uint64_t cgen_var_1370;
20538 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1370, 1);
20539 countingStream->write((uint64_t*)&cgen_var_1370, 8);
20540 }
20541 uint32_t packetSize_vkCreateIOSSurfaceMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20542 countingStream->rewind();
20543 uint32_t opcode_vkCreateIOSSurfaceMVK = OP_vkCreateIOSSurfaceMVK;
20544 stream->write(&opcode_vkCreateIOSSurfaceMVK, sizeof(uint32_t));
20545 stream->write(&packetSize_vkCreateIOSSurfaceMVK, sizeof(uint32_t));
20546 uint64_t cgen_var_1371;
20547 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1371, 1);
20548 stream->write((uint64_t*)&cgen_var_1371, 1 * 8);
20549 marshal_VkIOSSurfaceCreateInfoMVK(stream, (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
20550 // WARNING PTR CHECK
20551 uint64_t cgen_var_1372 = (uint64_t)(uintptr_t)local_pAllocator;
20552 stream->putBe64(cgen_var_1372);
20553 if (local_pAllocator)
20554 {
20555 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
20556 }
20557 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
20558 uint64_t cgen_var_1373;
20559 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1373, 1);
20560 stream->write((uint64_t*)&cgen_var_1373, 8);
20561 stream->setHandleMapping(resources->unwrapMapping());
20562 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK readParams");
20563 uint64_t cgen_var_1374;
20564 stream->read((uint64_t*)&cgen_var_1374, 8);
20565 stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1374, (VkSurfaceKHR*)pSurface, 1);
20566 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK returnUnmarshal");
20567 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
20568 stream->read(&vkCreateIOSSurfaceMVK_VkResult_return, sizeof(VkResult));
20569 countingStream->clearPool();
20570 stream->clearPool();
20571 pool->freeAll();
20572 mImpl->log("finish vkCreateIOSSurfaceMVK");;
20573 return vkCreateIOSSurfaceMVK_VkResult_return;
20574 }
20575
20576 #endif
20577 #ifdef VK_MVK_macos_surface
vkCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)20578 VkResult VkEncoder::vkCreateMacOSSurfaceMVK(
20579 VkInstance instance,
20580 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
20581 const VkAllocationCallbacks* pAllocator,
20582 VkSurfaceKHR* pSurface)
20583 {
20584 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK encode");
20585 mImpl->log("start vkCreateMacOSSurfaceMVK");
20586 auto stream = mImpl->stream();
20587 auto countingStream = mImpl->countingStream();
20588 auto resources = mImpl->resources();
20589 auto pool = mImpl->pool();
20590 stream->setHandleMapping(resources->unwrapMapping());
20591 VkInstance local_instance;
20592 VkMacOSSurfaceCreateInfoMVK* local_pCreateInfo;
20593 VkAllocationCallbacks* local_pAllocator;
20594 local_instance = instance;
20595 local_pCreateInfo = nullptr;
20596 if (pCreateInfo)
20597 {
20598 local_pCreateInfo = (VkMacOSSurfaceCreateInfoMVK*)pool->alloc(sizeof(const VkMacOSSurfaceCreateInfoMVK));
20599 deepcopy_VkMacOSSurfaceCreateInfoMVK(pool, pCreateInfo, (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
20600 }
20601 local_pAllocator = nullptr;
20602 if (pAllocator)
20603 {
20604 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
20605 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
20606 }
20607 local_pAllocator = nullptr;
20608 if (local_pCreateInfo)
20609 {
20610 transform_tohost_VkMacOSSurfaceCreateInfoMVK(mImpl->resources(), (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
20611 }
20612 if (local_pAllocator)
20613 {
20614 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
20615 }
20616 countingStream->rewind();
20617 {
20618 uint64_t cgen_var_1375;
20619 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1375, 1);
20620 countingStream->write((uint64_t*)&cgen_var_1375, 1 * 8);
20621 marshal_VkMacOSSurfaceCreateInfoMVK(countingStream, (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
20622 // WARNING PTR CHECK
20623 uint64_t cgen_var_1376 = (uint64_t)(uintptr_t)local_pAllocator;
20624 countingStream->putBe64(cgen_var_1376);
20625 if (local_pAllocator)
20626 {
20627 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
20628 }
20629 uint64_t cgen_var_1377;
20630 countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1377, 1);
20631 countingStream->write((uint64_t*)&cgen_var_1377, 8);
20632 }
20633 uint32_t packetSize_vkCreateMacOSSurfaceMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20634 countingStream->rewind();
20635 uint32_t opcode_vkCreateMacOSSurfaceMVK = OP_vkCreateMacOSSurfaceMVK;
20636 stream->write(&opcode_vkCreateMacOSSurfaceMVK, sizeof(uint32_t));
20637 stream->write(&packetSize_vkCreateMacOSSurfaceMVK, sizeof(uint32_t));
20638 uint64_t cgen_var_1378;
20639 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1378, 1);
20640 stream->write((uint64_t*)&cgen_var_1378, 1 * 8);
20641 marshal_VkMacOSSurfaceCreateInfoMVK(stream, (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo));
20642 // WARNING PTR CHECK
20643 uint64_t cgen_var_1379 = (uint64_t)(uintptr_t)local_pAllocator;
20644 stream->putBe64(cgen_var_1379);
20645 if (local_pAllocator)
20646 {
20647 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
20648 }
20649 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
20650 uint64_t cgen_var_1380;
20651 stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1380, 1);
20652 stream->write((uint64_t*)&cgen_var_1380, 8);
20653 stream->setHandleMapping(resources->unwrapMapping());
20654 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK readParams");
20655 uint64_t cgen_var_1381;
20656 stream->read((uint64_t*)&cgen_var_1381, 8);
20657 stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1381, (VkSurfaceKHR*)pSurface, 1);
20658 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK returnUnmarshal");
20659 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
20660 stream->read(&vkCreateMacOSSurfaceMVK_VkResult_return, sizeof(VkResult));
20661 countingStream->clearPool();
20662 stream->clearPool();
20663 pool->freeAll();
20664 mImpl->log("finish vkCreateMacOSSurfaceMVK");;
20665 return vkCreateMacOSSurfaceMVK_VkResult_return;
20666 }
20667
20668 #endif
20669 #ifdef VK_EXT_external_memory_dma_buf
20670 #endif
20671 #ifdef VK_EXT_queue_family_foreign
20672 #endif
20673 #ifdef VK_EXT_debug_utils
vkSetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo)20674 VkResult VkEncoder::vkSetDebugUtilsObjectNameEXT(
20675 VkDevice device,
20676 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
20677 {
20678 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT encode");
20679 mImpl->log("start vkSetDebugUtilsObjectNameEXT");
20680 auto stream = mImpl->stream();
20681 auto countingStream = mImpl->countingStream();
20682 auto resources = mImpl->resources();
20683 auto pool = mImpl->pool();
20684 stream->setHandleMapping(resources->unwrapMapping());
20685 VkDevice local_device;
20686 VkDebugUtilsObjectNameInfoEXT* local_pNameInfo;
20687 local_device = device;
20688 local_pNameInfo = nullptr;
20689 if (pNameInfo)
20690 {
20691 local_pNameInfo = (VkDebugUtilsObjectNameInfoEXT*)pool->alloc(sizeof(const VkDebugUtilsObjectNameInfoEXT));
20692 deepcopy_VkDebugUtilsObjectNameInfoEXT(pool, pNameInfo, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo));
20693 }
20694 if (local_pNameInfo)
20695 {
20696 transform_tohost_VkDebugUtilsObjectNameInfoEXT(mImpl->resources(), (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo));
20697 }
20698 countingStream->rewind();
20699 {
20700 uint64_t cgen_var_1382;
20701 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1382, 1);
20702 countingStream->write((uint64_t*)&cgen_var_1382, 1 * 8);
20703 marshal_VkDebugUtilsObjectNameInfoEXT(countingStream, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo));
20704 }
20705 uint32_t packetSize_vkSetDebugUtilsObjectNameEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20706 countingStream->rewind();
20707 uint32_t opcode_vkSetDebugUtilsObjectNameEXT = OP_vkSetDebugUtilsObjectNameEXT;
20708 stream->write(&opcode_vkSetDebugUtilsObjectNameEXT, sizeof(uint32_t));
20709 stream->write(&packetSize_vkSetDebugUtilsObjectNameEXT, sizeof(uint32_t));
20710 uint64_t cgen_var_1383;
20711 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1383, 1);
20712 stream->write((uint64_t*)&cgen_var_1383, 1 * 8);
20713 marshal_VkDebugUtilsObjectNameInfoEXT(stream, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo));
20714 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT readParams");
20715 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT returnUnmarshal");
20716 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
20717 stream->read(&vkSetDebugUtilsObjectNameEXT_VkResult_return, sizeof(VkResult));
20718 countingStream->clearPool();
20719 stream->clearPool();
20720 pool->freeAll();
20721 mImpl->log("finish vkSetDebugUtilsObjectNameEXT");;
20722 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
20723 }
20724
vkSetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo)20725 VkResult VkEncoder::vkSetDebugUtilsObjectTagEXT(
20726 VkDevice device,
20727 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
20728 {
20729 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT encode");
20730 mImpl->log("start vkSetDebugUtilsObjectTagEXT");
20731 auto stream = mImpl->stream();
20732 auto countingStream = mImpl->countingStream();
20733 auto resources = mImpl->resources();
20734 auto pool = mImpl->pool();
20735 stream->setHandleMapping(resources->unwrapMapping());
20736 VkDevice local_device;
20737 VkDebugUtilsObjectTagInfoEXT* local_pTagInfo;
20738 local_device = device;
20739 local_pTagInfo = nullptr;
20740 if (pTagInfo)
20741 {
20742 local_pTagInfo = (VkDebugUtilsObjectTagInfoEXT*)pool->alloc(sizeof(const VkDebugUtilsObjectTagInfoEXT));
20743 deepcopy_VkDebugUtilsObjectTagInfoEXT(pool, pTagInfo, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo));
20744 }
20745 if (local_pTagInfo)
20746 {
20747 transform_tohost_VkDebugUtilsObjectTagInfoEXT(mImpl->resources(), (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo));
20748 }
20749 countingStream->rewind();
20750 {
20751 uint64_t cgen_var_1384;
20752 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1384, 1);
20753 countingStream->write((uint64_t*)&cgen_var_1384, 1 * 8);
20754 marshal_VkDebugUtilsObjectTagInfoEXT(countingStream, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo));
20755 }
20756 uint32_t packetSize_vkSetDebugUtilsObjectTagEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20757 countingStream->rewind();
20758 uint32_t opcode_vkSetDebugUtilsObjectTagEXT = OP_vkSetDebugUtilsObjectTagEXT;
20759 stream->write(&opcode_vkSetDebugUtilsObjectTagEXT, sizeof(uint32_t));
20760 stream->write(&packetSize_vkSetDebugUtilsObjectTagEXT, sizeof(uint32_t));
20761 uint64_t cgen_var_1385;
20762 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1385, 1);
20763 stream->write((uint64_t*)&cgen_var_1385, 1 * 8);
20764 marshal_VkDebugUtilsObjectTagInfoEXT(stream, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo));
20765 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT readParams");
20766 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT returnUnmarshal");
20767 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
20768 stream->read(&vkSetDebugUtilsObjectTagEXT_VkResult_return, sizeof(VkResult));
20769 countingStream->clearPool();
20770 stream->clearPool();
20771 pool->freeAll();
20772 mImpl->log("finish vkSetDebugUtilsObjectTagEXT");;
20773 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
20774 }
20775
vkQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)20776 void VkEncoder::vkQueueBeginDebugUtilsLabelEXT(
20777 VkQueue queue,
20778 const VkDebugUtilsLabelEXT* pLabelInfo)
20779 {
20780 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT encode");
20781 mImpl->log("start vkQueueBeginDebugUtilsLabelEXT");
20782 auto stream = mImpl->stream();
20783 auto countingStream = mImpl->countingStream();
20784 auto resources = mImpl->resources();
20785 auto pool = mImpl->pool();
20786 stream->setHandleMapping(resources->unwrapMapping());
20787 VkQueue local_queue;
20788 VkDebugUtilsLabelEXT* local_pLabelInfo;
20789 local_queue = queue;
20790 local_pLabelInfo = nullptr;
20791 if (pLabelInfo)
20792 {
20793 local_pLabelInfo = (VkDebugUtilsLabelEXT*)pool->alloc(sizeof(const VkDebugUtilsLabelEXT));
20794 deepcopy_VkDebugUtilsLabelEXT(pool, pLabelInfo, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20795 }
20796 if (local_pLabelInfo)
20797 {
20798 transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20799 }
20800 countingStream->rewind();
20801 {
20802 uint64_t cgen_var_1386;
20803 countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1386, 1);
20804 countingStream->write((uint64_t*)&cgen_var_1386, 1 * 8);
20805 marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20806 }
20807 uint32_t packetSize_vkQueueBeginDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20808 countingStream->rewind();
20809 uint32_t opcode_vkQueueBeginDebugUtilsLabelEXT = OP_vkQueueBeginDebugUtilsLabelEXT;
20810 stream->write(&opcode_vkQueueBeginDebugUtilsLabelEXT, sizeof(uint32_t));
20811 stream->write(&packetSize_vkQueueBeginDebugUtilsLabelEXT, sizeof(uint32_t));
20812 uint64_t cgen_var_1387;
20813 stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1387, 1);
20814 stream->write((uint64_t*)&cgen_var_1387, 1 * 8);
20815 marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20816 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT readParams");
20817 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT returnUnmarshal");
20818 mImpl->log("finish vkQueueBeginDebugUtilsLabelEXT");;
20819 }
20820
vkQueueEndDebugUtilsLabelEXT(VkQueue queue)20821 void VkEncoder::vkQueueEndDebugUtilsLabelEXT(
20822 VkQueue queue)
20823 {
20824 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT encode");
20825 mImpl->log("start vkQueueEndDebugUtilsLabelEXT");
20826 auto stream = mImpl->stream();
20827 auto countingStream = mImpl->countingStream();
20828 auto resources = mImpl->resources();
20829 auto pool = mImpl->pool();
20830 stream->setHandleMapping(resources->unwrapMapping());
20831 VkQueue local_queue;
20832 local_queue = queue;
20833 countingStream->rewind();
20834 {
20835 uint64_t cgen_var_1388;
20836 countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1388, 1);
20837 countingStream->write((uint64_t*)&cgen_var_1388, 1 * 8);
20838 }
20839 uint32_t packetSize_vkQueueEndDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20840 countingStream->rewind();
20841 uint32_t opcode_vkQueueEndDebugUtilsLabelEXT = OP_vkQueueEndDebugUtilsLabelEXT;
20842 stream->write(&opcode_vkQueueEndDebugUtilsLabelEXT, sizeof(uint32_t));
20843 stream->write(&packetSize_vkQueueEndDebugUtilsLabelEXT, sizeof(uint32_t));
20844 uint64_t cgen_var_1389;
20845 stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1389, 1);
20846 stream->write((uint64_t*)&cgen_var_1389, 1 * 8);
20847 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT readParams");
20848 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT returnUnmarshal");
20849 mImpl->log("finish vkQueueEndDebugUtilsLabelEXT");;
20850 }
20851
vkQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)20852 void VkEncoder::vkQueueInsertDebugUtilsLabelEXT(
20853 VkQueue queue,
20854 const VkDebugUtilsLabelEXT* pLabelInfo)
20855 {
20856 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT encode");
20857 mImpl->log("start vkQueueInsertDebugUtilsLabelEXT");
20858 auto stream = mImpl->stream();
20859 auto countingStream = mImpl->countingStream();
20860 auto resources = mImpl->resources();
20861 auto pool = mImpl->pool();
20862 stream->setHandleMapping(resources->unwrapMapping());
20863 VkQueue local_queue;
20864 VkDebugUtilsLabelEXT* local_pLabelInfo;
20865 local_queue = queue;
20866 local_pLabelInfo = nullptr;
20867 if (pLabelInfo)
20868 {
20869 local_pLabelInfo = (VkDebugUtilsLabelEXT*)pool->alloc(sizeof(const VkDebugUtilsLabelEXT));
20870 deepcopy_VkDebugUtilsLabelEXT(pool, pLabelInfo, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20871 }
20872 if (local_pLabelInfo)
20873 {
20874 transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20875 }
20876 countingStream->rewind();
20877 {
20878 uint64_t cgen_var_1390;
20879 countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1390, 1);
20880 countingStream->write((uint64_t*)&cgen_var_1390, 1 * 8);
20881 marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20882 }
20883 uint32_t packetSize_vkQueueInsertDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20884 countingStream->rewind();
20885 uint32_t opcode_vkQueueInsertDebugUtilsLabelEXT = OP_vkQueueInsertDebugUtilsLabelEXT;
20886 stream->write(&opcode_vkQueueInsertDebugUtilsLabelEXT, sizeof(uint32_t));
20887 stream->write(&packetSize_vkQueueInsertDebugUtilsLabelEXT, sizeof(uint32_t));
20888 uint64_t cgen_var_1391;
20889 stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1391, 1);
20890 stream->write((uint64_t*)&cgen_var_1391, 1 * 8);
20891 marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20892 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT readParams");
20893 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT returnUnmarshal");
20894 mImpl->log("finish vkQueueInsertDebugUtilsLabelEXT");;
20895 }
20896
vkCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)20897 void VkEncoder::vkCmdBeginDebugUtilsLabelEXT(
20898 VkCommandBuffer commandBuffer,
20899 const VkDebugUtilsLabelEXT* pLabelInfo)
20900 {
20901 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT encode");
20902 mImpl->log("start vkCmdBeginDebugUtilsLabelEXT");
20903 auto stream = mImpl->stream();
20904 auto countingStream = mImpl->countingStream();
20905 auto resources = mImpl->resources();
20906 auto pool = mImpl->pool();
20907 stream->setHandleMapping(resources->unwrapMapping());
20908 VkCommandBuffer local_commandBuffer;
20909 VkDebugUtilsLabelEXT* local_pLabelInfo;
20910 local_commandBuffer = commandBuffer;
20911 local_pLabelInfo = nullptr;
20912 if (pLabelInfo)
20913 {
20914 local_pLabelInfo = (VkDebugUtilsLabelEXT*)pool->alloc(sizeof(const VkDebugUtilsLabelEXT));
20915 deepcopy_VkDebugUtilsLabelEXT(pool, pLabelInfo, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20916 }
20917 if (local_pLabelInfo)
20918 {
20919 transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20920 }
20921 countingStream->rewind();
20922 {
20923 uint64_t cgen_var_1392;
20924 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1392, 1);
20925 countingStream->write((uint64_t*)&cgen_var_1392, 1 * 8);
20926 marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20927 }
20928 uint32_t packetSize_vkCmdBeginDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20929 countingStream->rewind();
20930 uint32_t opcode_vkCmdBeginDebugUtilsLabelEXT = OP_vkCmdBeginDebugUtilsLabelEXT;
20931 stream->write(&opcode_vkCmdBeginDebugUtilsLabelEXT, sizeof(uint32_t));
20932 stream->write(&packetSize_vkCmdBeginDebugUtilsLabelEXT, sizeof(uint32_t));
20933 uint64_t cgen_var_1393;
20934 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1393, 1);
20935 stream->write((uint64_t*)&cgen_var_1393, 1 * 8);
20936 marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20937 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT readParams");
20938 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT returnUnmarshal");
20939 mImpl->log("finish vkCmdBeginDebugUtilsLabelEXT");;
20940 }
20941
vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)20942 void VkEncoder::vkCmdEndDebugUtilsLabelEXT(
20943 VkCommandBuffer commandBuffer)
20944 {
20945 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT encode");
20946 mImpl->log("start vkCmdEndDebugUtilsLabelEXT");
20947 auto stream = mImpl->stream();
20948 auto countingStream = mImpl->countingStream();
20949 auto resources = mImpl->resources();
20950 auto pool = mImpl->pool();
20951 stream->setHandleMapping(resources->unwrapMapping());
20952 VkCommandBuffer local_commandBuffer;
20953 local_commandBuffer = commandBuffer;
20954 countingStream->rewind();
20955 {
20956 uint64_t cgen_var_1394;
20957 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1394, 1);
20958 countingStream->write((uint64_t*)&cgen_var_1394, 1 * 8);
20959 }
20960 uint32_t packetSize_vkCmdEndDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
20961 countingStream->rewind();
20962 uint32_t opcode_vkCmdEndDebugUtilsLabelEXT = OP_vkCmdEndDebugUtilsLabelEXT;
20963 stream->write(&opcode_vkCmdEndDebugUtilsLabelEXT, sizeof(uint32_t));
20964 stream->write(&packetSize_vkCmdEndDebugUtilsLabelEXT, sizeof(uint32_t));
20965 uint64_t cgen_var_1395;
20966 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1395, 1);
20967 stream->write((uint64_t*)&cgen_var_1395, 1 * 8);
20968 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT readParams");
20969 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT returnUnmarshal");
20970 mImpl->log("finish vkCmdEndDebugUtilsLabelEXT");;
20971 }
20972
vkCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)20973 void VkEncoder::vkCmdInsertDebugUtilsLabelEXT(
20974 VkCommandBuffer commandBuffer,
20975 const VkDebugUtilsLabelEXT* pLabelInfo)
20976 {
20977 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT encode");
20978 mImpl->log("start vkCmdInsertDebugUtilsLabelEXT");
20979 auto stream = mImpl->stream();
20980 auto countingStream = mImpl->countingStream();
20981 auto resources = mImpl->resources();
20982 auto pool = mImpl->pool();
20983 stream->setHandleMapping(resources->unwrapMapping());
20984 VkCommandBuffer local_commandBuffer;
20985 VkDebugUtilsLabelEXT* local_pLabelInfo;
20986 local_commandBuffer = commandBuffer;
20987 local_pLabelInfo = nullptr;
20988 if (pLabelInfo)
20989 {
20990 local_pLabelInfo = (VkDebugUtilsLabelEXT*)pool->alloc(sizeof(const VkDebugUtilsLabelEXT));
20991 deepcopy_VkDebugUtilsLabelEXT(pool, pLabelInfo, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20992 }
20993 if (local_pLabelInfo)
20994 {
20995 transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
20996 }
20997 countingStream->rewind();
20998 {
20999 uint64_t cgen_var_1396;
21000 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1396, 1);
21001 countingStream->write((uint64_t*)&cgen_var_1396, 1 * 8);
21002 marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
21003 }
21004 uint32_t packetSize_vkCmdInsertDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21005 countingStream->rewind();
21006 uint32_t opcode_vkCmdInsertDebugUtilsLabelEXT = OP_vkCmdInsertDebugUtilsLabelEXT;
21007 stream->write(&opcode_vkCmdInsertDebugUtilsLabelEXT, sizeof(uint32_t));
21008 stream->write(&packetSize_vkCmdInsertDebugUtilsLabelEXT, sizeof(uint32_t));
21009 uint64_t cgen_var_1397;
21010 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1397, 1);
21011 stream->write((uint64_t*)&cgen_var_1397, 1 * 8);
21012 marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
21013 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT readParams");
21014 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT returnUnmarshal");
21015 mImpl->log("finish vkCmdInsertDebugUtilsLabelEXT");;
21016 }
21017
vkCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger)21018 VkResult VkEncoder::vkCreateDebugUtilsMessengerEXT(
21019 VkInstance instance,
21020 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
21021 const VkAllocationCallbacks* pAllocator,
21022 VkDebugUtilsMessengerEXT* pMessenger)
21023 {
21024 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT encode");
21025 mImpl->log("start vkCreateDebugUtilsMessengerEXT");
21026 auto stream = mImpl->stream();
21027 auto countingStream = mImpl->countingStream();
21028 auto resources = mImpl->resources();
21029 auto pool = mImpl->pool();
21030 stream->setHandleMapping(resources->unwrapMapping());
21031 VkInstance local_instance;
21032 VkDebugUtilsMessengerCreateInfoEXT* local_pCreateInfo;
21033 VkAllocationCallbacks* local_pAllocator;
21034 local_instance = instance;
21035 local_pCreateInfo = nullptr;
21036 if (pCreateInfo)
21037 {
21038 local_pCreateInfo = (VkDebugUtilsMessengerCreateInfoEXT*)pool->alloc(sizeof(const VkDebugUtilsMessengerCreateInfoEXT));
21039 deepcopy_VkDebugUtilsMessengerCreateInfoEXT(pool, pCreateInfo, (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo));
21040 }
21041 local_pAllocator = nullptr;
21042 if (pAllocator)
21043 {
21044 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
21045 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
21046 }
21047 local_pAllocator = nullptr;
21048 if (local_pCreateInfo)
21049 {
21050 transform_tohost_VkDebugUtilsMessengerCreateInfoEXT(mImpl->resources(), (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo));
21051 }
21052 if (local_pAllocator)
21053 {
21054 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
21055 }
21056 countingStream->rewind();
21057 {
21058 uint64_t cgen_var_1398;
21059 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1398, 1);
21060 countingStream->write((uint64_t*)&cgen_var_1398, 1 * 8);
21061 marshal_VkDebugUtilsMessengerCreateInfoEXT(countingStream, (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo));
21062 // WARNING PTR CHECK
21063 uint64_t cgen_var_1399 = (uint64_t)(uintptr_t)local_pAllocator;
21064 countingStream->putBe64(cgen_var_1399);
21065 if (local_pAllocator)
21066 {
21067 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
21068 }
21069 uint64_t cgen_var_1400;
21070 countingStream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(pMessenger, &cgen_var_1400, 1);
21071 countingStream->write((uint64_t*)&cgen_var_1400, 8);
21072 }
21073 uint32_t packetSize_vkCreateDebugUtilsMessengerEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21074 countingStream->rewind();
21075 uint32_t opcode_vkCreateDebugUtilsMessengerEXT = OP_vkCreateDebugUtilsMessengerEXT;
21076 stream->write(&opcode_vkCreateDebugUtilsMessengerEXT, sizeof(uint32_t));
21077 stream->write(&packetSize_vkCreateDebugUtilsMessengerEXT, sizeof(uint32_t));
21078 uint64_t cgen_var_1401;
21079 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1401, 1);
21080 stream->write((uint64_t*)&cgen_var_1401, 1 * 8);
21081 marshal_VkDebugUtilsMessengerCreateInfoEXT(stream, (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo));
21082 // WARNING PTR CHECK
21083 uint64_t cgen_var_1402 = (uint64_t)(uintptr_t)local_pAllocator;
21084 stream->putBe64(cgen_var_1402);
21085 if (local_pAllocator)
21086 {
21087 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
21088 }
21089 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
21090 uint64_t cgen_var_1403;
21091 stream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(pMessenger, &cgen_var_1403, 1);
21092 stream->write((uint64_t*)&cgen_var_1403, 8);
21093 stream->setHandleMapping(resources->unwrapMapping());
21094 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT readParams");
21095 stream->setHandleMapping(resources->createMapping());
21096 uint64_t cgen_var_1404;
21097 stream->read((uint64_t*)&cgen_var_1404, 8);
21098 stream->handleMapping()->mapHandles_u64_VkDebugUtilsMessengerEXT(&cgen_var_1404, (VkDebugUtilsMessengerEXT*)pMessenger, 1);
21099 stream->unsetHandleMapping();
21100 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT returnUnmarshal");
21101 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
21102 stream->read(&vkCreateDebugUtilsMessengerEXT_VkResult_return, sizeof(VkResult));
21103 countingStream->clearPool();
21104 stream->clearPool();
21105 pool->freeAll();
21106 mImpl->log("finish vkCreateDebugUtilsMessengerEXT");;
21107 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
21108 }
21109
vkDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator)21110 void VkEncoder::vkDestroyDebugUtilsMessengerEXT(
21111 VkInstance instance,
21112 VkDebugUtilsMessengerEXT messenger,
21113 const VkAllocationCallbacks* pAllocator)
21114 {
21115 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT encode");
21116 mImpl->log("start vkDestroyDebugUtilsMessengerEXT");
21117 auto stream = mImpl->stream();
21118 auto countingStream = mImpl->countingStream();
21119 auto resources = mImpl->resources();
21120 auto pool = mImpl->pool();
21121 stream->setHandleMapping(resources->unwrapMapping());
21122 VkInstance local_instance;
21123 VkDebugUtilsMessengerEXT local_messenger;
21124 VkAllocationCallbacks* local_pAllocator;
21125 local_instance = instance;
21126 local_messenger = messenger;
21127 local_pAllocator = nullptr;
21128 if (pAllocator)
21129 {
21130 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
21131 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
21132 }
21133 local_pAllocator = nullptr;
21134 if (local_pAllocator)
21135 {
21136 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
21137 }
21138 countingStream->rewind();
21139 {
21140 uint64_t cgen_var_1405;
21141 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1405, 1);
21142 countingStream->write((uint64_t*)&cgen_var_1405, 1 * 8);
21143 uint64_t cgen_var_1406;
21144 countingStream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(&local_messenger, &cgen_var_1406, 1);
21145 countingStream->write((uint64_t*)&cgen_var_1406, 1 * 8);
21146 // WARNING PTR CHECK
21147 uint64_t cgen_var_1407 = (uint64_t)(uintptr_t)local_pAllocator;
21148 countingStream->putBe64(cgen_var_1407);
21149 if (local_pAllocator)
21150 {
21151 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
21152 }
21153 }
21154 uint32_t packetSize_vkDestroyDebugUtilsMessengerEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21155 countingStream->rewind();
21156 uint32_t opcode_vkDestroyDebugUtilsMessengerEXT = OP_vkDestroyDebugUtilsMessengerEXT;
21157 stream->write(&opcode_vkDestroyDebugUtilsMessengerEXT, sizeof(uint32_t));
21158 stream->write(&packetSize_vkDestroyDebugUtilsMessengerEXT, sizeof(uint32_t));
21159 uint64_t cgen_var_1408;
21160 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1408, 1);
21161 stream->write((uint64_t*)&cgen_var_1408, 1 * 8);
21162 uint64_t cgen_var_1409;
21163 stream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(&local_messenger, &cgen_var_1409, 1);
21164 stream->write((uint64_t*)&cgen_var_1409, 1 * 8);
21165 // WARNING PTR CHECK
21166 uint64_t cgen_var_1410 = (uint64_t)(uintptr_t)local_pAllocator;
21167 stream->putBe64(cgen_var_1410);
21168 if (local_pAllocator)
21169 {
21170 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
21171 }
21172 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT readParams");
21173 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT returnUnmarshal");
21174 resources->destroyMapping()->mapHandles_VkDebugUtilsMessengerEXT((VkDebugUtilsMessengerEXT*)&messenger);
21175 mImpl->log("finish vkDestroyDebugUtilsMessengerEXT");;
21176 }
21177
vkSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData)21178 void VkEncoder::vkSubmitDebugUtilsMessageEXT(
21179 VkInstance instance,
21180 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
21181 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
21182 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
21183 {
21184 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT encode");
21185 mImpl->log("start vkSubmitDebugUtilsMessageEXT");
21186 auto stream = mImpl->stream();
21187 auto countingStream = mImpl->countingStream();
21188 auto resources = mImpl->resources();
21189 auto pool = mImpl->pool();
21190 stream->setHandleMapping(resources->unwrapMapping());
21191 VkInstance local_instance;
21192 VkDebugUtilsMessageSeverityFlagBitsEXT local_messageSeverity;
21193 VkDebugUtilsMessageTypeFlagsEXT local_messageTypes;
21194 VkDebugUtilsMessengerCallbackDataEXT* local_pCallbackData;
21195 local_instance = instance;
21196 local_messageSeverity = messageSeverity;
21197 local_messageTypes = messageTypes;
21198 local_pCallbackData = nullptr;
21199 if (pCallbackData)
21200 {
21201 local_pCallbackData = (VkDebugUtilsMessengerCallbackDataEXT*)pool->alloc(sizeof(const VkDebugUtilsMessengerCallbackDataEXT));
21202 deepcopy_VkDebugUtilsMessengerCallbackDataEXT(pool, pCallbackData, (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData));
21203 }
21204 if (local_pCallbackData)
21205 {
21206 transform_tohost_VkDebugUtilsMessengerCallbackDataEXT(mImpl->resources(), (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData));
21207 }
21208 countingStream->rewind();
21209 {
21210 uint64_t cgen_var_1411;
21211 countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1411, 1);
21212 countingStream->write((uint64_t*)&cgen_var_1411, 1 * 8);
21213 countingStream->write((VkDebugUtilsMessageSeverityFlagBitsEXT*)&local_messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagBitsEXT));
21214 countingStream->write((VkDebugUtilsMessageTypeFlagsEXT*)&local_messageTypes, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
21215 marshal_VkDebugUtilsMessengerCallbackDataEXT(countingStream, (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData));
21216 }
21217 uint32_t packetSize_vkSubmitDebugUtilsMessageEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21218 countingStream->rewind();
21219 uint32_t opcode_vkSubmitDebugUtilsMessageEXT = OP_vkSubmitDebugUtilsMessageEXT;
21220 stream->write(&opcode_vkSubmitDebugUtilsMessageEXT, sizeof(uint32_t));
21221 stream->write(&packetSize_vkSubmitDebugUtilsMessageEXT, sizeof(uint32_t));
21222 uint64_t cgen_var_1412;
21223 stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1412, 1);
21224 stream->write((uint64_t*)&cgen_var_1412, 1 * 8);
21225 stream->write((VkDebugUtilsMessageSeverityFlagBitsEXT*)&local_messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagBitsEXT));
21226 stream->write((VkDebugUtilsMessageTypeFlagsEXT*)&local_messageTypes, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
21227 marshal_VkDebugUtilsMessengerCallbackDataEXT(stream, (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData));
21228 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT readParams");
21229 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT returnUnmarshal");
21230 mImpl->log("finish vkSubmitDebugUtilsMessageEXT");;
21231 }
21232
21233 #endif
21234 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
vkGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties)21235 VkResult VkEncoder::vkGetAndroidHardwareBufferPropertiesANDROID(
21236 VkDevice device,
21237 const AHardwareBuffer* buffer,
21238 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
21239 {
21240 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID encode");
21241 mImpl->log("start vkGetAndroidHardwareBufferPropertiesANDROID");
21242 auto stream = mImpl->stream();
21243 auto countingStream = mImpl->countingStream();
21244 auto resources = mImpl->resources();
21245 auto pool = mImpl->pool();
21246 stream->setHandleMapping(resources->unwrapMapping());
21247 VkDevice local_device;
21248 AHardwareBuffer* local_buffer;
21249 local_device = device;
21250 local_buffer = nullptr;
21251 if (buffer)
21252 {
21253 local_buffer = (AHardwareBuffer*)pool->dupArray(buffer, sizeof(const AHardwareBuffer));
21254 }
21255 countingStream->rewind();
21256 {
21257 uint64_t cgen_var_1413;
21258 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1413, 1);
21259 countingStream->write((uint64_t*)&cgen_var_1413, 1 * 8);
21260 countingStream->write((AHardwareBuffer*)local_buffer, sizeof(AHardwareBuffer));
21261 marshal_VkAndroidHardwareBufferPropertiesANDROID(countingStream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
21262 }
21263 uint32_t packetSize_vkGetAndroidHardwareBufferPropertiesANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21264 countingStream->rewind();
21265 uint32_t opcode_vkGetAndroidHardwareBufferPropertiesANDROID = OP_vkGetAndroidHardwareBufferPropertiesANDROID;
21266 stream->write(&opcode_vkGetAndroidHardwareBufferPropertiesANDROID, sizeof(uint32_t));
21267 stream->write(&packetSize_vkGetAndroidHardwareBufferPropertiesANDROID, sizeof(uint32_t));
21268 uint64_t cgen_var_1414;
21269 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1414, 1);
21270 stream->write((uint64_t*)&cgen_var_1414, 1 * 8);
21271 stream->write((AHardwareBuffer*)local_buffer, sizeof(AHardwareBuffer));
21272 marshal_VkAndroidHardwareBufferPropertiesANDROID(stream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
21273 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID readParams");
21274 unmarshal_VkAndroidHardwareBufferPropertiesANDROID(stream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
21275 if (pProperties)
21276 {
21277 transform_fromhost_VkAndroidHardwareBufferPropertiesANDROID(mImpl->resources(), (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
21278 }
21279 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID returnUnmarshal");
21280 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
21281 stream->read(&vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return, sizeof(VkResult));
21282 countingStream->clearPool();
21283 stream->clearPool();
21284 pool->freeAll();
21285 mImpl->log("finish vkGetAndroidHardwareBufferPropertiesANDROID");;
21286 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
21287 }
21288
vkGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,AHardwareBuffer ** pBuffer)21289 VkResult VkEncoder::vkGetMemoryAndroidHardwareBufferANDROID(
21290 VkDevice device,
21291 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
21292 AHardwareBuffer** pBuffer)
21293 {
21294 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID encode");
21295 mImpl->log("start vkGetMemoryAndroidHardwareBufferANDROID");
21296 auto stream = mImpl->stream();
21297 auto countingStream = mImpl->countingStream();
21298 auto resources = mImpl->resources();
21299 auto pool = mImpl->pool();
21300 stream->setHandleMapping(resources->unwrapMapping());
21301 VkDevice local_device;
21302 VkMemoryGetAndroidHardwareBufferInfoANDROID* local_pInfo;
21303 local_device = device;
21304 local_pInfo = nullptr;
21305 if (pInfo)
21306 {
21307 local_pInfo = (VkMemoryGetAndroidHardwareBufferInfoANDROID*)pool->alloc(sizeof(const VkMemoryGetAndroidHardwareBufferInfoANDROID));
21308 deepcopy_VkMemoryGetAndroidHardwareBufferInfoANDROID(pool, pInfo, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo));
21309 }
21310 if (local_pInfo)
21311 {
21312 transform_tohost_VkMemoryGetAndroidHardwareBufferInfoANDROID(mImpl->resources(), (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo));
21313 }
21314 countingStream->rewind();
21315 {
21316 uint64_t cgen_var_1415;
21317 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1415, 1);
21318 countingStream->write((uint64_t*)&cgen_var_1415, 1 * 8);
21319 marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(countingStream, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo));
21320 countingStream->write((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*));
21321 }
21322 uint32_t packetSize_vkGetMemoryAndroidHardwareBufferANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21323 countingStream->rewind();
21324 uint32_t opcode_vkGetMemoryAndroidHardwareBufferANDROID = OP_vkGetMemoryAndroidHardwareBufferANDROID;
21325 stream->write(&opcode_vkGetMemoryAndroidHardwareBufferANDROID, sizeof(uint32_t));
21326 stream->write(&packetSize_vkGetMemoryAndroidHardwareBufferANDROID, sizeof(uint32_t));
21327 uint64_t cgen_var_1416;
21328 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1416, 1);
21329 stream->write((uint64_t*)&cgen_var_1416, 1 * 8);
21330 marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(stream, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo));
21331 stream->write((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*));
21332 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID readParams");
21333 stream->read((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*));
21334 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID returnUnmarshal");
21335 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
21336 stream->read(&vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return, sizeof(VkResult));
21337 countingStream->clearPool();
21338 stream->clearPool();
21339 pool->freeAll();
21340 mImpl->log("finish vkGetMemoryAndroidHardwareBufferANDROID");;
21341 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
21342 }
21343
21344 #endif
21345 #ifdef VK_EXT_sampler_filter_minmax
21346 #endif
21347 #ifdef VK_AMD_gpu_shader_int16
21348 #endif
21349 #ifdef VK_AMD_mixed_attachment_samples
21350 #endif
21351 #ifdef VK_AMD_shader_fragment_mask
21352 #endif
21353 #ifdef VK_EXT_shader_stencil_export
21354 #endif
21355 #ifdef VK_EXT_sample_locations
vkCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo)21356 void VkEncoder::vkCmdSetSampleLocationsEXT(
21357 VkCommandBuffer commandBuffer,
21358 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
21359 {
21360 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT encode");
21361 mImpl->log("start vkCmdSetSampleLocationsEXT");
21362 auto stream = mImpl->stream();
21363 auto countingStream = mImpl->countingStream();
21364 auto resources = mImpl->resources();
21365 auto pool = mImpl->pool();
21366 stream->setHandleMapping(resources->unwrapMapping());
21367 VkCommandBuffer local_commandBuffer;
21368 VkSampleLocationsInfoEXT* local_pSampleLocationsInfo;
21369 local_commandBuffer = commandBuffer;
21370 local_pSampleLocationsInfo = nullptr;
21371 if (pSampleLocationsInfo)
21372 {
21373 local_pSampleLocationsInfo = (VkSampleLocationsInfoEXT*)pool->alloc(sizeof(const VkSampleLocationsInfoEXT));
21374 deepcopy_VkSampleLocationsInfoEXT(pool, pSampleLocationsInfo, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo));
21375 }
21376 if (local_pSampleLocationsInfo)
21377 {
21378 transform_tohost_VkSampleLocationsInfoEXT(mImpl->resources(), (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo));
21379 }
21380 countingStream->rewind();
21381 {
21382 uint64_t cgen_var_1417;
21383 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1417, 1);
21384 countingStream->write((uint64_t*)&cgen_var_1417, 1 * 8);
21385 marshal_VkSampleLocationsInfoEXT(countingStream, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo));
21386 }
21387 uint32_t packetSize_vkCmdSetSampleLocationsEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21388 countingStream->rewind();
21389 uint32_t opcode_vkCmdSetSampleLocationsEXT = OP_vkCmdSetSampleLocationsEXT;
21390 stream->write(&opcode_vkCmdSetSampleLocationsEXT, sizeof(uint32_t));
21391 stream->write(&packetSize_vkCmdSetSampleLocationsEXT, sizeof(uint32_t));
21392 uint64_t cgen_var_1418;
21393 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1418, 1);
21394 stream->write((uint64_t*)&cgen_var_1418, 1 * 8);
21395 marshal_VkSampleLocationsInfoEXT(stream, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo));
21396 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT readParams");
21397 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT returnUnmarshal");
21398 mImpl->log("finish vkCmdSetSampleLocationsEXT");;
21399 }
21400
vkGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties)21401 void VkEncoder::vkGetPhysicalDeviceMultisamplePropertiesEXT(
21402 VkPhysicalDevice physicalDevice,
21403 VkSampleCountFlagBits samples,
21404 VkMultisamplePropertiesEXT* pMultisampleProperties)
21405 {
21406 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT encode");
21407 mImpl->log("start vkGetPhysicalDeviceMultisamplePropertiesEXT");
21408 auto stream = mImpl->stream();
21409 auto countingStream = mImpl->countingStream();
21410 auto resources = mImpl->resources();
21411 auto pool = mImpl->pool();
21412 stream->setHandleMapping(resources->unwrapMapping());
21413 VkPhysicalDevice local_physicalDevice;
21414 VkSampleCountFlagBits local_samples;
21415 local_physicalDevice = physicalDevice;
21416 local_samples = samples;
21417 countingStream->rewind();
21418 {
21419 uint64_t cgen_var_1419;
21420 countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1419, 1);
21421 countingStream->write((uint64_t*)&cgen_var_1419, 1 * 8);
21422 countingStream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits));
21423 marshal_VkMultisamplePropertiesEXT(countingStream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
21424 }
21425 uint32_t packetSize_vkGetPhysicalDeviceMultisamplePropertiesEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21426 countingStream->rewind();
21427 uint32_t opcode_vkGetPhysicalDeviceMultisamplePropertiesEXT = OP_vkGetPhysicalDeviceMultisamplePropertiesEXT;
21428 stream->write(&opcode_vkGetPhysicalDeviceMultisamplePropertiesEXT, sizeof(uint32_t));
21429 stream->write(&packetSize_vkGetPhysicalDeviceMultisamplePropertiesEXT, sizeof(uint32_t));
21430 uint64_t cgen_var_1420;
21431 stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1420, 1);
21432 stream->write((uint64_t*)&cgen_var_1420, 1 * 8);
21433 stream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits));
21434 marshal_VkMultisamplePropertiesEXT(stream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
21435 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT readParams");
21436 unmarshal_VkMultisamplePropertiesEXT(stream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
21437 if (pMultisampleProperties)
21438 {
21439 transform_fromhost_VkMultisamplePropertiesEXT(mImpl->resources(), (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
21440 }
21441 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT returnUnmarshal");
21442 mImpl->log("finish vkGetPhysicalDeviceMultisamplePropertiesEXT");;
21443 }
21444
21445 #endif
21446 #ifdef VK_EXT_blend_operation_advanced
21447 #endif
21448 #ifdef VK_NV_fragment_coverage_to_color
21449 #endif
21450 #ifdef VK_NV_framebuffer_mixed_samples
21451 #endif
21452 #ifdef VK_NV_fill_rectangle
21453 #endif
21454 #ifdef VK_EXT_post_depth_coverage
21455 #endif
21456 #ifdef VK_EXT_validation_cache
vkCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache)21457 VkResult VkEncoder::vkCreateValidationCacheEXT(
21458 VkDevice device,
21459 const VkValidationCacheCreateInfoEXT* pCreateInfo,
21460 const VkAllocationCallbacks* pAllocator,
21461 VkValidationCacheEXT* pValidationCache)
21462 {
21463 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT encode");
21464 mImpl->log("start vkCreateValidationCacheEXT");
21465 auto stream = mImpl->stream();
21466 auto countingStream = mImpl->countingStream();
21467 auto resources = mImpl->resources();
21468 auto pool = mImpl->pool();
21469 stream->setHandleMapping(resources->unwrapMapping());
21470 VkDevice local_device;
21471 VkValidationCacheCreateInfoEXT* local_pCreateInfo;
21472 VkAllocationCallbacks* local_pAllocator;
21473 local_device = device;
21474 local_pCreateInfo = nullptr;
21475 if (pCreateInfo)
21476 {
21477 local_pCreateInfo = (VkValidationCacheCreateInfoEXT*)pool->alloc(sizeof(const VkValidationCacheCreateInfoEXT));
21478 deepcopy_VkValidationCacheCreateInfoEXT(pool, pCreateInfo, (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo));
21479 }
21480 local_pAllocator = nullptr;
21481 if (pAllocator)
21482 {
21483 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
21484 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
21485 }
21486 local_pAllocator = nullptr;
21487 if (local_pCreateInfo)
21488 {
21489 transform_tohost_VkValidationCacheCreateInfoEXT(mImpl->resources(), (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo));
21490 }
21491 if (local_pAllocator)
21492 {
21493 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
21494 }
21495 countingStream->rewind();
21496 {
21497 uint64_t cgen_var_1421;
21498 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1421, 1);
21499 countingStream->write((uint64_t*)&cgen_var_1421, 1 * 8);
21500 marshal_VkValidationCacheCreateInfoEXT(countingStream, (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo));
21501 // WARNING PTR CHECK
21502 uint64_t cgen_var_1422 = (uint64_t)(uintptr_t)local_pAllocator;
21503 countingStream->putBe64(cgen_var_1422);
21504 if (local_pAllocator)
21505 {
21506 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
21507 }
21508 uint64_t cgen_var_1423;
21509 countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(pValidationCache, &cgen_var_1423, 1);
21510 countingStream->write((uint64_t*)&cgen_var_1423, 8);
21511 }
21512 uint32_t packetSize_vkCreateValidationCacheEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21513 countingStream->rewind();
21514 uint32_t opcode_vkCreateValidationCacheEXT = OP_vkCreateValidationCacheEXT;
21515 stream->write(&opcode_vkCreateValidationCacheEXT, sizeof(uint32_t));
21516 stream->write(&packetSize_vkCreateValidationCacheEXT, sizeof(uint32_t));
21517 uint64_t cgen_var_1424;
21518 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1424, 1);
21519 stream->write((uint64_t*)&cgen_var_1424, 1 * 8);
21520 marshal_VkValidationCacheCreateInfoEXT(stream, (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo));
21521 // WARNING PTR CHECK
21522 uint64_t cgen_var_1425 = (uint64_t)(uintptr_t)local_pAllocator;
21523 stream->putBe64(cgen_var_1425);
21524 if (local_pAllocator)
21525 {
21526 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
21527 }
21528 stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
21529 uint64_t cgen_var_1426;
21530 stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(pValidationCache, &cgen_var_1426, 1);
21531 stream->write((uint64_t*)&cgen_var_1426, 8);
21532 stream->setHandleMapping(resources->unwrapMapping());
21533 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT readParams");
21534 stream->setHandleMapping(resources->createMapping());
21535 uint64_t cgen_var_1427;
21536 stream->read((uint64_t*)&cgen_var_1427, 8);
21537 stream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_1427, (VkValidationCacheEXT*)pValidationCache, 1);
21538 stream->unsetHandleMapping();
21539 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT returnUnmarshal");
21540 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
21541 stream->read(&vkCreateValidationCacheEXT_VkResult_return, sizeof(VkResult));
21542 countingStream->clearPool();
21543 stream->clearPool();
21544 pool->freeAll();
21545 mImpl->log("finish vkCreateValidationCacheEXT");;
21546 return vkCreateValidationCacheEXT_VkResult_return;
21547 }
21548
vkDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator)21549 void VkEncoder::vkDestroyValidationCacheEXT(
21550 VkDevice device,
21551 VkValidationCacheEXT validationCache,
21552 const VkAllocationCallbacks* pAllocator)
21553 {
21554 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT encode");
21555 mImpl->log("start vkDestroyValidationCacheEXT");
21556 auto stream = mImpl->stream();
21557 auto countingStream = mImpl->countingStream();
21558 auto resources = mImpl->resources();
21559 auto pool = mImpl->pool();
21560 stream->setHandleMapping(resources->unwrapMapping());
21561 VkDevice local_device;
21562 VkValidationCacheEXT local_validationCache;
21563 VkAllocationCallbacks* local_pAllocator;
21564 local_device = device;
21565 local_validationCache = validationCache;
21566 local_pAllocator = nullptr;
21567 if (pAllocator)
21568 {
21569 local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
21570 deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
21571 }
21572 local_pAllocator = nullptr;
21573 if (local_pAllocator)
21574 {
21575 transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
21576 }
21577 countingStream->rewind();
21578 {
21579 uint64_t cgen_var_1428;
21580 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1428, 1);
21581 countingStream->write((uint64_t*)&cgen_var_1428, 1 * 8);
21582 uint64_t cgen_var_1429;
21583 countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1429, 1);
21584 countingStream->write((uint64_t*)&cgen_var_1429, 1 * 8);
21585 // WARNING PTR CHECK
21586 uint64_t cgen_var_1430 = (uint64_t)(uintptr_t)local_pAllocator;
21587 countingStream->putBe64(cgen_var_1430);
21588 if (local_pAllocator)
21589 {
21590 marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
21591 }
21592 }
21593 uint32_t packetSize_vkDestroyValidationCacheEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21594 countingStream->rewind();
21595 uint32_t opcode_vkDestroyValidationCacheEXT = OP_vkDestroyValidationCacheEXT;
21596 stream->write(&opcode_vkDestroyValidationCacheEXT, sizeof(uint32_t));
21597 stream->write(&packetSize_vkDestroyValidationCacheEXT, sizeof(uint32_t));
21598 uint64_t cgen_var_1431;
21599 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1431, 1);
21600 stream->write((uint64_t*)&cgen_var_1431, 1 * 8);
21601 uint64_t cgen_var_1432;
21602 stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1432, 1);
21603 stream->write((uint64_t*)&cgen_var_1432, 1 * 8);
21604 // WARNING PTR CHECK
21605 uint64_t cgen_var_1433 = (uint64_t)(uintptr_t)local_pAllocator;
21606 stream->putBe64(cgen_var_1433);
21607 if (local_pAllocator)
21608 {
21609 marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
21610 }
21611 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT readParams");
21612 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT returnUnmarshal");
21613 resources->destroyMapping()->mapHandles_VkValidationCacheEXT((VkValidationCacheEXT*)&validationCache);
21614 mImpl->log("finish vkDestroyValidationCacheEXT");;
21615 }
21616
vkMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches)21617 VkResult VkEncoder::vkMergeValidationCachesEXT(
21618 VkDevice device,
21619 VkValidationCacheEXT dstCache,
21620 uint32_t srcCacheCount,
21621 const VkValidationCacheEXT* pSrcCaches)
21622 {
21623 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT encode");
21624 mImpl->log("start vkMergeValidationCachesEXT");
21625 auto stream = mImpl->stream();
21626 auto countingStream = mImpl->countingStream();
21627 auto resources = mImpl->resources();
21628 auto pool = mImpl->pool();
21629 stream->setHandleMapping(resources->unwrapMapping());
21630 VkDevice local_device;
21631 VkValidationCacheEXT local_dstCache;
21632 uint32_t local_srcCacheCount;
21633 VkValidationCacheEXT* local_pSrcCaches;
21634 local_device = device;
21635 local_dstCache = dstCache;
21636 local_srcCacheCount = srcCacheCount;
21637 local_pSrcCaches = nullptr;
21638 if (pSrcCaches)
21639 {
21640 local_pSrcCaches = (VkValidationCacheEXT*)pool->dupArray(pSrcCaches, ((srcCacheCount)) * sizeof(const VkValidationCacheEXT));
21641 }
21642 countingStream->rewind();
21643 {
21644 uint64_t cgen_var_1434;
21645 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1434, 1);
21646 countingStream->write((uint64_t*)&cgen_var_1434, 1 * 8);
21647 uint64_t cgen_var_1435;
21648 countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_dstCache, &cgen_var_1435, 1);
21649 countingStream->write((uint64_t*)&cgen_var_1435, 1 * 8);
21650 countingStream->write((uint32_t*)&local_srcCacheCount, sizeof(uint32_t));
21651 if (((srcCacheCount)))
21652 {
21653 uint64_t* cgen_var_1436;
21654 countingStream->alloc((void**)&cgen_var_1436, ((srcCacheCount)) * 8);
21655 countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(local_pSrcCaches, cgen_var_1436, ((srcCacheCount)));
21656 countingStream->write((uint64_t*)cgen_var_1436, ((srcCacheCount)) * 8);
21657 }
21658 }
21659 uint32_t packetSize_vkMergeValidationCachesEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21660 countingStream->rewind();
21661 uint32_t opcode_vkMergeValidationCachesEXT = OP_vkMergeValidationCachesEXT;
21662 stream->write(&opcode_vkMergeValidationCachesEXT, sizeof(uint32_t));
21663 stream->write(&packetSize_vkMergeValidationCachesEXT, sizeof(uint32_t));
21664 uint64_t cgen_var_1437;
21665 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1437, 1);
21666 stream->write((uint64_t*)&cgen_var_1437, 1 * 8);
21667 uint64_t cgen_var_1438;
21668 stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_dstCache, &cgen_var_1438, 1);
21669 stream->write((uint64_t*)&cgen_var_1438, 1 * 8);
21670 stream->write((uint32_t*)&local_srcCacheCount, sizeof(uint32_t));
21671 if (((srcCacheCount)))
21672 {
21673 uint64_t* cgen_var_1439;
21674 stream->alloc((void**)&cgen_var_1439, ((srcCacheCount)) * 8);
21675 stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(local_pSrcCaches, cgen_var_1439, ((srcCacheCount)));
21676 stream->write((uint64_t*)cgen_var_1439, ((srcCacheCount)) * 8);
21677 }
21678 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT readParams");
21679 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT returnUnmarshal");
21680 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
21681 stream->read(&vkMergeValidationCachesEXT_VkResult_return, sizeof(VkResult));
21682 countingStream->clearPool();
21683 stream->clearPool();
21684 pool->freeAll();
21685 mImpl->log("finish vkMergeValidationCachesEXT");;
21686 return vkMergeValidationCachesEXT_VkResult_return;
21687 }
21688
vkGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData)21689 VkResult VkEncoder::vkGetValidationCacheDataEXT(
21690 VkDevice device,
21691 VkValidationCacheEXT validationCache,
21692 size_t* pDataSize,
21693 void* pData)
21694 {
21695 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT encode");
21696 mImpl->log("start vkGetValidationCacheDataEXT");
21697 auto stream = mImpl->stream();
21698 auto countingStream = mImpl->countingStream();
21699 auto resources = mImpl->resources();
21700 auto pool = mImpl->pool();
21701 stream->setHandleMapping(resources->unwrapMapping());
21702 VkDevice local_device;
21703 VkValidationCacheEXT local_validationCache;
21704 local_device = device;
21705 local_validationCache = validationCache;
21706 countingStream->rewind();
21707 {
21708 uint64_t cgen_var_1440;
21709 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1440, 1);
21710 countingStream->write((uint64_t*)&cgen_var_1440, 1 * 8);
21711 uint64_t cgen_var_1441;
21712 countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1441, 1);
21713 countingStream->write((uint64_t*)&cgen_var_1441, 1 * 8);
21714 // WARNING PTR CHECK
21715 uint64_t cgen_var_1442 = (uint64_t)(uintptr_t)pDataSize;
21716 countingStream->putBe64(cgen_var_1442);
21717 if (pDataSize)
21718 {
21719 uint64_t cgen_var_1443 = (uint64_t)(*pDataSize);
21720 countingStream->putBe64(cgen_var_1443);
21721 }
21722 // WARNING PTR CHECK
21723 uint64_t cgen_var_1444 = (uint64_t)(uintptr_t)pData;
21724 countingStream->putBe64(cgen_var_1444);
21725 if (pData)
21726 {
21727 countingStream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
21728 }
21729 }
21730 uint32_t packetSize_vkGetValidationCacheDataEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21731 countingStream->rewind();
21732 uint32_t opcode_vkGetValidationCacheDataEXT = OP_vkGetValidationCacheDataEXT;
21733 stream->write(&opcode_vkGetValidationCacheDataEXT, sizeof(uint32_t));
21734 stream->write(&packetSize_vkGetValidationCacheDataEXT, sizeof(uint32_t));
21735 uint64_t cgen_var_1445;
21736 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1445, 1);
21737 stream->write((uint64_t*)&cgen_var_1445, 1 * 8);
21738 uint64_t cgen_var_1446;
21739 stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1446, 1);
21740 stream->write((uint64_t*)&cgen_var_1446, 1 * 8);
21741 // WARNING PTR CHECK
21742 uint64_t cgen_var_1447 = (uint64_t)(uintptr_t)pDataSize;
21743 stream->putBe64(cgen_var_1447);
21744 if (pDataSize)
21745 {
21746 uint64_t cgen_var_1448 = (uint64_t)(*pDataSize);
21747 stream->putBe64(cgen_var_1448);
21748 }
21749 // WARNING PTR CHECK
21750 uint64_t cgen_var_1449 = (uint64_t)(uintptr_t)pData;
21751 stream->putBe64(cgen_var_1449);
21752 if (pData)
21753 {
21754 stream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
21755 }
21756 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT readParams");
21757 // WARNING PTR CHECK
21758 size_t* check_pDataSize;
21759 check_pDataSize = (size_t*)(uintptr_t)stream->getBe64();
21760 if (pDataSize)
21761 {
21762 if (!(check_pDataSize))
21763 {
21764 fprintf(stderr, "fatal: pDataSize inconsistent between guest and host\n");
21765 }
21766 (*pDataSize) = (size_t)stream->getBe64();
21767 }
21768 // WARNING PTR CHECK
21769 void* check_pData;
21770 check_pData = (void*)(uintptr_t)stream->getBe64();
21771 if (pData)
21772 {
21773 if (!(check_pData))
21774 {
21775 fprintf(stderr, "fatal: pData inconsistent between guest and host\n");
21776 }
21777 stream->read((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
21778 }
21779 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT returnUnmarshal");
21780 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
21781 stream->read(&vkGetValidationCacheDataEXT_VkResult_return, sizeof(VkResult));
21782 countingStream->clearPool();
21783 stream->clearPool();
21784 pool->freeAll();
21785 mImpl->log("finish vkGetValidationCacheDataEXT");;
21786 return vkGetValidationCacheDataEXT_VkResult_return;
21787 }
21788
21789 #endif
21790 #ifdef VK_EXT_descriptor_indexing
21791 #endif
21792 #ifdef VK_EXT_shader_viewport_index_layer
21793 #endif
21794 #ifdef VK_EXT_global_priority
21795 #endif
21796 #ifdef VK_EXT_external_memory_host
vkGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties)21797 VkResult VkEncoder::vkGetMemoryHostPointerPropertiesEXT(
21798 VkDevice device,
21799 VkExternalMemoryHandleTypeFlagBits handleType,
21800 const void* pHostPointer,
21801 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
21802 {
21803 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT encode");
21804 mImpl->log("start vkGetMemoryHostPointerPropertiesEXT");
21805 auto stream = mImpl->stream();
21806 auto countingStream = mImpl->countingStream();
21807 auto resources = mImpl->resources();
21808 auto pool = mImpl->pool();
21809 stream->setHandleMapping(resources->unwrapMapping());
21810 VkDevice local_device;
21811 VkExternalMemoryHandleTypeFlagBits local_handleType;
21812 void* local_pHostPointer;
21813 local_device = device;
21814 local_handleType = handleType;
21815 local_pHostPointer = nullptr;
21816 if (pHostPointer)
21817 {
21818 local_pHostPointer = (void*)pool->dupArray(pHostPointer, sizeof(const uint8_t));
21819 }
21820 countingStream->rewind();
21821 {
21822 uint64_t cgen_var_1453;
21823 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1453, 1);
21824 countingStream->write((uint64_t*)&cgen_var_1453, 1 * 8);
21825 countingStream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
21826 // WARNING PTR CHECK
21827 uint64_t cgen_var_1454 = (uint64_t)(uintptr_t)local_pHostPointer;
21828 countingStream->putBe64(cgen_var_1454);
21829 if (local_pHostPointer)
21830 {
21831 countingStream->write((void*)local_pHostPointer, sizeof(uint8_t));
21832 }
21833 marshal_VkMemoryHostPointerPropertiesEXT(countingStream, (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties));
21834 }
21835 uint32_t packetSize_vkGetMemoryHostPointerPropertiesEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21836 countingStream->rewind();
21837 uint32_t opcode_vkGetMemoryHostPointerPropertiesEXT = OP_vkGetMemoryHostPointerPropertiesEXT;
21838 stream->write(&opcode_vkGetMemoryHostPointerPropertiesEXT, sizeof(uint32_t));
21839 stream->write(&packetSize_vkGetMemoryHostPointerPropertiesEXT, sizeof(uint32_t));
21840 uint64_t cgen_var_1455;
21841 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1455, 1);
21842 stream->write((uint64_t*)&cgen_var_1455, 1 * 8);
21843 stream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
21844 // WARNING PTR CHECK
21845 uint64_t cgen_var_1456 = (uint64_t)(uintptr_t)local_pHostPointer;
21846 stream->putBe64(cgen_var_1456);
21847 if (local_pHostPointer)
21848 {
21849 stream->write((void*)local_pHostPointer, sizeof(uint8_t));
21850 }
21851 marshal_VkMemoryHostPointerPropertiesEXT(stream, (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties));
21852 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT readParams");
21853 unmarshal_VkMemoryHostPointerPropertiesEXT(stream, (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties));
21854 if (pMemoryHostPointerProperties)
21855 {
21856 transform_fromhost_VkMemoryHostPointerPropertiesEXT(mImpl->resources(), (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties));
21857 }
21858 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT returnUnmarshal");
21859 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
21860 stream->read(&vkGetMemoryHostPointerPropertiesEXT_VkResult_return, sizeof(VkResult));
21861 countingStream->clearPool();
21862 stream->clearPool();
21863 pool->freeAll();
21864 mImpl->log("finish vkGetMemoryHostPointerPropertiesEXT");;
21865 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
21866 }
21867
21868 #endif
21869 #ifdef VK_AMD_buffer_marker
vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)21870 void VkEncoder::vkCmdWriteBufferMarkerAMD(
21871 VkCommandBuffer commandBuffer,
21872 VkPipelineStageFlagBits pipelineStage,
21873 VkBuffer dstBuffer,
21874 VkDeviceSize dstOffset,
21875 uint32_t marker)
21876 {
21877 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD encode");
21878 mImpl->log("start vkCmdWriteBufferMarkerAMD");
21879 auto stream = mImpl->stream();
21880 auto countingStream = mImpl->countingStream();
21881 auto resources = mImpl->resources();
21882 auto pool = mImpl->pool();
21883 stream->setHandleMapping(resources->unwrapMapping());
21884 VkCommandBuffer local_commandBuffer;
21885 VkPipelineStageFlagBits local_pipelineStage;
21886 VkBuffer local_dstBuffer;
21887 VkDeviceSize local_dstOffset;
21888 uint32_t local_marker;
21889 local_commandBuffer = commandBuffer;
21890 local_pipelineStage = pipelineStage;
21891 local_dstBuffer = dstBuffer;
21892 local_dstOffset = dstOffset;
21893 local_marker = marker;
21894 countingStream->rewind();
21895 {
21896 uint64_t cgen_var_1457;
21897 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1457, 1);
21898 countingStream->write((uint64_t*)&cgen_var_1457, 1 * 8);
21899 countingStream->write((VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits));
21900 uint64_t cgen_var_1458;
21901 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_1458, 1);
21902 countingStream->write((uint64_t*)&cgen_var_1458, 1 * 8);
21903 countingStream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
21904 countingStream->write((uint32_t*)&local_marker, sizeof(uint32_t));
21905 }
21906 uint32_t packetSize_vkCmdWriteBufferMarkerAMD = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21907 countingStream->rewind();
21908 uint32_t opcode_vkCmdWriteBufferMarkerAMD = OP_vkCmdWriteBufferMarkerAMD;
21909 stream->write(&opcode_vkCmdWriteBufferMarkerAMD, sizeof(uint32_t));
21910 stream->write(&packetSize_vkCmdWriteBufferMarkerAMD, sizeof(uint32_t));
21911 uint64_t cgen_var_1459;
21912 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1459, 1);
21913 stream->write((uint64_t*)&cgen_var_1459, 1 * 8);
21914 stream->write((VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits));
21915 uint64_t cgen_var_1460;
21916 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_1460, 1);
21917 stream->write((uint64_t*)&cgen_var_1460, 1 * 8);
21918 stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
21919 stream->write((uint32_t*)&local_marker, sizeof(uint32_t));
21920 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD readParams");
21921 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD returnUnmarshal");
21922 mImpl->log("finish vkCmdWriteBufferMarkerAMD");;
21923 }
21924
21925 #endif
21926 #ifdef VK_AMD_shader_core_properties
21927 #endif
21928 #ifdef VK_EXT_vertex_attribute_divisor
21929 #endif
21930 #ifdef VK_NV_shader_subgroup_partitioned
21931 #endif
21932 #ifdef VK_NV_device_diagnostic_checkpoints
vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker)21933 void VkEncoder::vkCmdSetCheckpointNV(
21934 VkCommandBuffer commandBuffer,
21935 const void* pCheckpointMarker)
21936 {
21937 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV encode");
21938 mImpl->log("start vkCmdSetCheckpointNV");
21939 auto stream = mImpl->stream();
21940 auto countingStream = mImpl->countingStream();
21941 auto resources = mImpl->resources();
21942 auto pool = mImpl->pool();
21943 stream->setHandleMapping(resources->unwrapMapping());
21944 VkCommandBuffer local_commandBuffer;
21945 void* local_pCheckpointMarker;
21946 local_commandBuffer = commandBuffer;
21947 local_pCheckpointMarker = nullptr;
21948 if (pCheckpointMarker)
21949 {
21950 local_pCheckpointMarker = (void*)pool->dupArray(pCheckpointMarker, sizeof(const uint8_t));
21951 }
21952 countingStream->rewind();
21953 {
21954 uint64_t cgen_var_1461;
21955 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1461, 1);
21956 countingStream->write((uint64_t*)&cgen_var_1461, 1 * 8);
21957 // WARNING PTR CHECK
21958 uint64_t cgen_var_1462 = (uint64_t)(uintptr_t)local_pCheckpointMarker;
21959 countingStream->putBe64(cgen_var_1462);
21960 if (local_pCheckpointMarker)
21961 {
21962 countingStream->write((void*)local_pCheckpointMarker, sizeof(uint8_t));
21963 }
21964 }
21965 uint32_t packetSize_vkCmdSetCheckpointNV = 4 + 4 + (uint32_t)countingStream->bytesWritten();
21966 countingStream->rewind();
21967 uint32_t opcode_vkCmdSetCheckpointNV = OP_vkCmdSetCheckpointNV;
21968 stream->write(&opcode_vkCmdSetCheckpointNV, sizeof(uint32_t));
21969 stream->write(&packetSize_vkCmdSetCheckpointNV, sizeof(uint32_t));
21970 uint64_t cgen_var_1463;
21971 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1463, 1);
21972 stream->write((uint64_t*)&cgen_var_1463, 1 * 8);
21973 // WARNING PTR CHECK
21974 uint64_t cgen_var_1464 = (uint64_t)(uintptr_t)local_pCheckpointMarker;
21975 stream->putBe64(cgen_var_1464);
21976 if (local_pCheckpointMarker)
21977 {
21978 stream->write((void*)local_pCheckpointMarker, sizeof(uint8_t));
21979 }
21980 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV readParams");
21981 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV returnUnmarshal");
21982 mImpl->log("finish vkCmdSetCheckpointNV");;
21983 }
21984
vkGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData)21985 void VkEncoder::vkGetQueueCheckpointDataNV(
21986 VkQueue queue,
21987 uint32_t* pCheckpointDataCount,
21988 VkCheckpointDataNV* pCheckpointData)
21989 {
21990 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV encode");
21991 mImpl->log("start vkGetQueueCheckpointDataNV");
21992 auto stream = mImpl->stream();
21993 auto countingStream = mImpl->countingStream();
21994 auto resources = mImpl->resources();
21995 auto pool = mImpl->pool();
21996 stream->setHandleMapping(resources->unwrapMapping());
21997 VkQueue local_queue;
21998 local_queue = queue;
21999 countingStream->rewind();
22000 {
22001 uint64_t cgen_var_1465;
22002 countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1465, 1);
22003 countingStream->write((uint64_t*)&cgen_var_1465, 1 * 8);
22004 // WARNING PTR CHECK
22005 uint64_t cgen_var_1466 = (uint64_t)(uintptr_t)pCheckpointDataCount;
22006 countingStream->putBe64(cgen_var_1466);
22007 if (pCheckpointDataCount)
22008 {
22009 countingStream->write((uint32_t*)pCheckpointDataCount, sizeof(uint32_t));
22010 }
22011 // WARNING PTR CHECK
22012 uint64_t cgen_var_1467 = (uint64_t)(uintptr_t)pCheckpointData;
22013 countingStream->putBe64(cgen_var_1467);
22014 if (pCheckpointData)
22015 {
22016 for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
22017 {
22018 marshal_VkCheckpointDataNV(countingStream, (VkCheckpointDataNV*)(pCheckpointData + i));
22019 }
22020 }
22021 }
22022 uint32_t packetSize_vkGetQueueCheckpointDataNV = 4 + 4 + (uint32_t)countingStream->bytesWritten();
22023 countingStream->rewind();
22024 uint32_t opcode_vkGetQueueCheckpointDataNV = OP_vkGetQueueCheckpointDataNV;
22025 stream->write(&opcode_vkGetQueueCheckpointDataNV, sizeof(uint32_t));
22026 stream->write(&packetSize_vkGetQueueCheckpointDataNV, sizeof(uint32_t));
22027 uint64_t cgen_var_1468;
22028 stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1468, 1);
22029 stream->write((uint64_t*)&cgen_var_1468, 1 * 8);
22030 // WARNING PTR CHECK
22031 uint64_t cgen_var_1469 = (uint64_t)(uintptr_t)pCheckpointDataCount;
22032 stream->putBe64(cgen_var_1469);
22033 if (pCheckpointDataCount)
22034 {
22035 stream->write((uint32_t*)pCheckpointDataCount, sizeof(uint32_t));
22036 }
22037 // WARNING PTR CHECK
22038 uint64_t cgen_var_1470 = (uint64_t)(uintptr_t)pCheckpointData;
22039 stream->putBe64(cgen_var_1470);
22040 if (pCheckpointData)
22041 {
22042 for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
22043 {
22044 marshal_VkCheckpointDataNV(stream, (VkCheckpointDataNV*)(pCheckpointData + i));
22045 }
22046 }
22047 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV readParams");
22048 // WARNING PTR CHECK
22049 uint32_t* check_pCheckpointDataCount;
22050 check_pCheckpointDataCount = (uint32_t*)(uintptr_t)stream->getBe64();
22051 if (pCheckpointDataCount)
22052 {
22053 if (!(check_pCheckpointDataCount))
22054 {
22055 fprintf(stderr, "fatal: pCheckpointDataCount inconsistent between guest and host\n");
22056 }
22057 stream->read((uint32_t*)pCheckpointDataCount, sizeof(uint32_t));
22058 }
22059 // WARNING PTR CHECK
22060 VkCheckpointDataNV* check_pCheckpointData;
22061 check_pCheckpointData = (VkCheckpointDataNV*)(uintptr_t)stream->getBe64();
22062 if (pCheckpointData)
22063 {
22064 if (!(check_pCheckpointData))
22065 {
22066 fprintf(stderr, "fatal: pCheckpointData inconsistent between guest and host\n");
22067 }
22068 for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
22069 {
22070 unmarshal_VkCheckpointDataNV(stream, (VkCheckpointDataNV*)(pCheckpointData + i));
22071 }
22072 }
22073 if (pCheckpointData)
22074 {
22075 for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
22076 {
22077 transform_fromhost_VkCheckpointDataNV(mImpl->resources(), (VkCheckpointDataNV*)(pCheckpointData + i));
22078 }
22079 }
22080 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV returnUnmarshal");
22081 mImpl->log("finish vkGetQueueCheckpointDataNV");;
22082 }
22083
22084 #endif
22085 #ifdef VK_GOOGLE_address_space
vkMapMemoryIntoAddressSpaceGOOGLE(VkDevice device,VkDeviceMemory memory,uint64_t * pAddress)22086 VkResult VkEncoder::vkMapMemoryIntoAddressSpaceGOOGLE(
22087 VkDevice device,
22088 VkDeviceMemory memory,
22089 uint64_t* pAddress)
22090 {
22091 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE encode");
22092 mImpl->log("start vkMapMemoryIntoAddressSpaceGOOGLE");
22093 mImpl->resources()->on_vkMapMemoryIntoAddressSpaceGOOGLE_pre(this, VK_SUCCESS, device, memory, pAddress);
22094 auto stream = mImpl->stream();
22095 auto countingStream = mImpl->countingStream();
22096 auto resources = mImpl->resources();
22097 auto pool = mImpl->pool();
22098 stream->setHandleMapping(resources->unwrapMapping());
22099 VkDevice local_device;
22100 VkDeviceMemory local_memory;
22101 local_device = device;
22102 local_memory = memory;
22103 mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
22104 countingStream->rewind();
22105 {
22106 uint64_t cgen_var_1473;
22107 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1473, 1);
22108 countingStream->write((uint64_t*)&cgen_var_1473, 1 * 8);
22109 uint64_t cgen_var_1474;
22110 countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1474, 1);
22111 countingStream->write((uint64_t*)&cgen_var_1474, 1 * 8);
22112 // WARNING PTR CHECK
22113 uint64_t cgen_var_1475 = (uint64_t)(uintptr_t)pAddress;
22114 countingStream->putBe64(cgen_var_1475);
22115 if (pAddress)
22116 {
22117 countingStream->write((uint64_t*)pAddress, sizeof(uint64_t));
22118 }
22119 }
22120 uint32_t packetSize_vkMapMemoryIntoAddressSpaceGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
22121 countingStream->rewind();
22122 uint32_t opcode_vkMapMemoryIntoAddressSpaceGOOGLE = OP_vkMapMemoryIntoAddressSpaceGOOGLE;
22123 stream->write(&opcode_vkMapMemoryIntoAddressSpaceGOOGLE, sizeof(uint32_t));
22124 stream->write(&packetSize_vkMapMemoryIntoAddressSpaceGOOGLE, sizeof(uint32_t));
22125 uint64_t cgen_var_1476;
22126 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1476, 1);
22127 stream->write((uint64_t*)&cgen_var_1476, 1 * 8);
22128 uint64_t cgen_var_1477;
22129 stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1477, 1);
22130 stream->write((uint64_t*)&cgen_var_1477, 1 * 8);
22131 // WARNING PTR CHECK
22132 uint64_t cgen_var_1478 = (uint64_t)(uintptr_t)pAddress;
22133 stream->putBe64(cgen_var_1478);
22134 if (pAddress)
22135 {
22136 stream->write((uint64_t*)pAddress, sizeof(uint64_t));
22137 }
22138 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE readParams");
22139 // WARNING PTR CHECK
22140 uint64_t* check_pAddress;
22141 check_pAddress = (uint64_t*)(uintptr_t)stream->getBe64();
22142 if (pAddress)
22143 {
22144 if (!(check_pAddress))
22145 {
22146 fprintf(stderr, "fatal: pAddress inconsistent between guest and host\n");
22147 }
22148 stream->read((uint64_t*)pAddress, sizeof(uint64_t));
22149 }
22150 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE returnUnmarshal");
22151 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
22152 stream->read(&vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, sizeof(VkResult));
22153 countingStream->clearPool();
22154 stream->clearPool();
22155 pool->freeAll();
22156 mImpl->resources()->on_vkMapMemoryIntoAddressSpaceGOOGLE(this, vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, device, memory, pAddress);
22157 mImpl->log("finish vkMapMemoryIntoAddressSpaceGOOGLE");;
22158 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
22159 }
22160
22161 #endif
22162 #ifdef VK_GOOGLE_color_buffer
vkRegisterImageColorBufferGOOGLE(VkDevice device,VkImage image,uint32_t colorBuffer)22163 VkResult VkEncoder::vkRegisterImageColorBufferGOOGLE(
22164 VkDevice device,
22165 VkImage image,
22166 uint32_t colorBuffer)
22167 {
22168 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE encode");
22169 mImpl->log("start vkRegisterImageColorBufferGOOGLE");
22170 auto stream = mImpl->stream();
22171 auto countingStream = mImpl->countingStream();
22172 auto resources = mImpl->resources();
22173 auto pool = mImpl->pool();
22174 stream->setHandleMapping(resources->unwrapMapping());
22175 VkDevice local_device;
22176 VkImage local_image;
22177 uint32_t local_colorBuffer;
22178 local_device = device;
22179 local_image = image;
22180 local_colorBuffer = colorBuffer;
22181 countingStream->rewind();
22182 {
22183 uint64_t cgen_var_1480;
22184 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1480, 1);
22185 countingStream->write((uint64_t*)&cgen_var_1480, 1 * 8);
22186 uint64_t cgen_var_1481;
22187 countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1481, 1);
22188 countingStream->write((uint64_t*)&cgen_var_1481, 1 * 8);
22189 countingStream->write((uint32_t*)&local_colorBuffer, sizeof(uint32_t));
22190 }
22191 uint32_t packetSize_vkRegisterImageColorBufferGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
22192 countingStream->rewind();
22193 uint32_t opcode_vkRegisterImageColorBufferGOOGLE = OP_vkRegisterImageColorBufferGOOGLE;
22194 stream->write(&opcode_vkRegisterImageColorBufferGOOGLE, sizeof(uint32_t));
22195 stream->write(&packetSize_vkRegisterImageColorBufferGOOGLE, sizeof(uint32_t));
22196 uint64_t cgen_var_1482;
22197 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1482, 1);
22198 stream->write((uint64_t*)&cgen_var_1482, 1 * 8);
22199 uint64_t cgen_var_1483;
22200 stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1483, 1);
22201 stream->write((uint64_t*)&cgen_var_1483, 1 * 8);
22202 stream->write((uint32_t*)&local_colorBuffer, sizeof(uint32_t));
22203 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE readParams");
22204 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE returnUnmarshal");
22205 VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
22206 stream->read(&vkRegisterImageColorBufferGOOGLE_VkResult_return, sizeof(VkResult));
22207 countingStream->clearPool();
22208 stream->clearPool();
22209 pool->freeAll();
22210 mImpl->log("finish vkRegisterImageColorBufferGOOGLE");;
22211 return vkRegisterImageColorBufferGOOGLE_VkResult_return;
22212 }
22213
vkRegisterBufferColorBufferGOOGLE(VkDevice device,VkBuffer buffer,uint32_t colorBuffer)22214 VkResult VkEncoder::vkRegisterBufferColorBufferGOOGLE(
22215 VkDevice device,
22216 VkBuffer buffer,
22217 uint32_t colorBuffer)
22218 {
22219 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE encode");
22220 mImpl->log("start vkRegisterBufferColorBufferGOOGLE");
22221 auto stream = mImpl->stream();
22222 auto countingStream = mImpl->countingStream();
22223 auto resources = mImpl->resources();
22224 auto pool = mImpl->pool();
22225 stream->setHandleMapping(resources->unwrapMapping());
22226 VkDevice local_device;
22227 VkBuffer local_buffer;
22228 uint32_t local_colorBuffer;
22229 local_device = device;
22230 local_buffer = buffer;
22231 local_colorBuffer = colorBuffer;
22232 countingStream->rewind();
22233 {
22234 uint64_t cgen_var_1484;
22235 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1484, 1);
22236 countingStream->write((uint64_t*)&cgen_var_1484, 1 * 8);
22237 uint64_t cgen_var_1485;
22238 countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1485, 1);
22239 countingStream->write((uint64_t*)&cgen_var_1485, 1 * 8);
22240 countingStream->write((uint32_t*)&local_colorBuffer, sizeof(uint32_t));
22241 }
22242 uint32_t packetSize_vkRegisterBufferColorBufferGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
22243 countingStream->rewind();
22244 uint32_t opcode_vkRegisterBufferColorBufferGOOGLE = OP_vkRegisterBufferColorBufferGOOGLE;
22245 stream->write(&opcode_vkRegisterBufferColorBufferGOOGLE, sizeof(uint32_t));
22246 stream->write(&packetSize_vkRegisterBufferColorBufferGOOGLE, sizeof(uint32_t));
22247 uint64_t cgen_var_1486;
22248 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1486, 1);
22249 stream->write((uint64_t*)&cgen_var_1486, 1 * 8);
22250 uint64_t cgen_var_1487;
22251 stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1487, 1);
22252 stream->write((uint64_t*)&cgen_var_1487, 1 * 8);
22253 stream->write((uint32_t*)&local_colorBuffer, sizeof(uint32_t));
22254 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE readParams");
22255 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE returnUnmarshal");
22256 VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
22257 stream->read(&vkRegisterBufferColorBufferGOOGLE_VkResult_return, sizeof(VkResult));
22258 countingStream->clearPool();
22259 stream->clearPool();
22260 pool->freeAll();
22261 mImpl->log("finish vkRegisterBufferColorBufferGOOGLE");;
22262 return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
22263 }
22264
22265 #endif
22266 #ifdef VK_GOOGLE_sized_descriptor_update_template
vkUpdateDescriptorSetWithTemplateSizedGOOGLE(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,uint32_t imageInfoCount,uint32_t bufferInfoCount,uint32_t bufferViewCount,const uint32_t * pImageInfoEntryIndices,const uint32_t * pBufferInfoEntryIndices,const uint32_t * pBufferViewEntryIndices,const VkDescriptorImageInfo * pImageInfos,const VkDescriptorBufferInfo * pBufferInfos,const VkBufferView * pBufferViews)22267 void VkEncoder::vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
22268 VkDevice device,
22269 VkDescriptorSet descriptorSet,
22270 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
22271 uint32_t imageInfoCount,
22272 uint32_t bufferInfoCount,
22273 uint32_t bufferViewCount,
22274 const uint32_t* pImageInfoEntryIndices,
22275 const uint32_t* pBufferInfoEntryIndices,
22276 const uint32_t* pBufferViewEntryIndices,
22277 const VkDescriptorImageInfo* pImageInfos,
22278 const VkDescriptorBufferInfo* pBufferInfos,
22279 const VkBufferView* pBufferViews)
22280 {
22281 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE encode");
22282 mImpl->log("start vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
22283 auto stream = mImpl->stream();
22284 auto countingStream = mImpl->countingStream();
22285 auto resources = mImpl->resources();
22286 auto pool = mImpl->pool();
22287 stream->setHandleMapping(resources->unwrapMapping());
22288 VkDevice local_device;
22289 VkDescriptorSet local_descriptorSet;
22290 VkDescriptorUpdateTemplate local_descriptorUpdateTemplate;
22291 uint32_t local_imageInfoCount;
22292 uint32_t local_bufferInfoCount;
22293 uint32_t local_bufferViewCount;
22294 uint32_t* local_pImageInfoEntryIndices;
22295 uint32_t* local_pBufferInfoEntryIndices;
22296 uint32_t* local_pBufferViewEntryIndices;
22297 VkDescriptorImageInfo* local_pImageInfos;
22298 VkDescriptorBufferInfo* local_pBufferInfos;
22299 VkBufferView* local_pBufferViews;
22300 local_device = device;
22301 local_descriptorSet = descriptorSet;
22302 local_descriptorUpdateTemplate = descriptorUpdateTemplate;
22303 local_imageInfoCount = imageInfoCount;
22304 local_bufferInfoCount = bufferInfoCount;
22305 local_bufferViewCount = bufferViewCount;
22306 local_pImageInfoEntryIndices = nullptr;
22307 if (pImageInfoEntryIndices)
22308 {
22309 local_pImageInfoEntryIndices = (uint32_t*)pool->dupArray(pImageInfoEntryIndices, ((imageInfoCount)) * sizeof(const uint32_t));
22310 }
22311 local_pBufferInfoEntryIndices = nullptr;
22312 if (pBufferInfoEntryIndices)
22313 {
22314 local_pBufferInfoEntryIndices = (uint32_t*)pool->dupArray(pBufferInfoEntryIndices, ((bufferInfoCount)) * sizeof(const uint32_t));
22315 }
22316 local_pBufferViewEntryIndices = nullptr;
22317 if (pBufferViewEntryIndices)
22318 {
22319 local_pBufferViewEntryIndices = (uint32_t*)pool->dupArray(pBufferViewEntryIndices, ((bufferViewCount)) * sizeof(const uint32_t));
22320 }
22321 local_pImageInfos = nullptr;
22322 if (pImageInfos)
22323 {
22324 local_pImageInfos = (VkDescriptorImageInfo*)pool->alloc(((imageInfoCount)) * sizeof(const VkDescriptorImageInfo));
22325 for (uint32_t i = 0; i < (uint32_t)((imageInfoCount)); ++i)
22326 {
22327 deepcopy_VkDescriptorImageInfo(pool, pImageInfos + i, (VkDescriptorImageInfo*)(local_pImageInfos + i));
22328 }
22329 }
22330 local_pBufferInfos = nullptr;
22331 if (pBufferInfos)
22332 {
22333 local_pBufferInfos = (VkDescriptorBufferInfo*)pool->alloc(((bufferInfoCount)) * sizeof(const VkDescriptorBufferInfo));
22334 for (uint32_t i = 0; i < (uint32_t)((bufferInfoCount)); ++i)
22335 {
22336 deepcopy_VkDescriptorBufferInfo(pool, pBufferInfos + i, (VkDescriptorBufferInfo*)(local_pBufferInfos + i));
22337 }
22338 }
22339 local_pBufferViews = nullptr;
22340 if (pBufferViews)
22341 {
22342 local_pBufferViews = (VkBufferView*)pool->dupArray(pBufferViews, ((bufferViewCount)) * sizeof(const VkBufferView));
22343 }
22344 if (local_pImageInfos)
22345 {
22346 for (uint32_t i = 0; i < (uint32_t)((imageInfoCount)); ++i)
22347 {
22348 transform_tohost_VkDescriptorImageInfo(mImpl->resources(), (VkDescriptorImageInfo*)(local_pImageInfos + i));
22349 }
22350 }
22351 if (local_pBufferInfos)
22352 {
22353 for (uint32_t i = 0; i < (uint32_t)((bufferInfoCount)); ++i)
22354 {
22355 transform_tohost_VkDescriptorBufferInfo(mImpl->resources(), (VkDescriptorBufferInfo*)(local_pBufferInfos + i));
22356 }
22357 }
22358 countingStream->rewind();
22359 {
22360 uint64_t cgen_var_1488;
22361 countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1488, 1);
22362 countingStream->write((uint64_t*)&cgen_var_1488, 1 * 8);
22363 uint64_t cgen_var_1489;
22364 countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_1489, 1);
22365 countingStream->write((uint64_t*)&cgen_var_1489, 1 * 8);
22366 uint64_t cgen_var_1490;
22367 countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1490, 1);
22368 countingStream->write((uint64_t*)&cgen_var_1490, 1 * 8);
22369 countingStream->write((uint32_t*)&local_imageInfoCount, sizeof(uint32_t));
22370 countingStream->write((uint32_t*)&local_bufferInfoCount, sizeof(uint32_t));
22371 countingStream->write((uint32_t*)&local_bufferViewCount, sizeof(uint32_t));
22372 // WARNING PTR CHECK
22373 uint64_t cgen_var_1491 = (uint64_t)(uintptr_t)local_pImageInfoEntryIndices;
22374 countingStream->putBe64(cgen_var_1491);
22375 if (local_pImageInfoEntryIndices)
22376 {
22377 countingStream->write((uint32_t*)local_pImageInfoEntryIndices, ((imageInfoCount)) * sizeof(uint32_t));
22378 }
22379 // WARNING PTR CHECK
22380 uint64_t cgen_var_1492 = (uint64_t)(uintptr_t)local_pBufferInfoEntryIndices;
22381 countingStream->putBe64(cgen_var_1492);
22382 if (local_pBufferInfoEntryIndices)
22383 {
22384 countingStream->write((uint32_t*)local_pBufferInfoEntryIndices, ((bufferInfoCount)) * sizeof(uint32_t));
22385 }
22386 // WARNING PTR CHECK
22387 uint64_t cgen_var_1493 = (uint64_t)(uintptr_t)local_pBufferViewEntryIndices;
22388 countingStream->putBe64(cgen_var_1493);
22389 if (local_pBufferViewEntryIndices)
22390 {
22391 countingStream->write((uint32_t*)local_pBufferViewEntryIndices, ((bufferViewCount)) * sizeof(uint32_t));
22392 }
22393 // WARNING PTR CHECK
22394 uint64_t cgen_var_1494 = (uint64_t)(uintptr_t)local_pImageInfos;
22395 countingStream->putBe64(cgen_var_1494);
22396 if (local_pImageInfos)
22397 {
22398 for (uint32_t i = 0; i < (uint32_t)((imageInfoCount)); ++i)
22399 {
22400 marshal_VkDescriptorImageInfo(countingStream, (VkDescriptorImageInfo*)(local_pImageInfos + i));
22401 }
22402 }
22403 // WARNING PTR CHECK
22404 uint64_t cgen_var_1495 = (uint64_t)(uintptr_t)local_pBufferInfos;
22405 countingStream->putBe64(cgen_var_1495);
22406 if (local_pBufferInfos)
22407 {
22408 for (uint32_t i = 0; i < (uint32_t)((bufferInfoCount)); ++i)
22409 {
22410 marshal_VkDescriptorBufferInfo(countingStream, (VkDescriptorBufferInfo*)(local_pBufferInfos + i));
22411 }
22412 }
22413 // WARNING PTR CHECK
22414 uint64_t cgen_var_1496 = (uint64_t)(uintptr_t)local_pBufferViews;
22415 countingStream->putBe64(cgen_var_1496);
22416 if (local_pBufferViews)
22417 {
22418 if (((bufferViewCount)))
22419 {
22420 uint64_t* cgen_var_1497;
22421 countingStream->alloc((void**)&cgen_var_1497, ((bufferViewCount)) * 8);
22422 countingStream->handleMapping()->mapHandles_VkBufferView_u64(local_pBufferViews, cgen_var_1497, ((bufferViewCount)));
22423 countingStream->write((uint64_t*)cgen_var_1497, ((bufferViewCount)) * 8);
22424 }
22425 }
22426 }
22427 uint32_t packetSize_vkUpdateDescriptorSetWithTemplateSizedGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
22428 countingStream->rewind();
22429 uint32_t opcode_vkUpdateDescriptorSetWithTemplateSizedGOOGLE = OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE;
22430 stream->write(&opcode_vkUpdateDescriptorSetWithTemplateSizedGOOGLE, sizeof(uint32_t));
22431 stream->write(&packetSize_vkUpdateDescriptorSetWithTemplateSizedGOOGLE, sizeof(uint32_t));
22432 uint64_t cgen_var_1498;
22433 stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1498, 1);
22434 stream->write((uint64_t*)&cgen_var_1498, 1 * 8);
22435 uint64_t cgen_var_1499;
22436 stream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_1499, 1);
22437 stream->write((uint64_t*)&cgen_var_1499, 1 * 8);
22438 uint64_t cgen_var_1500;
22439 stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1500, 1);
22440 stream->write((uint64_t*)&cgen_var_1500, 1 * 8);
22441 stream->write((uint32_t*)&local_imageInfoCount, sizeof(uint32_t));
22442 stream->write((uint32_t*)&local_bufferInfoCount, sizeof(uint32_t));
22443 stream->write((uint32_t*)&local_bufferViewCount, sizeof(uint32_t));
22444 // WARNING PTR CHECK
22445 uint64_t cgen_var_1501 = (uint64_t)(uintptr_t)local_pImageInfoEntryIndices;
22446 stream->putBe64(cgen_var_1501);
22447 if (local_pImageInfoEntryIndices)
22448 {
22449 stream->write((uint32_t*)local_pImageInfoEntryIndices, ((imageInfoCount)) * sizeof(uint32_t));
22450 }
22451 // WARNING PTR CHECK
22452 uint64_t cgen_var_1502 = (uint64_t)(uintptr_t)local_pBufferInfoEntryIndices;
22453 stream->putBe64(cgen_var_1502);
22454 if (local_pBufferInfoEntryIndices)
22455 {
22456 stream->write((uint32_t*)local_pBufferInfoEntryIndices, ((bufferInfoCount)) * sizeof(uint32_t));
22457 }
22458 // WARNING PTR CHECK
22459 uint64_t cgen_var_1503 = (uint64_t)(uintptr_t)local_pBufferViewEntryIndices;
22460 stream->putBe64(cgen_var_1503);
22461 if (local_pBufferViewEntryIndices)
22462 {
22463 stream->write((uint32_t*)local_pBufferViewEntryIndices, ((bufferViewCount)) * sizeof(uint32_t));
22464 }
22465 // WARNING PTR CHECK
22466 uint64_t cgen_var_1504 = (uint64_t)(uintptr_t)local_pImageInfos;
22467 stream->putBe64(cgen_var_1504);
22468 if (local_pImageInfos)
22469 {
22470 for (uint32_t i = 0; i < (uint32_t)((imageInfoCount)); ++i)
22471 {
22472 marshal_VkDescriptorImageInfo(stream, (VkDescriptorImageInfo*)(local_pImageInfos + i));
22473 }
22474 }
22475 // WARNING PTR CHECK
22476 uint64_t cgen_var_1505 = (uint64_t)(uintptr_t)local_pBufferInfos;
22477 stream->putBe64(cgen_var_1505);
22478 if (local_pBufferInfos)
22479 {
22480 for (uint32_t i = 0; i < (uint32_t)((bufferInfoCount)); ++i)
22481 {
22482 marshal_VkDescriptorBufferInfo(stream, (VkDescriptorBufferInfo*)(local_pBufferInfos + i));
22483 }
22484 }
22485 // WARNING PTR CHECK
22486 uint64_t cgen_var_1506 = (uint64_t)(uintptr_t)local_pBufferViews;
22487 stream->putBe64(cgen_var_1506);
22488 if (local_pBufferViews)
22489 {
22490 if (((bufferViewCount)))
22491 {
22492 uint64_t* cgen_var_1507;
22493 stream->alloc((void**)&cgen_var_1507, ((bufferViewCount)) * 8);
22494 stream->handleMapping()->mapHandles_VkBufferView_u64(local_pBufferViews, cgen_var_1507, ((bufferViewCount)));
22495 stream->write((uint64_t*)cgen_var_1507, ((bufferViewCount)) * 8);
22496 }
22497 }
22498 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE readParams");
22499 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE returnUnmarshal");
22500 mImpl->log("finish vkUpdateDescriptorSetWithTemplateSizedGOOGLE");;
22501 }
22502
22503 #endif
22504 #ifdef VK_GOOGLE_async_command_buffers
vkBeginCommandBufferAsyncGOOGLE(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)22505 void VkEncoder::vkBeginCommandBufferAsyncGOOGLE(
22506 VkCommandBuffer commandBuffer,
22507 const VkCommandBufferBeginInfo* pBeginInfo)
22508 {
22509 AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE encode");
22510 mImpl->log("start vkBeginCommandBufferAsyncGOOGLE");
22511 auto stream = mImpl->stream();
22512 auto countingStream = mImpl->countingStream();
22513 auto resources = mImpl->resources();
22514 auto pool = mImpl->pool();
22515 stream->setHandleMapping(resources->unwrapMapping());
22516 VkCommandBuffer local_commandBuffer;
22517 VkCommandBufferBeginInfo* local_pBeginInfo;
22518 local_commandBuffer = commandBuffer;
22519 local_pBeginInfo = nullptr;
22520 if (pBeginInfo)
22521 {
22522 local_pBeginInfo = (VkCommandBufferBeginInfo*)pool->alloc(sizeof(const VkCommandBufferBeginInfo));
22523 deepcopy_VkCommandBufferBeginInfo(pool, pBeginInfo, (VkCommandBufferBeginInfo*)(local_pBeginInfo));
22524 }
22525 if (local_pBeginInfo)
22526 {
22527 transform_tohost_VkCommandBufferBeginInfo(mImpl->resources(), (VkCommandBufferBeginInfo*)(local_pBeginInfo));
22528 }
22529 countingStream->rewind();
22530 {
22531 uint64_t cgen_var_1508;
22532 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1508, 1);
22533 countingStream->write((uint64_t*)&cgen_var_1508, 1 * 8);
22534 marshal_VkCommandBufferBeginInfo(countingStream, (VkCommandBufferBeginInfo*)(local_pBeginInfo));
22535 }
22536 uint32_t packetSize_vkBeginCommandBufferAsyncGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
22537 countingStream->rewind();
22538 uint32_t opcode_vkBeginCommandBufferAsyncGOOGLE = OP_vkBeginCommandBufferAsyncGOOGLE;
22539 stream->write(&opcode_vkBeginCommandBufferAsyncGOOGLE, sizeof(uint32_t));
22540 stream->write(&packetSize_vkBeginCommandBufferAsyncGOOGLE, sizeof(uint32_t));
22541 uint64_t cgen_var_1509;
22542 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1509, 1);
22543 stream->write((uint64_t*)&cgen_var_1509, 1 * 8);
22544 marshal_VkCommandBufferBeginInfo(stream, (VkCommandBufferBeginInfo*)(local_pBeginInfo));
22545 AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE readParams");
22546 AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE returnUnmarshal");
22547 mImpl->log("finish vkBeginCommandBufferAsyncGOOGLE");;
22548 }
22549
vkEndCommandBufferAsyncGOOGLE(VkCommandBuffer commandBuffer)22550 void VkEncoder::vkEndCommandBufferAsyncGOOGLE(
22551 VkCommandBuffer commandBuffer)
22552 {
22553 AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE encode");
22554 mImpl->log("start vkEndCommandBufferAsyncGOOGLE");
22555 auto stream = mImpl->stream();
22556 auto countingStream = mImpl->countingStream();
22557 auto resources = mImpl->resources();
22558 auto pool = mImpl->pool();
22559 stream->setHandleMapping(resources->unwrapMapping());
22560 VkCommandBuffer local_commandBuffer;
22561 local_commandBuffer = commandBuffer;
22562 countingStream->rewind();
22563 {
22564 uint64_t cgen_var_1510;
22565 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1510, 1);
22566 countingStream->write((uint64_t*)&cgen_var_1510, 1 * 8);
22567 }
22568 uint32_t packetSize_vkEndCommandBufferAsyncGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
22569 countingStream->rewind();
22570 uint32_t opcode_vkEndCommandBufferAsyncGOOGLE = OP_vkEndCommandBufferAsyncGOOGLE;
22571 stream->write(&opcode_vkEndCommandBufferAsyncGOOGLE, sizeof(uint32_t));
22572 stream->write(&packetSize_vkEndCommandBufferAsyncGOOGLE, sizeof(uint32_t));
22573 uint64_t cgen_var_1511;
22574 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1511, 1);
22575 stream->write((uint64_t*)&cgen_var_1511, 1 * 8);
22576 AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE readParams");
22577 AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE returnUnmarshal");
22578 mImpl->log("finish vkEndCommandBufferAsyncGOOGLE");;
22579 }
22580
vkResetCommandBufferAsyncGOOGLE(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)22581 void VkEncoder::vkResetCommandBufferAsyncGOOGLE(
22582 VkCommandBuffer commandBuffer,
22583 VkCommandBufferResetFlags flags)
22584 {
22585 AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE encode");
22586 mImpl->log("start vkResetCommandBufferAsyncGOOGLE");
22587 auto stream = mImpl->stream();
22588 auto countingStream = mImpl->countingStream();
22589 auto resources = mImpl->resources();
22590 auto pool = mImpl->pool();
22591 stream->setHandleMapping(resources->unwrapMapping());
22592 VkCommandBuffer local_commandBuffer;
22593 VkCommandBufferResetFlags local_flags;
22594 local_commandBuffer = commandBuffer;
22595 local_flags = flags;
22596 countingStream->rewind();
22597 {
22598 uint64_t cgen_var_1512;
22599 countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1512, 1);
22600 countingStream->write((uint64_t*)&cgen_var_1512, 1 * 8);
22601 countingStream->write((VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags));
22602 }
22603 uint32_t packetSize_vkResetCommandBufferAsyncGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
22604 countingStream->rewind();
22605 uint32_t opcode_vkResetCommandBufferAsyncGOOGLE = OP_vkResetCommandBufferAsyncGOOGLE;
22606 stream->write(&opcode_vkResetCommandBufferAsyncGOOGLE, sizeof(uint32_t));
22607 stream->write(&packetSize_vkResetCommandBufferAsyncGOOGLE, sizeof(uint32_t));
22608 uint64_t cgen_var_1513;
22609 stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1513, 1);
22610 stream->write((uint64_t*)&cgen_var_1513, 1 * 8);
22611 stream->write((VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags));
22612 AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE readParams");
22613 AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE returnUnmarshal");
22614 mImpl->log("finish vkResetCommandBufferAsyncGOOGLE");;
22615 }
22616
22617 #endif
22618
22619 } // namespace goldfish_vk
22620