| // Copyright (C) 2018 The Android Open Source Project |
| // Copyright (C) 2018 Google Inc. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Autogenerated module VkEncoder |
| // (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 |
| // Please do not modify directly; |
| // re-run android/scripts/generate-vulkan-sources.sh, |
| // or directly from Python by defining: |
| // VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml |
| // CEREAL_OUTPUT_DIR: Where to put the generated sources. |
| // python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR |
| |
| #include "VkEncoder.h" |
| |
| |
| #include "IOStream.h" |
| #include "Resources.h" |
| #include "ResourceTracker.h" |
| #include "Validation.h" |
| #include "VulkanStreamGuest.h" |
| |
| #include "android/base/AlignedBuf.h" |
| #include "android/base/Pool.h" |
| #include "android/base/synchronization/AndroidLock.h" |
| |
| #include <cutils/properties.h> |
| |
| #include "goldfish_vk_marshaling_guest.h" |
| #include "goldfish_vk_deepcopy_guest.h" |
| #include "goldfish_vk_handlemap_guest.h" |
| #include "goldfish_vk_private_defs.h" |
| #include "goldfish_vk_transform_guest.h" |
| |
| #include <unordered_map> |
| |
| |
| |
| namespace goldfish_vk { |
| |
| |
| |
| using namespace goldfish_vk; |
| |
| using android::aligned_buf_alloc; |
| using android::aligned_buf_free; |
| using android::base::guest::AutoLock; |
| using android::base::guest::Lock; |
| using android::base::Pool; |
| |
| class VkEncoder::Impl { |
| public: |
| Impl(IOStream* stream) : m_stream(stream), m_logEncodes(false) { |
| const char* emuVkLogEncodesPropName = "qemu.vk.log"; |
| char encodeProp[PROPERTY_VALUE_MAX]; |
| if (property_get(emuVkLogEncodesPropName, encodeProp, nullptr) > 0) { |
| m_logEncodes = atoi(encodeProp) > 0; |
| } |
| } |
| |
| ~Impl() { |
| for (auto it : mCleanupCallbacks) { |
| fprintf(stderr, "%s: run cleanup callback for %p\n", __func__, it.first); |
| it.second(); |
| } |
| } |
| |
| VulkanCountingStream* countingStream() { return &m_countingStream; } |
| VulkanStreamGuest* stream() { return &m_stream; } |
| Pool* pool() { return &m_pool; } |
| ResourceTracker* resources() { return ResourceTracker::get(); } |
| Validation* validation() { return &m_validation; } |
| |
| void log(const char* text) { |
| if (!m_logEncodes) return; |
| ALOGD("encoder log: %s", text); |
| } |
| |
| void flush() { |
| AutoLock encoderLock(lock); |
| m_stream.flush(); |
| } |
| |
| // Assume the lock for the current encoder is held. |
| void registerCleanupCallback(void* handle, VkEncoder::CleanupCallback cb) { |
| if (mCleanupCallbacks.end() == mCleanupCallbacks.find(handle)) { |
| mCleanupCallbacks[handle] = cb; |
| } else { |
| return; |
| } |
| } |
| |
| void unregisterCleanupCallback(void* handle) { |
| mCleanupCallbacks.erase(handle); |
| } |
| |
| Lock lock; |
| |
| private: |
| VulkanCountingStream m_countingStream; |
| VulkanStreamGuest m_stream; |
| Pool m_pool { 8, 4096, 64 }; |
| |
| Validation m_validation; |
| bool m_logEncodes; |
| |
| std::unordered_map<void*, VkEncoder::CleanupCallback> mCleanupCallbacks; |
| }; |
| |
| VkEncoder::VkEncoder(IOStream *stream) : |
| mImpl(new VkEncoder::Impl(stream)) { } |
| |
| void VkEncoder::flush() { |
| mImpl->flush(); |
| } |
| |
| void VkEncoder::registerCleanupCallback(void* handle, VkEncoder::CleanupCallback cb) { |
| mImpl->registerCleanupCallback(handle, cb); |
| } |
| |
| void VkEncoder::unregisterCleanupCallback(void* handle) { |
| mImpl->unregisterCleanupCallback(handle); |
| } |
| |
| #define VALIDATE_RET(retType, success, validate) \ |
| retType goldfish_vk_validateResult = validate; \ |
| if (goldfish_vk_validateResult != success) return goldfish_vk_validateResult; \ |
| |
| #define VALIDATE_VOID(validate) \ |
| VkResult goldfish_vk_validateResult = validate; \ |
| if (goldfish_vk_validateResult != VK_SUCCESS) return; \ |
| |
| #ifdef VK_VERSION_1_0 |
| VkResult VkEncoder::vkCreateInstance( |
| const VkInstanceCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkInstance* pInstance) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateInstance encode"); |
| mImpl->log("start vkCreateInstance"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstanceCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkInstanceCreateInfo*)pool->alloc(sizeof(const VkInstanceCreateInfo)); |
| deepcopy_VkInstanceCreateInfo(pool, pCreateInfo, (VkInstanceCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkInstanceCreateInfo(mImpl->resources(), (VkInstanceCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| marshal_VkInstanceCreateInfo(countingStream, (VkInstanceCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_0 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_0); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(pInstance, &cgen_var_1, 1); |
| countingStream->write((uint64_t*)&cgen_var_1, 8); |
| } |
| uint32_t packetSize_vkCreateInstance = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateInstance = OP_vkCreateInstance; |
| stream->write(&opcode_vkCreateInstance, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateInstance, sizeof(uint32_t)); |
| marshal_VkInstanceCreateInfo(stream, (VkInstanceCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_2); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_3; |
| stream->handleMapping()->mapHandles_VkInstance_u64(pInstance, &cgen_var_3, 1); |
| stream->write((uint64_t*)&cgen_var_3, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateInstance readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_4; |
| stream->read((uint64_t*)&cgen_var_4, 8); |
| stream->handleMapping()->mapHandles_u64_VkInstance(&cgen_var_4, (VkInstance*)pInstance, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateInstance returnUnmarshal"); |
| VkResult vkCreateInstance_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateInstance_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| encoderLock.unlock(); |
| mImpl->resources()->on_vkCreateInstance(this, vkCreateInstance_VkResult_return, pCreateInfo, pAllocator, pInstance); |
| encoderLock.lock(); |
| mImpl->log("finish vkCreateInstance");; |
| return vkCreateInstance_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyInstance( |
| VkInstance instance, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyInstance encode"); |
| mImpl->log("start vkDestroyInstance"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_5; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_5, 1); |
| countingStream->write((uint64_t*)&cgen_var_5, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_6 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_6); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyInstance = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyInstance = OP_vkDestroyInstance; |
| stream->write(&opcode_vkDestroyInstance, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyInstance, sizeof(uint32_t)); |
| uint64_t cgen_var_7; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_7, 1); |
| stream->write((uint64_t*)&cgen_var_7, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_8 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_8); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyInstance readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyInstance returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkInstance((VkInstance*)&instance); |
| mImpl->log("finish vkDestroyInstance");; |
| } |
| |
| VkResult VkEncoder::vkEnumeratePhysicalDevices( |
| VkInstance instance, |
| uint32_t* pPhysicalDeviceCount, |
| VkPhysicalDevice* pPhysicalDevices) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices encode"); |
| mImpl->log("start vkEnumeratePhysicalDevices"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| local_instance = instance; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_9; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_9, 1); |
| countingStream->write((uint64_t*)&cgen_var_9, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_10 = (uint64_t)(uintptr_t)pPhysicalDeviceCount; |
| countingStream->putBe64(cgen_var_10); |
| if (pPhysicalDeviceCount) |
| { |
| countingStream->write((uint32_t*)pPhysicalDeviceCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_11 = (uint64_t)(uintptr_t)pPhysicalDevices; |
| countingStream->putBe64(cgen_var_11); |
| if (pPhysicalDevices) |
| { |
| if ((*(pPhysicalDeviceCount))) |
| { |
| uint64_t* cgen_var_12; |
| countingStream->alloc((void**)&cgen_var_12, (*(pPhysicalDeviceCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(pPhysicalDevices, cgen_var_12, (*(pPhysicalDeviceCount))); |
| countingStream->write((uint64_t*)cgen_var_12, (*(pPhysicalDeviceCount)) * 8); |
| } |
| } |
| } |
| uint32_t packetSize_vkEnumeratePhysicalDevices = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkEnumeratePhysicalDevices = OP_vkEnumeratePhysicalDevices; |
| stream->write(&opcode_vkEnumeratePhysicalDevices, sizeof(uint32_t)); |
| stream->write(&packetSize_vkEnumeratePhysicalDevices, sizeof(uint32_t)); |
| uint64_t cgen_var_13; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_13, 1); |
| stream->write((uint64_t*)&cgen_var_13, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_14 = (uint64_t)(uintptr_t)pPhysicalDeviceCount; |
| stream->putBe64(cgen_var_14); |
| if (pPhysicalDeviceCount) |
| { |
| stream->write((uint32_t*)pPhysicalDeviceCount, sizeof(uint32_t)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| // WARNING PTR CHECK |
| uint64_t cgen_var_15 = (uint64_t)(uintptr_t)pPhysicalDevices; |
| stream->putBe64(cgen_var_15); |
| if (pPhysicalDevices) |
| { |
| if ((*(pPhysicalDeviceCount))) |
| { |
| uint64_t* cgen_var_16; |
| stream->alloc((void**)&cgen_var_16, (*(pPhysicalDeviceCount)) * 8); |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(pPhysicalDevices, cgen_var_16, (*(pPhysicalDeviceCount))); |
| stream->write((uint64_t*)cgen_var_16, (*(pPhysicalDeviceCount)) * 8); |
| } |
| } |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPhysicalDeviceCount; |
| check_pPhysicalDeviceCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPhysicalDeviceCount) |
| { |
| if (!(check_pPhysicalDeviceCount)) |
| { |
| fprintf(stderr, "fatal: pPhysicalDeviceCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPhysicalDeviceCount, sizeof(uint32_t)); |
| } |
| stream->setHandleMapping(resources->createMapping()); |
| // WARNING PTR CHECK |
| VkPhysicalDevice* check_pPhysicalDevices; |
| check_pPhysicalDevices = (VkPhysicalDevice*)(uintptr_t)stream->getBe64(); |
| if (pPhysicalDevices) |
| { |
| if (!(check_pPhysicalDevices)) |
| { |
| fprintf(stderr, "fatal: pPhysicalDevices inconsistent between guest and host\n"); |
| } |
| if ((*(pPhysicalDeviceCount))) |
| { |
| uint64_t* cgen_var_19; |
| stream->alloc((void**)&cgen_var_19, (*(pPhysicalDeviceCount)) * 8); |
| stream->read((uint64_t*)cgen_var_19, (*(pPhysicalDeviceCount)) * 8); |
| stream->handleMapping()->mapHandles_u64_VkPhysicalDevice(cgen_var_19, (VkPhysicalDevice*)pPhysicalDevices, (*(pPhysicalDeviceCount))); |
| } |
| } |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices returnUnmarshal"); |
| VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0; |
| stream->read(&vkEnumeratePhysicalDevices_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkEnumeratePhysicalDevices");; |
| return vkEnumeratePhysicalDevices_VkResult_return; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceFeatures( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceFeatures* pFeatures) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures encode"); |
| mImpl->log("start vkGetPhysicalDeviceFeatures"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_20; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_20, 1); |
| countingStream->write((uint64_t*)&cgen_var_20, 1 * 8); |
| marshal_VkPhysicalDeviceFeatures(countingStream, (VkPhysicalDeviceFeatures*)(pFeatures)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceFeatures = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceFeatures = OP_vkGetPhysicalDeviceFeatures; |
| stream->write(&opcode_vkGetPhysicalDeviceFeatures, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceFeatures, sizeof(uint32_t)); |
| uint64_t cgen_var_21; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_21, 1); |
| stream->write((uint64_t*)&cgen_var_21, 1 * 8); |
| marshal_VkPhysicalDeviceFeatures(stream, (VkPhysicalDeviceFeatures*)(pFeatures)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures readParams"); |
| unmarshal_VkPhysicalDeviceFeatures(stream, (VkPhysicalDeviceFeatures*)(pFeatures)); |
| if (pFeatures) |
| { |
| transform_fromhost_VkPhysicalDeviceFeatures(mImpl->resources(), (VkPhysicalDeviceFeatures*)(pFeatures)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceFeatures");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceFormatProperties( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkFormatProperties* pFormatProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties encode"); |
| mImpl->log("start vkGetPhysicalDeviceFormatProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkFormat local_format; |
| local_physicalDevice = physicalDevice; |
| local_format = format; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_22; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_22, 1); |
| countingStream->write((uint64_t*)&cgen_var_22, 1 * 8); |
| countingStream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| marshal_VkFormatProperties(countingStream, (VkFormatProperties*)(pFormatProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceFormatProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceFormatProperties = OP_vkGetPhysicalDeviceFormatProperties; |
| stream->write(&opcode_vkGetPhysicalDeviceFormatProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceFormatProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_23; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_23, 1); |
| stream->write((uint64_t*)&cgen_var_23, 1 * 8); |
| stream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| marshal_VkFormatProperties(stream, (VkFormatProperties*)(pFormatProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties readParams"); |
| unmarshal_VkFormatProperties(stream, (VkFormatProperties*)(pFormatProperties)); |
| if (pFormatProperties) |
| { |
| transform_fromhost_VkFormatProperties(mImpl->resources(), (VkFormatProperties*)(pFormatProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceFormatProperties");; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkImageType type, |
| VkImageTiling tiling, |
| VkImageUsageFlags usage, |
| VkImageCreateFlags flags, |
| VkImageFormatProperties* pImageFormatProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties encode"); |
| mImpl->log("start vkGetPhysicalDeviceImageFormatProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkFormat local_format; |
| VkImageType local_type; |
| VkImageTiling local_tiling; |
| VkImageUsageFlags local_usage; |
| VkImageCreateFlags local_flags; |
| local_physicalDevice = physicalDevice; |
| local_format = format; |
| local_type = type; |
| local_tiling = tiling; |
| local_usage = usage; |
| local_flags = flags; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_24; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_24, 1); |
| countingStream->write((uint64_t*)&cgen_var_24, 1 * 8); |
| countingStream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| countingStream->write((VkImageType*)&local_type, sizeof(VkImageType)); |
| countingStream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling)); |
| countingStream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags)); |
| countingStream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags)); |
| marshal_VkImageFormatProperties(countingStream, (VkImageFormatProperties*)(pImageFormatProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceImageFormatProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceImageFormatProperties = OP_vkGetPhysicalDeviceImageFormatProperties; |
| stream->write(&opcode_vkGetPhysicalDeviceImageFormatProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceImageFormatProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_25; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_25, 1); |
| stream->write((uint64_t*)&cgen_var_25, 1 * 8); |
| stream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| stream->write((VkImageType*)&local_type, sizeof(VkImageType)); |
| stream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling)); |
| stream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags)); |
| stream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags)); |
| marshal_VkImageFormatProperties(stream, (VkImageFormatProperties*)(pImageFormatProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties readParams"); |
| unmarshal_VkImageFormatProperties(stream, (VkImageFormatProperties*)(pImageFormatProperties)); |
| if (pImageFormatProperties) |
| { |
| transform_fromhost_VkImageFormatProperties(mImpl->resources(), (VkImageFormatProperties*)(pImageFormatProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceImageFormatProperties_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceImageFormatProperties");; |
| return vkGetPhysicalDeviceImageFormatProperties_VkResult_return; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceProperties( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceProperties* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties encode"); |
| mImpl->log("start vkGetPhysicalDeviceProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_26; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_26, 1); |
| countingStream->write((uint64_t*)&cgen_var_26, 1 * 8); |
| marshal_VkPhysicalDeviceProperties(countingStream, (VkPhysicalDeviceProperties*)(pProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceProperties = OP_vkGetPhysicalDeviceProperties; |
| stream->write(&opcode_vkGetPhysicalDeviceProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_27; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_27, 1); |
| stream->write((uint64_t*)&cgen_var_27, 1 * 8); |
| marshal_VkPhysicalDeviceProperties(stream, (VkPhysicalDeviceProperties*)(pProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties readParams"); |
| unmarshal_VkPhysicalDeviceProperties(stream, (VkPhysicalDeviceProperties*)(pProperties)); |
| if (pProperties) |
| { |
| transform_fromhost_VkPhysicalDeviceProperties(mImpl->resources(), (VkPhysicalDeviceProperties*)(pProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceProperties");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pQueueFamilyPropertyCount, |
| VkQueueFamilyProperties* pQueueFamilyProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties encode"); |
| mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_28; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_28, 1); |
| countingStream->write((uint64_t*)&cgen_var_28, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_29 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount; |
| countingStream->putBe64(cgen_var_29); |
| if (pQueueFamilyPropertyCount) |
| { |
| countingStream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_30 = (uint64_t)(uintptr_t)pQueueFamilyProperties; |
| countingStream->putBe64(cgen_var_30); |
| if (pQueueFamilyProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| marshal_VkQueueFamilyProperties(countingStream, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceQueueFamilyProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceQueueFamilyProperties = OP_vkGetPhysicalDeviceQueueFamilyProperties; |
| stream->write(&opcode_vkGetPhysicalDeviceQueueFamilyProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceQueueFamilyProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_31; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_31, 1); |
| stream->write((uint64_t*)&cgen_var_31, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_32 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount; |
| stream->putBe64(cgen_var_32); |
| if (pQueueFamilyPropertyCount) |
| { |
| stream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_33 = (uint64_t)(uintptr_t)pQueueFamilyProperties; |
| stream->putBe64(cgen_var_33); |
| if (pQueueFamilyProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| marshal_VkQueueFamilyProperties(stream, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pQueueFamilyPropertyCount; |
| check_pQueueFamilyPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pQueueFamilyPropertyCount) |
| { |
| if (!(check_pQueueFamilyPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pQueueFamilyPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkQueueFamilyProperties* check_pQueueFamilyProperties; |
| check_pQueueFamilyProperties = (VkQueueFamilyProperties*)(uintptr_t)stream->getBe64(); |
| if (pQueueFamilyProperties) |
| { |
| if (!(check_pQueueFamilyProperties)) |
| { |
| fprintf(stderr, "fatal: pQueueFamilyProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| unmarshal_VkQueueFamilyProperties(stream, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i)); |
| } |
| } |
| if (pQueueFamilyProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| transform_fromhost_VkQueueFamilyProperties(mImpl->resources(), (VkQueueFamilyProperties*)(pQueueFamilyProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceMemoryProperties( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceMemoryProperties* pMemoryProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties encode"); |
| mImpl->log("start vkGetPhysicalDeviceMemoryProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_36; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_36, 1); |
| countingStream->write((uint64_t*)&cgen_var_36, 1 * 8); |
| marshal_VkPhysicalDeviceMemoryProperties(countingStream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceMemoryProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceMemoryProperties = OP_vkGetPhysicalDeviceMemoryProperties; |
| stream->write(&opcode_vkGetPhysicalDeviceMemoryProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceMemoryProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_37; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_37, 1); |
| stream->write((uint64_t*)&cgen_var_37, 1 * 8); |
| marshal_VkPhysicalDeviceMemoryProperties(stream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties readParams"); |
| unmarshal_VkPhysicalDeviceMemoryProperties(stream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties)); |
| if (pMemoryProperties) |
| { |
| transform_fromhost_VkPhysicalDeviceMemoryProperties(mImpl->resources(), (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties returnUnmarshal"); |
| encoderLock.unlock(); |
| mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties(this, physicalDevice, pMemoryProperties); |
| encoderLock.lock(); |
| mImpl->log("finish vkGetPhysicalDeviceMemoryProperties");; |
| } |
| |
| PFN_vkVoidFunction VkEncoder::vkGetInstanceProcAddr( |
| VkInstance instance, |
| const char* pName) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetInstanceProcAddr encode"); |
| mImpl->log("start vkGetInstanceProcAddr"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| char* local_pName; |
| local_instance = instance; |
| local_pName = nullptr; |
| if (pName) |
| { |
| local_pName = pool->strDup(pName); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_38; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_38, 1); |
| countingStream->write((uint64_t*)&cgen_var_38, 1 * 8); |
| countingStream->putString(local_pName); |
| } |
| uint32_t packetSize_vkGetInstanceProcAddr = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetInstanceProcAddr = OP_vkGetInstanceProcAddr; |
| stream->write(&opcode_vkGetInstanceProcAddr, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetInstanceProcAddr, sizeof(uint32_t)); |
| uint64_t cgen_var_39; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_39, 1); |
| stream->write((uint64_t*)&cgen_var_39, 1 * 8); |
| stream->putString(local_pName); |
| AEMU_SCOPED_TRACE("vkGetInstanceProcAddr readParams"); |
| AEMU_SCOPED_TRACE("vkGetInstanceProcAddr returnUnmarshal"); |
| PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0; |
| stream->read(&vkGetInstanceProcAddr_PFN_vkVoidFunction_return, sizeof(PFN_vkVoidFunction)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetInstanceProcAddr");; |
| return vkGetInstanceProcAddr_PFN_vkVoidFunction_return; |
| } |
| |
| PFN_vkVoidFunction VkEncoder::vkGetDeviceProcAddr( |
| VkDevice device, |
| const char* pName) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDeviceProcAddr encode"); |
| mImpl->log("start vkGetDeviceProcAddr"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| char* local_pName; |
| local_device = device; |
| local_pName = nullptr; |
| if (pName) |
| { |
| local_pName = pool->strDup(pName); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_40; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_40, 1); |
| countingStream->write((uint64_t*)&cgen_var_40, 1 * 8); |
| countingStream->putString(local_pName); |
| } |
| uint32_t packetSize_vkGetDeviceProcAddr = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDeviceProcAddr = OP_vkGetDeviceProcAddr; |
| stream->write(&opcode_vkGetDeviceProcAddr, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDeviceProcAddr, sizeof(uint32_t)); |
| uint64_t cgen_var_41; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_41, 1); |
| stream->write((uint64_t*)&cgen_var_41, 1 * 8); |
| stream->putString(local_pName); |
| AEMU_SCOPED_TRACE("vkGetDeviceProcAddr readParams"); |
| AEMU_SCOPED_TRACE("vkGetDeviceProcAddr returnUnmarshal"); |
| PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0; |
| stream->read(&vkGetDeviceProcAddr_PFN_vkVoidFunction_return, sizeof(PFN_vkVoidFunction)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetDeviceProcAddr");; |
| return vkGetDeviceProcAddr_PFN_vkVoidFunction_return; |
| } |
| |
| VkResult VkEncoder::vkCreateDevice( |
| VkPhysicalDevice physicalDevice, |
| const VkDeviceCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDevice* pDevice) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateDevice encode"); |
| mImpl->log("start vkCreateDevice"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkDeviceCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_physicalDevice = physicalDevice; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDeviceCreateInfo*)pool->alloc(sizeof(const VkDeviceCreateInfo)); |
| deepcopy_VkDeviceCreateInfo(pool, pCreateInfo, (VkDeviceCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDeviceCreateInfo(mImpl->resources(), (VkDeviceCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_42; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_42, 1); |
| countingStream->write((uint64_t*)&cgen_var_42, 1 * 8); |
| marshal_VkDeviceCreateInfo(countingStream, (VkDeviceCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_43 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_43); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_44; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(pDevice, &cgen_var_44, 1); |
| countingStream->write((uint64_t*)&cgen_var_44, 8); |
| } |
| uint32_t packetSize_vkCreateDevice = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateDevice = OP_vkCreateDevice; |
| stream->write(&opcode_vkCreateDevice, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateDevice, sizeof(uint32_t)); |
| uint64_t cgen_var_45; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_45, 1); |
| stream->write((uint64_t*)&cgen_var_45, 1 * 8); |
| marshal_VkDeviceCreateInfo(stream, (VkDeviceCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_46 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_46); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_47; |
| stream->handleMapping()->mapHandles_VkDevice_u64(pDevice, &cgen_var_47, 1); |
| stream->write((uint64_t*)&cgen_var_47, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateDevice readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_48; |
| stream->read((uint64_t*)&cgen_var_48, 8); |
| stream->handleMapping()->mapHandles_u64_VkDevice(&cgen_var_48, (VkDevice*)pDevice, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateDevice returnUnmarshal"); |
| VkResult vkCreateDevice_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateDevice_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| encoderLock.unlock(); |
| mImpl->resources()->on_vkCreateDevice(this, vkCreateDevice_VkResult_return, physicalDevice, pCreateInfo, pAllocator, pDevice); |
| encoderLock.lock(); |
| mImpl->log("finish vkCreateDevice");; |
| return vkCreateDevice_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyDevice( |
| VkDevice device, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyDevice encode"); |
| mImpl->log("start vkDestroyDevice"); |
| encoderLock.unlock(); |
| mImpl->resources()->on_vkDestroyDevice_pre(this, device, pAllocator); |
| encoderLock.lock(); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_49; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_49, 1); |
| countingStream->write((uint64_t*)&cgen_var_49, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_50 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_50); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyDevice = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyDevice = OP_vkDestroyDevice; |
| stream->write(&opcode_vkDestroyDevice, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyDevice, sizeof(uint32_t)); |
| uint64_t cgen_var_51; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_51, 1); |
| stream->write((uint64_t*)&cgen_var_51, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_52 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_52); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyDevice readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyDevice returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkDevice((VkDevice*)&device); |
| stream->flush(); |
| mImpl->log("finish vkDestroyDevice");; |
| } |
| |
| VkResult VkEncoder::vkEnumerateInstanceExtensionProperties( |
| const char* pLayerName, |
| uint32_t* pPropertyCount, |
| VkExtensionProperties* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties encode"); |
| mImpl->log("start vkEnumerateInstanceExtensionProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| char* local_pLayerName; |
| local_pLayerName = nullptr; |
| if (pLayerName) |
| { |
| local_pLayerName = pool->strDup(pLayerName); |
| } |
| countingStream->rewind(); |
| { |
| if (countingStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) |
| { |
| // WARNING PTR CHECK |
| uint64_t cgen_var_53 = (uint64_t)(uintptr_t)local_pLayerName; |
| countingStream->putBe64(cgen_var_53); |
| if (local_pLayerName) |
| { |
| countingStream->putString(local_pLayerName); |
| } |
| } |
| else |
| { |
| countingStream->putString(local_pLayerName); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_54 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_54); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_55 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_55); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkExtensionProperties(countingStream, (VkExtensionProperties*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkEnumerateInstanceExtensionProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkEnumerateInstanceExtensionProperties = OP_vkEnumerateInstanceExtensionProperties; |
| stream->write(&opcode_vkEnumerateInstanceExtensionProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkEnumerateInstanceExtensionProperties, sizeof(uint32_t)); |
| if (stream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) |
| { |
| // WARNING PTR CHECK |
| uint64_t cgen_var_56 = (uint64_t)(uintptr_t)local_pLayerName; |
| stream->putBe64(cgen_var_56); |
| if (local_pLayerName) |
| { |
| stream->putString(local_pLayerName); |
| } |
| } |
| else |
| { |
| stream->putString(local_pLayerName); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_57 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_57); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_58 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_58); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkExtensionProperties* check_pProperties; |
| check_pProperties = (VkExtensionProperties*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkExtensionProperties(mImpl->resources(), (VkExtensionProperties*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties returnUnmarshal"); |
| VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0; |
| stream->read(&vkEnumerateInstanceExtensionProperties_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkEnumerateInstanceExtensionProperties");; |
| return vkEnumerateInstanceExtensionProperties_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkEnumerateDeviceExtensionProperties( |
| VkPhysicalDevice physicalDevice, |
| const char* pLayerName, |
| uint32_t* pPropertyCount, |
| VkExtensionProperties* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties encode"); |
| mImpl->log("start vkEnumerateDeviceExtensionProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| char* local_pLayerName; |
| local_physicalDevice = physicalDevice; |
| local_pLayerName = nullptr; |
| if (pLayerName) |
| { |
| local_pLayerName = pool->strDup(pLayerName); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_61; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_61, 1); |
| countingStream->write((uint64_t*)&cgen_var_61, 1 * 8); |
| if (countingStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) |
| { |
| // WARNING PTR CHECK |
| uint64_t cgen_var_62 = (uint64_t)(uintptr_t)local_pLayerName; |
| countingStream->putBe64(cgen_var_62); |
| if (local_pLayerName) |
| { |
| countingStream->putString(local_pLayerName); |
| } |
| } |
| else |
| { |
| countingStream->putString(local_pLayerName); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_63 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_63); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_64 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_64); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkExtensionProperties(countingStream, (VkExtensionProperties*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkEnumerateDeviceExtensionProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkEnumerateDeviceExtensionProperties = OP_vkEnumerateDeviceExtensionProperties; |
| stream->write(&opcode_vkEnumerateDeviceExtensionProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkEnumerateDeviceExtensionProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_65; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_65, 1); |
| stream->write((uint64_t*)&cgen_var_65, 1 * 8); |
| if (stream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) |
| { |
| // WARNING PTR CHECK |
| uint64_t cgen_var_66 = (uint64_t)(uintptr_t)local_pLayerName; |
| stream->putBe64(cgen_var_66); |
| if (local_pLayerName) |
| { |
| stream->putString(local_pLayerName); |
| } |
| } |
| else |
| { |
| stream->putString(local_pLayerName); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_67 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_67); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_68 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_68); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkExtensionProperties* check_pProperties; |
| check_pProperties = (VkExtensionProperties*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkExtensionProperties(mImpl->resources(), (VkExtensionProperties*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties returnUnmarshal"); |
| VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0; |
| stream->read(&vkEnumerateDeviceExtensionProperties_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkEnumerateDeviceExtensionProperties");; |
| return vkEnumerateDeviceExtensionProperties_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkEnumerateInstanceLayerProperties( |
| uint32_t* pPropertyCount, |
| VkLayerProperties* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties encode"); |
| mImpl->log("start vkEnumerateInstanceLayerProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| countingStream->rewind(); |
| { |
| // WARNING PTR CHECK |
| uint64_t cgen_var_71 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_71); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_72 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_72); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkLayerProperties(countingStream, (VkLayerProperties*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkEnumerateInstanceLayerProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkEnumerateInstanceLayerProperties = OP_vkEnumerateInstanceLayerProperties; |
| stream->write(&opcode_vkEnumerateInstanceLayerProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkEnumerateInstanceLayerProperties, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_73 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_73); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_74 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_74); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkLayerProperties* check_pProperties; |
| check_pProperties = (VkLayerProperties*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkLayerProperties(mImpl->resources(), (VkLayerProperties*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties returnUnmarshal"); |
| VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0; |
| stream->read(&vkEnumerateInstanceLayerProperties_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkEnumerateInstanceLayerProperties");; |
| return vkEnumerateInstanceLayerProperties_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkEnumerateDeviceLayerProperties( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkLayerProperties* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties encode"); |
| mImpl->log("start vkEnumerateDeviceLayerProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_77; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_77, 1); |
| countingStream->write((uint64_t*)&cgen_var_77, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_78 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_78); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_79 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_79); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkLayerProperties(countingStream, (VkLayerProperties*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkEnumerateDeviceLayerProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkEnumerateDeviceLayerProperties = OP_vkEnumerateDeviceLayerProperties; |
| stream->write(&opcode_vkEnumerateDeviceLayerProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkEnumerateDeviceLayerProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_80; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_80, 1); |
| stream->write((uint64_t*)&cgen_var_80, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_81 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_81); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_82 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_82); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkLayerProperties* check_pProperties; |
| check_pProperties = (VkLayerProperties*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkLayerProperties(mImpl->resources(), (VkLayerProperties*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties returnUnmarshal"); |
| VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0; |
| stream->read(&vkEnumerateDeviceLayerProperties_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkEnumerateDeviceLayerProperties");; |
| return vkEnumerateDeviceLayerProperties_VkResult_return; |
| } |
| |
| void VkEncoder::vkGetDeviceQueue( |
| VkDevice device, |
| uint32_t queueFamilyIndex, |
| uint32_t queueIndex, |
| VkQueue* pQueue) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDeviceQueue encode"); |
| mImpl->log("start vkGetDeviceQueue"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_queueFamilyIndex; |
| uint32_t local_queueIndex; |
| local_device = device; |
| local_queueFamilyIndex = queueFamilyIndex; |
| local_queueIndex = queueIndex; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_85; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_85, 1); |
| countingStream->write((uint64_t*)&cgen_var_85, 1 * 8); |
| countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_queueIndex, sizeof(uint32_t)); |
| uint64_t cgen_var_86; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(pQueue, &cgen_var_86, 1); |
| countingStream->write((uint64_t*)&cgen_var_86, 8); |
| } |
| uint32_t packetSize_vkGetDeviceQueue = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDeviceQueue = OP_vkGetDeviceQueue; |
| stream->write(&opcode_vkGetDeviceQueue, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDeviceQueue, sizeof(uint32_t)); |
| uint64_t cgen_var_87; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_87, 1); |
| stream->write((uint64_t*)&cgen_var_87, 1 * 8); |
| stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_queueIndex, sizeof(uint32_t)); |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_88; |
| stream->handleMapping()->mapHandles_VkQueue_u64(pQueue, &cgen_var_88, 1); |
| stream->write((uint64_t*)&cgen_var_88, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkGetDeviceQueue readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_89; |
| stream->read((uint64_t*)&cgen_var_89, 8); |
| stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_89, (VkQueue*)pQueue, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkGetDeviceQueue returnUnmarshal"); |
| mImpl->log("finish vkGetDeviceQueue");; |
| } |
| |
| VkResult VkEncoder::vkQueueSubmit( |
| VkQueue queue, |
| uint32_t submitCount, |
| const VkSubmitInfo* pSubmits, |
| VkFence fence) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkQueueSubmit encode"); |
| mImpl->log("start vkQueueSubmit"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkQueue local_queue; |
| uint32_t local_submitCount; |
| VkSubmitInfo* local_pSubmits; |
| VkFence local_fence; |
| local_queue = queue; |
| local_submitCount = submitCount; |
| local_pSubmits = nullptr; |
| if (pSubmits) |
| { |
| local_pSubmits = (VkSubmitInfo*)pool->alloc(((submitCount)) * sizeof(const VkSubmitInfo)); |
| for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i) |
| { |
| deepcopy_VkSubmitInfo(pool, pSubmits + i, (VkSubmitInfo*)(local_pSubmits + i)); |
| } |
| } |
| local_fence = fence; |
| if (local_pSubmits) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i) |
| { |
| transform_tohost_VkSubmitInfo(mImpl->resources(), (VkSubmitInfo*)(local_pSubmits + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_90; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_90, 1); |
| countingStream->write((uint64_t*)&cgen_var_90, 1 * 8); |
| countingStream->write((uint32_t*)&local_submitCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i) |
| { |
| marshal_VkSubmitInfo(countingStream, (VkSubmitInfo*)(local_pSubmits + i)); |
| } |
| uint64_t cgen_var_91; |
| countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_91, 1); |
| countingStream->write((uint64_t*)&cgen_var_91, 1 * 8); |
| } |
| uint32_t packetSize_vkQueueSubmit = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkQueueSubmit = OP_vkQueueSubmit; |
| stream->write(&opcode_vkQueueSubmit, sizeof(uint32_t)); |
| stream->write(&packetSize_vkQueueSubmit, sizeof(uint32_t)); |
| uint64_t cgen_var_92; |
| stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_92, 1); |
| stream->write((uint64_t*)&cgen_var_92, 1 * 8); |
| stream->write((uint32_t*)&local_submitCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i) |
| { |
| marshal_VkSubmitInfo(stream, (VkSubmitInfo*)(local_pSubmits + i)); |
| } |
| uint64_t cgen_var_93; |
| stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_93, 1); |
| stream->write((uint64_t*)&cgen_var_93, 1 * 8); |
| AEMU_SCOPED_TRACE("vkQueueSubmit readParams"); |
| AEMU_SCOPED_TRACE("vkQueueSubmit returnUnmarshal"); |
| VkResult vkQueueSubmit_VkResult_return = (VkResult)0; |
| stream->read(&vkQueueSubmit_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkQueueSubmit");; |
| return vkQueueSubmit_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkQueueWaitIdle( |
| VkQueue queue) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkQueueWaitIdle encode"); |
| mImpl->log("start vkQueueWaitIdle"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkQueue local_queue; |
| local_queue = queue; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_94; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_94, 1); |
| countingStream->write((uint64_t*)&cgen_var_94, 1 * 8); |
| } |
| uint32_t packetSize_vkQueueWaitIdle = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkQueueWaitIdle = OP_vkQueueWaitIdle; |
| stream->write(&opcode_vkQueueWaitIdle, sizeof(uint32_t)); |
| stream->write(&packetSize_vkQueueWaitIdle, sizeof(uint32_t)); |
| uint64_t cgen_var_95; |
| stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_95, 1); |
| stream->write((uint64_t*)&cgen_var_95, 1 * 8); |
| AEMU_SCOPED_TRACE("vkQueueWaitIdle readParams"); |
| AEMU_SCOPED_TRACE("vkQueueWaitIdle returnUnmarshal"); |
| VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0; |
| stream->read(&vkQueueWaitIdle_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkQueueWaitIdle");; |
| return vkQueueWaitIdle_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkDeviceWaitIdle( |
| VkDevice device) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDeviceWaitIdle encode"); |
| mImpl->log("start vkDeviceWaitIdle"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| local_device = device; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_96; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_96, 1); |
| countingStream->write((uint64_t*)&cgen_var_96, 1 * 8); |
| } |
| uint32_t packetSize_vkDeviceWaitIdle = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDeviceWaitIdle = OP_vkDeviceWaitIdle; |
| stream->write(&opcode_vkDeviceWaitIdle, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDeviceWaitIdle, sizeof(uint32_t)); |
| uint64_t cgen_var_97; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_97, 1); |
| stream->write((uint64_t*)&cgen_var_97, 1 * 8); |
| AEMU_SCOPED_TRACE("vkDeviceWaitIdle readParams"); |
| AEMU_SCOPED_TRACE("vkDeviceWaitIdle returnUnmarshal"); |
| VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0; |
| stream->read(&vkDeviceWaitIdle_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkDeviceWaitIdle");; |
| return vkDeviceWaitIdle_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkAllocateMemory( |
| VkDevice device, |
| const VkMemoryAllocateInfo* pAllocateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDeviceMemory* pMemory) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkAllocateMemory encode"); |
| mImpl->log("start vkAllocateMemory"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkMemoryAllocateInfo* local_pAllocateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pAllocateInfo = nullptr; |
| if (pAllocateInfo) |
| { |
| local_pAllocateInfo = (VkMemoryAllocateInfo*)pool->alloc(sizeof(const VkMemoryAllocateInfo)); |
| deepcopy_VkMemoryAllocateInfo(pool, pAllocateInfo, (VkMemoryAllocateInfo*)(local_pAllocateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocateInfo) |
| { |
| transform_tohost_VkMemoryAllocateInfo(mImpl->resources(), (VkMemoryAllocateInfo*)(local_pAllocateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_98; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_98, 1); |
| countingStream->write((uint64_t*)&cgen_var_98, 1 * 8); |
| marshal_VkMemoryAllocateInfo(countingStream, (VkMemoryAllocateInfo*)(local_pAllocateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_99 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_99); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_100; |
| countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(pMemory, &cgen_var_100, 1); |
| countingStream->write((uint64_t*)&cgen_var_100, 8); |
| } |
| uint32_t packetSize_vkAllocateMemory = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkAllocateMemory = OP_vkAllocateMemory; |
| stream->write(&opcode_vkAllocateMemory, sizeof(uint32_t)); |
| stream->write(&packetSize_vkAllocateMemory, sizeof(uint32_t)); |
| uint64_t cgen_var_101; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_101, 1); |
| stream->write((uint64_t*)&cgen_var_101, 1 * 8); |
| marshal_VkMemoryAllocateInfo(stream, (VkMemoryAllocateInfo*)(local_pAllocateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_102 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_102); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_103; |
| stream->handleMapping()->mapHandles_VkDeviceMemory_u64(pMemory, &cgen_var_103, 1); |
| stream->write((uint64_t*)&cgen_var_103, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkAllocateMemory readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_104; |
| stream->read((uint64_t*)&cgen_var_104, 8); |
| stream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_104, (VkDeviceMemory*)pMemory, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkAllocateMemory returnUnmarshal"); |
| VkResult vkAllocateMemory_VkResult_return = (VkResult)0; |
| stream->read(&vkAllocateMemory_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkAllocateMemory");; |
| return vkAllocateMemory_VkResult_return; |
| } |
| |
| void VkEncoder::vkFreeMemory( |
| VkDevice device, |
| VkDeviceMemory memory, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkFreeMemory encode"); |
| mImpl->log("start vkFreeMemory"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDeviceMemory local_memory; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_memory = memory; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0); |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_105; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_105, 1); |
| countingStream->write((uint64_t*)&cgen_var_105, 1 * 8); |
| uint64_t cgen_var_106; |
| countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_106, 1); |
| countingStream->write((uint64_t*)&cgen_var_106, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_107 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_107); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkFreeMemory = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkFreeMemory = OP_vkFreeMemory; |
| stream->write(&opcode_vkFreeMemory, sizeof(uint32_t)); |
| stream->write(&packetSize_vkFreeMemory, sizeof(uint32_t)); |
| uint64_t cgen_var_108; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_108, 1); |
| stream->write((uint64_t*)&cgen_var_108, 1 * 8); |
| uint64_t cgen_var_109; |
| stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_109, 1); |
| stream->write((uint64_t*)&cgen_var_109, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_110 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_110); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkFreeMemory readParams"); |
| AEMU_SCOPED_TRACE("vkFreeMemory returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkDeviceMemory((VkDeviceMemory*)&memory); |
| mImpl->log("finish vkFreeMemory");; |
| } |
| |
| VkResult VkEncoder::vkMapMemory( |
| VkDevice device, |
| VkDeviceMemory memory, |
| VkDeviceSize offset, |
| VkDeviceSize size, |
| VkMemoryMapFlags flags, |
| void** ppData) |
| { |
| AEMU_SCOPED_TRACE("vkMapMemory resourceEvent"); |
| VkResult vkMapMemory_VkResult_return = (VkResult)0; |
| vkMapMemory_VkResult_return = mImpl->resources()->on_vkMapMemory(this, VK_SUCCESS, device, memory, offset, size, flags, ppData); |
| mImpl->log("finish vkMapMemory");; |
| return vkMapMemory_VkResult_return; |
| } |
| |
| void VkEncoder::vkUnmapMemory( |
| VkDevice device, |
| VkDeviceMemory memory) |
| { |
| AEMU_SCOPED_TRACE("vkUnmapMemory resourceEvent"); |
| mImpl->resources()->on_vkUnmapMemory(this, device, memory); |
| } |
| |
| VkResult VkEncoder::vkFlushMappedMemoryRanges( |
| VkDevice device, |
| uint32_t memoryRangeCount, |
| const VkMappedMemoryRange* pMemoryRanges) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges encode"); |
| mImpl->log("start vkFlushMappedMemoryRanges"); |
| VALIDATE_RET(VkResult, VK_SUCCESS, mImpl->validation()->on_vkFlushMappedMemoryRanges(this, VK_SUCCESS, device, memoryRangeCount, pMemoryRanges)); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_memoryRangeCount; |
| VkMappedMemoryRange* local_pMemoryRanges; |
| local_device = device; |
| local_memoryRangeCount = memoryRangeCount; |
| local_pMemoryRanges = nullptr; |
| if (pMemoryRanges) |
| { |
| local_pMemoryRanges = (VkMappedMemoryRange*)pool->alloc(((memoryRangeCount)) * sizeof(const VkMappedMemoryRange)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i) |
| { |
| deepcopy_VkMappedMemoryRange(pool, pMemoryRanges + i, (VkMappedMemoryRange*)(local_pMemoryRanges + i)); |
| } |
| } |
| if (local_pMemoryRanges) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i) |
| { |
| transform_tohost_VkMappedMemoryRange(mImpl->resources(), (VkMappedMemoryRange*)(local_pMemoryRanges + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_111; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_111, 1); |
| countingStream->write((uint64_t*)&cgen_var_111, 1 * 8); |
| countingStream->write((uint32_t*)&local_memoryRangeCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i) |
| { |
| marshal_VkMappedMemoryRange(countingStream, (VkMappedMemoryRange*)(local_pMemoryRanges + i)); |
| } |
| } |
| if (!resources->usingDirectMapping()) |
| { |
| for (uint32_t i = 0; i < memoryRangeCount; ++i) |
| { |
| auto range = pMemoryRanges[i]; |
| auto memory = pMemoryRanges[i].memory; |
| auto size = pMemoryRanges[i].size; |
| auto offset = pMemoryRanges[i].offset; |
| uint64_t streamSize = 0; |
| if (!memory) { countingStream->write(&streamSize, sizeof(uint64_t)); continue; }; |
| auto hostPtr = resources->getMappedPointer(memory); |
| auto actualSize = size == VK_WHOLE_SIZE ? resources->getMappedSize(memory) : size; |
| if (!hostPtr) { countingStream->write(&streamSize, sizeof(uint64_t)); continue; }; |
| streamSize = actualSize; |
| countingStream->write(&streamSize, sizeof(uint64_t)); |
| uint8_t* targetRange = hostPtr + offset; |
| countingStream->write(targetRange, actualSize); |
| } |
| } |
| uint32_t packetSize_vkFlushMappedMemoryRanges = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkFlushMappedMemoryRanges = OP_vkFlushMappedMemoryRanges; |
| stream->write(&opcode_vkFlushMappedMemoryRanges, sizeof(uint32_t)); |
| stream->write(&packetSize_vkFlushMappedMemoryRanges, sizeof(uint32_t)); |
| uint64_t cgen_var_112; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_112, 1); |
| stream->write((uint64_t*)&cgen_var_112, 1 * 8); |
| stream->write((uint32_t*)&local_memoryRangeCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i) |
| { |
| marshal_VkMappedMemoryRange(stream, (VkMappedMemoryRange*)(local_pMemoryRanges + i)); |
| } |
| if (!resources->usingDirectMapping()) |
| { |
| for (uint32_t i = 0; i < memoryRangeCount; ++i) |
| { |
| auto range = pMemoryRanges[i]; |
| auto memory = pMemoryRanges[i].memory; |
| auto size = pMemoryRanges[i].size; |
| auto offset = pMemoryRanges[i].offset; |
| uint64_t streamSize = 0; |
| if (!memory) { stream->write(&streamSize, sizeof(uint64_t)); continue; }; |
| auto hostPtr = resources->getMappedPointer(memory); |
| auto actualSize = size == VK_WHOLE_SIZE ? resources->getMappedSize(memory) : size; |
| if (!hostPtr) { stream->write(&streamSize, sizeof(uint64_t)); continue; }; |
| streamSize = actualSize; |
| stream->write(&streamSize, sizeof(uint64_t)); |
| uint8_t* targetRange = hostPtr + offset; |
| stream->write(targetRange, actualSize); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges readParams"); |
| AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges returnUnmarshal"); |
| VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0; |
| stream->read(&vkFlushMappedMemoryRanges_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkFlushMappedMemoryRanges");; |
| return vkFlushMappedMemoryRanges_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkInvalidateMappedMemoryRanges( |
| VkDevice device, |
| uint32_t memoryRangeCount, |
| const VkMappedMemoryRange* pMemoryRanges) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges encode"); |
| mImpl->log("start vkInvalidateMappedMemoryRanges"); |
| VALIDATE_RET(VkResult, VK_SUCCESS, mImpl->validation()->on_vkInvalidateMappedMemoryRanges(this, VK_SUCCESS, device, memoryRangeCount, pMemoryRanges)); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_memoryRangeCount; |
| VkMappedMemoryRange* local_pMemoryRanges; |
| local_device = device; |
| local_memoryRangeCount = memoryRangeCount; |
| local_pMemoryRanges = nullptr; |
| if (pMemoryRanges) |
| { |
| local_pMemoryRanges = (VkMappedMemoryRange*)pool->alloc(((memoryRangeCount)) * sizeof(const VkMappedMemoryRange)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i) |
| { |
| deepcopy_VkMappedMemoryRange(pool, pMemoryRanges + i, (VkMappedMemoryRange*)(local_pMemoryRanges + i)); |
| } |
| } |
| if (local_pMemoryRanges) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i) |
| { |
| transform_tohost_VkMappedMemoryRange(mImpl->resources(), (VkMappedMemoryRange*)(local_pMemoryRanges + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_113; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_113, 1); |
| countingStream->write((uint64_t*)&cgen_var_113, 1 * 8); |
| countingStream->write((uint32_t*)&local_memoryRangeCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i) |
| { |
| marshal_VkMappedMemoryRange(countingStream, (VkMappedMemoryRange*)(local_pMemoryRanges + i)); |
| } |
| } |
| uint32_t packetSize_vkInvalidateMappedMemoryRanges = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkInvalidateMappedMemoryRanges = OP_vkInvalidateMappedMemoryRanges; |
| stream->write(&opcode_vkInvalidateMappedMemoryRanges, sizeof(uint32_t)); |
| stream->write(&packetSize_vkInvalidateMappedMemoryRanges, sizeof(uint32_t)); |
| uint64_t cgen_var_114; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_114, 1); |
| stream->write((uint64_t*)&cgen_var_114, 1 * 8); |
| stream->write((uint32_t*)&local_memoryRangeCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i) |
| { |
| marshal_VkMappedMemoryRange(stream, (VkMappedMemoryRange*)(local_pMemoryRanges + i)); |
| } |
| AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges readParams"); |
| AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges returnUnmarshal"); |
| VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0; |
| stream->read(&vkInvalidateMappedMemoryRanges_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| if (!resources->usingDirectMapping()) |
| { |
| for (uint32_t i = 0; i < memoryRangeCount; ++i) |
| { |
| auto range = pMemoryRanges[i]; |
| auto memory = pMemoryRanges[i].memory; |
| auto size = pMemoryRanges[i].size; |
| auto offset = pMemoryRanges[i].offset; |
| uint64_t streamSize = 0; |
| if (!memory) { stream->read(&streamSize, sizeof(uint64_t)); continue; }; |
| auto hostPtr = resources->getMappedPointer(memory); |
| auto actualSize = size == VK_WHOLE_SIZE ? resources->getMappedSize(memory) : size; |
| if (!hostPtr) { stream->read(&streamSize, sizeof(uint64_t)); continue; }; |
| streamSize = actualSize; |
| stream->read(&streamSize, sizeof(uint64_t)); |
| uint8_t* targetRange = hostPtr + offset; |
| stream->read(targetRange, actualSize); |
| } |
| } |
| mImpl->log("finish vkInvalidateMappedMemoryRanges");; |
| return vkInvalidateMappedMemoryRanges_VkResult_return; |
| } |
| |
| void VkEncoder::vkGetDeviceMemoryCommitment( |
| VkDevice device, |
| VkDeviceMemory memory, |
| VkDeviceSize* pCommittedMemoryInBytes) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment encode"); |
| mImpl->log("start vkGetDeviceMemoryCommitment"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDeviceMemory local_memory; |
| local_device = device; |
| local_memory = memory; |
| mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0); |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_115; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_115, 1); |
| countingStream->write((uint64_t*)&cgen_var_115, 1 * 8); |
| uint64_t cgen_var_116; |
| countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_116, 1); |
| countingStream->write((uint64_t*)&cgen_var_116, 1 * 8); |
| countingStream->write((VkDeviceSize*)pCommittedMemoryInBytes, sizeof(VkDeviceSize)); |
| } |
| uint32_t packetSize_vkGetDeviceMemoryCommitment = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDeviceMemoryCommitment = OP_vkGetDeviceMemoryCommitment; |
| stream->write(&opcode_vkGetDeviceMemoryCommitment, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDeviceMemoryCommitment, sizeof(uint32_t)); |
| uint64_t cgen_var_117; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_117, 1); |
| stream->write((uint64_t*)&cgen_var_117, 1 * 8); |
| uint64_t cgen_var_118; |
| stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_118, 1); |
| stream->write((uint64_t*)&cgen_var_118, 1 * 8); |
| stream->write((VkDeviceSize*)pCommittedMemoryInBytes, sizeof(VkDeviceSize)); |
| AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment readParams"); |
| stream->read((VkDeviceSize*)pCommittedMemoryInBytes, sizeof(VkDeviceSize)); |
| AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment returnUnmarshal"); |
| mImpl->log("finish vkGetDeviceMemoryCommitment");; |
| } |
| |
| VkResult VkEncoder::vkBindBufferMemory( |
| VkDevice device, |
| VkBuffer buffer, |
| VkDeviceMemory memory, |
| VkDeviceSize memoryOffset) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkBindBufferMemory encode"); |
| mImpl->log("start vkBindBufferMemory"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkBuffer local_buffer; |
| VkDeviceMemory local_memory; |
| VkDeviceSize local_memoryOffset; |
| local_device = device; |
| local_buffer = buffer; |
| local_memory = memory; |
| local_memoryOffset = memoryOffset; |
| mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)&local_memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0); |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_119; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_119, 1); |
| countingStream->write((uint64_t*)&cgen_var_119, 1 * 8); |
| uint64_t cgen_var_120; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_120, 1); |
| countingStream->write((uint64_t*)&cgen_var_120, 1 * 8); |
| uint64_t cgen_var_121; |
| countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_121, 1); |
| countingStream->write((uint64_t*)&cgen_var_121, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize)); |
| } |
| uint32_t packetSize_vkBindBufferMemory = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkBindBufferMemory = OP_vkBindBufferMemory; |
| stream->write(&opcode_vkBindBufferMemory, sizeof(uint32_t)); |
| stream->write(&packetSize_vkBindBufferMemory, sizeof(uint32_t)); |
| uint64_t cgen_var_122; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_122, 1); |
| stream->write((uint64_t*)&cgen_var_122, 1 * 8); |
| uint64_t cgen_var_123; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_123, 1); |
| stream->write((uint64_t*)&cgen_var_123, 1 * 8); |
| uint64_t cgen_var_124; |
| stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_124, 1); |
| stream->write((uint64_t*)&cgen_var_124, 1 * 8); |
| stream->write((VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize)); |
| AEMU_SCOPED_TRACE("vkBindBufferMemory readParams"); |
| AEMU_SCOPED_TRACE("vkBindBufferMemory returnUnmarshal"); |
| VkResult vkBindBufferMemory_VkResult_return = (VkResult)0; |
| stream->read(&vkBindBufferMemory_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkBindBufferMemory");; |
| return vkBindBufferMemory_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkBindImageMemory( |
| VkDevice device, |
| VkImage image, |
| VkDeviceMemory memory, |
| VkDeviceSize memoryOffset) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkBindImageMemory encode"); |
| mImpl->log("start vkBindImageMemory"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImage local_image; |
| VkDeviceMemory local_memory; |
| VkDeviceSize local_memoryOffset; |
| local_device = device; |
| local_image = image; |
| local_memory = memory; |
| local_memoryOffset = memoryOffset; |
| mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)&local_memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0); |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_125; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_125, 1); |
| countingStream->write((uint64_t*)&cgen_var_125, 1 * 8); |
| uint64_t cgen_var_126; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_126, 1); |
| countingStream->write((uint64_t*)&cgen_var_126, 1 * 8); |
| uint64_t cgen_var_127; |
| countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_127, 1); |
| countingStream->write((uint64_t*)&cgen_var_127, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize)); |
| } |
| uint32_t packetSize_vkBindImageMemory = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkBindImageMemory = OP_vkBindImageMemory; |
| stream->write(&opcode_vkBindImageMemory, sizeof(uint32_t)); |
| stream->write(&packetSize_vkBindImageMemory, sizeof(uint32_t)); |
| uint64_t cgen_var_128; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_128, 1); |
| stream->write((uint64_t*)&cgen_var_128, 1 * 8); |
| uint64_t cgen_var_129; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_129, 1); |
| stream->write((uint64_t*)&cgen_var_129, 1 * 8); |
| uint64_t cgen_var_130; |
| stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_130, 1); |
| stream->write((uint64_t*)&cgen_var_130, 1 * 8); |
| stream->write((VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize)); |
| AEMU_SCOPED_TRACE("vkBindImageMemory readParams"); |
| AEMU_SCOPED_TRACE("vkBindImageMemory returnUnmarshal"); |
| VkResult vkBindImageMemory_VkResult_return = (VkResult)0; |
| stream->read(&vkBindImageMemory_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkBindImageMemory");; |
| return vkBindImageMemory_VkResult_return; |
| } |
| |
| void VkEncoder::vkGetBufferMemoryRequirements( |
| VkDevice device, |
| VkBuffer buffer, |
| VkMemoryRequirements* pMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements encode"); |
| mImpl->log("start vkGetBufferMemoryRequirements"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkBuffer local_buffer; |
| local_device = device; |
| local_buffer = buffer; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_131; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_131, 1); |
| countingStream->write((uint64_t*)&cgen_var_131, 1 * 8); |
| uint64_t cgen_var_132; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_132, 1); |
| countingStream->write((uint64_t*)&cgen_var_132, 1 * 8); |
| marshal_VkMemoryRequirements(countingStream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| } |
| uint32_t packetSize_vkGetBufferMemoryRequirements = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetBufferMemoryRequirements = OP_vkGetBufferMemoryRequirements; |
| stream->write(&opcode_vkGetBufferMemoryRequirements, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetBufferMemoryRequirements, sizeof(uint32_t)); |
| uint64_t cgen_var_133; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_133, 1); |
| stream->write((uint64_t*)&cgen_var_133, 1 * 8); |
| uint64_t cgen_var_134; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_134, 1); |
| stream->write((uint64_t*)&cgen_var_134, 1 * 8); |
| marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements readParams"); |
| unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| if (pMemoryRequirements) |
| { |
| transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements)); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements returnUnmarshal"); |
| mImpl->log("finish vkGetBufferMemoryRequirements");; |
| } |
| |
| void VkEncoder::vkGetImageMemoryRequirements( |
| VkDevice device, |
| VkImage image, |
| VkMemoryRequirements* pMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements encode"); |
| mImpl->log("start vkGetImageMemoryRequirements"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImage local_image; |
| local_device = device; |
| local_image = image; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_135; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_135, 1); |
| countingStream->write((uint64_t*)&cgen_var_135, 1 * 8); |
| uint64_t cgen_var_136; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_136, 1); |
| countingStream->write((uint64_t*)&cgen_var_136, 1 * 8); |
| marshal_VkMemoryRequirements(countingStream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| } |
| uint32_t packetSize_vkGetImageMemoryRequirements = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetImageMemoryRequirements = OP_vkGetImageMemoryRequirements; |
| stream->write(&opcode_vkGetImageMemoryRequirements, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetImageMemoryRequirements, sizeof(uint32_t)); |
| uint64_t cgen_var_137; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_137, 1); |
| stream->write((uint64_t*)&cgen_var_137, 1 * 8); |
| uint64_t cgen_var_138; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_138, 1); |
| stream->write((uint64_t*)&cgen_var_138, 1 * 8); |
| marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements readParams"); |
| unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| if (pMemoryRequirements) |
| { |
| transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements)); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements returnUnmarshal"); |
| mImpl->log("finish vkGetImageMemoryRequirements");; |
| } |
| |
| void VkEncoder::vkGetImageSparseMemoryRequirements( |
| VkDevice device, |
| VkImage image, |
| uint32_t* pSparseMemoryRequirementCount, |
| VkSparseImageMemoryRequirements* pSparseMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements encode"); |
| mImpl->log("start vkGetImageSparseMemoryRequirements"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImage local_image; |
| local_device = device; |
| local_image = image; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_139; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_139, 1); |
| countingStream->write((uint64_t*)&cgen_var_139, 1 * 8); |
| uint64_t cgen_var_140; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_140, 1); |
| countingStream->write((uint64_t*)&cgen_var_140, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_141 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount; |
| countingStream->putBe64(cgen_var_141); |
| if (pSparseMemoryRequirementCount) |
| { |
| countingStream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_142 = (uint64_t)(uintptr_t)pSparseMemoryRequirements; |
| countingStream->putBe64(cgen_var_142); |
| if (pSparseMemoryRequirements) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| marshal_VkSparseImageMemoryRequirements(countingStream, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetImageSparseMemoryRequirements = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetImageSparseMemoryRequirements = OP_vkGetImageSparseMemoryRequirements; |
| stream->write(&opcode_vkGetImageSparseMemoryRequirements, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetImageSparseMemoryRequirements, sizeof(uint32_t)); |
| uint64_t cgen_var_143; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_143, 1); |
| stream->write((uint64_t*)&cgen_var_143, 1 * 8); |
| uint64_t cgen_var_144; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_144, 1); |
| stream->write((uint64_t*)&cgen_var_144, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_145 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount; |
| stream->putBe64(cgen_var_145); |
| if (pSparseMemoryRequirementCount) |
| { |
| stream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_146 = (uint64_t)(uintptr_t)pSparseMemoryRequirements; |
| stream->putBe64(cgen_var_146); |
| if (pSparseMemoryRequirements) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| marshal_VkSparseImageMemoryRequirements(stream, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pSparseMemoryRequirementCount; |
| check_pSparseMemoryRequirementCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pSparseMemoryRequirementCount) |
| { |
| if (!(check_pSparseMemoryRequirementCount)) |
| { |
| fprintf(stderr, "fatal: pSparseMemoryRequirementCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkSparseImageMemoryRequirements* check_pSparseMemoryRequirements; |
| check_pSparseMemoryRequirements = (VkSparseImageMemoryRequirements*)(uintptr_t)stream->getBe64(); |
| if (pSparseMemoryRequirements) |
| { |
| if (!(check_pSparseMemoryRequirements)) |
| { |
| fprintf(stderr, "fatal: pSparseMemoryRequirements inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| unmarshal_VkSparseImageMemoryRequirements(stream, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| if (pSparseMemoryRequirements) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| transform_fromhost_VkSparseImageMemoryRequirements(mImpl->resources(), (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements returnUnmarshal"); |
| mImpl->log("finish vkGetImageSparseMemoryRequirements");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkImageType type, |
| VkSampleCountFlagBits samples, |
| VkImageUsageFlags usage, |
| VkImageTiling tiling, |
| uint32_t* pPropertyCount, |
| VkSparseImageFormatProperties* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties encode"); |
| mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkFormat local_format; |
| VkImageType local_type; |
| VkSampleCountFlagBits local_samples; |
| VkImageUsageFlags local_usage; |
| VkImageTiling local_tiling; |
| local_physicalDevice = physicalDevice; |
| local_format = format; |
| local_type = type; |
| local_samples = samples; |
| local_usage = usage; |
| local_tiling = tiling; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_149; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_149, 1); |
| countingStream->write((uint64_t*)&cgen_var_149, 1 * 8); |
| countingStream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| countingStream->write((VkImageType*)&local_type, sizeof(VkImageType)); |
| countingStream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits)); |
| countingStream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags)); |
| countingStream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_150 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_150); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_151 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_151); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkSparseImageFormatProperties(countingStream, (VkSparseImageFormatProperties*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceSparseImageFormatProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceSparseImageFormatProperties = OP_vkGetPhysicalDeviceSparseImageFormatProperties; |
| stream->write(&opcode_vkGetPhysicalDeviceSparseImageFormatProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceSparseImageFormatProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_152; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_152, 1); |
| stream->write((uint64_t*)&cgen_var_152, 1 * 8); |
| stream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| stream->write((VkImageType*)&local_type, sizeof(VkImageType)); |
| stream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits)); |
| stream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags)); |
| stream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_153 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_153); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_154 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_154); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkSparseImageFormatProperties(stream, (VkSparseImageFormatProperties*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkSparseImageFormatProperties* check_pProperties; |
| check_pProperties = (VkSparseImageFormatProperties*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkSparseImageFormatProperties(stream, (VkSparseImageFormatProperties*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkSparseImageFormatProperties(mImpl->resources(), (VkSparseImageFormatProperties*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties");; |
| } |
| |
| VkResult VkEncoder::vkQueueBindSparse( |
| VkQueue queue, |
| uint32_t bindInfoCount, |
| const VkBindSparseInfo* pBindInfo, |
| VkFence fence) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkQueueBindSparse encode"); |
| mImpl->log("start vkQueueBindSparse"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkQueue local_queue; |
| uint32_t local_bindInfoCount; |
| VkBindSparseInfo* local_pBindInfo; |
| VkFence local_fence; |
| local_queue = queue; |
| local_bindInfoCount = bindInfoCount; |
| local_pBindInfo = nullptr; |
| if (pBindInfo) |
| { |
| local_pBindInfo = (VkBindSparseInfo*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindSparseInfo)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| deepcopy_VkBindSparseInfo(pool, pBindInfo + i, (VkBindSparseInfo*)(local_pBindInfo + i)); |
| } |
| } |
| local_fence = fence; |
| if (local_pBindInfo) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| transform_tohost_VkBindSparseInfo(mImpl->resources(), (VkBindSparseInfo*)(local_pBindInfo + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_157; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_157, 1); |
| countingStream->write((uint64_t*)&cgen_var_157, 1 * 8); |
| countingStream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| marshal_VkBindSparseInfo(countingStream, (VkBindSparseInfo*)(local_pBindInfo + i)); |
| } |
| uint64_t cgen_var_158; |
| countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_158, 1); |
| countingStream->write((uint64_t*)&cgen_var_158, 1 * 8); |
| } |
| uint32_t packetSize_vkQueueBindSparse = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkQueueBindSparse = OP_vkQueueBindSparse; |
| stream->write(&opcode_vkQueueBindSparse, sizeof(uint32_t)); |
| stream->write(&packetSize_vkQueueBindSparse, sizeof(uint32_t)); |
| uint64_t cgen_var_159; |
| stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_159, 1); |
| stream->write((uint64_t*)&cgen_var_159, 1 * 8); |
| stream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| marshal_VkBindSparseInfo(stream, (VkBindSparseInfo*)(local_pBindInfo + i)); |
| } |
| uint64_t cgen_var_160; |
| stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_160, 1); |
| stream->write((uint64_t*)&cgen_var_160, 1 * 8); |
| AEMU_SCOPED_TRACE("vkQueueBindSparse readParams"); |
| AEMU_SCOPED_TRACE("vkQueueBindSparse returnUnmarshal"); |
| VkResult vkQueueBindSparse_VkResult_return = (VkResult)0; |
| stream->read(&vkQueueBindSparse_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkQueueBindSparse");; |
| return vkQueueBindSparse_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkCreateFence( |
| VkDevice device, |
| const VkFenceCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkFence* pFence) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateFence encode"); |
| mImpl->log("start vkCreateFence"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkFenceCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkFenceCreateInfo*)pool->alloc(sizeof(const VkFenceCreateInfo)); |
| deepcopy_VkFenceCreateInfo(pool, pCreateInfo, (VkFenceCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkFenceCreateInfo(mImpl->resources(), (VkFenceCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_161; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_161, 1); |
| countingStream->write((uint64_t*)&cgen_var_161, 1 * 8); |
| marshal_VkFenceCreateInfo(countingStream, (VkFenceCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_162 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_162); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_163; |
| countingStream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_163, 1); |
| countingStream->write((uint64_t*)&cgen_var_163, 8); |
| } |
| uint32_t packetSize_vkCreateFence = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateFence = OP_vkCreateFence; |
| stream->write(&opcode_vkCreateFence, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateFence, sizeof(uint32_t)); |
| uint64_t cgen_var_164; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_164, 1); |
| stream->write((uint64_t*)&cgen_var_164, 1 * 8); |
| marshal_VkFenceCreateInfo(stream, (VkFenceCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_165 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_165); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_166; |
| stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_166, 1); |
| stream->write((uint64_t*)&cgen_var_166, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateFence readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_167; |
| stream->read((uint64_t*)&cgen_var_167, 8); |
| stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_167, (VkFence*)pFence, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateFence returnUnmarshal"); |
| VkResult vkCreateFence_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateFence_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateFence");; |
| return vkCreateFence_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyFence( |
| VkDevice device, |
| VkFence fence, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyFence encode"); |
| mImpl->log("start vkDestroyFence"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkFence local_fence; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_fence = fence; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_168; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_168, 1); |
| countingStream->write((uint64_t*)&cgen_var_168, 1 * 8); |
| uint64_t cgen_var_169; |
| countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_169, 1); |
| countingStream->write((uint64_t*)&cgen_var_169, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_170 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_170); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyFence = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyFence = OP_vkDestroyFence; |
| stream->write(&opcode_vkDestroyFence, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyFence, sizeof(uint32_t)); |
| uint64_t cgen_var_171; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_171, 1); |
| stream->write((uint64_t*)&cgen_var_171, 1 * 8); |
| uint64_t cgen_var_172; |
| stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_172, 1); |
| stream->write((uint64_t*)&cgen_var_172, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_173 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_173); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyFence readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyFence returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkFence((VkFence*)&fence); |
| mImpl->log("finish vkDestroyFence");; |
| } |
| |
| VkResult VkEncoder::vkResetFences( |
| VkDevice device, |
| uint32_t fenceCount, |
| const VkFence* pFences) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkResetFences encode"); |
| mImpl->log("start vkResetFences"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_fenceCount; |
| VkFence* local_pFences; |
| local_device = device; |
| local_fenceCount = fenceCount; |
| local_pFences = nullptr; |
| if (pFences) |
| { |
| local_pFences = (VkFence*)pool->dupArray(pFences, ((fenceCount)) * sizeof(const VkFence)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_174; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_174, 1); |
| countingStream->write((uint64_t*)&cgen_var_174, 1 * 8); |
| countingStream->write((uint32_t*)&local_fenceCount, sizeof(uint32_t)); |
| if (((fenceCount))) |
| { |
| uint64_t* cgen_var_175; |
| countingStream->alloc((void**)&cgen_var_175, ((fenceCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkFence_u64(local_pFences, cgen_var_175, ((fenceCount))); |
| countingStream->write((uint64_t*)cgen_var_175, ((fenceCount)) * 8); |
| } |
| } |
| uint32_t packetSize_vkResetFences = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkResetFences = OP_vkResetFences; |
| stream->write(&opcode_vkResetFences, sizeof(uint32_t)); |
| stream->write(&packetSize_vkResetFences, sizeof(uint32_t)); |
| uint64_t cgen_var_176; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_176, 1); |
| stream->write((uint64_t*)&cgen_var_176, 1 * 8); |
| stream->write((uint32_t*)&local_fenceCount, sizeof(uint32_t)); |
| if (((fenceCount))) |
| { |
| uint64_t* cgen_var_177; |
| stream->alloc((void**)&cgen_var_177, ((fenceCount)) * 8); |
| stream->handleMapping()->mapHandles_VkFence_u64(local_pFences, cgen_var_177, ((fenceCount))); |
| stream->write((uint64_t*)cgen_var_177, ((fenceCount)) * 8); |
| } |
| AEMU_SCOPED_TRACE("vkResetFences readParams"); |
| AEMU_SCOPED_TRACE("vkResetFences returnUnmarshal"); |
| VkResult vkResetFences_VkResult_return = (VkResult)0; |
| stream->read(&vkResetFences_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkResetFences");; |
| return vkResetFences_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetFenceStatus( |
| VkDevice device, |
| VkFence fence) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetFenceStatus encode"); |
| mImpl->log("start vkGetFenceStatus"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkFence local_fence; |
| local_device = device; |
| local_fence = fence; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_178; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_178, 1); |
| countingStream->write((uint64_t*)&cgen_var_178, 1 * 8); |
| uint64_t cgen_var_179; |
| countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_179, 1); |
| countingStream->write((uint64_t*)&cgen_var_179, 1 * 8); |
| } |
| uint32_t packetSize_vkGetFenceStatus = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetFenceStatus = OP_vkGetFenceStatus; |
| stream->write(&opcode_vkGetFenceStatus, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetFenceStatus, sizeof(uint32_t)); |
| uint64_t cgen_var_180; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_180, 1); |
| stream->write((uint64_t*)&cgen_var_180, 1 * 8); |
| uint64_t cgen_var_181; |
| stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_181, 1); |
| stream->write((uint64_t*)&cgen_var_181, 1 * 8); |
| AEMU_SCOPED_TRACE("vkGetFenceStatus readParams"); |
| AEMU_SCOPED_TRACE("vkGetFenceStatus returnUnmarshal"); |
| VkResult vkGetFenceStatus_VkResult_return = (VkResult)0; |
| stream->read(&vkGetFenceStatus_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetFenceStatus");; |
| return vkGetFenceStatus_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkWaitForFences( |
| VkDevice device, |
| uint32_t fenceCount, |
| const VkFence* pFences, |
| VkBool32 waitAll, |
| uint64_t timeout) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkWaitForFences encode"); |
| mImpl->log("start vkWaitForFences"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_fenceCount; |
| VkFence* local_pFences; |
| VkBool32 local_waitAll; |
| uint64_t local_timeout; |
| local_device = device; |
| local_fenceCount = fenceCount; |
| local_pFences = nullptr; |
| if (pFences) |
| { |
| local_pFences = (VkFence*)pool->dupArray(pFences, ((fenceCount)) * sizeof(const VkFence)); |
| } |
| local_waitAll = waitAll; |
| local_timeout = timeout; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_182; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_182, 1); |
| countingStream->write((uint64_t*)&cgen_var_182, 1 * 8); |
| countingStream->write((uint32_t*)&local_fenceCount, sizeof(uint32_t)); |
| if (((fenceCount))) |
| { |
| uint64_t* cgen_var_183; |
| countingStream->alloc((void**)&cgen_var_183, ((fenceCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkFence_u64(local_pFences, cgen_var_183, ((fenceCount))); |
| countingStream->write((uint64_t*)cgen_var_183, ((fenceCount)) * 8); |
| } |
| countingStream->write((VkBool32*)&local_waitAll, sizeof(VkBool32)); |
| countingStream->write((uint64_t*)&local_timeout, sizeof(uint64_t)); |
| } |
| uint32_t packetSize_vkWaitForFences = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkWaitForFences = OP_vkWaitForFences; |
| stream->write(&opcode_vkWaitForFences, sizeof(uint32_t)); |
| stream->write(&packetSize_vkWaitForFences, sizeof(uint32_t)); |
| uint64_t cgen_var_184; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_184, 1); |
| stream->write((uint64_t*)&cgen_var_184, 1 * 8); |
| stream->write((uint32_t*)&local_fenceCount, sizeof(uint32_t)); |
| if (((fenceCount))) |
| { |
| uint64_t* cgen_var_185; |
| stream->alloc((void**)&cgen_var_185, ((fenceCount)) * 8); |
| stream->handleMapping()->mapHandles_VkFence_u64(local_pFences, cgen_var_185, ((fenceCount))); |
| stream->write((uint64_t*)cgen_var_185, ((fenceCount)) * 8); |
| } |
| stream->write((VkBool32*)&local_waitAll, sizeof(VkBool32)); |
| stream->write((uint64_t*)&local_timeout, sizeof(uint64_t)); |
| AEMU_SCOPED_TRACE("vkWaitForFences readParams"); |
| AEMU_SCOPED_TRACE("vkWaitForFences returnUnmarshal"); |
| VkResult vkWaitForFences_VkResult_return = (VkResult)0; |
| stream->read(&vkWaitForFences_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkWaitForFences");; |
| return vkWaitForFences_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkCreateSemaphore( |
| VkDevice device, |
| const VkSemaphoreCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSemaphore* pSemaphore) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateSemaphore encode"); |
| mImpl->log("start vkCreateSemaphore"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSemaphoreCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkSemaphoreCreateInfo*)pool->alloc(sizeof(const VkSemaphoreCreateInfo)); |
| deepcopy_VkSemaphoreCreateInfo(pool, pCreateInfo, (VkSemaphoreCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkSemaphoreCreateInfo(mImpl->resources(), (VkSemaphoreCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_186; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_186, 1); |
| countingStream->write((uint64_t*)&cgen_var_186, 1 * 8); |
| marshal_VkSemaphoreCreateInfo(countingStream, (VkSemaphoreCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_187 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_187); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_188; |
| countingStream->handleMapping()->mapHandles_VkSemaphore_u64(pSemaphore, &cgen_var_188, 1); |
| countingStream->write((uint64_t*)&cgen_var_188, 8); |
| } |
| uint32_t packetSize_vkCreateSemaphore = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateSemaphore = OP_vkCreateSemaphore; |
| stream->write(&opcode_vkCreateSemaphore, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateSemaphore, sizeof(uint32_t)); |
| uint64_t cgen_var_189; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_189, 1); |
| stream->write((uint64_t*)&cgen_var_189, 1 * 8); |
| marshal_VkSemaphoreCreateInfo(stream, (VkSemaphoreCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_190 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_190); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_191; |
| stream->handleMapping()->mapHandles_VkSemaphore_u64(pSemaphore, &cgen_var_191, 1); |
| stream->write((uint64_t*)&cgen_var_191, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateSemaphore readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_192; |
| stream->read((uint64_t*)&cgen_var_192, 8); |
| stream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_192, (VkSemaphore*)pSemaphore, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateSemaphore returnUnmarshal"); |
| VkResult vkCreateSemaphore_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateSemaphore_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateSemaphore");; |
| return vkCreateSemaphore_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroySemaphore( |
| VkDevice device, |
| VkSemaphore semaphore, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroySemaphore encode"); |
| mImpl->log("start vkDestroySemaphore"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSemaphore local_semaphore; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_semaphore = semaphore; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_193; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_193, 1); |
| countingStream->write((uint64_t*)&cgen_var_193, 1 * 8); |
| uint64_t cgen_var_194; |
| countingStream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_194, 1); |
| countingStream->write((uint64_t*)&cgen_var_194, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_195 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_195); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroySemaphore = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroySemaphore = OP_vkDestroySemaphore; |
| stream->write(&opcode_vkDestroySemaphore, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroySemaphore, sizeof(uint32_t)); |
| uint64_t cgen_var_196; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_196, 1); |
| stream->write((uint64_t*)&cgen_var_196, 1 * 8); |
| uint64_t cgen_var_197; |
| stream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_197, 1); |
| stream->write((uint64_t*)&cgen_var_197, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_198 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_198); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroySemaphore readParams"); |
| AEMU_SCOPED_TRACE("vkDestroySemaphore returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkSemaphore((VkSemaphore*)&semaphore); |
| mImpl->log("finish vkDestroySemaphore");; |
| } |
| |
| VkResult VkEncoder::vkCreateEvent( |
| VkDevice device, |
| const VkEventCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkEvent* pEvent) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateEvent encode"); |
| mImpl->log("start vkCreateEvent"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkEventCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkEventCreateInfo*)pool->alloc(sizeof(const VkEventCreateInfo)); |
| deepcopy_VkEventCreateInfo(pool, pCreateInfo, (VkEventCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkEventCreateInfo(mImpl->resources(), (VkEventCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_199; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_199, 1); |
| countingStream->write((uint64_t*)&cgen_var_199, 1 * 8); |
| marshal_VkEventCreateInfo(countingStream, (VkEventCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_200 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_200); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_201; |
| countingStream->handleMapping()->mapHandles_VkEvent_u64(pEvent, &cgen_var_201, 1); |
| countingStream->write((uint64_t*)&cgen_var_201, 8); |
| } |
| uint32_t packetSize_vkCreateEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateEvent = OP_vkCreateEvent; |
| stream->write(&opcode_vkCreateEvent, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateEvent, sizeof(uint32_t)); |
| uint64_t cgen_var_202; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_202, 1); |
| stream->write((uint64_t*)&cgen_var_202, 1 * 8); |
| marshal_VkEventCreateInfo(stream, (VkEventCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_203 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_203); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_204; |
| stream->handleMapping()->mapHandles_VkEvent_u64(pEvent, &cgen_var_204, 1); |
| stream->write((uint64_t*)&cgen_var_204, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateEvent readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_205; |
| stream->read((uint64_t*)&cgen_var_205, 8); |
| stream->handleMapping()->mapHandles_u64_VkEvent(&cgen_var_205, (VkEvent*)pEvent, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateEvent returnUnmarshal"); |
| VkResult vkCreateEvent_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateEvent_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateEvent");; |
| return vkCreateEvent_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyEvent( |
| VkDevice device, |
| VkEvent event, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyEvent encode"); |
| mImpl->log("start vkDestroyEvent"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkEvent local_event; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_event = event; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_206; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_206, 1); |
| countingStream->write((uint64_t*)&cgen_var_206, 1 * 8); |
| uint64_t cgen_var_207; |
| countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_207, 1); |
| countingStream->write((uint64_t*)&cgen_var_207, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_208 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_208); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyEvent = OP_vkDestroyEvent; |
| stream->write(&opcode_vkDestroyEvent, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyEvent, sizeof(uint32_t)); |
| uint64_t cgen_var_209; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_209, 1); |
| stream->write((uint64_t*)&cgen_var_209, 1 * 8); |
| uint64_t cgen_var_210; |
| stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_210, 1); |
| stream->write((uint64_t*)&cgen_var_210, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_211 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_211); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyEvent readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyEvent returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkEvent((VkEvent*)&event); |
| mImpl->log("finish vkDestroyEvent");; |
| } |
| |
| VkResult VkEncoder::vkGetEventStatus( |
| VkDevice device, |
| VkEvent event) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetEventStatus encode"); |
| mImpl->log("start vkGetEventStatus"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkEvent local_event; |
| local_device = device; |
| local_event = event; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_212; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_212, 1); |
| countingStream->write((uint64_t*)&cgen_var_212, 1 * 8); |
| uint64_t cgen_var_213; |
| countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_213, 1); |
| countingStream->write((uint64_t*)&cgen_var_213, 1 * 8); |
| } |
| uint32_t packetSize_vkGetEventStatus = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetEventStatus = OP_vkGetEventStatus; |
| stream->write(&opcode_vkGetEventStatus, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetEventStatus, sizeof(uint32_t)); |
| uint64_t cgen_var_214; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_214, 1); |
| stream->write((uint64_t*)&cgen_var_214, 1 * 8); |
| uint64_t cgen_var_215; |
| stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_215, 1); |
| stream->write((uint64_t*)&cgen_var_215, 1 * 8); |
| AEMU_SCOPED_TRACE("vkGetEventStatus readParams"); |
| AEMU_SCOPED_TRACE("vkGetEventStatus returnUnmarshal"); |
| VkResult vkGetEventStatus_VkResult_return = (VkResult)0; |
| stream->read(&vkGetEventStatus_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetEventStatus");; |
| return vkGetEventStatus_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkSetEvent( |
| VkDevice device, |
| VkEvent event) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkSetEvent encode"); |
| mImpl->log("start vkSetEvent"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkEvent local_event; |
| local_device = device; |
| local_event = event; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_216; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_216, 1); |
| countingStream->write((uint64_t*)&cgen_var_216, 1 * 8); |
| uint64_t cgen_var_217; |
| countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_217, 1); |
| countingStream->write((uint64_t*)&cgen_var_217, 1 * 8); |
| } |
| uint32_t packetSize_vkSetEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkSetEvent = OP_vkSetEvent; |
| stream->write(&opcode_vkSetEvent, sizeof(uint32_t)); |
| stream->write(&packetSize_vkSetEvent, sizeof(uint32_t)); |
| uint64_t cgen_var_218; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_218, 1); |
| stream->write((uint64_t*)&cgen_var_218, 1 * 8); |
| uint64_t cgen_var_219; |
| stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_219, 1); |
| stream->write((uint64_t*)&cgen_var_219, 1 * 8); |
| AEMU_SCOPED_TRACE("vkSetEvent readParams"); |
| AEMU_SCOPED_TRACE("vkSetEvent returnUnmarshal"); |
| VkResult vkSetEvent_VkResult_return = (VkResult)0; |
| stream->read(&vkSetEvent_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkSetEvent");; |
| return vkSetEvent_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkResetEvent( |
| VkDevice device, |
| VkEvent event) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkResetEvent encode"); |
| mImpl->log("start vkResetEvent"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkEvent local_event; |
| local_device = device; |
| local_event = event; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_220; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_220, 1); |
| countingStream->write((uint64_t*)&cgen_var_220, 1 * 8); |
| uint64_t cgen_var_221; |
| countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_221, 1); |
| countingStream->write((uint64_t*)&cgen_var_221, 1 * 8); |
| } |
| uint32_t packetSize_vkResetEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkResetEvent = OP_vkResetEvent; |
| stream->write(&opcode_vkResetEvent, sizeof(uint32_t)); |
| stream->write(&packetSize_vkResetEvent, sizeof(uint32_t)); |
| uint64_t cgen_var_222; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_222, 1); |
| stream->write((uint64_t*)&cgen_var_222, 1 * 8); |
| uint64_t cgen_var_223; |
| stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_223, 1); |
| stream->write((uint64_t*)&cgen_var_223, 1 * 8); |
| AEMU_SCOPED_TRACE("vkResetEvent readParams"); |
| AEMU_SCOPED_TRACE("vkResetEvent returnUnmarshal"); |
| VkResult vkResetEvent_VkResult_return = (VkResult)0; |
| stream->read(&vkResetEvent_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkResetEvent");; |
| return vkResetEvent_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkCreateQueryPool( |
| VkDevice device, |
| const VkQueryPoolCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkQueryPool* pQueryPool) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateQueryPool encode"); |
| mImpl->log("start vkCreateQueryPool"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkQueryPoolCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkQueryPoolCreateInfo*)pool->alloc(sizeof(const VkQueryPoolCreateInfo)); |
| deepcopy_VkQueryPoolCreateInfo(pool, pCreateInfo, (VkQueryPoolCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkQueryPoolCreateInfo(mImpl->resources(), (VkQueryPoolCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_224; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_224, 1); |
| countingStream->write((uint64_t*)&cgen_var_224, 1 * 8); |
| marshal_VkQueryPoolCreateInfo(countingStream, (VkQueryPoolCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_225 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_225); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_226; |
| countingStream->handleMapping()->mapHandles_VkQueryPool_u64(pQueryPool, &cgen_var_226, 1); |
| countingStream->write((uint64_t*)&cgen_var_226, 8); |
| } |
| uint32_t packetSize_vkCreateQueryPool = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateQueryPool = OP_vkCreateQueryPool; |
| stream->write(&opcode_vkCreateQueryPool, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateQueryPool, sizeof(uint32_t)); |
| uint64_t cgen_var_227; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_227, 1); |
| stream->write((uint64_t*)&cgen_var_227, 1 * 8); |
| marshal_VkQueryPoolCreateInfo(stream, (VkQueryPoolCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_228 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_228); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_229; |
| stream->handleMapping()->mapHandles_VkQueryPool_u64(pQueryPool, &cgen_var_229, 1); |
| stream->write((uint64_t*)&cgen_var_229, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateQueryPool readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_230; |
| stream->read((uint64_t*)&cgen_var_230, 8); |
| stream->handleMapping()->mapHandles_u64_VkQueryPool(&cgen_var_230, (VkQueryPool*)pQueryPool, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateQueryPool returnUnmarshal"); |
| VkResult vkCreateQueryPool_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateQueryPool_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateQueryPool");; |
| return vkCreateQueryPool_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyQueryPool( |
| VkDevice device, |
| VkQueryPool queryPool, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyQueryPool encode"); |
| mImpl->log("start vkDestroyQueryPool"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkQueryPool local_queryPool; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_queryPool = queryPool; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_231; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_231, 1); |
| countingStream->write((uint64_t*)&cgen_var_231, 1 * 8); |
| uint64_t cgen_var_232; |
| countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_232, 1); |
| countingStream->write((uint64_t*)&cgen_var_232, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_233 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_233); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyQueryPool = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyQueryPool = OP_vkDestroyQueryPool; |
| stream->write(&opcode_vkDestroyQueryPool, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyQueryPool, sizeof(uint32_t)); |
| uint64_t cgen_var_234; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_234, 1); |
| stream->write((uint64_t*)&cgen_var_234, 1 * 8); |
| uint64_t cgen_var_235; |
| stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_235, 1); |
| stream->write((uint64_t*)&cgen_var_235, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_236 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_236); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyQueryPool readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyQueryPool returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkQueryPool((VkQueryPool*)&queryPool); |
| mImpl->log("finish vkDestroyQueryPool");; |
| } |
| |
| VkResult VkEncoder::vkGetQueryPoolResults( |
| VkDevice device, |
| VkQueryPool queryPool, |
| uint32_t firstQuery, |
| uint32_t queryCount, |
| size_t dataSize, |
| void* pData, |
| VkDeviceSize stride, |
| VkQueryResultFlags flags) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetQueryPoolResults encode"); |
| mImpl->log("start vkGetQueryPoolResults"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkQueryPool local_queryPool; |
| uint32_t local_firstQuery; |
| uint32_t local_queryCount; |
| size_t local_dataSize; |
| VkDeviceSize local_stride; |
| VkQueryResultFlags local_flags; |
| local_device = device; |
| local_queryPool = queryPool; |
| local_firstQuery = firstQuery; |
| local_queryCount = queryCount; |
| local_dataSize = dataSize; |
| local_stride = stride; |
| local_flags = flags; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_237; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_237, 1); |
| countingStream->write((uint64_t*)&cgen_var_237, 1 * 8); |
| uint64_t cgen_var_238; |
| countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_238, 1); |
| countingStream->write((uint64_t*)&cgen_var_238, 1 * 8); |
| countingStream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_queryCount, sizeof(uint32_t)); |
| uint64_t cgen_var_239 = (uint64_t)local_dataSize; |
| countingStream->putBe64(cgen_var_239); |
| countingStream->write((void*)pData, ((dataSize)) * sizeof(uint8_t)); |
| countingStream->write((VkDeviceSize*)&local_stride, sizeof(VkDeviceSize)); |
| countingStream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags)); |
| } |
| uint32_t packetSize_vkGetQueryPoolResults = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetQueryPoolResults = OP_vkGetQueryPoolResults; |
| stream->write(&opcode_vkGetQueryPoolResults, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetQueryPoolResults, sizeof(uint32_t)); |
| uint64_t cgen_var_240; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_240, 1); |
| stream->write((uint64_t*)&cgen_var_240, 1 * 8); |
| uint64_t cgen_var_241; |
| stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_241, 1); |
| stream->write((uint64_t*)&cgen_var_241, 1 * 8); |
| stream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_queryCount, sizeof(uint32_t)); |
| uint64_t cgen_var_242 = (uint64_t)local_dataSize; |
| stream->putBe64(cgen_var_242); |
| stream->write((void*)pData, ((dataSize)) * sizeof(uint8_t)); |
| stream->write((VkDeviceSize*)&local_stride, sizeof(VkDeviceSize)); |
| stream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags)); |
| AEMU_SCOPED_TRACE("vkGetQueryPoolResults readParams"); |
| stream->read((void*)pData, ((dataSize)) * sizeof(uint8_t)); |
| AEMU_SCOPED_TRACE("vkGetQueryPoolResults returnUnmarshal"); |
| VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0; |
| stream->read(&vkGetQueryPoolResults_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetQueryPoolResults");; |
| return vkGetQueryPoolResults_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkCreateBuffer( |
| VkDevice device, |
| const VkBufferCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkBuffer* pBuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateBuffer encode"); |
| mImpl->log("start vkCreateBuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkBufferCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkBufferCreateInfo*)pool->alloc(sizeof(const VkBufferCreateInfo)); |
| deepcopy_VkBufferCreateInfo(pool, pCreateInfo, (VkBufferCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkBufferCreateInfo(mImpl->resources(), (VkBufferCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_243; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_243, 1); |
| countingStream->write((uint64_t*)&cgen_var_243, 1 * 8); |
| marshal_VkBufferCreateInfo(countingStream, (VkBufferCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_244 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_244); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_245; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(pBuffer, &cgen_var_245, 1); |
| countingStream->write((uint64_t*)&cgen_var_245, 8); |
| } |
| uint32_t packetSize_vkCreateBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateBuffer = OP_vkCreateBuffer; |
| stream->write(&opcode_vkCreateBuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateBuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_246; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_246, 1); |
| stream->write((uint64_t*)&cgen_var_246, 1 * 8); |
| marshal_VkBufferCreateInfo(stream, (VkBufferCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_247 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_247); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_248; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(pBuffer, &cgen_var_248, 1); |
| stream->write((uint64_t*)&cgen_var_248, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateBuffer readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_249; |
| stream->read((uint64_t*)&cgen_var_249, 8); |
| stream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_249, (VkBuffer*)pBuffer, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateBuffer returnUnmarshal"); |
| VkResult vkCreateBuffer_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateBuffer_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateBuffer");; |
| return vkCreateBuffer_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyBuffer( |
| VkDevice device, |
| VkBuffer buffer, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyBuffer encode"); |
| mImpl->log("start vkDestroyBuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkBuffer local_buffer; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_buffer = buffer; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_250; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_250, 1); |
| countingStream->write((uint64_t*)&cgen_var_250, 1 * 8); |
| uint64_t cgen_var_251; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_251, 1); |
| countingStream->write((uint64_t*)&cgen_var_251, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_252 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_252); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyBuffer = OP_vkDestroyBuffer; |
| stream->write(&opcode_vkDestroyBuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyBuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_253; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_253, 1); |
| stream->write((uint64_t*)&cgen_var_253, 1 * 8); |
| uint64_t cgen_var_254; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_254, 1); |
| stream->write((uint64_t*)&cgen_var_254, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_255 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_255); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyBuffer readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyBuffer returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkBuffer((VkBuffer*)&buffer); |
| mImpl->log("finish vkDestroyBuffer");; |
| } |
| |
| VkResult VkEncoder::vkCreateBufferView( |
| VkDevice device, |
| const VkBufferViewCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkBufferView* pView) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateBufferView encode"); |
| mImpl->log("start vkCreateBufferView"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkBufferViewCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkBufferViewCreateInfo*)pool->alloc(sizeof(const VkBufferViewCreateInfo)); |
| deepcopy_VkBufferViewCreateInfo(pool, pCreateInfo, (VkBufferViewCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkBufferViewCreateInfo(mImpl->resources(), (VkBufferViewCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_256; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_256, 1); |
| countingStream->write((uint64_t*)&cgen_var_256, 1 * 8); |
| marshal_VkBufferViewCreateInfo(countingStream, (VkBufferViewCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_257 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_257); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_258; |
| countingStream->handleMapping()->mapHandles_VkBufferView_u64(pView, &cgen_var_258, 1); |
| countingStream->write((uint64_t*)&cgen_var_258, 8); |
| } |
| uint32_t packetSize_vkCreateBufferView = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateBufferView = OP_vkCreateBufferView; |
| stream->write(&opcode_vkCreateBufferView, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateBufferView, sizeof(uint32_t)); |
| uint64_t cgen_var_259; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_259, 1); |
| stream->write((uint64_t*)&cgen_var_259, 1 * 8); |
| marshal_VkBufferViewCreateInfo(stream, (VkBufferViewCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_260 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_260); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_261; |
| stream->handleMapping()->mapHandles_VkBufferView_u64(pView, &cgen_var_261, 1); |
| stream->write((uint64_t*)&cgen_var_261, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateBufferView readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_262; |
| stream->read((uint64_t*)&cgen_var_262, 8); |
| stream->handleMapping()->mapHandles_u64_VkBufferView(&cgen_var_262, (VkBufferView*)pView, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateBufferView returnUnmarshal"); |
| VkResult vkCreateBufferView_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateBufferView_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateBufferView");; |
| return vkCreateBufferView_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyBufferView( |
| VkDevice device, |
| VkBufferView bufferView, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyBufferView encode"); |
| mImpl->log("start vkDestroyBufferView"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkBufferView local_bufferView; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_bufferView = bufferView; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_263; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_263, 1); |
| countingStream->write((uint64_t*)&cgen_var_263, 1 * 8); |
| uint64_t cgen_var_264; |
| countingStream->handleMapping()->mapHandles_VkBufferView_u64(&local_bufferView, &cgen_var_264, 1); |
| countingStream->write((uint64_t*)&cgen_var_264, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_265 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_265); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyBufferView = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyBufferView = OP_vkDestroyBufferView; |
| stream->write(&opcode_vkDestroyBufferView, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyBufferView, sizeof(uint32_t)); |
| uint64_t cgen_var_266; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_266, 1); |
| stream->write((uint64_t*)&cgen_var_266, 1 * 8); |
| uint64_t cgen_var_267; |
| stream->handleMapping()->mapHandles_VkBufferView_u64(&local_bufferView, &cgen_var_267, 1); |
| stream->write((uint64_t*)&cgen_var_267, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_268 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_268); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyBufferView readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyBufferView returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkBufferView((VkBufferView*)&bufferView); |
| mImpl->log("finish vkDestroyBufferView");; |
| } |
| |
| VkResult VkEncoder::vkCreateImage( |
| VkDevice device, |
| const VkImageCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkImage* pImage) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateImage encode"); |
| mImpl->log("start vkCreateImage"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImageCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkImageCreateInfo*)pool->alloc(sizeof(const VkImageCreateInfo)); |
| deepcopy_VkImageCreateInfo(pool, pCreateInfo, (VkImageCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| mImpl->resources()->unwrap_VkNativeBufferANDROID(pCreateInfo, local_pCreateInfo); |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkImageCreateInfo(mImpl->resources(), (VkImageCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_269; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_269, 1); |
| countingStream->write((uint64_t*)&cgen_var_269, 1 * 8); |
| marshal_VkImageCreateInfo(countingStream, (VkImageCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_270 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_270); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_271; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(pImage, &cgen_var_271, 1); |
| countingStream->write((uint64_t*)&cgen_var_271, 8); |
| } |
| uint32_t packetSize_vkCreateImage = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateImage = OP_vkCreateImage; |
| stream->write(&opcode_vkCreateImage, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateImage, sizeof(uint32_t)); |
| uint64_t cgen_var_272; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_272, 1); |
| stream->write((uint64_t*)&cgen_var_272, 1 * 8); |
| marshal_VkImageCreateInfo(stream, (VkImageCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_273 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_273); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_274; |
| stream->handleMapping()->mapHandles_VkImage_u64(pImage, &cgen_var_274, 1); |
| stream->write((uint64_t*)&cgen_var_274, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateImage readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_275; |
| stream->read((uint64_t*)&cgen_var_275, 8); |
| stream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_275, (VkImage*)pImage, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateImage returnUnmarshal"); |
| VkResult vkCreateImage_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateImage_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateImage");; |
| return vkCreateImage_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyImage( |
| VkDevice device, |
| VkImage image, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyImage encode"); |
| mImpl->log("start vkDestroyImage"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImage local_image; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_image = image; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_276; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_276, 1); |
| countingStream->write((uint64_t*)&cgen_var_276, 1 * 8); |
| uint64_t cgen_var_277; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_277, 1); |
| countingStream->write((uint64_t*)&cgen_var_277, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_278 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_278); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyImage = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyImage = OP_vkDestroyImage; |
| stream->write(&opcode_vkDestroyImage, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyImage, sizeof(uint32_t)); |
| uint64_t cgen_var_279; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_279, 1); |
| stream->write((uint64_t*)&cgen_var_279, 1 * 8); |
| uint64_t cgen_var_280; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_280, 1); |
| stream->write((uint64_t*)&cgen_var_280, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_281 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_281); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyImage readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyImage returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkImage((VkImage*)&image); |
| mImpl->log("finish vkDestroyImage");; |
| } |
| |
| void VkEncoder::vkGetImageSubresourceLayout( |
| VkDevice device, |
| VkImage image, |
| const VkImageSubresource* pSubresource, |
| VkSubresourceLayout* pLayout) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout encode"); |
| mImpl->log("start vkGetImageSubresourceLayout"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImage local_image; |
| VkImageSubresource* local_pSubresource; |
| local_device = device; |
| local_image = image; |
| local_pSubresource = nullptr; |
| if (pSubresource) |
| { |
| local_pSubresource = (VkImageSubresource*)pool->alloc(sizeof(const VkImageSubresource)); |
| deepcopy_VkImageSubresource(pool, pSubresource, (VkImageSubresource*)(local_pSubresource)); |
| } |
| if (local_pSubresource) |
| { |
| transform_tohost_VkImageSubresource(mImpl->resources(), (VkImageSubresource*)(local_pSubresource)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_282; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_282, 1); |
| countingStream->write((uint64_t*)&cgen_var_282, 1 * 8); |
| uint64_t cgen_var_283; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_283, 1); |
| countingStream->write((uint64_t*)&cgen_var_283, 1 * 8); |
| marshal_VkImageSubresource(countingStream, (VkImageSubresource*)(local_pSubresource)); |
| marshal_VkSubresourceLayout(countingStream, (VkSubresourceLayout*)(pLayout)); |
| } |
| uint32_t packetSize_vkGetImageSubresourceLayout = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetImageSubresourceLayout = OP_vkGetImageSubresourceLayout; |
| stream->write(&opcode_vkGetImageSubresourceLayout, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetImageSubresourceLayout, sizeof(uint32_t)); |
| uint64_t cgen_var_284; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_284, 1); |
| stream->write((uint64_t*)&cgen_var_284, 1 * 8); |
| uint64_t cgen_var_285; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_285, 1); |
| stream->write((uint64_t*)&cgen_var_285, 1 * 8); |
| marshal_VkImageSubresource(stream, (VkImageSubresource*)(local_pSubresource)); |
| marshal_VkSubresourceLayout(stream, (VkSubresourceLayout*)(pLayout)); |
| AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout readParams"); |
| unmarshal_VkSubresourceLayout(stream, (VkSubresourceLayout*)(pLayout)); |
| if (pLayout) |
| { |
| transform_fromhost_VkSubresourceLayout(mImpl->resources(), (VkSubresourceLayout*)(pLayout)); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout returnUnmarshal"); |
| mImpl->log("finish vkGetImageSubresourceLayout");; |
| } |
| |
| VkResult VkEncoder::vkCreateImageView( |
| VkDevice device, |
| const VkImageViewCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkImageView* pView) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateImageView encode"); |
| mImpl->log("start vkCreateImageView"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImageViewCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkImageViewCreateInfo*)pool->alloc(sizeof(const VkImageViewCreateInfo)); |
| deepcopy_VkImageViewCreateInfo(pool, pCreateInfo, (VkImageViewCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkImageViewCreateInfo(mImpl->resources(), (VkImageViewCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_286; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_286, 1); |
| countingStream->write((uint64_t*)&cgen_var_286, 1 * 8); |
| marshal_VkImageViewCreateInfo(countingStream, (VkImageViewCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_287 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_287); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_288; |
| countingStream->handleMapping()->mapHandles_VkImageView_u64(pView, &cgen_var_288, 1); |
| countingStream->write((uint64_t*)&cgen_var_288, 8); |
| } |
| uint32_t packetSize_vkCreateImageView = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateImageView = OP_vkCreateImageView; |
| stream->write(&opcode_vkCreateImageView, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateImageView, sizeof(uint32_t)); |
| uint64_t cgen_var_289; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_289, 1); |
| stream->write((uint64_t*)&cgen_var_289, 1 * 8); |
| marshal_VkImageViewCreateInfo(stream, (VkImageViewCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_290 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_290); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_291; |
| stream->handleMapping()->mapHandles_VkImageView_u64(pView, &cgen_var_291, 1); |
| stream->write((uint64_t*)&cgen_var_291, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateImageView readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_292; |
| stream->read((uint64_t*)&cgen_var_292, 8); |
| stream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_292, (VkImageView*)pView, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateImageView returnUnmarshal"); |
| VkResult vkCreateImageView_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateImageView_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateImageView");; |
| return vkCreateImageView_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyImageView( |
| VkDevice device, |
| VkImageView imageView, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyImageView encode"); |
| mImpl->log("start vkDestroyImageView"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImageView local_imageView; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_imageView = imageView; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_293; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_293, 1); |
| countingStream->write((uint64_t*)&cgen_var_293, 1 * 8); |
| uint64_t cgen_var_294; |
| countingStream->handleMapping()->mapHandles_VkImageView_u64(&local_imageView, &cgen_var_294, 1); |
| countingStream->write((uint64_t*)&cgen_var_294, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_295 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_295); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyImageView = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyImageView = OP_vkDestroyImageView; |
| stream->write(&opcode_vkDestroyImageView, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyImageView, sizeof(uint32_t)); |
| uint64_t cgen_var_296; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_296, 1); |
| stream->write((uint64_t*)&cgen_var_296, 1 * 8); |
| uint64_t cgen_var_297; |
| stream->handleMapping()->mapHandles_VkImageView_u64(&local_imageView, &cgen_var_297, 1); |
| stream->write((uint64_t*)&cgen_var_297, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_298 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_298); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyImageView readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyImageView returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkImageView((VkImageView*)&imageView); |
| mImpl->log("finish vkDestroyImageView");; |
| } |
| |
| VkResult VkEncoder::vkCreateShaderModule( |
| VkDevice device, |
| const VkShaderModuleCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkShaderModule* pShaderModule) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateShaderModule encode"); |
| mImpl->log("start vkCreateShaderModule"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkShaderModuleCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkShaderModuleCreateInfo*)pool->alloc(sizeof(const VkShaderModuleCreateInfo)); |
| deepcopy_VkShaderModuleCreateInfo(pool, pCreateInfo, (VkShaderModuleCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkShaderModuleCreateInfo(mImpl->resources(), (VkShaderModuleCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_299; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_299, 1); |
| countingStream->write((uint64_t*)&cgen_var_299, 1 * 8); |
| marshal_VkShaderModuleCreateInfo(countingStream, (VkShaderModuleCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_300 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_300); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_301; |
| countingStream->handleMapping()->mapHandles_VkShaderModule_u64(pShaderModule, &cgen_var_301, 1); |
| countingStream->write((uint64_t*)&cgen_var_301, 8); |
| } |
| uint32_t packetSize_vkCreateShaderModule = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateShaderModule = OP_vkCreateShaderModule; |
| stream->write(&opcode_vkCreateShaderModule, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateShaderModule, sizeof(uint32_t)); |
| uint64_t cgen_var_302; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_302, 1); |
| stream->write((uint64_t*)&cgen_var_302, 1 * 8); |
| marshal_VkShaderModuleCreateInfo(stream, (VkShaderModuleCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_303 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_303); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_304; |
| stream->handleMapping()->mapHandles_VkShaderModule_u64(pShaderModule, &cgen_var_304, 1); |
| stream->write((uint64_t*)&cgen_var_304, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateShaderModule readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_305; |
| stream->read((uint64_t*)&cgen_var_305, 8); |
| stream->handleMapping()->mapHandles_u64_VkShaderModule(&cgen_var_305, (VkShaderModule*)pShaderModule, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateShaderModule returnUnmarshal"); |
| VkResult vkCreateShaderModule_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateShaderModule_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateShaderModule");; |
| return vkCreateShaderModule_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyShaderModule( |
| VkDevice device, |
| VkShaderModule shaderModule, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyShaderModule encode"); |
| mImpl->log("start vkDestroyShaderModule"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkShaderModule local_shaderModule; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_shaderModule = shaderModule; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_306; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_306, 1); |
| countingStream->write((uint64_t*)&cgen_var_306, 1 * 8); |
| uint64_t cgen_var_307; |
| countingStream->handleMapping()->mapHandles_VkShaderModule_u64(&local_shaderModule, &cgen_var_307, 1); |
| countingStream->write((uint64_t*)&cgen_var_307, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_308 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_308); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyShaderModule = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyShaderModule = OP_vkDestroyShaderModule; |
| stream->write(&opcode_vkDestroyShaderModule, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyShaderModule, sizeof(uint32_t)); |
| uint64_t cgen_var_309; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_309, 1); |
| stream->write((uint64_t*)&cgen_var_309, 1 * 8); |
| uint64_t cgen_var_310; |
| stream->handleMapping()->mapHandles_VkShaderModule_u64(&local_shaderModule, &cgen_var_310, 1); |
| stream->write((uint64_t*)&cgen_var_310, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_311 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_311); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyShaderModule readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyShaderModule returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkShaderModule((VkShaderModule*)&shaderModule); |
| mImpl->log("finish vkDestroyShaderModule");; |
| } |
| |
| VkResult VkEncoder::vkCreatePipelineCache( |
| VkDevice device, |
| const VkPipelineCacheCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipelineCache* pPipelineCache) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreatePipelineCache encode"); |
| mImpl->log("start vkCreatePipelineCache"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkPipelineCacheCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkPipelineCacheCreateInfo*)pool->alloc(sizeof(const VkPipelineCacheCreateInfo)); |
| deepcopy_VkPipelineCacheCreateInfo(pool, pCreateInfo, (VkPipelineCacheCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkPipelineCacheCreateInfo(mImpl->resources(), (VkPipelineCacheCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_312; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_312, 1); |
| countingStream->write((uint64_t*)&cgen_var_312, 1 * 8); |
| marshal_VkPipelineCacheCreateInfo(countingStream, (VkPipelineCacheCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_313 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_313); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_314; |
| countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(pPipelineCache, &cgen_var_314, 1); |
| countingStream->write((uint64_t*)&cgen_var_314, 8); |
| } |
| uint32_t packetSize_vkCreatePipelineCache = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreatePipelineCache = OP_vkCreatePipelineCache; |
| stream->write(&opcode_vkCreatePipelineCache, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreatePipelineCache, sizeof(uint32_t)); |
| uint64_t cgen_var_315; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_315, 1); |
| stream->write((uint64_t*)&cgen_var_315, 1 * 8); |
| marshal_VkPipelineCacheCreateInfo(stream, (VkPipelineCacheCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_316 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_316); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_317; |
| stream->handleMapping()->mapHandles_VkPipelineCache_u64(pPipelineCache, &cgen_var_317, 1); |
| stream->write((uint64_t*)&cgen_var_317, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreatePipelineCache readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_318; |
| stream->read((uint64_t*)&cgen_var_318, 8); |
| stream->handleMapping()->mapHandles_u64_VkPipelineCache(&cgen_var_318, (VkPipelineCache*)pPipelineCache, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreatePipelineCache returnUnmarshal"); |
| VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0; |
| stream->read(&vkCreatePipelineCache_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreatePipelineCache");; |
| return vkCreatePipelineCache_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyPipelineCache( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyPipelineCache encode"); |
| mImpl->log("start vkDestroyPipelineCache"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkPipelineCache local_pipelineCache; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pipelineCache = pipelineCache; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_319; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_319, 1); |
| countingStream->write((uint64_t*)&cgen_var_319, 1 * 8); |
| uint64_t cgen_var_320; |
| countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_320, 1); |
| countingStream->write((uint64_t*)&cgen_var_320, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_321 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_321); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyPipelineCache = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyPipelineCache = OP_vkDestroyPipelineCache; |
| stream->write(&opcode_vkDestroyPipelineCache, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyPipelineCache, sizeof(uint32_t)); |
| uint64_t cgen_var_322; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_322, 1); |
| stream->write((uint64_t*)&cgen_var_322, 1 * 8); |
| uint64_t cgen_var_323; |
| stream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_323, 1); |
| stream->write((uint64_t*)&cgen_var_323, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_324 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_324); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyPipelineCache readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyPipelineCache returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkPipelineCache((VkPipelineCache*)&pipelineCache); |
| mImpl->log("finish vkDestroyPipelineCache");; |
| } |
| |
| VkResult VkEncoder::vkGetPipelineCacheData( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| size_t* pDataSize, |
| void* pData) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPipelineCacheData encode"); |
| mImpl->log("start vkGetPipelineCacheData"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkPipelineCache local_pipelineCache; |
| local_device = device; |
| local_pipelineCache = pipelineCache; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_325; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_325, 1); |
| countingStream->write((uint64_t*)&cgen_var_325, 1 * 8); |
| uint64_t cgen_var_326; |
| countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_326, 1); |
| countingStream->write((uint64_t*)&cgen_var_326, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_327 = (uint64_t)(uintptr_t)pDataSize; |
| countingStream->putBe64(cgen_var_327); |
| if (pDataSize) |
| { |
| uint64_t cgen_var_328 = (uint64_t)(*pDataSize); |
| countingStream->putBe64(cgen_var_328); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_329 = (uint64_t)(uintptr_t)pData; |
| countingStream->putBe64(cgen_var_329); |
| if (pData) |
| { |
| countingStream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t)); |
| } |
| } |
| uint32_t packetSize_vkGetPipelineCacheData = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPipelineCacheData = OP_vkGetPipelineCacheData; |
| stream->write(&opcode_vkGetPipelineCacheData, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPipelineCacheData, sizeof(uint32_t)); |
| uint64_t cgen_var_330; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_330, 1); |
| stream->write((uint64_t*)&cgen_var_330, 1 * 8); |
| uint64_t cgen_var_331; |
| stream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_331, 1); |
| stream->write((uint64_t*)&cgen_var_331, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_332 = (uint64_t)(uintptr_t)pDataSize; |
| stream->putBe64(cgen_var_332); |
| if (pDataSize) |
| { |
| uint64_t cgen_var_333 = (uint64_t)(*pDataSize); |
| stream->putBe64(cgen_var_333); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_334 = (uint64_t)(uintptr_t)pData; |
| stream->putBe64(cgen_var_334); |
| if (pData) |
| { |
| stream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPipelineCacheData readParams"); |
| // WARNING PTR CHECK |
| size_t* check_pDataSize; |
| check_pDataSize = (size_t*)(uintptr_t)stream->getBe64(); |
| if (pDataSize) |
| { |
| if (!(check_pDataSize)) |
| { |
| fprintf(stderr, "fatal: pDataSize inconsistent between guest and host\n"); |
| } |
| (*pDataSize) = (size_t)stream->getBe64(); |
| } |
| // WARNING PTR CHECK |
| void* check_pData; |
| check_pData = (void*)(uintptr_t)stream->getBe64(); |
| if (pData) |
| { |
| if (!(check_pData)) |
| { |
| fprintf(stderr, "fatal: pData inconsistent between guest and host\n"); |
| } |
| stream->read((void*)pData, (*(pDataSize)) * sizeof(uint8_t)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPipelineCacheData returnUnmarshal"); |
| VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPipelineCacheData_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPipelineCacheData");; |
| return vkGetPipelineCacheData_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkMergePipelineCaches( |
| VkDevice device, |
| VkPipelineCache dstCache, |
| uint32_t srcCacheCount, |
| const VkPipelineCache* pSrcCaches) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkMergePipelineCaches encode"); |
| mImpl->log("start vkMergePipelineCaches"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkPipelineCache local_dstCache; |
| uint32_t local_srcCacheCount; |
| VkPipelineCache* local_pSrcCaches; |
| local_device = device; |
| local_dstCache = dstCache; |
| local_srcCacheCount = srcCacheCount; |
| local_pSrcCaches = nullptr; |
| if (pSrcCaches) |
| { |
| local_pSrcCaches = (VkPipelineCache*)pool->dupArray(pSrcCaches, ((srcCacheCount)) * sizeof(const VkPipelineCache)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_338; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_338, 1); |
| countingStream->write((uint64_t*)&cgen_var_338, 1 * 8); |
| uint64_t cgen_var_339; |
| countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_dstCache, &cgen_var_339, 1); |
| countingStream->write((uint64_t*)&cgen_var_339, 1 * 8); |
| countingStream->write((uint32_t*)&local_srcCacheCount, sizeof(uint32_t)); |
| if (((srcCacheCount))) |
| { |
| uint64_t* cgen_var_340; |
| countingStream->alloc((void**)&cgen_var_340, ((srcCacheCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(local_pSrcCaches, cgen_var_340, ((srcCacheCount))); |
| countingStream->write((uint64_t*)cgen_var_340, ((srcCacheCount)) * 8); |
| } |
| } |
| uint32_t packetSize_vkMergePipelineCaches = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkMergePipelineCaches = OP_vkMergePipelineCaches; |
| stream->write(&opcode_vkMergePipelineCaches, sizeof(uint32_t)); |
| stream->write(&packetSize_vkMergePipelineCaches, sizeof(uint32_t)); |
| uint64_t cgen_var_341; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_341, 1); |
| stream->write((uint64_t*)&cgen_var_341, 1 * 8); |
| uint64_t cgen_var_342; |
| stream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_dstCache, &cgen_var_342, 1); |
| stream->write((uint64_t*)&cgen_var_342, 1 * 8); |
| stream->write((uint32_t*)&local_srcCacheCount, sizeof(uint32_t)); |
| if (((srcCacheCount))) |
| { |
| uint64_t* cgen_var_343; |
| stream->alloc((void**)&cgen_var_343, ((srcCacheCount)) * 8); |
| stream->handleMapping()->mapHandles_VkPipelineCache_u64(local_pSrcCaches, cgen_var_343, ((srcCacheCount))); |
| stream->write((uint64_t*)cgen_var_343, ((srcCacheCount)) * 8); |
| } |
| AEMU_SCOPED_TRACE("vkMergePipelineCaches readParams"); |
| AEMU_SCOPED_TRACE("vkMergePipelineCaches returnUnmarshal"); |
| VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0; |
| stream->read(&vkMergePipelineCaches_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkMergePipelineCaches");; |
| return vkMergePipelineCaches_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkCreateGraphicsPipelines( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| uint32_t createInfoCount, |
| const VkGraphicsPipelineCreateInfo* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipeline* pPipelines) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines encode"); |
| mImpl->log("start vkCreateGraphicsPipelines"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkPipelineCache local_pipelineCache; |
| uint32_t local_createInfoCount; |
| VkGraphicsPipelineCreateInfo* local_pCreateInfos; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pipelineCache = pipelineCache; |
| local_createInfoCount = createInfoCount; |
| local_pCreateInfos = nullptr; |
| if (pCreateInfos) |
| { |
| local_pCreateInfos = (VkGraphicsPipelineCreateInfo*)pool->alloc(((createInfoCount)) * sizeof(const VkGraphicsPipelineCreateInfo)); |
| for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i) |
| { |
| deepcopy_VkGraphicsPipelineCreateInfo(pool, pCreateInfos + i, (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i)); |
| } |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i) |
| { |
| transform_tohost_VkGraphicsPipelineCreateInfo(mImpl->resources(), (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i)); |
| } |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_344; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_344, 1); |
| countingStream->write((uint64_t*)&cgen_var_344, 1 * 8); |
| uint64_t cgen_var_345; |
| countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_345, 1); |
| countingStream->write((uint64_t*)&cgen_var_345, 1 * 8); |
| countingStream->write((uint32_t*)&local_createInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i) |
| { |
| marshal_VkGraphicsPipelineCreateInfo(countingStream, (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_346 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_346); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| if (((createInfoCount))) |
| { |
| uint64_t* cgen_var_347; |
| countingStream->alloc((void**)&cgen_var_347, ((createInfoCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkPipeline_u64(pPipelines, cgen_var_347, ((createInfoCount))); |
| countingStream->write((uint64_t*)cgen_var_347, ((createInfoCount)) * 8); |
| } |
| } |
| uint32_t packetSize_vkCreateGraphicsPipelines = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateGraphicsPipelines = OP_vkCreateGraphicsPipelines; |
| stream->write(&opcode_vkCreateGraphicsPipelines, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateGraphicsPipelines, sizeof(uint32_t)); |
| uint64_t cgen_var_348; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_348, 1); |
| stream->write((uint64_t*)&cgen_var_348, 1 * 8); |
| uint64_t cgen_var_349; |
| stream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_349, 1); |
| stream->write((uint64_t*)&cgen_var_349, 1 * 8); |
| stream->write((uint32_t*)&local_createInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i) |
| { |
| marshal_VkGraphicsPipelineCreateInfo(stream, (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_350 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_350); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| if (((createInfoCount))) |
| { |
| uint64_t* cgen_var_351; |
| stream->alloc((void**)&cgen_var_351, ((createInfoCount)) * 8); |
| stream->handleMapping()->mapHandles_VkPipeline_u64(pPipelines, cgen_var_351, ((createInfoCount))); |
| stream->write((uint64_t*)cgen_var_351, ((createInfoCount)) * 8); |
| } |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| if (((createInfoCount))) |
| { |
| uint64_t* cgen_var_352; |
| stream->alloc((void**)&cgen_var_352, ((createInfoCount)) * 8); |
| stream->read((uint64_t*)cgen_var_352, ((createInfoCount)) * 8); |
| stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_352, (VkPipeline*)pPipelines, ((createInfoCount))); |
| } |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines returnUnmarshal"); |
| VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateGraphicsPipelines_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateGraphicsPipelines");; |
| return vkCreateGraphicsPipelines_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkCreateComputePipelines( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| uint32_t createInfoCount, |
| const VkComputePipelineCreateInfo* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipeline* pPipelines) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateComputePipelines encode"); |
| mImpl->log("start vkCreateComputePipelines"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkPipelineCache local_pipelineCache; |
| uint32_t local_createInfoCount; |
| VkComputePipelineCreateInfo* local_pCreateInfos; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pipelineCache = pipelineCache; |
| local_createInfoCount = createInfoCount; |
| local_pCreateInfos = nullptr; |
| if (pCreateInfos) |
| { |
| local_pCreateInfos = (VkComputePipelineCreateInfo*)pool->alloc(((createInfoCount)) * sizeof(const VkComputePipelineCreateInfo)); |
| for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i) |
| { |
| deepcopy_VkComputePipelineCreateInfo(pool, pCreateInfos + i, (VkComputePipelineCreateInfo*)(local_pCreateInfos + i)); |
| } |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i) |
| { |
| transform_tohost_VkComputePipelineCreateInfo(mImpl->resources(), (VkComputePipelineCreateInfo*)(local_pCreateInfos + i)); |
| } |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_353; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_353, 1); |
| countingStream->write((uint64_t*)&cgen_var_353, 1 * 8); |
| uint64_t cgen_var_354; |
| countingStream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_354, 1); |
| countingStream->write((uint64_t*)&cgen_var_354, 1 * 8); |
| countingStream->write((uint32_t*)&local_createInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i) |
| { |
| marshal_VkComputePipelineCreateInfo(countingStream, (VkComputePipelineCreateInfo*)(local_pCreateInfos + i)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_355 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_355); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| if (((createInfoCount))) |
| { |
| uint64_t* cgen_var_356; |
| countingStream->alloc((void**)&cgen_var_356, ((createInfoCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkPipeline_u64(pPipelines, cgen_var_356, ((createInfoCount))); |
| countingStream->write((uint64_t*)cgen_var_356, ((createInfoCount)) * 8); |
| } |
| } |
| uint32_t packetSize_vkCreateComputePipelines = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateComputePipelines = OP_vkCreateComputePipelines; |
| stream->write(&opcode_vkCreateComputePipelines, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateComputePipelines, sizeof(uint32_t)); |
| uint64_t cgen_var_357; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_357, 1); |
| stream->write((uint64_t*)&cgen_var_357, 1 * 8); |
| uint64_t cgen_var_358; |
| stream->handleMapping()->mapHandles_VkPipelineCache_u64(&local_pipelineCache, &cgen_var_358, 1); |
| stream->write((uint64_t*)&cgen_var_358, 1 * 8); |
| stream->write((uint32_t*)&local_createInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i) |
| { |
| marshal_VkComputePipelineCreateInfo(stream, (VkComputePipelineCreateInfo*)(local_pCreateInfos + i)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_359 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_359); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| if (((createInfoCount))) |
| { |
| uint64_t* cgen_var_360; |
| stream->alloc((void**)&cgen_var_360, ((createInfoCount)) * 8); |
| stream->handleMapping()->mapHandles_VkPipeline_u64(pPipelines, cgen_var_360, ((createInfoCount))); |
| stream->write((uint64_t*)cgen_var_360, ((createInfoCount)) * 8); |
| } |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateComputePipelines readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| if (((createInfoCount))) |
| { |
| uint64_t* cgen_var_361; |
| stream->alloc((void**)&cgen_var_361, ((createInfoCount)) * 8); |
| stream->read((uint64_t*)cgen_var_361, ((createInfoCount)) * 8); |
| stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_361, (VkPipeline*)pPipelines, ((createInfoCount))); |
| } |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateComputePipelines returnUnmarshal"); |
| VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateComputePipelines_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateComputePipelines");; |
| return vkCreateComputePipelines_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyPipeline( |
| VkDevice device, |
| VkPipeline pipeline, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyPipeline encode"); |
| mImpl->log("start vkDestroyPipeline"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkPipeline local_pipeline; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pipeline = pipeline; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_362; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_362, 1); |
| countingStream->write((uint64_t*)&cgen_var_362, 1 * 8); |
| uint64_t cgen_var_363; |
| countingStream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_363, 1); |
| countingStream->write((uint64_t*)&cgen_var_363, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_364 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_364); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyPipeline = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyPipeline = OP_vkDestroyPipeline; |
| stream->write(&opcode_vkDestroyPipeline, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyPipeline, sizeof(uint32_t)); |
| uint64_t cgen_var_365; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_365, 1); |
| stream->write((uint64_t*)&cgen_var_365, 1 * 8); |
| uint64_t cgen_var_366; |
| stream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_366, 1); |
| stream->write((uint64_t*)&cgen_var_366, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_367 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_367); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyPipeline readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyPipeline returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkPipeline((VkPipeline*)&pipeline); |
| mImpl->log("finish vkDestroyPipeline");; |
| } |
| |
| VkResult VkEncoder::vkCreatePipelineLayout( |
| VkDevice device, |
| const VkPipelineLayoutCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipelineLayout* pPipelineLayout) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreatePipelineLayout encode"); |
| mImpl->log("start vkCreatePipelineLayout"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkPipelineLayoutCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkPipelineLayoutCreateInfo*)pool->alloc(sizeof(const VkPipelineLayoutCreateInfo)); |
| deepcopy_VkPipelineLayoutCreateInfo(pool, pCreateInfo, (VkPipelineLayoutCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkPipelineLayoutCreateInfo(mImpl->resources(), (VkPipelineLayoutCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_368; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_368, 1); |
| countingStream->write((uint64_t*)&cgen_var_368, 1 * 8); |
| marshal_VkPipelineLayoutCreateInfo(countingStream, (VkPipelineLayoutCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_369 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_369); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_370; |
| countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(pPipelineLayout, &cgen_var_370, 1); |
| countingStream->write((uint64_t*)&cgen_var_370, 8); |
| } |
| uint32_t packetSize_vkCreatePipelineLayout = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreatePipelineLayout = OP_vkCreatePipelineLayout; |
| stream->write(&opcode_vkCreatePipelineLayout, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreatePipelineLayout, sizeof(uint32_t)); |
| uint64_t cgen_var_371; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_371, 1); |
| stream->write((uint64_t*)&cgen_var_371, 1 * 8); |
| marshal_VkPipelineLayoutCreateInfo(stream, (VkPipelineLayoutCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_372 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_372); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_373; |
| stream->handleMapping()->mapHandles_VkPipelineLayout_u64(pPipelineLayout, &cgen_var_373, 1); |
| stream->write((uint64_t*)&cgen_var_373, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreatePipelineLayout readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_374; |
| stream->read((uint64_t*)&cgen_var_374, 8); |
| stream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_374, (VkPipelineLayout*)pPipelineLayout, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreatePipelineLayout returnUnmarshal"); |
| VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0; |
| stream->read(&vkCreatePipelineLayout_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreatePipelineLayout");; |
| return vkCreatePipelineLayout_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyPipelineLayout( |
| VkDevice device, |
| VkPipelineLayout pipelineLayout, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyPipelineLayout encode"); |
| mImpl->log("start vkDestroyPipelineLayout"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkPipelineLayout local_pipelineLayout; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pipelineLayout = pipelineLayout; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_375; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_375, 1); |
| countingStream->write((uint64_t*)&cgen_var_375, 1 * 8); |
| uint64_t cgen_var_376; |
| countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_pipelineLayout, &cgen_var_376, 1); |
| countingStream->write((uint64_t*)&cgen_var_376, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_377 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_377); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyPipelineLayout = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyPipelineLayout = OP_vkDestroyPipelineLayout; |
| stream->write(&opcode_vkDestroyPipelineLayout, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyPipelineLayout, sizeof(uint32_t)); |
| uint64_t cgen_var_378; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_378, 1); |
| stream->write((uint64_t*)&cgen_var_378, 1 * 8); |
| uint64_t cgen_var_379; |
| stream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_pipelineLayout, &cgen_var_379, 1); |
| stream->write((uint64_t*)&cgen_var_379, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_380 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_380); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyPipelineLayout readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyPipelineLayout returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkPipelineLayout((VkPipelineLayout*)&pipelineLayout); |
| mImpl->log("finish vkDestroyPipelineLayout");; |
| } |
| |
| VkResult VkEncoder::vkCreateSampler( |
| VkDevice device, |
| const VkSamplerCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSampler* pSampler) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateSampler encode"); |
| mImpl->log("start vkCreateSampler"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSamplerCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkSamplerCreateInfo*)pool->alloc(sizeof(const VkSamplerCreateInfo)); |
| deepcopy_VkSamplerCreateInfo(pool, pCreateInfo, (VkSamplerCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkSamplerCreateInfo(mImpl->resources(), (VkSamplerCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_381; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_381, 1); |
| countingStream->write((uint64_t*)&cgen_var_381, 1 * 8); |
| marshal_VkSamplerCreateInfo(countingStream, (VkSamplerCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_382 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_382); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_383; |
| countingStream->handleMapping()->mapHandles_VkSampler_u64(pSampler, &cgen_var_383, 1); |
| countingStream->write((uint64_t*)&cgen_var_383, 8); |
| } |
| uint32_t packetSize_vkCreateSampler = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateSampler = OP_vkCreateSampler; |
| stream->write(&opcode_vkCreateSampler, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateSampler, sizeof(uint32_t)); |
| uint64_t cgen_var_384; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_384, 1); |
| stream->write((uint64_t*)&cgen_var_384, 1 * 8); |
| marshal_VkSamplerCreateInfo(stream, (VkSamplerCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_385 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_385); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_386; |
| stream->handleMapping()->mapHandles_VkSampler_u64(pSampler, &cgen_var_386, 1); |
| stream->write((uint64_t*)&cgen_var_386, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateSampler readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_387; |
| stream->read((uint64_t*)&cgen_var_387, 8); |
| stream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_387, (VkSampler*)pSampler, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateSampler returnUnmarshal"); |
| VkResult vkCreateSampler_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateSampler_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateSampler");; |
| return vkCreateSampler_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroySampler( |
| VkDevice device, |
| VkSampler sampler, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroySampler encode"); |
| mImpl->log("start vkDestroySampler"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSampler local_sampler; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_sampler = sampler; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_388; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_388, 1); |
| countingStream->write((uint64_t*)&cgen_var_388, 1 * 8); |
| uint64_t cgen_var_389; |
| countingStream->handleMapping()->mapHandles_VkSampler_u64(&local_sampler, &cgen_var_389, 1); |
| countingStream->write((uint64_t*)&cgen_var_389, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_390 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_390); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroySampler = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroySampler = OP_vkDestroySampler; |
| stream->write(&opcode_vkDestroySampler, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroySampler, sizeof(uint32_t)); |
| uint64_t cgen_var_391; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_391, 1); |
| stream->write((uint64_t*)&cgen_var_391, 1 * 8); |
| uint64_t cgen_var_392; |
| stream->handleMapping()->mapHandles_VkSampler_u64(&local_sampler, &cgen_var_392, 1); |
| stream->write((uint64_t*)&cgen_var_392, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_393 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_393); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroySampler readParams"); |
| AEMU_SCOPED_TRACE("vkDestroySampler returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkSampler((VkSampler*)&sampler); |
| mImpl->log("finish vkDestroySampler");; |
| } |
| |
| VkResult VkEncoder::vkCreateDescriptorSetLayout( |
| VkDevice device, |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDescriptorSetLayout* pSetLayout) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout encode"); |
| mImpl->log("start vkCreateDescriptorSetLayout"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorSetLayoutCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDescriptorSetLayoutCreateInfo*)pool->alloc(sizeof(const VkDescriptorSetLayoutCreateInfo)); |
| deepcopy_VkDescriptorSetLayoutCreateInfo(pool, pCreateInfo, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_394; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_394, 1); |
| countingStream->write((uint64_t*)&cgen_var_394, 1 * 8); |
| marshal_VkDescriptorSetLayoutCreateInfo(countingStream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_395 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_395); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_396; |
| countingStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(pSetLayout, &cgen_var_396, 1); |
| countingStream->write((uint64_t*)&cgen_var_396, 8); |
| } |
| uint32_t packetSize_vkCreateDescriptorSetLayout = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateDescriptorSetLayout = OP_vkCreateDescriptorSetLayout; |
| stream->write(&opcode_vkCreateDescriptorSetLayout, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateDescriptorSetLayout, sizeof(uint32_t)); |
| uint64_t cgen_var_397; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_397, 1); |
| stream->write((uint64_t*)&cgen_var_397, 1 * 8); |
| marshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_398 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_398); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_399; |
| stream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(pSetLayout, &cgen_var_399, 1); |
| stream->write((uint64_t*)&cgen_var_399, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_400; |
| stream->read((uint64_t*)&cgen_var_400, 8); |
| stream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(&cgen_var_400, (VkDescriptorSetLayout*)pSetLayout, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout returnUnmarshal"); |
| VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateDescriptorSetLayout_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateDescriptorSetLayout");; |
| return vkCreateDescriptorSetLayout_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyDescriptorSetLayout( |
| VkDevice device, |
| VkDescriptorSetLayout descriptorSetLayout, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout encode"); |
| mImpl->log("start vkDestroyDescriptorSetLayout"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorSetLayout local_descriptorSetLayout; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_descriptorSetLayout = descriptorSetLayout; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_401; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_401, 1); |
| countingStream->write((uint64_t*)&cgen_var_401, 1 * 8); |
| uint64_t cgen_var_402; |
| countingStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(&local_descriptorSetLayout, &cgen_var_402, 1); |
| countingStream->write((uint64_t*)&cgen_var_402, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_403 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_403); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyDescriptorSetLayout = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyDescriptorSetLayout = OP_vkDestroyDescriptorSetLayout; |
| stream->write(&opcode_vkDestroyDescriptorSetLayout, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyDescriptorSetLayout, sizeof(uint32_t)); |
| uint64_t cgen_var_404; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_404, 1); |
| stream->write((uint64_t*)&cgen_var_404, 1 * 8); |
| uint64_t cgen_var_405; |
| stream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(&local_descriptorSetLayout, &cgen_var_405, 1); |
| stream->write((uint64_t*)&cgen_var_405, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_406 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_406); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkDescriptorSetLayout((VkDescriptorSetLayout*)&descriptorSetLayout); |
| mImpl->log("finish vkDestroyDescriptorSetLayout");; |
| } |
| |
| VkResult VkEncoder::vkCreateDescriptorPool( |
| VkDevice device, |
| const VkDescriptorPoolCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDescriptorPool* pDescriptorPool) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorPool encode"); |
| mImpl->log("start vkCreateDescriptorPool"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorPoolCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDescriptorPoolCreateInfo*)pool->alloc(sizeof(const VkDescriptorPoolCreateInfo)); |
| deepcopy_VkDescriptorPoolCreateInfo(pool, pCreateInfo, (VkDescriptorPoolCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDescriptorPoolCreateInfo(mImpl->resources(), (VkDescriptorPoolCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_407; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_407, 1); |
| countingStream->write((uint64_t*)&cgen_var_407, 1 * 8); |
| marshal_VkDescriptorPoolCreateInfo(countingStream, (VkDescriptorPoolCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_408 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_408); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_409; |
| countingStream->handleMapping()->mapHandles_VkDescriptorPool_u64(pDescriptorPool, &cgen_var_409, 1); |
| countingStream->write((uint64_t*)&cgen_var_409, 8); |
| } |
| uint32_t packetSize_vkCreateDescriptorPool = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateDescriptorPool = OP_vkCreateDescriptorPool; |
| stream->write(&opcode_vkCreateDescriptorPool, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateDescriptorPool, sizeof(uint32_t)); |
| uint64_t cgen_var_410; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_410, 1); |
| stream->write((uint64_t*)&cgen_var_410, 1 * 8); |
| marshal_VkDescriptorPoolCreateInfo(stream, (VkDescriptorPoolCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_411 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_411); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_412; |
| stream->handleMapping()->mapHandles_VkDescriptorPool_u64(pDescriptorPool, &cgen_var_412, 1); |
| stream->write((uint64_t*)&cgen_var_412, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorPool readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_413; |
| stream->read((uint64_t*)&cgen_var_413, 8); |
| stream->handleMapping()->mapHandles_u64_VkDescriptorPool(&cgen_var_413, (VkDescriptorPool*)pDescriptorPool, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorPool returnUnmarshal"); |
| VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateDescriptorPool_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateDescriptorPool");; |
| return vkCreateDescriptorPool_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyDescriptorPool( |
| VkDevice device, |
| VkDescriptorPool descriptorPool, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorPool encode"); |
| mImpl->log("start vkDestroyDescriptorPool"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorPool local_descriptorPool; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_descriptorPool = descriptorPool; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_414; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_414, 1); |
| countingStream->write((uint64_t*)&cgen_var_414, 1 * 8); |
| uint64_t cgen_var_415; |
| countingStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_415, 1); |
| countingStream->write((uint64_t*)&cgen_var_415, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_416 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_416); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyDescriptorPool = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyDescriptorPool = OP_vkDestroyDescriptorPool; |
| stream->write(&opcode_vkDestroyDescriptorPool, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyDescriptorPool, sizeof(uint32_t)); |
| uint64_t cgen_var_417; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_417, 1); |
| stream->write((uint64_t*)&cgen_var_417, 1 * 8); |
| uint64_t cgen_var_418; |
| stream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_418, 1); |
| stream->write((uint64_t*)&cgen_var_418, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_419 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_419); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorPool readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorPool returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkDescriptorPool((VkDescriptorPool*)&descriptorPool); |
| mImpl->log("finish vkDestroyDescriptorPool");; |
| } |
| |
| VkResult VkEncoder::vkResetDescriptorPool( |
| VkDevice device, |
| VkDescriptorPool descriptorPool, |
| VkDescriptorPoolResetFlags flags) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkResetDescriptorPool encode"); |
| mImpl->log("start vkResetDescriptorPool"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorPool local_descriptorPool; |
| VkDescriptorPoolResetFlags local_flags; |
| local_device = device; |
| local_descriptorPool = descriptorPool; |
| local_flags = flags; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_420; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_420, 1); |
| countingStream->write((uint64_t*)&cgen_var_420, 1 * 8); |
| uint64_t cgen_var_421; |
| countingStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_421, 1); |
| countingStream->write((uint64_t*)&cgen_var_421, 1 * 8); |
| countingStream->write((VkDescriptorPoolResetFlags*)&local_flags, sizeof(VkDescriptorPoolResetFlags)); |
| } |
| uint32_t packetSize_vkResetDescriptorPool = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkResetDescriptorPool = OP_vkResetDescriptorPool; |
| stream->write(&opcode_vkResetDescriptorPool, sizeof(uint32_t)); |
| stream->write(&packetSize_vkResetDescriptorPool, sizeof(uint32_t)); |
| uint64_t cgen_var_422; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_422, 1); |
| stream->write((uint64_t*)&cgen_var_422, 1 * 8); |
| uint64_t cgen_var_423; |
| stream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_423, 1); |
| stream->write((uint64_t*)&cgen_var_423, 1 * 8); |
| stream->write((VkDescriptorPoolResetFlags*)&local_flags, sizeof(VkDescriptorPoolResetFlags)); |
| AEMU_SCOPED_TRACE("vkResetDescriptorPool readParams"); |
| AEMU_SCOPED_TRACE("vkResetDescriptorPool returnUnmarshal"); |
| VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0; |
| stream->read(&vkResetDescriptorPool_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkResetDescriptorPool");; |
| return vkResetDescriptorPool_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkAllocateDescriptorSets( |
| VkDevice device, |
| const VkDescriptorSetAllocateInfo* pAllocateInfo, |
| VkDescriptorSet* pDescriptorSets) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkAllocateDescriptorSets encode"); |
| mImpl->log("start vkAllocateDescriptorSets"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorSetAllocateInfo* local_pAllocateInfo; |
| local_device = device; |
| local_pAllocateInfo = nullptr; |
| if (pAllocateInfo) |
| { |
| local_pAllocateInfo = (VkDescriptorSetAllocateInfo*)pool->alloc(sizeof(const VkDescriptorSetAllocateInfo)); |
| deepcopy_VkDescriptorSetAllocateInfo(pool, pAllocateInfo, (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo)); |
| } |
| if (local_pAllocateInfo) |
| { |
| transform_tohost_VkDescriptorSetAllocateInfo(mImpl->resources(), (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_424; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_424, 1); |
| countingStream->write((uint64_t*)&cgen_var_424, 1 * 8); |
| marshal_VkDescriptorSetAllocateInfo(countingStream, (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo)); |
| if (pAllocateInfo->descriptorSetCount) |
| { |
| uint64_t* cgen_var_425; |
| countingStream->alloc((void**)&cgen_var_425, pAllocateInfo->descriptorSetCount * 8); |
| countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(pDescriptorSets, cgen_var_425, pAllocateInfo->descriptorSetCount); |
| countingStream->write((uint64_t*)cgen_var_425, pAllocateInfo->descriptorSetCount * 8); |
| } |
| } |
| uint32_t packetSize_vkAllocateDescriptorSets = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkAllocateDescriptorSets = OP_vkAllocateDescriptorSets; |
| stream->write(&opcode_vkAllocateDescriptorSets, sizeof(uint32_t)); |
| stream->write(&packetSize_vkAllocateDescriptorSets, sizeof(uint32_t)); |
| uint64_t cgen_var_426; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_426, 1); |
| stream->write((uint64_t*)&cgen_var_426, 1 * 8); |
| marshal_VkDescriptorSetAllocateInfo(stream, (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo)); |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| if (pAllocateInfo->descriptorSetCount) |
| { |
| uint64_t* cgen_var_427; |
| stream->alloc((void**)&cgen_var_427, pAllocateInfo->descriptorSetCount * 8); |
| stream->handleMapping()->mapHandles_VkDescriptorSet_u64(pDescriptorSets, cgen_var_427, pAllocateInfo->descriptorSetCount); |
| stream->write((uint64_t*)cgen_var_427, pAllocateInfo->descriptorSetCount * 8); |
| } |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkAllocateDescriptorSets readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| if (pAllocateInfo->descriptorSetCount) |
| { |
| uint64_t* cgen_var_428; |
| stream->alloc((void**)&cgen_var_428, pAllocateInfo->descriptorSetCount * 8); |
| stream->read((uint64_t*)cgen_var_428, pAllocateInfo->descriptorSetCount * 8); |
| stream->handleMapping()->mapHandles_u64_VkDescriptorSet(cgen_var_428, (VkDescriptorSet*)pDescriptorSets, pAllocateInfo->descriptorSetCount); |
| } |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkAllocateDescriptorSets returnUnmarshal"); |
| VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0; |
| stream->read(&vkAllocateDescriptorSets_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkAllocateDescriptorSets");; |
| return vkAllocateDescriptorSets_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkFreeDescriptorSets( |
| VkDevice device, |
| VkDescriptorPool descriptorPool, |
| uint32_t descriptorSetCount, |
| const VkDescriptorSet* pDescriptorSets) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkFreeDescriptorSets encode"); |
| mImpl->log("start vkFreeDescriptorSets"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorPool local_descriptorPool; |
| uint32_t local_descriptorSetCount; |
| VkDescriptorSet* local_pDescriptorSets; |
| local_device = device; |
| local_descriptorPool = descriptorPool; |
| local_descriptorSetCount = descriptorSetCount; |
| local_pDescriptorSets = nullptr; |
| if (pDescriptorSets) |
| { |
| local_pDescriptorSets = (VkDescriptorSet*)pool->dupArray(pDescriptorSets, ((descriptorSetCount)) * sizeof(const VkDescriptorSet)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_429; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_429, 1); |
| countingStream->write((uint64_t*)&cgen_var_429, 1 * 8); |
| uint64_t cgen_var_430; |
| countingStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_430, 1); |
| countingStream->write((uint64_t*)&cgen_var_430, 1 * 8); |
| countingStream->write((uint32_t*)&local_descriptorSetCount, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_431 = (uint64_t)(uintptr_t)local_pDescriptorSets; |
| countingStream->putBe64(cgen_var_431); |
| if (local_pDescriptorSets) |
| { |
| if (((descriptorSetCount))) |
| { |
| uint64_t* cgen_var_432; |
| countingStream->alloc((void**)&cgen_var_432, ((descriptorSetCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(local_pDescriptorSets, cgen_var_432, ((descriptorSetCount))); |
| countingStream->write((uint64_t*)cgen_var_432, ((descriptorSetCount)) * 8); |
| } |
| } |
| } |
| uint32_t packetSize_vkFreeDescriptorSets = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkFreeDescriptorSets = OP_vkFreeDescriptorSets; |
| stream->write(&opcode_vkFreeDescriptorSets, sizeof(uint32_t)); |
| stream->write(&packetSize_vkFreeDescriptorSets, sizeof(uint32_t)); |
| uint64_t cgen_var_433; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_433, 1); |
| stream->write((uint64_t*)&cgen_var_433, 1 * 8); |
| uint64_t cgen_var_434; |
| stream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_434, 1); |
| stream->write((uint64_t*)&cgen_var_434, 1 * 8); |
| stream->write((uint32_t*)&local_descriptorSetCount, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_435 = (uint64_t)(uintptr_t)local_pDescriptorSets; |
| stream->putBe64(cgen_var_435); |
| if (local_pDescriptorSets) |
| { |
| if (((descriptorSetCount))) |
| { |
| uint64_t* cgen_var_436; |
| stream->alloc((void**)&cgen_var_436, ((descriptorSetCount)) * 8); |
| stream->handleMapping()->mapHandles_VkDescriptorSet_u64(local_pDescriptorSets, cgen_var_436, ((descriptorSetCount))); |
| stream->write((uint64_t*)cgen_var_436, ((descriptorSetCount)) * 8); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkFreeDescriptorSets readParams"); |
| AEMU_SCOPED_TRACE("vkFreeDescriptorSets returnUnmarshal"); |
| VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0; |
| stream->read(&vkFreeDescriptorSets_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| if (pDescriptorSets) |
| { |
| resources->destroyMapping()->mapHandles_VkDescriptorSet((VkDescriptorSet*)pDescriptorSets, ((descriptorSetCount))); |
| } |
| mImpl->log("finish vkFreeDescriptorSets");; |
| return vkFreeDescriptorSets_VkResult_return; |
| } |
| |
| void VkEncoder::vkUpdateDescriptorSets( |
| VkDevice device, |
| uint32_t descriptorWriteCount, |
| const VkWriteDescriptorSet* pDescriptorWrites, |
| uint32_t descriptorCopyCount, |
| const VkCopyDescriptorSet* pDescriptorCopies) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSets encode"); |
| mImpl->log("start vkUpdateDescriptorSets"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_descriptorWriteCount; |
| VkWriteDescriptorSet* local_pDescriptorWrites; |
| uint32_t local_descriptorCopyCount; |
| VkCopyDescriptorSet* local_pDescriptorCopies; |
| local_device = device; |
| local_descriptorWriteCount = descriptorWriteCount; |
| local_pDescriptorWrites = nullptr; |
| if (pDescriptorWrites) |
| { |
| local_pDescriptorWrites = (VkWriteDescriptorSet*)pool->alloc(((descriptorWriteCount)) * sizeof(const VkWriteDescriptorSet)); |
| for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i) |
| { |
| deepcopy_VkWriteDescriptorSet(pool, pDescriptorWrites + i, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i)); |
| } |
| } |
| local_descriptorCopyCount = descriptorCopyCount; |
| local_pDescriptorCopies = nullptr; |
| if (pDescriptorCopies) |
| { |
| local_pDescriptorCopies = (VkCopyDescriptorSet*)pool->alloc(((descriptorCopyCount)) * sizeof(const VkCopyDescriptorSet)); |
| for (uint32_t i = 0; i < (uint32_t)((descriptorCopyCount)); ++i) |
| { |
| deepcopy_VkCopyDescriptorSet(pool, pDescriptorCopies + i, (VkCopyDescriptorSet*)(local_pDescriptorCopies + i)); |
| } |
| } |
| if (local_pDescriptorWrites) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i) |
| { |
| transform_tohost_VkWriteDescriptorSet(mImpl->resources(), (VkWriteDescriptorSet*)(local_pDescriptorWrites + i)); |
| } |
| } |
| if (local_pDescriptorCopies) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((descriptorCopyCount)); ++i) |
| { |
| transform_tohost_VkCopyDescriptorSet(mImpl->resources(), (VkCopyDescriptorSet*)(local_pDescriptorCopies + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_437; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_437, 1); |
| countingStream->write((uint64_t*)&cgen_var_437, 1 * 8); |
| countingStream->write((uint32_t*)&local_descriptorWriteCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i) |
| { |
| marshal_VkWriteDescriptorSet(countingStream, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i)); |
| } |
| countingStream->write((uint32_t*)&local_descriptorCopyCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((descriptorCopyCount)); ++i) |
| { |
| marshal_VkCopyDescriptorSet(countingStream, (VkCopyDescriptorSet*)(local_pDescriptorCopies + i)); |
| } |
| } |
| uint32_t packetSize_vkUpdateDescriptorSets = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkUpdateDescriptorSets = OP_vkUpdateDescriptorSets; |
| stream->write(&opcode_vkUpdateDescriptorSets, sizeof(uint32_t)); |
| stream->write(&packetSize_vkUpdateDescriptorSets, sizeof(uint32_t)); |
| uint64_t cgen_var_438; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_438, 1); |
| stream->write((uint64_t*)&cgen_var_438, 1 * 8); |
| stream->write((uint32_t*)&local_descriptorWriteCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i) |
| { |
| marshal_VkWriteDescriptorSet(stream, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i)); |
| } |
| stream->write((uint32_t*)&local_descriptorCopyCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((descriptorCopyCount)); ++i) |
| { |
| marshal_VkCopyDescriptorSet(stream, (VkCopyDescriptorSet*)(local_pDescriptorCopies + i)); |
| } |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSets readParams"); |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSets returnUnmarshal"); |
| mImpl->log("finish vkUpdateDescriptorSets");; |
| } |
| |
| VkResult VkEncoder::vkCreateFramebuffer( |
| VkDevice device, |
| const VkFramebufferCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkFramebuffer* pFramebuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateFramebuffer encode"); |
| mImpl->log("start vkCreateFramebuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkFramebufferCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkFramebufferCreateInfo*)pool->alloc(sizeof(const VkFramebufferCreateInfo)); |
| deepcopy_VkFramebufferCreateInfo(pool, pCreateInfo, (VkFramebufferCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkFramebufferCreateInfo(mImpl->resources(), (VkFramebufferCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_439; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_439, 1); |
| countingStream->write((uint64_t*)&cgen_var_439, 1 * 8); |
| marshal_VkFramebufferCreateInfo(countingStream, (VkFramebufferCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_440 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_440); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_441; |
| countingStream->handleMapping()->mapHandles_VkFramebuffer_u64(pFramebuffer, &cgen_var_441, 1); |
| countingStream->write((uint64_t*)&cgen_var_441, 8); |
| } |
| uint32_t packetSize_vkCreateFramebuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateFramebuffer = OP_vkCreateFramebuffer; |
| stream->write(&opcode_vkCreateFramebuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateFramebuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_442; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_442, 1); |
| stream->write((uint64_t*)&cgen_var_442, 1 * 8); |
| marshal_VkFramebufferCreateInfo(stream, (VkFramebufferCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_443 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_443); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_444; |
| stream->handleMapping()->mapHandles_VkFramebuffer_u64(pFramebuffer, &cgen_var_444, 1); |
| stream->write((uint64_t*)&cgen_var_444, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateFramebuffer readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_445; |
| stream->read((uint64_t*)&cgen_var_445, 8); |
| stream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_445, (VkFramebuffer*)pFramebuffer, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateFramebuffer returnUnmarshal"); |
| VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateFramebuffer_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateFramebuffer");; |
| return vkCreateFramebuffer_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyFramebuffer( |
| VkDevice device, |
| VkFramebuffer framebuffer, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyFramebuffer encode"); |
| mImpl->log("start vkDestroyFramebuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkFramebuffer local_framebuffer; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_framebuffer = framebuffer; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_446; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_446, 1); |
| countingStream->write((uint64_t*)&cgen_var_446, 1 * 8); |
| uint64_t cgen_var_447; |
| countingStream->handleMapping()->mapHandles_VkFramebuffer_u64(&local_framebuffer, &cgen_var_447, 1); |
| countingStream->write((uint64_t*)&cgen_var_447, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_448 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_448); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyFramebuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyFramebuffer = OP_vkDestroyFramebuffer; |
| stream->write(&opcode_vkDestroyFramebuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyFramebuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_449; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_449, 1); |
| stream->write((uint64_t*)&cgen_var_449, 1 * 8); |
| uint64_t cgen_var_450; |
| stream->handleMapping()->mapHandles_VkFramebuffer_u64(&local_framebuffer, &cgen_var_450, 1); |
| stream->write((uint64_t*)&cgen_var_450, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_451 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_451); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyFramebuffer readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyFramebuffer returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkFramebuffer((VkFramebuffer*)&framebuffer); |
| mImpl->log("finish vkDestroyFramebuffer");; |
| } |
| |
| VkResult VkEncoder::vkCreateRenderPass( |
| VkDevice device, |
| const VkRenderPassCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkRenderPass* pRenderPass) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateRenderPass encode"); |
| mImpl->log("start vkCreateRenderPass"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkRenderPassCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkRenderPassCreateInfo*)pool->alloc(sizeof(const VkRenderPassCreateInfo)); |
| deepcopy_VkRenderPassCreateInfo(pool, pCreateInfo, (VkRenderPassCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkRenderPassCreateInfo(mImpl->resources(), (VkRenderPassCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_452; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_452, 1); |
| countingStream->write((uint64_t*)&cgen_var_452, 1 * 8); |
| marshal_VkRenderPassCreateInfo(countingStream, (VkRenderPassCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_453 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_453); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_454; |
| countingStream->handleMapping()->mapHandles_VkRenderPass_u64(pRenderPass, &cgen_var_454, 1); |
| countingStream->write((uint64_t*)&cgen_var_454, 8); |
| } |
| uint32_t packetSize_vkCreateRenderPass = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateRenderPass = OP_vkCreateRenderPass; |
| stream->write(&opcode_vkCreateRenderPass, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateRenderPass, sizeof(uint32_t)); |
| uint64_t cgen_var_455; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_455, 1); |
| stream->write((uint64_t*)&cgen_var_455, 1 * 8); |
| marshal_VkRenderPassCreateInfo(stream, (VkRenderPassCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_456 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_456); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_457; |
| stream->handleMapping()->mapHandles_VkRenderPass_u64(pRenderPass, &cgen_var_457, 1); |
| stream->write((uint64_t*)&cgen_var_457, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateRenderPass readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_458; |
| stream->read((uint64_t*)&cgen_var_458, 8); |
| stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_458, (VkRenderPass*)pRenderPass, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateRenderPass returnUnmarshal"); |
| VkResult vkCreateRenderPass_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateRenderPass_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateRenderPass");; |
| return vkCreateRenderPass_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyRenderPass( |
| VkDevice device, |
| VkRenderPass renderPass, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyRenderPass encode"); |
| mImpl->log("start vkDestroyRenderPass"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkRenderPass local_renderPass; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_renderPass = renderPass; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_459; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_459, 1); |
| countingStream->write((uint64_t*)&cgen_var_459, 1 * 8); |
| uint64_t cgen_var_460; |
| countingStream->handleMapping()->mapHandles_VkRenderPass_u64(&local_renderPass, &cgen_var_460, 1); |
| countingStream->write((uint64_t*)&cgen_var_460, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_461 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_461); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyRenderPass = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyRenderPass = OP_vkDestroyRenderPass; |
| stream->write(&opcode_vkDestroyRenderPass, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyRenderPass, sizeof(uint32_t)); |
| uint64_t cgen_var_462; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_462, 1); |
| stream->write((uint64_t*)&cgen_var_462, 1 * 8); |
| uint64_t cgen_var_463; |
| stream->handleMapping()->mapHandles_VkRenderPass_u64(&local_renderPass, &cgen_var_463, 1); |
| stream->write((uint64_t*)&cgen_var_463, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_464 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_464); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyRenderPass readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyRenderPass returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkRenderPass((VkRenderPass*)&renderPass); |
| mImpl->log("finish vkDestroyRenderPass");; |
| } |
| |
| void VkEncoder::vkGetRenderAreaGranularity( |
| VkDevice device, |
| VkRenderPass renderPass, |
| VkExtent2D* pGranularity) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity encode"); |
| mImpl->log("start vkGetRenderAreaGranularity"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkRenderPass local_renderPass; |
| local_device = device; |
| local_renderPass = renderPass; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_465; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_465, 1); |
| countingStream->write((uint64_t*)&cgen_var_465, 1 * 8); |
| uint64_t cgen_var_466; |
| countingStream->handleMapping()->mapHandles_VkRenderPass_u64(&local_renderPass, &cgen_var_466, 1); |
| countingStream->write((uint64_t*)&cgen_var_466, 1 * 8); |
| marshal_VkExtent2D(countingStream, (VkExtent2D*)(pGranularity)); |
| } |
| uint32_t packetSize_vkGetRenderAreaGranularity = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetRenderAreaGranularity = OP_vkGetRenderAreaGranularity; |
| stream->write(&opcode_vkGetRenderAreaGranularity, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetRenderAreaGranularity, sizeof(uint32_t)); |
| uint64_t cgen_var_467; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_467, 1); |
| stream->write((uint64_t*)&cgen_var_467, 1 * 8); |
| uint64_t cgen_var_468; |
| stream->handleMapping()->mapHandles_VkRenderPass_u64(&local_renderPass, &cgen_var_468, 1); |
| stream->write((uint64_t*)&cgen_var_468, 1 * 8); |
| marshal_VkExtent2D(stream, (VkExtent2D*)(pGranularity)); |
| AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity readParams"); |
| unmarshal_VkExtent2D(stream, (VkExtent2D*)(pGranularity)); |
| if (pGranularity) |
| { |
| transform_fromhost_VkExtent2D(mImpl->resources(), (VkExtent2D*)(pGranularity)); |
| } |
| AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity returnUnmarshal"); |
| mImpl->log("finish vkGetRenderAreaGranularity");; |
| } |
| |
| VkResult VkEncoder::vkCreateCommandPool( |
| VkDevice device, |
| const VkCommandPoolCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkCommandPool* pCommandPool) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateCommandPool encode"); |
| mImpl->log("start vkCreateCommandPool"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkCommandPoolCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkCommandPoolCreateInfo*)pool->alloc(sizeof(const VkCommandPoolCreateInfo)); |
| deepcopy_VkCommandPoolCreateInfo(pool, pCreateInfo, (VkCommandPoolCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkCommandPoolCreateInfo(mImpl->resources(), (VkCommandPoolCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_469; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_469, 1); |
| countingStream->write((uint64_t*)&cgen_var_469, 1 * 8); |
| marshal_VkCommandPoolCreateInfo(countingStream, (VkCommandPoolCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_470 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_470); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_471; |
| countingStream->handleMapping()->mapHandles_VkCommandPool_u64(pCommandPool, &cgen_var_471, 1); |
| countingStream->write((uint64_t*)&cgen_var_471, 8); |
| } |
| uint32_t packetSize_vkCreateCommandPool = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateCommandPool = OP_vkCreateCommandPool; |
| stream->write(&opcode_vkCreateCommandPool, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateCommandPool, sizeof(uint32_t)); |
| uint64_t cgen_var_472; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_472, 1); |
| stream->write((uint64_t*)&cgen_var_472, 1 * 8); |
| marshal_VkCommandPoolCreateInfo(stream, (VkCommandPoolCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_473 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_473); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_474; |
| stream->handleMapping()->mapHandles_VkCommandPool_u64(pCommandPool, &cgen_var_474, 1); |
| stream->write((uint64_t*)&cgen_var_474, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateCommandPool readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_475; |
| stream->read((uint64_t*)&cgen_var_475, 8); |
| stream->handleMapping()->mapHandles_u64_VkCommandPool(&cgen_var_475, (VkCommandPool*)pCommandPool, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateCommandPool returnUnmarshal"); |
| VkResult vkCreateCommandPool_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateCommandPool_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateCommandPool");; |
| return vkCreateCommandPool_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyCommandPool( |
| VkDevice device, |
| VkCommandPool commandPool, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyCommandPool encode"); |
| mImpl->log("start vkDestroyCommandPool"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkCommandPool local_commandPool; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_commandPool = commandPool; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_476; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_476, 1); |
| countingStream->write((uint64_t*)&cgen_var_476, 1 * 8); |
| uint64_t cgen_var_477; |
| countingStream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_477, 1); |
| countingStream->write((uint64_t*)&cgen_var_477, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_478 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_478); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyCommandPool = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyCommandPool = OP_vkDestroyCommandPool; |
| stream->write(&opcode_vkDestroyCommandPool, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyCommandPool, sizeof(uint32_t)); |
| uint64_t cgen_var_479; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_479, 1); |
| stream->write((uint64_t*)&cgen_var_479, 1 * 8); |
| uint64_t cgen_var_480; |
| stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_480, 1); |
| stream->write((uint64_t*)&cgen_var_480, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_481 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_481); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyCommandPool readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyCommandPool returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkCommandPool((VkCommandPool*)&commandPool); |
| mImpl->log("finish vkDestroyCommandPool");; |
| } |
| |
| VkResult VkEncoder::vkResetCommandPool( |
| VkDevice device, |
| VkCommandPool commandPool, |
| VkCommandPoolResetFlags flags) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkResetCommandPool encode"); |
| mImpl->log("start vkResetCommandPool"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkCommandPool local_commandPool; |
| VkCommandPoolResetFlags local_flags; |
| local_device = device; |
| local_commandPool = commandPool; |
| local_flags = flags; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_482; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_482, 1); |
| countingStream->write((uint64_t*)&cgen_var_482, 1 * 8); |
| uint64_t cgen_var_483; |
| countingStream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_483, 1); |
| countingStream->write((uint64_t*)&cgen_var_483, 1 * 8); |
| countingStream->write((VkCommandPoolResetFlags*)&local_flags, sizeof(VkCommandPoolResetFlags)); |
| } |
| uint32_t packetSize_vkResetCommandPool = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkResetCommandPool = OP_vkResetCommandPool; |
| stream->write(&opcode_vkResetCommandPool, sizeof(uint32_t)); |
| stream->write(&packetSize_vkResetCommandPool, sizeof(uint32_t)); |
| uint64_t cgen_var_484; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_484, 1); |
| stream->write((uint64_t*)&cgen_var_484, 1 * 8); |
| uint64_t cgen_var_485; |
| stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_485, 1); |
| stream->write((uint64_t*)&cgen_var_485, 1 * 8); |
| stream->write((VkCommandPoolResetFlags*)&local_flags, sizeof(VkCommandPoolResetFlags)); |
| AEMU_SCOPED_TRACE("vkResetCommandPool readParams"); |
| AEMU_SCOPED_TRACE("vkResetCommandPool returnUnmarshal"); |
| VkResult vkResetCommandPool_VkResult_return = (VkResult)0; |
| stream->read(&vkResetCommandPool_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkResetCommandPool");; |
| return vkResetCommandPool_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkAllocateCommandBuffers( |
| VkDevice device, |
| const VkCommandBufferAllocateInfo* pAllocateInfo, |
| VkCommandBuffer* pCommandBuffers) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkAllocateCommandBuffers encode"); |
| mImpl->log("start vkAllocateCommandBuffers"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkCommandBufferAllocateInfo* local_pAllocateInfo; |
| local_device = device; |
| local_pAllocateInfo = nullptr; |
| if (pAllocateInfo) |
| { |
| local_pAllocateInfo = (VkCommandBufferAllocateInfo*)pool->alloc(sizeof(const VkCommandBufferAllocateInfo)); |
| deepcopy_VkCommandBufferAllocateInfo(pool, pAllocateInfo, (VkCommandBufferAllocateInfo*)(local_pAllocateInfo)); |
| } |
| if (local_pAllocateInfo) |
| { |
| transform_tohost_VkCommandBufferAllocateInfo(mImpl->resources(), (VkCommandBufferAllocateInfo*)(local_pAllocateInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_486; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_486, 1); |
| countingStream->write((uint64_t*)&cgen_var_486, 1 * 8); |
| marshal_VkCommandBufferAllocateInfo(countingStream, (VkCommandBufferAllocateInfo*)(local_pAllocateInfo)); |
| if (pAllocateInfo->commandBufferCount) |
| { |
| uint64_t* cgen_var_487; |
| countingStream->alloc((void**)&cgen_var_487, pAllocateInfo->commandBufferCount * 8); |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(pCommandBuffers, cgen_var_487, pAllocateInfo->commandBufferCount); |
| countingStream->write((uint64_t*)cgen_var_487, pAllocateInfo->commandBufferCount * 8); |
| } |
| } |
| uint32_t packetSize_vkAllocateCommandBuffers = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkAllocateCommandBuffers = OP_vkAllocateCommandBuffers; |
| stream->write(&opcode_vkAllocateCommandBuffers, sizeof(uint32_t)); |
| stream->write(&packetSize_vkAllocateCommandBuffers, sizeof(uint32_t)); |
| uint64_t cgen_var_488; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_488, 1); |
| stream->write((uint64_t*)&cgen_var_488, 1 * 8); |
| marshal_VkCommandBufferAllocateInfo(stream, (VkCommandBufferAllocateInfo*)(local_pAllocateInfo)); |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| if (pAllocateInfo->commandBufferCount) |
| { |
| uint64_t* cgen_var_489; |
| stream->alloc((void**)&cgen_var_489, pAllocateInfo->commandBufferCount * 8); |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(pCommandBuffers, cgen_var_489, pAllocateInfo->commandBufferCount); |
| stream->write((uint64_t*)cgen_var_489, pAllocateInfo->commandBufferCount * 8); |
| } |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkAllocateCommandBuffers readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| if (pAllocateInfo->commandBufferCount) |
| { |
| uint64_t* cgen_var_490; |
| stream->alloc((void**)&cgen_var_490, pAllocateInfo->commandBufferCount * 8); |
| stream->read((uint64_t*)cgen_var_490, pAllocateInfo->commandBufferCount * 8); |
| stream->handleMapping()->mapHandles_u64_VkCommandBuffer(cgen_var_490, (VkCommandBuffer*)pCommandBuffers, pAllocateInfo->commandBufferCount); |
| } |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkAllocateCommandBuffers returnUnmarshal"); |
| VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0; |
| stream->read(&vkAllocateCommandBuffers_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkAllocateCommandBuffers");; |
| return vkAllocateCommandBuffers_VkResult_return; |
| } |
| |
| void VkEncoder::vkFreeCommandBuffers( |
| VkDevice device, |
| VkCommandPool commandPool, |
| uint32_t commandBufferCount, |
| const VkCommandBuffer* pCommandBuffers) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkFreeCommandBuffers encode"); |
| mImpl->log("start vkFreeCommandBuffers"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkCommandPool local_commandPool; |
| uint32_t local_commandBufferCount; |
| VkCommandBuffer* local_pCommandBuffers; |
| local_device = device; |
| local_commandPool = commandPool; |
| local_commandBufferCount = commandBufferCount; |
| local_pCommandBuffers = nullptr; |
| if (pCommandBuffers) |
| { |
| local_pCommandBuffers = (VkCommandBuffer*)pool->dupArray(pCommandBuffers, ((commandBufferCount)) * sizeof(const VkCommandBuffer)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_491; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_491, 1); |
| countingStream->write((uint64_t*)&cgen_var_491, 1 * 8); |
| uint64_t cgen_var_492; |
| countingStream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_492, 1); |
| countingStream->write((uint64_t*)&cgen_var_492, 1 * 8); |
| countingStream->write((uint32_t*)&local_commandBufferCount, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_493 = (uint64_t)(uintptr_t)local_pCommandBuffers; |
| countingStream->putBe64(cgen_var_493); |
| if (local_pCommandBuffers) |
| { |
| if (((commandBufferCount))) |
| { |
| uint64_t* cgen_var_494; |
| countingStream->alloc((void**)&cgen_var_494, ((commandBufferCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(local_pCommandBuffers, cgen_var_494, ((commandBufferCount))); |
| countingStream->write((uint64_t*)cgen_var_494, ((commandBufferCount)) * 8); |
| } |
| } |
| } |
| uint32_t packetSize_vkFreeCommandBuffers = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkFreeCommandBuffers = OP_vkFreeCommandBuffers; |
| stream->write(&opcode_vkFreeCommandBuffers, sizeof(uint32_t)); |
| stream->write(&packetSize_vkFreeCommandBuffers, sizeof(uint32_t)); |
| uint64_t cgen_var_495; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_495, 1); |
| stream->write((uint64_t*)&cgen_var_495, 1 * 8); |
| uint64_t cgen_var_496; |
| stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_496, 1); |
| stream->write((uint64_t*)&cgen_var_496, 1 * 8); |
| stream->write((uint32_t*)&local_commandBufferCount, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_497 = (uint64_t)(uintptr_t)local_pCommandBuffers; |
| stream->putBe64(cgen_var_497); |
| if (local_pCommandBuffers) |
| { |
| if (((commandBufferCount))) |
| { |
| uint64_t* cgen_var_498; |
| stream->alloc((void**)&cgen_var_498, ((commandBufferCount)) * 8); |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(local_pCommandBuffers, cgen_var_498, ((commandBufferCount))); |
| stream->write((uint64_t*)cgen_var_498, ((commandBufferCount)) * 8); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkFreeCommandBuffers readParams"); |
| AEMU_SCOPED_TRACE("vkFreeCommandBuffers returnUnmarshal"); |
| if (pCommandBuffers) |
| { |
| resources->destroyMapping()->mapHandles_VkCommandBuffer((VkCommandBuffer*)pCommandBuffers, ((commandBufferCount))); |
| } |
| mImpl->log("finish vkFreeCommandBuffers");; |
| } |
| |
| VkResult VkEncoder::vkBeginCommandBuffer( |
| VkCommandBuffer commandBuffer, |
| const VkCommandBufferBeginInfo* pBeginInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkBeginCommandBuffer encode"); |
| mImpl->log("start vkBeginCommandBuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkCommandBufferBeginInfo* local_pBeginInfo; |
| local_commandBuffer = commandBuffer; |
| local_pBeginInfo = nullptr; |
| if (pBeginInfo) |
| { |
| local_pBeginInfo = (VkCommandBufferBeginInfo*)pool->alloc(sizeof(const VkCommandBufferBeginInfo)); |
| deepcopy_VkCommandBufferBeginInfo(pool, pBeginInfo, (VkCommandBufferBeginInfo*)(local_pBeginInfo)); |
| } |
| if (local_pBeginInfo) |
| { |
| transform_tohost_VkCommandBufferBeginInfo(mImpl->resources(), (VkCommandBufferBeginInfo*)(local_pBeginInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_499; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_499, 1); |
| countingStream->write((uint64_t*)&cgen_var_499, 1 * 8); |
| marshal_VkCommandBufferBeginInfo(countingStream, (VkCommandBufferBeginInfo*)(local_pBeginInfo)); |
| } |
| uint32_t packetSize_vkBeginCommandBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkBeginCommandBuffer = OP_vkBeginCommandBuffer; |
| stream->write(&opcode_vkBeginCommandBuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkBeginCommandBuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_500; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_500, 1); |
| stream->write((uint64_t*)&cgen_var_500, 1 * 8); |
| marshal_VkCommandBufferBeginInfo(stream, (VkCommandBufferBeginInfo*)(local_pBeginInfo)); |
| AEMU_SCOPED_TRACE("vkBeginCommandBuffer readParams"); |
| AEMU_SCOPED_TRACE("vkBeginCommandBuffer returnUnmarshal"); |
| VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0; |
| stream->read(&vkBeginCommandBuffer_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkBeginCommandBuffer");; |
| return vkBeginCommandBuffer_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkEndCommandBuffer( |
| VkCommandBuffer commandBuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkEndCommandBuffer encode"); |
| mImpl->log("start vkEndCommandBuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| local_commandBuffer = commandBuffer; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_501; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_501, 1); |
| countingStream->write((uint64_t*)&cgen_var_501, 1 * 8); |
| } |
| uint32_t packetSize_vkEndCommandBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkEndCommandBuffer = OP_vkEndCommandBuffer; |
| stream->write(&opcode_vkEndCommandBuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkEndCommandBuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_502; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_502, 1); |
| stream->write((uint64_t*)&cgen_var_502, 1 * 8); |
| AEMU_SCOPED_TRACE("vkEndCommandBuffer readParams"); |
| AEMU_SCOPED_TRACE("vkEndCommandBuffer returnUnmarshal"); |
| VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0; |
| stream->read(&vkEndCommandBuffer_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkEndCommandBuffer");; |
| return vkEndCommandBuffer_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkResetCommandBuffer( |
| VkCommandBuffer commandBuffer, |
| VkCommandBufferResetFlags flags) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkResetCommandBuffer encode"); |
| mImpl->log("start vkResetCommandBuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkCommandBufferResetFlags local_flags; |
| local_commandBuffer = commandBuffer; |
| local_flags = flags; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_503; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_503, 1); |
| countingStream->write((uint64_t*)&cgen_var_503, 1 * 8); |
| countingStream->write((VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags)); |
| } |
| uint32_t packetSize_vkResetCommandBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkResetCommandBuffer = OP_vkResetCommandBuffer; |
| stream->write(&opcode_vkResetCommandBuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkResetCommandBuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_504; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_504, 1); |
| stream->write((uint64_t*)&cgen_var_504, 1 * 8); |
| stream->write((VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags)); |
| AEMU_SCOPED_TRACE("vkResetCommandBuffer readParams"); |
| AEMU_SCOPED_TRACE("vkResetCommandBuffer returnUnmarshal"); |
| VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0; |
| stream->read(&vkResetCommandBuffer_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkResetCommandBuffer");; |
| return vkResetCommandBuffer_VkResult_return; |
| } |
| |
| void VkEncoder::vkCmdBindPipeline( |
| VkCommandBuffer commandBuffer, |
| VkPipelineBindPoint pipelineBindPoint, |
| VkPipeline pipeline) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdBindPipeline encode"); |
| mImpl->log("start vkCmdBindPipeline"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkPipelineBindPoint local_pipelineBindPoint; |
| VkPipeline local_pipeline; |
| local_commandBuffer = commandBuffer; |
| local_pipelineBindPoint = pipelineBindPoint; |
| local_pipeline = pipeline; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_505; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_505, 1); |
| countingStream->write((uint64_t*)&cgen_var_505, 1 * 8); |
| countingStream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint)); |
| uint64_t cgen_var_506; |
| countingStream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_506, 1); |
| countingStream->write((uint64_t*)&cgen_var_506, 1 * 8); |
| } |
| uint32_t packetSize_vkCmdBindPipeline = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdBindPipeline = OP_vkCmdBindPipeline; |
| stream->write(&opcode_vkCmdBindPipeline, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdBindPipeline, sizeof(uint32_t)); |
| uint64_t cgen_var_507; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_507, 1); |
| stream->write((uint64_t*)&cgen_var_507, 1 * 8); |
| stream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint)); |
| uint64_t cgen_var_508; |
| stream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_508, 1); |
| stream->write((uint64_t*)&cgen_var_508, 1 * 8); |
| AEMU_SCOPED_TRACE("vkCmdBindPipeline readParams"); |
| AEMU_SCOPED_TRACE("vkCmdBindPipeline returnUnmarshal"); |
| mImpl->log("finish vkCmdBindPipeline");; |
| } |
| |
| void VkEncoder::vkCmdSetViewport( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstViewport, |
| uint32_t viewportCount, |
| const VkViewport* pViewports) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetViewport encode"); |
| mImpl->log("start vkCmdSetViewport"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_firstViewport; |
| uint32_t local_viewportCount; |
| VkViewport* local_pViewports; |
| local_commandBuffer = commandBuffer; |
| local_firstViewport = firstViewport; |
| local_viewportCount = viewportCount; |
| local_pViewports = nullptr; |
| if (pViewports) |
| { |
| local_pViewports = (VkViewport*)pool->alloc(((viewportCount)) * sizeof(const VkViewport)); |
| for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i) |
| { |
| deepcopy_VkViewport(pool, pViewports + i, (VkViewport*)(local_pViewports + i)); |
| } |
| } |
| if (local_pViewports) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i) |
| { |
| transform_tohost_VkViewport(mImpl->resources(), (VkViewport*)(local_pViewports + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_509; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_509, 1); |
| countingStream->write((uint64_t*)&cgen_var_509, 1 * 8); |
| countingStream->write((uint32_t*)&local_firstViewport, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_viewportCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i) |
| { |
| marshal_VkViewport(countingStream, (VkViewport*)(local_pViewports + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdSetViewport = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetViewport = OP_vkCmdSetViewport; |
| stream->write(&opcode_vkCmdSetViewport, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetViewport, sizeof(uint32_t)); |
| uint64_t cgen_var_510; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_510, 1); |
| stream->write((uint64_t*)&cgen_var_510, 1 * 8); |
| stream->write((uint32_t*)&local_firstViewport, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_viewportCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i) |
| { |
| marshal_VkViewport(stream, (VkViewport*)(local_pViewports + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetViewport readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetViewport returnUnmarshal"); |
| mImpl->log("finish vkCmdSetViewport");; |
| } |
| |
| void VkEncoder::vkCmdSetScissor( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstScissor, |
| uint32_t scissorCount, |
| const VkRect2D* pScissors) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetScissor encode"); |
| mImpl->log("start vkCmdSetScissor"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_firstScissor; |
| uint32_t local_scissorCount; |
| VkRect2D* local_pScissors; |
| local_commandBuffer = commandBuffer; |
| local_firstScissor = firstScissor; |
| local_scissorCount = scissorCount; |
| local_pScissors = nullptr; |
| if (pScissors) |
| { |
| local_pScissors = (VkRect2D*)pool->alloc(((scissorCount)) * sizeof(const VkRect2D)); |
| for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i) |
| { |
| deepcopy_VkRect2D(pool, pScissors + i, (VkRect2D*)(local_pScissors + i)); |
| } |
| } |
| if (local_pScissors) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i) |
| { |
| transform_tohost_VkRect2D(mImpl->resources(), (VkRect2D*)(local_pScissors + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_511; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_511, 1); |
| countingStream->write((uint64_t*)&cgen_var_511, 1 * 8); |
| countingStream->write((uint32_t*)&local_firstScissor, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_scissorCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i) |
| { |
| marshal_VkRect2D(countingStream, (VkRect2D*)(local_pScissors + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdSetScissor = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetScissor = OP_vkCmdSetScissor; |
| stream->write(&opcode_vkCmdSetScissor, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetScissor, sizeof(uint32_t)); |
| uint64_t cgen_var_512; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_512, 1); |
| stream->write((uint64_t*)&cgen_var_512, 1 * 8); |
| stream->write((uint32_t*)&local_firstScissor, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_scissorCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i) |
| { |
| marshal_VkRect2D(stream, (VkRect2D*)(local_pScissors + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetScissor readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetScissor returnUnmarshal"); |
| mImpl->log("finish vkCmdSetScissor");; |
| } |
| |
| void VkEncoder::vkCmdSetLineWidth( |
| VkCommandBuffer commandBuffer, |
| float lineWidth) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetLineWidth encode"); |
| mImpl->log("start vkCmdSetLineWidth"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| float local_lineWidth; |
| local_commandBuffer = commandBuffer; |
| local_lineWidth = lineWidth; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_513; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_513, 1); |
| countingStream->write((uint64_t*)&cgen_var_513, 1 * 8); |
| countingStream->write((float*)&local_lineWidth, sizeof(float)); |
| } |
| uint32_t packetSize_vkCmdSetLineWidth = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetLineWidth = OP_vkCmdSetLineWidth; |
| stream->write(&opcode_vkCmdSetLineWidth, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetLineWidth, sizeof(uint32_t)); |
| uint64_t cgen_var_514; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_514, 1); |
| stream->write((uint64_t*)&cgen_var_514, 1 * 8); |
| stream->write((float*)&local_lineWidth, sizeof(float)); |
| AEMU_SCOPED_TRACE("vkCmdSetLineWidth readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetLineWidth returnUnmarshal"); |
| mImpl->log("finish vkCmdSetLineWidth");; |
| } |
| |
| void VkEncoder::vkCmdSetDepthBias( |
| VkCommandBuffer commandBuffer, |
| float depthBiasConstantFactor, |
| float depthBiasClamp, |
| float depthBiasSlopeFactor) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBias encode"); |
| mImpl->log("start vkCmdSetDepthBias"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| float local_depthBiasConstantFactor; |
| float local_depthBiasClamp; |
| float local_depthBiasSlopeFactor; |
| local_commandBuffer = commandBuffer; |
| local_depthBiasConstantFactor = depthBiasConstantFactor; |
| local_depthBiasClamp = depthBiasClamp; |
| local_depthBiasSlopeFactor = depthBiasSlopeFactor; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_515; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_515, 1); |
| countingStream->write((uint64_t*)&cgen_var_515, 1 * 8); |
| countingStream->write((float*)&local_depthBiasConstantFactor, sizeof(float)); |
| countingStream->write((float*)&local_depthBiasClamp, sizeof(float)); |
| countingStream->write((float*)&local_depthBiasSlopeFactor, sizeof(float)); |
| } |
| uint32_t packetSize_vkCmdSetDepthBias = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetDepthBias = OP_vkCmdSetDepthBias; |
| stream->write(&opcode_vkCmdSetDepthBias, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetDepthBias, sizeof(uint32_t)); |
| uint64_t cgen_var_516; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_516, 1); |
| stream->write((uint64_t*)&cgen_var_516, 1 * 8); |
| stream->write((float*)&local_depthBiasConstantFactor, sizeof(float)); |
| stream->write((float*)&local_depthBiasClamp, sizeof(float)); |
| stream->write((float*)&local_depthBiasSlopeFactor, sizeof(float)); |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBias readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBias returnUnmarshal"); |
| mImpl->log("finish vkCmdSetDepthBias");; |
| } |
| |
| void VkEncoder::vkCmdSetBlendConstants( |
| VkCommandBuffer commandBuffer, |
| const float blendConstants[4]) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetBlendConstants encode"); |
| mImpl->log("start vkCmdSetBlendConstants"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| float local_blendConstants[4]; |
| local_commandBuffer = commandBuffer; |
| memcpy(local_blendConstants, blendConstants, 4 * sizeof(const float)); |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_517; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_517, 1); |
| countingStream->write((uint64_t*)&cgen_var_517, 1 * 8); |
| countingStream->write((float*)local_blendConstants, 4 * sizeof(float)); |
| } |
| uint32_t packetSize_vkCmdSetBlendConstants = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetBlendConstants = OP_vkCmdSetBlendConstants; |
| stream->write(&opcode_vkCmdSetBlendConstants, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetBlendConstants, sizeof(uint32_t)); |
| uint64_t cgen_var_518; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_518, 1); |
| stream->write((uint64_t*)&cgen_var_518, 1 * 8); |
| stream->write((float*)local_blendConstants, 4 * sizeof(float)); |
| AEMU_SCOPED_TRACE("vkCmdSetBlendConstants readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetBlendConstants returnUnmarshal"); |
| mImpl->log("finish vkCmdSetBlendConstants");; |
| } |
| |
| void VkEncoder::vkCmdSetDepthBounds( |
| VkCommandBuffer commandBuffer, |
| float minDepthBounds, |
| float maxDepthBounds) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBounds encode"); |
| mImpl->log("start vkCmdSetDepthBounds"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| float local_minDepthBounds; |
| float local_maxDepthBounds; |
| local_commandBuffer = commandBuffer; |
| local_minDepthBounds = minDepthBounds; |
| local_maxDepthBounds = maxDepthBounds; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_519; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_519, 1); |
| countingStream->write((uint64_t*)&cgen_var_519, 1 * 8); |
| countingStream->write((float*)&local_minDepthBounds, sizeof(float)); |
| countingStream->write((float*)&local_maxDepthBounds, sizeof(float)); |
| } |
| uint32_t packetSize_vkCmdSetDepthBounds = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetDepthBounds = OP_vkCmdSetDepthBounds; |
| stream->write(&opcode_vkCmdSetDepthBounds, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetDepthBounds, sizeof(uint32_t)); |
| uint64_t cgen_var_520; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_520, 1); |
| stream->write((uint64_t*)&cgen_var_520, 1 * 8); |
| stream->write((float*)&local_minDepthBounds, sizeof(float)); |
| stream->write((float*)&local_maxDepthBounds, sizeof(float)); |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBounds readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBounds returnUnmarshal"); |
| mImpl->log("finish vkCmdSetDepthBounds");; |
| } |
| |
| void VkEncoder::vkCmdSetStencilCompareMask( |
| VkCommandBuffer commandBuffer, |
| VkStencilFaceFlags faceMask, |
| uint32_t compareMask) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask encode"); |
| mImpl->log("start vkCmdSetStencilCompareMask"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkStencilFaceFlags local_faceMask; |
| uint32_t local_compareMask; |
| local_commandBuffer = commandBuffer; |
| local_faceMask = faceMask; |
| local_compareMask = compareMask; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_521; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_521, 1); |
| countingStream->write((uint64_t*)&cgen_var_521, 1 * 8); |
| countingStream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags)); |
| countingStream->write((uint32_t*)&local_compareMask, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdSetStencilCompareMask = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetStencilCompareMask = OP_vkCmdSetStencilCompareMask; |
| stream->write(&opcode_vkCmdSetStencilCompareMask, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetStencilCompareMask, sizeof(uint32_t)); |
| uint64_t cgen_var_522; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_522, 1); |
| stream->write((uint64_t*)&cgen_var_522, 1 * 8); |
| stream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags)); |
| stream->write((uint32_t*)&local_compareMask, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask returnUnmarshal"); |
| mImpl->log("finish vkCmdSetStencilCompareMask");; |
| } |
| |
| void VkEncoder::vkCmdSetStencilWriteMask( |
| VkCommandBuffer commandBuffer, |
| VkStencilFaceFlags faceMask, |
| uint32_t writeMask) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask encode"); |
| mImpl->log("start vkCmdSetStencilWriteMask"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkStencilFaceFlags local_faceMask; |
| uint32_t local_writeMask; |
| local_commandBuffer = commandBuffer; |
| local_faceMask = faceMask; |
| local_writeMask = writeMask; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_523; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_523, 1); |
| countingStream->write((uint64_t*)&cgen_var_523, 1 * 8); |
| countingStream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags)); |
| countingStream->write((uint32_t*)&local_writeMask, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdSetStencilWriteMask = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetStencilWriteMask = OP_vkCmdSetStencilWriteMask; |
| stream->write(&opcode_vkCmdSetStencilWriteMask, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetStencilWriteMask, sizeof(uint32_t)); |
| uint64_t cgen_var_524; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_524, 1); |
| stream->write((uint64_t*)&cgen_var_524, 1 * 8); |
| stream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags)); |
| stream->write((uint32_t*)&local_writeMask, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask returnUnmarshal"); |
| mImpl->log("finish vkCmdSetStencilWriteMask");; |
| } |
| |
| void VkEncoder::vkCmdSetStencilReference( |
| VkCommandBuffer commandBuffer, |
| VkStencilFaceFlags faceMask, |
| uint32_t reference) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetStencilReference encode"); |
| mImpl->log("start vkCmdSetStencilReference"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkStencilFaceFlags local_faceMask; |
| uint32_t local_reference; |
| local_commandBuffer = commandBuffer; |
| local_faceMask = faceMask; |
| local_reference = reference; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_525; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_525, 1); |
| countingStream->write((uint64_t*)&cgen_var_525, 1 * 8); |
| countingStream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags)); |
| countingStream->write((uint32_t*)&local_reference, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdSetStencilReference = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetStencilReference = OP_vkCmdSetStencilReference; |
| stream->write(&opcode_vkCmdSetStencilReference, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetStencilReference, sizeof(uint32_t)); |
| uint64_t cgen_var_526; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_526, 1); |
| stream->write((uint64_t*)&cgen_var_526, 1 * 8); |
| stream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags)); |
| stream->write((uint32_t*)&local_reference, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdSetStencilReference readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetStencilReference returnUnmarshal"); |
| mImpl->log("finish vkCmdSetStencilReference");; |
| } |
| |
| void VkEncoder::vkCmdBindDescriptorSets( |
| VkCommandBuffer commandBuffer, |
| VkPipelineBindPoint pipelineBindPoint, |
| VkPipelineLayout layout, |
| uint32_t firstSet, |
| uint32_t descriptorSetCount, |
| const VkDescriptorSet* pDescriptorSets, |
| uint32_t dynamicOffsetCount, |
| const uint32_t* pDynamicOffsets) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets encode"); |
| mImpl->log("start vkCmdBindDescriptorSets"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkPipelineBindPoint local_pipelineBindPoint; |
| VkPipelineLayout local_layout; |
| uint32_t local_firstSet; |
| uint32_t local_descriptorSetCount; |
| VkDescriptorSet* local_pDescriptorSets; |
| uint32_t local_dynamicOffsetCount; |
| uint32_t* local_pDynamicOffsets; |
| local_commandBuffer = commandBuffer; |
| local_pipelineBindPoint = pipelineBindPoint; |
| local_layout = layout; |
| local_firstSet = firstSet; |
| local_descriptorSetCount = descriptorSetCount; |
| local_pDescriptorSets = nullptr; |
| if (pDescriptorSets) |
| { |
| local_pDescriptorSets = (VkDescriptorSet*)pool->dupArray(pDescriptorSets, ((descriptorSetCount)) * sizeof(const VkDescriptorSet)); |
| } |
| local_dynamicOffsetCount = dynamicOffsetCount; |
| local_pDynamicOffsets = nullptr; |
| if (pDynamicOffsets) |
| { |
| local_pDynamicOffsets = (uint32_t*)pool->dupArray(pDynamicOffsets, ((dynamicOffsetCount)) * sizeof(const uint32_t)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_527; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_527, 1); |
| countingStream->write((uint64_t*)&cgen_var_527, 1 * 8); |
| countingStream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint)); |
| uint64_t cgen_var_528; |
| countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_528, 1); |
| countingStream->write((uint64_t*)&cgen_var_528, 1 * 8); |
| countingStream->write((uint32_t*)&local_firstSet, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_descriptorSetCount, sizeof(uint32_t)); |
| if (((descriptorSetCount))) |
| { |
| uint64_t* cgen_var_529; |
| countingStream->alloc((void**)&cgen_var_529, ((descriptorSetCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(local_pDescriptorSets, cgen_var_529, ((descriptorSetCount))); |
| countingStream->write((uint64_t*)cgen_var_529, ((descriptorSetCount)) * 8); |
| } |
| countingStream->write((uint32_t*)&local_dynamicOffsetCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)local_pDynamicOffsets, ((dynamicOffsetCount)) * sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdBindDescriptorSets = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdBindDescriptorSets = OP_vkCmdBindDescriptorSets; |
| stream->write(&opcode_vkCmdBindDescriptorSets, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdBindDescriptorSets, sizeof(uint32_t)); |
| uint64_t cgen_var_530; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_530, 1); |
| stream->write((uint64_t*)&cgen_var_530, 1 * 8); |
| stream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint)); |
| uint64_t cgen_var_531; |
| stream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_531, 1); |
| stream->write((uint64_t*)&cgen_var_531, 1 * 8); |
| stream->write((uint32_t*)&local_firstSet, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_descriptorSetCount, sizeof(uint32_t)); |
| if (((descriptorSetCount))) |
| { |
| uint64_t* cgen_var_532; |
| stream->alloc((void**)&cgen_var_532, ((descriptorSetCount)) * 8); |
| stream->handleMapping()->mapHandles_VkDescriptorSet_u64(local_pDescriptorSets, cgen_var_532, ((descriptorSetCount))); |
| stream->write((uint64_t*)cgen_var_532, ((descriptorSetCount)) * 8); |
| } |
| stream->write((uint32_t*)&local_dynamicOffsetCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)local_pDynamicOffsets, ((dynamicOffsetCount)) * sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets readParams"); |
| AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets returnUnmarshal"); |
| mImpl->log("finish vkCmdBindDescriptorSets");; |
| } |
| |
| void VkEncoder::vkCmdBindIndexBuffer( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkIndexType indexType) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer encode"); |
| mImpl->log("start vkCmdBindIndexBuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_buffer; |
| VkDeviceSize local_offset; |
| VkIndexType local_indexType; |
| local_commandBuffer = commandBuffer; |
| local_buffer = buffer; |
| local_offset = offset; |
| local_indexType = indexType; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_533; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_533, 1); |
| countingStream->write((uint64_t*)&cgen_var_533, 1 * 8); |
| uint64_t cgen_var_534; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_534, 1); |
| countingStream->write((uint64_t*)&cgen_var_534, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| countingStream->write((VkIndexType*)&local_indexType, sizeof(VkIndexType)); |
| } |
| uint32_t packetSize_vkCmdBindIndexBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdBindIndexBuffer = OP_vkCmdBindIndexBuffer; |
| stream->write(&opcode_vkCmdBindIndexBuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdBindIndexBuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_535; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_535, 1); |
| stream->write((uint64_t*)&cgen_var_535, 1 * 8); |
| uint64_t cgen_var_536; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_536, 1); |
| stream->write((uint64_t*)&cgen_var_536, 1 * 8); |
| stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| stream->write((VkIndexType*)&local_indexType, sizeof(VkIndexType)); |
| AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer readParams"); |
| AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer returnUnmarshal"); |
| mImpl->log("finish vkCmdBindIndexBuffer");; |
| } |
| |
| void VkEncoder::vkCmdBindVertexBuffers( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstBinding, |
| uint32_t bindingCount, |
| const VkBuffer* pBuffers, |
| const VkDeviceSize* pOffsets) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers encode"); |
| mImpl->log("start vkCmdBindVertexBuffers"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_firstBinding; |
| uint32_t local_bindingCount; |
| VkBuffer* local_pBuffers; |
| VkDeviceSize* local_pOffsets; |
| local_commandBuffer = commandBuffer; |
| local_firstBinding = firstBinding; |
| local_bindingCount = bindingCount; |
| local_pBuffers = nullptr; |
| if (pBuffers) |
| { |
| local_pBuffers = (VkBuffer*)pool->dupArray(pBuffers, ((bindingCount)) * sizeof(const VkBuffer)); |
| } |
| local_pOffsets = nullptr; |
| if (pOffsets) |
| { |
| local_pOffsets = (VkDeviceSize*)pool->dupArray(pOffsets, ((bindingCount)) * sizeof(const VkDeviceSize)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_537; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_537, 1); |
| countingStream->write((uint64_t*)&cgen_var_537, 1 * 8); |
| countingStream->write((uint32_t*)&local_firstBinding, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_bindingCount, sizeof(uint32_t)); |
| if (((bindingCount))) |
| { |
| uint64_t* cgen_var_538; |
| countingStream->alloc((void**)&cgen_var_538, ((bindingCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(local_pBuffers, cgen_var_538, ((bindingCount))); |
| countingStream->write((uint64_t*)cgen_var_538, ((bindingCount)) * 8); |
| } |
| countingStream->write((VkDeviceSize*)local_pOffsets, ((bindingCount)) * sizeof(VkDeviceSize)); |
| } |
| uint32_t packetSize_vkCmdBindVertexBuffers = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdBindVertexBuffers = OP_vkCmdBindVertexBuffers; |
| stream->write(&opcode_vkCmdBindVertexBuffers, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdBindVertexBuffers, sizeof(uint32_t)); |
| uint64_t cgen_var_539; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_539, 1); |
| stream->write((uint64_t*)&cgen_var_539, 1 * 8); |
| stream->write((uint32_t*)&local_firstBinding, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_bindingCount, sizeof(uint32_t)); |
| if (((bindingCount))) |
| { |
| uint64_t* cgen_var_540; |
| stream->alloc((void**)&cgen_var_540, ((bindingCount)) * 8); |
| stream->handleMapping()->mapHandles_VkBuffer_u64(local_pBuffers, cgen_var_540, ((bindingCount))); |
| stream->write((uint64_t*)cgen_var_540, ((bindingCount)) * 8); |
| } |
| stream->write((VkDeviceSize*)local_pOffsets, ((bindingCount)) * sizeof(VkDeviceSize)); |
| AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers readParams"); |
| AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers returnUnmarshal"); |
| mImpl->log("finish vkCmdBindVertexBuffers");; |
| } |
| |
| void VkEncoder::vkCmdDraw( |
| VkCommandBuffer commandBuffer, |
| uint32_t vertexCount, |
| uint32_t instanceCount, |
| uint32_t firstVertex, |
| uint32_t firstInstance) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDraw encode"); |
| mImpl->log("start vkCmdDraw"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_vertexCount; |
| uint32_t local_instanceCount; |
| uint32_t local_firstVertex; |
| uint32_t local_firstInstance; |
| local_commandBuffer = commandBuffer; |
| local_vertexCount = vertexCount; |
| local_instanceCount = instanceCount; |
| local_firstVertex = firstVertex; |
| local_firstInstance = firstInstance; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_541; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_541, 1); |
| countingStream->write((uint64_t*)&cgen_var_541, 1 * 8); |
| countingStream->write((uint32_t*)&local_vertexCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_instanceCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_firstVertex, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDraw = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDraw = OP_vkCmdDraw; |
| stream->write(&opcode_vkCmdDraw, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDraw, sizeof(uint32_t)); |
| uint64_t cgen_var_542; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_542, 1); |
| stream->write((uint64_t*)&cgen_var_542, 1 * 8); |
| stream->write((uint32_t*)&local_vertexCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_instanceCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_firstVertex, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDraw readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDraw returnUnmarshal"); |
| mImpl->log("finish vkCmdDraw");; |
| } |
| |
| void VkEncoder::vkCmdDrawIndexed( |
| VkCommandBuffer commandBuffer, |
| uint32_t indexCount, |
| uint32_t instanceCount, |
| uint32_t firstIndex, |
| int32_t vertexOffset, |
| uint32_t firstInstance) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexed encode"); |
| mImpl->log("start vkCmdDrawIndexed"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_indexCount; |
| uint32_t local_instanceCount; |
| uint32_t local_firstIndex; |
| int32_t local_vertexOffset; |
| uint32_t local_firstInstance; |
| local_commandBuffer = commandBuffer; |
| local_indexCount = indexCount; |
| local_instanceCount = instanceCount; |
| local_firstIndex = firstIndex; |
| local_vertexOffset = vertexOffset; |
| local_firstInstance = firstInstance; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_543; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_543, 1); |
| countingStream->write((uint64_t*)&cgen_var_543, 1 * 8); |
| countingStream->write((uint32_t*)&local_indexCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_instanceCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_firstIndex, sizeof(uint32_t)); |
| countingStream->write((int32_t*)&local_vertexOffset, sizeof(int32_t)); |
| countingStream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDrawIndexed = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDrawIndexed = OP_vkCmdDrawIndexed; |
| stream->write(&opcode_vkCmdDrawIndexed, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDrawIndexed, sizeof(uint32_t)); |
| uint64_t cgen_var_544; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_544, 1); |
| stream->write((uint64_t*)&cgen_var_544, 1 * 8); |
| stream->write((uint32_t*)&local_indexCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_instanceCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_firstIndex, sizeof(uint32_t)); |
| stream->write((int32_t*)&local_vertexOffset, sizeof(int32_t)); |
| stream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexed readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexed returnUnmarshal"); |
| mImpl->log("finish vkCmdDrawIndexed");; |
| } |
| |
| void VkEncoder::vkCmdDrawIndirect( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| uint32_t drawCount, |
| uint32_t stride) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirect encode"); |
| mImpl->log("start vkCmdDrawIndirect"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_buffer; |
| VkDeviceSize local_offset; |
| uint32_t local_drawCount; |
| uint32_t local_stride; |
| local_commandBuffer = commandBuffer; |
| local_buffer = buffer; |
| local_offset = offset; |
| local_drawCount = drawCount; |
| local_stride = stride; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_545; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_545, 1); |
| countingStream->write((uint64_t*)&cgen_var_545, 1 * 8); |
| uint64_t cgen_var_546; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_546, 1); |
| countingStream->write((uint64_t*)&cgen_var_546, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| countingStream->write((uint32_t*)&local_drawCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDrawIndirect = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDrawIndirect = OP_vkCmdDrawIndirect; |
| stream->write(&opcode_vkCmdDrawIndirect, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDrawIndirect, sizeof(uint32_t)); |
| uint64_t cgen_var_547; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_547, 1); |
| stream->write((uint64_t*)&cgen_var_547, 1 * 8); |
| uint64_t cgen_var_548; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_548, 1); |
| stream->write((uint64_t*)&cgen_var_548, 1 * 8); |
| stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| stream->write((uint32_t*)&local_drawCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirect readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirect returnUnmarshal"); |
| mImpl->log("finish vkCmdDrawIndirect");; |
| } |
| |
| void VkEncoder::vkCmdDrawIndexedIndirect( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| uint32_t drawCount, |
| uint32_t stride) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect encode"); |
| mImpl->log("start vkCmdDrawIndexedIndirect"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_buffer; |
| VkDeviceSize local_offset; |
| uint32_t local_drawCount; |
| uint32_t local_stride; |
| local_commandBuffer = commandBuffer; |
| local_buffer = buffer; |
| local_offset = offset; |
| local_drawCount = drawCount; |
| local_stride = stride; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_549; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_549, 1); |
| countingStream->write((uint64_t*)&cgen_var_549, 1 * 8); |
| uint64_t cgen_var_550; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_550, 1); |
| countingStream->write((uint64_t*)&cgen_var_550, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| countingStream->write((uint32_t*)&local_drawCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDrawIndexedIndirect = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDrawIndexedIndirect = OP_vkCmdDrawIndexedIndirect; |
| stream->write(&opcode_vkCmdDrawIndexedIndirect, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDrawIndexedIndirect, sizeof(uint32_t)); |
| uint64_t cgen_var_551; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_551, 1); |
| stream->write((uint64_t*)&cgen_var_551, 1 * 8); |
| uint64_t cgen_var_552; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_552, 1); |
| stream->write((uint64_t*)&cgen_var_552, 1 * 8); |
| stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| stream->write((uint32_t*)&local_drawCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect returnUnmarshal"); |
| mImpl->log("finish vkCmdDrawIndexedIndirect");; |
| } |
| |
| void VkEncoder::vkCmdDispatch( |
| VkCommandBuffer commandBuffer, |
| uint32_t groupCountX, |
| uint32_t groupCountY, |
| uint32_t groupCountZ) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDispatch encode"); |
| mImpl->log("start vkCmdDispatch"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_groupCountX; |
| uint32_t local_groupCountY; |
| uint32_t local_groupCountZ; |
| local_commandBuffer = commandBuffer; |
| local_groupCountX = groupCountX; |
| local_groupCountY = groupCountY; |
| local_groupCountZ = groupCountZ; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_553; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_553, 1); |
| countingStream->write((uint64_t*)&cgen_var_553, 1 * 8); |
| countingStream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDispatch = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDispatch = OP_vkCmdDispatch; |
| stream->write(&opcode_vkCmdDispatch, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDispatch, sizeof(uint32_t)); |
| uint64_t cgen_var_554; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_554, 1); |
| stream->write((uint64_t*)&cgen_var_554, 1 * 8); |
| stream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDispatch readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDispatch returnUnmarshal"); |
| mImpl->log("finish vkCmdDispatch");; |
| } |
| |
| void VkEncoder::vkCmdDispatchIndirect( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDispatchIndirect encode"); |
| mImpl->log("start vkCmdDispatchIndirect"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_buffer; |
| VkDeviceSize local_offset; |
| local_commandBuffer = commandBuffer; |
| local_buffer = buffer; |
| local_offset = offset; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_555; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_555, 1); |
| countingStream->write((uint64_t*)&cgen_var_555, 1 * 8); |
| uint64_t cgen_var_556; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_556, 1); |
| countingStream->write((uint64_t*)&cgen_var_556, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| } |
| uint32_t packetSize_vkCmdDispatchIndirect = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDispatchIndirect = OP_vkCmdDispatchIndirect; |
| stream->write(&opcode_vkCmdDispatchIndirect, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDispatchIndirect, sizeof(uint32_t)); |
| uint64_t cgen_var_557; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_557, 1); |
| stream->write((uint64_t*)&cgen_var_557, 1 * 8); |
| uint64_t cgen_var_558; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_558, 1); |
| stream->write((uint64_t*)&cgen_var_558, 1 * 8); |
| stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| AEMU_SCOPED_TRACE("vkCmdDispatchIndirect readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDispatchIndirect returnUnmarshal"); |
| mImpl->log("finish vkCmdDispatchIndirect");; |
| } |
| |
| void VkEncoder::vkCmdCopyBuffer( |
| VkCommandBuffer commandBuffer, |
| VkBuffer srcBuffer, |
| VkBuffer dstBuffer, |
| uint32_t regionCount, |
| const VkBufferCopy* pRegions) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdCopyBuffer encode"); |
| mImpl->log("start vkCmdCopyBuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_srcBuffer; |
| VkBuffer local_dstBuffer; |
| uint32_t local_regionCount; |
| VkBufferCopy* local_pRegions; |
| local_commandBuffer = commandBuffer; |
| local_srcBuffer = srcBuffer; |
| local_dstBuffer = dstBuffer; |
| local_regionCount = regionCount; |
| local_pRegions = nullptr; |
| if (pRegions) |
| { |
| local_pRegions = (VkBufferCopy*)pool->alloc(((regionCount)) * sizeof(const VkBufferCopy)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| deepcopy_VkBufferCopy(pool, pRegions + i, (VkBufferCopy*)(local_pRegions + i)); |
| } |
| } |
| if (local_pRegions) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| transform_tohost_VkBufferCopy(mImpl->resources(), (VkBufferCopy*)(local_pRegions + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_559; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_559, 1); |
| countingStream->write((uint64_t*)&cgen_var_559, 1 * 8); |
| uint64_t cgen_var_560; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_srcBuffer, &cgen_var_560, 1); |
| countingStream->write((uint64_t*)&cgen_var_560, 1 * 8); |
| uint64_t cgen_var_561; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_561, 1); |
| countingStream->write((uint64_t*)&cgen_var_561, 1 * 8); |
| countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkBufferCopy(countingStream, (VkBufferCopy*)(local_pRegions + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdCopyBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdCopyBuffer = OP_vkCmdCopyBuffer; |
| stream->write(&opcode_vkCmdCopyBuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdCopyBuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_562; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_562, 1); |
| stream->write((uint64_t*)&cgen_var_562, 1 * 8); |
| uint64_t cgen_var_563; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_srcBuffer, &cgen_var_563, 1); |
| stream->write((uint64_t*)&cgen_var_563, 1 * 8); |
| uint64_t cgen_var_564; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_564, 1); |
| stream->write((uint64_t*)&cgen_var_564, 1 * 8); |
| stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkBufferCopy(stream, (VkBufferCopy*)(local_pRegions + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyBuffer readParams"); |
| AEMU_SCOPED_TRACE("vkCmdCopyBuffer returnUnmarshal"); |
| mImpl->log("finish vkCmdCopyBuffer");; |
| } |
| |
| void VkEncoder::vkCmdCopyImage( |
| VkCommandBuffer commandBuffer, |
| VkImage srcImage, |
| VkImageLayout srcImageLayout, |
| VkImage dstImage, |
| VkImageLayout dstImageLayout, |
| uint32_t regionCount, |
| const VkImageCopy* pRegions) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdCopyImage encode"); |
| mImpl->log("start vkCmdCopyImage"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkImage local_srcImage; |
| VkImageLayout local_srcImageLayout; |
| VkImage local_dstImage; |
| VkImageLayout local_dstImageLayout; |
| uint32_t local_regionCount; |
| VkImageCopy* local_pRegions; |
| local_commandBuffer = commandBuffer; |
| local_srcImage = srcImage; |
| local_srcImageLayout = srcImageLayout; |
| local_dstImage = dstImage; |
| local_dstImageLayout = dstImageLayout; |
| local_regionCount = regionCount; |
| local_pRegions = nullptr; |
| if (pRegions) |
| { |
| local_pRegions = (VkImageCopy*)pool->alloc(((regionCount)) * sizeof(const VkImageCopy)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| deepcopy_VkImageCopy(pool, pRegions + i, (VkImageCopy*)(local_pRegions + i)); |
| } |
| } |
| if (local_pRegions) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| transform_tohost_VkImageCopy(mImpl->resources(), (VkImageCopy*)(local_pRegions + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_565; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_565, 1); |
| countingStream->write((uint64_t*)&cgen_var_565, 1 * 8); |
| uint64_t cgen_var_566; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_566, 1); |
| countingStream->write((uint64_t*)&cgen_var_566, 1 * 8); |
| countingStream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout)); |
| uint64_t cgen_var_567; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_567, 1); |
| countingStream->write((uint64_t*)&cgen_var_567, 1 * 8); |
| countingStream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout)); |
| countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkImageCopy(countingStream, (VkImageCopy*)(local_pRegions + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdCopyImage = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdCopyImage = OP_vkCmdCopyImage; |
| stream->write(&opcode_vkCmdCopyImage, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdCopyImage, sizeof(uint32_t)); |
| uint64_t cgen_var_568; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_568, 1); |
| stream->write((uint64_t*)&cgen_var_568, 1 * 8); |
| uint64_t cgen_var_569; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_569, 1); |
| stream->write((uint64_t*)&cgen_var_569, 1 * 8); |
| stream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout)); |
| uint64_t cgen_var_570; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_570, 1); |
| stream->write((uint64_t*)&cgen_var_570, 1 * 8); |
| stream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout)); |
| stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkImageCopy(stream, (VkImageCopy*)(local_pRegions + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyImage readParams"); |
| AEMU_SCOPED_TRACE("vkCmdCopyImage returnUnmarshal"); |
| mImpl->log("finish vkCmdCopyImage");; |
| } |
| |
| void VkEncoder::vkCmdBlitImage( |
| VkCommandBuffer commandBuffer, |
| VkImage srcImage, |
| VkImageLayout srcImageLayout, |
| VkImage dstImage, |
| VkImageLayout dstImageLayout, |
| uint32_t regionCount, |
| const VkImageBlit* pRegions, |
| VkFilter filter) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdBlitImage encode"); |
| mImpl->log("start vkCmdBlitImage"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkImage local_srcImage; |
| VkImageLayout local_srcImageLayout; |
| VkImage local_dstImage; |
| VkImageLayout local_dstImageLayout; |
| uint32_t local_regionCount; |
| VkImageBlit* local_pRegions; |
| VkFilter local_filter; |
| local_commandBuffer = commandBuffer; |
| local_srcImage = srcImage; |
| local_srcImageLayout = srcImageLayout; |
| local_dstImage = dstImage; |
| local_dstImageLayout = dstImageLayout; |
| local_regionCount = regionCount; |
| local_pRegions = nullptr; |
| if (pRegions) |
| { |
| local_pRegions = (VkImageBlit*)pool->alloc(((regionCount)) * sizeof(const VkImageBlit)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| deepcopy_VkImageBlit(pool, pRegions + i, (VkImageBlit*)(local_pRegions + i)); |
| } |
| } |
| local_filter = filter; |
| if (local_pRegions) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| transform_tohost_VkImageBlit(mImpl->resources(), (VkImageBlit*)(local_pRegions + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_571; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_571, 1); |
| countingStream->write((uint64_t*)&cgen_var_571, 1 * 8); |
| uint64_t cgen_var_572; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_572, 1); |
| countingStream->write((uint64_t*)&cgen_var_572, 1 * 8); |
| countingStream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout)); |
| uint64_t cgen_var_573; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_573, 1); |
| countingStream->write((uint64_t*)&cgen_var_573, 1 * 8); |
| countingStream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout)); |
| countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkImageBlit(countingStream, (VkImageBlit*)(local_pRegions + i)); |
| } |
| countingStream->write((VkFilter*)&local_filter, sizeof(VkFilter)); |
| } |
| uint32_t packetSize_vkCmdBlitImage = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdBlitImage = OP_vkCmdBlitImage; |
| stream->write(&opcode_vkCmdBlitImage, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdBlitImage, sizeof(uint32_t)); |
| uint64_t cgen_var_574; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_574, 1); |
| stream->write((uint64_t*)&cgen_var_574, 1 * 8); |
| uint64_t cgen_var_575; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_575, 1); |
| stream->write((uint64_t*)&cgen_var_575, 1 * 8); |
| stream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout)); |
| uint64_t cgen_var_576; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_576, 1); |
| stream->write((uint64_t*)&cgen_var_576, 1 * 8); |
| stream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout)); |
| stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkImageBlit(stream, (VkImageBlit*)(local_pRegions + i)); |
| } |
| stream->write((VkFilter*)&local_filter, sizeof(VkFilter)); |
| AEMU_SCOPED_TRACE("vkCmdBlitImage readParams"); |
| AEMU_SCOPED_TRACE("vkCmdBlitImage returnUnmarshal"); |
| mImpl->log("finish vkCmdBlitImage");; |
| } |
| |
| void VkEncoder::vkCmdCopyBufferToImage( |
| VkCommandBuffer commandBuffer, |
| VkBuffer srcBuffer, |
| VkImage dstImage, |
| VkImageLayout dstImageLayout, |
| uint32_t regionCount, |
| const VkBufferImageCopy* pRegions) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage encode"); |
| mImpl->log("start vkCmdCopyBufferToImage"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_srcBuffer; |
| VkImage local_dstImage; |
| VkImageLayout local_dstImageLayout; |
| uint32_t local_regionCount; |
| VkBufferImageCopy* local_pRegions; |
| local_commandBuffer = commandBuffer; |
| local_srcBuffer = srcBuffer; |
| local_dstImage = dstImage; |
| local_dstImageLayout = dstImageLayout; |
| local_regionCount = regionCount; |
| local_pRegions = nullptr; |
| if (pRegions) |
| { |
| local_pRegions = (VkBufferImageCopy*)pool->alloc(((regionCount)) * sizeof(const VkBufferImageCopy)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| deepcopy_VkBufferImageCopy(pool, pRegions + i, (VkBufferImageCopy*)(local_pRegions + i)); |
| } |
| } |
| if (local_pRegions) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| transform_tohost_VkBufferImageCopy(mImpl->resources(), (VkBufferImageCopy*)(local_pRegions + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_577; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_577, 1); |
| countingStream->write((uint64_t*)&cgen_var_577, 1 * 8); |
| uint64_t cgen_var_578; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_srcBuffer, &cgen_var_578, 1); |
| countingStream->write((uint64_t*)&cgen_var_578, 1 * 8); |
| uint64_t cgen_var_579; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_579, 1); |
| countingStream->write((uint64_t*)&cgen_var_579, 1 * 8); |
| countingStream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout)); |
| countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkBufferImageCopy(countingStream, (VkBufferImageCopy*)(local_pRegions + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdCopyBufferToImage = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdCopyBufferToImage = OP_vkCmdCopyBufferToImage; |
| stream->write(&opcode_vkCmdCopyBufferToImage, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdCopyBufferToImage, sizeof(uint32_t)); |
| uint64_t cgen_var_580; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_580, 1); |
| stream->write((uint64_t*)&cgen_var_580, 1 * 8); |
| uint64_t cgen_var_581; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_srcBuffer, &cgen_var_581, 1); |
| stream->write((uint64_t*)&cgen_var_581, 1 * 8); |
| uint64_t cgen_var_582; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_582, 1); |
| stream->write((uint64_t*)&cgen_var_582, 1 * 8); |
| stream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout)); |
| stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkBufferImageCopy(stream, (VkBufferImageCopy*)(local_pRegions + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage readParams"); |
| AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage returnUnmarshal"); |
| mImpl->log("finish vkCmdCopyBufferToImage");; |
| } |
| |
| void VkEncoder::vkCmdCopyImageToBuffer( |
| VkCommandBuffer commandBuffer, |
| VkImage srcImage, |
| VkImageLayout srcImageLayout, |
| VkBuffer dstBuffer, |
| uint32_t regionCount, |
| const VkBufferImageCopy* pRegions) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer encode"); |
| mImpl->log("start vkCmdCopyImageToBuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkImage local_srcImage; |
| VkImageLayout local_srcImageLayout; |
| VkBuffer local_dstBuffer; |
| uint32_t local_regionCount; |
| VkBufferImageCopy* local_pRegions; |
| local_commandBuffer = commandBuffer; |
| local_srcImage = srcImage; |
| local_srcImageLayout = srcImageLayout; |
| local_dstBuffer = dstBuffer; |
| local_regionCount = regionCount; |
| local_pRegions = nullptr; |
| if (pRegions) |
| { |
| local_pRegions = (VkBufferImageCopy*)pool->alloc(((regionCount)) * sizeof(const VkBufferImageCopy)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| deepcopy_VkBufferImageCopy(pool, pRegions + i, (VkBufferImageCopy*)(local_pRegions + i)); |
| } |
| } |
| if (local_pRegions) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| transform_tohost_VkBufferImageCopy(mImpl->resources(), (VkBufferImageCopy*)(local_pRegions + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_583; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_583, 1); |
| countingStream->write((uint64_t*)&cgen_var_583, 1 * 8); |
| uint64_t cgen_var_584; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_584, 1); |
| countingStream->write((uint64_t*)&cgen_var_584, 1 * 8); |
| countingStream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout)); |
| uint64_t cgen_var_585; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_585, 1); |
| countingStream->write((uint64_t*)&cgen_var_585, 1 * 8); |
| countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkBufferImageCopy(countingStream, (VkBufferImageCopy*)(local_pRegions + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdCopyImageToBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdCopyImageToBuffer = OP_vkCmdCopyImageToBuffer; |
| stream->write(&opcode_vkCmdCopyImageToBuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdCopyImageToBuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_586; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_586, 1); |
| stream->write((uint64_t*)&cgen_var_586, 1 * 8); |
| uint64_t cgen_var_587; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_587, 1); |
| stream->write((uint64_t*)&cgen_var_587, 1 * 8); |
| stream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout)); |
| uint64_t cgen_var_588; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_588, 1); |
| stream->write((uint64_t*)&cgen_var_588, 1 * 8); |
| stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkBufferImageCopy(stream, (VkBufferImageCopy*)(local_pRegions + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer readParams"); |
| AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer returnUnmarshal"); |
| mImpl->log("finish vkCmdCopyImageToBuffer");; |
| } |
| |
| void VkEncoder::vkCmdUpdateBuffer( |
| VkCommandBuffer commandBuffer, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| VkDeviceSize dataSize, |
| const void* pData) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdUpdateBuffer encode"); |
| mImpl->log("start vkCmdUpdateBuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_dstBuffer; |
| VkDeviceSize local_dstOffset; |
| VkDeviceSize local_dataSize; |
| void* local_pData; |
| local_commandBuffer = commandBuffer; |
| local_dstBuffer = dstBuffer; |
| local_dstOffset = dstOffset; |
| local_dataSize = dataSize; |
| local_pData = nullptr; |
| if (pData) |
| { |
| local_pData = (void*)pool->dupArray(pData, ((dataSize)) * sizeof(const uint8_t)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_589; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_589, 1); |
| countingStream->write((uint64_t*)&cgen_var_589, 1 * 8); |
| uint64_t cgen_var_590; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_590, 1); |
| countingStream->write((uint64_t*)&cgen_var_590, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize)); |
| countingStream->write((VkDeviceSize*)&local_dataSize, sizeof(VkDeviceSize)); |
| countingStream->write((void*)local_pData, ((dataSize)) * sizeof(uint8_t)); |
| } |
| uint32_t packetSize_vkCmdUpdateBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdUpdateBuffer = OP_vkCmdUpdateBuffer; |
| stream->write(&opcode_vkCmdUpdateBuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdUpdateBuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_591; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_591, 1); |
| stream->write((uint64_t*)&cgen_var_591, 1 * 8); |
| uint64_t cgen_var_592; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_592, 1); |
| stream->write((uint64_t*)&cgen_var_592, 1 * 8); |
| stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize)); |
| stream->write((VkDeviceSize*)&local_dataSize, sizeof(VkDeviceSize)); |
| stream->write((void*)local_pData, ((dataSize)) * sizeof(uint8_t)); |
| AEMU_SCOPED_TRACE("vkCmdUpdateBuffer readParams"); |
| AEMU_SCOPED_TRACE("vkCmdUpdateBuffer returnUnmarshal"); |
| mImpl->log("finish vkCmdUpdateBuffer");; |
| } |
| |
| void VkEncoder::vkCmdFillBuffer( |
| VkCommandBuffer commandBuffer, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| VkDeviceSize size, |
| uint32_t data) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdFillBuffer encode"); |
| mImpl->log("start vkCmdFillBuffer"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_dstBuffer; |
| VkDeviceSize local_dstOffset; |
| VkDeviceSize local_size; |
| uint32_t local_data; |
| local_commandBuffer = commandBuffer; |
| local_dstBuffer = dstBuffer; |
| local_dstOffset = dstOffset; |
| local_size = size; |
| local_data = data; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_593; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_593, 1); |
| countingStream->write((uint64_t*)&cgen_var_593, 1 * 8); |
| uint64_t cgen_var_594; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_594, 1); |
| countingStream->write((uint64_t*)&cgen_var_594, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize)); |
| countingStream->write((VkDeviceSize*)&local_size, sizeof(VkDeviceSize)); |
| countingStream->write((uint32_t*)&local_data, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdFillBuffer = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdFillBuffer = OP_vkCmdFillBuffer; |
| stream->write(&opcode_vkCmdFillBuffer, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdFillBuffer, sizeof(uint32_t)); |
| uint64_t cgen_var_595; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_595, 1); |
| stream->write((uint64_t*)&cgen_var_595, 1 * 8); |
| uint64_t cgen_var_596; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_596, 1); |
| stream->write((uint64_t*)&cgen_var_596, 1 * 8); |
| stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize)); |
| stream->write((VkDeviceSize*)&local_size, sizeof(VkDeviceSize)); |
| stream->write((uint32_t*)&local_data, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdFillBuffer readParams"); |
| AEMU_SCOPED_TRACE("vkCmdFillBuffer returnUnmarshal"); |
| mImpl->log("finish vkCmdFillBuffer");; |
| } |
| |
| void VkEncoder::vkCmdClearColorImage( |
| VkCommandBuffer commandBuffer, |
| VkImage image, |
| VkImageLayout imageLayout, |
| const VkClearColorValue* pColor, |
| uint32_t rangeCount, |
| const VkImageSubresourceRange* pRanges) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdClearColorImage encode"); |
| mImpl->log("start vkCmdClearColorImage"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkImage local_image; |
| VkImageLayout local_imageLayout; |
| VkClearColorValue* local_pColor; |
| uint32_t local_rangeCount; |
| VkImageSubresourceRange* local_pRanges; |
| local_commandBuffer = commandBuffer; |
| local_image = image; |
| local_imageLayout = imageLayout; |
| local_pColor = nullptr; |
| if (pColor) |
| { |
| local_pColor = (VkClearColorValue*)pool->alloc(sizeof(const VkClearColorValue)); |
| deepcopy_VkClearColorValue(pool, pColor, (VkClearColorValue*)(local_pColor)); |
| } |
| local_rangeCount = rangeCount; |
| local_pRanges = nullptr; |
| if (pRanges) |
| { |
| local_pRanges = (VkImageSubresourceRange*)pool->alloc(((rangeCount)) * sizeof(const VkImageSubresourceRange)); |
| for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i) |
| { |
| deepcopy_VkImageSubresourceRange(pool, pRanges + i, (VkImageSubresourceRange*)(local_pRanges + i)); |
| } |
| } |
| if (local_pColor) |
| { |
| transform_tohost_VkClearColorValue(mImpl->resources(), (VkClearColorValue*)(local_pColor)); |
| } |
| if (local_pRanges) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i) |
| { |
| transform_tohost_VkImageSubresourceRange(mImpl->resources(), (VkImageSubresourceRange*)(local_pRanges + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_597; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_597, 1); |
| countingStream->write((uint64_t*)&cgen_var_597, 1 * 8); |
| uint64_t cgen_var_598; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_598, 1); |
| countingStream->write((uint64_t*)&cgen_var_598, 1 * 8); |
| countingStream->write((VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout)); |
| marshal_VkClearColorValue(countingStream, (VkClearColorValue*)(local_pColor)); |
| countingStream->write((uint32_t*)&local_rangeCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i) |
| { |
| marshal_VkImageSubresourceRange(countingStream, (VkImageSubresourceRange*)(local_pRanges + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdClearColorImage = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdClearColorImage = OP_vkCmdClearColorImage; |
| stream->write(&opcode_vkCmdClearColorImage, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdClearColorImage, sizeof(uint32_t)); |
| uint64_t cgen_var_599; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_599, 1); |
| stream->write((uint64_t*)&cgen_var_599, 1 * 8); |
| uint64_t cgen_var_600; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_600, 1); |
| stream->write((uint64_t*)&cgen_var_600, 1 * 8); |
| stream->write((VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout)); |
| marshal_VkClearColorValue(stream, (VkClearColorValue*)(local_pColor)); |
| stream->write((uint32_t*)&local_rangeCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i) |
| { |
| marshal_VkImageSubresourceRange(stream, (VkImageSubresourceRange*)(local_pRanges + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdClearColorImage readParams"); |
| AEMU_SCOPED_TRACE("vkCmdClearColorImage returnUnmarshal"); |
| mImpl->log("finish vkCmdClearColorImage");; |
| } |
| |
| void VkEncoder::vkCmdClearDepthStencilImage( |
| VkCommandBuffer commandBuffer, |
| VkImage image, |
| VkImageLayout imageLayout, |
| const VkClearDepthStencilValue* pDepthStencil, |
| uint32_t rangeCount, |
| const VkImageSubresourceRange* pRanges) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage encode"); |
| mImpl->log("start vkCmdClearDepthStencilImage"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkImage local_image; |
| VkImageLayout local_imageLayout; |
| VkClearDepthStencilValue* local_pDepthStencil; |
| uint32_t local_rangeCount; |
| VkImageSubresourceRange* local_pRanges; |
| local_commandBuffer = commandBuffer; |
| local_image = image; |
| local_imageLayout = imageLayout; |
| local_pDepthStencil = nullptr; |
| if (pDepthStencil) |
| { |
| local_pDepthStencil = (VkClearDepthStencilValue*)pool->alloc(sizeof(const VkClearDepthStencilValue)); |
| deepcopy_VkClearDepthStencilValue(pool, pDepthStencil, (VkClearDepthStencilValue*)(local_pDepthStencil)); |
| } |
| local_rangeCount = rangeCount; |
| local_pRanges = nullptr; |
| if (pRanges) |
| { |
| local_pRanges = (VkImageSubresourceRange*)pool->alloc(((rangeCount)) * sizeof(const VkImageSubresourceRange)); |
| for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i) |
| { |
| deepcopy_VkImageSubresourceRange(pool, pRanges + i, (VkImageSubresourceRange*)(local_pRanges + i)); |
| } |
| } |
| if (local_pDepthStencil) |
| { |
| transform_tohost_VkClearDepthStencilValue(mImpl->resources(), (VkClearDepthStencilValue*)(local_pDepthStencil)); |
| } |
| if (local_pRanges) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i) |
| { |
| transform_tohost_VkImageSubresourceRange(mImpl->resources(), (VkImageSubresourceRange*)(local_pRanges + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_601; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_601, 1); |
| countingStream->write((uint64_t*)&cgen_var_601, 1 * 8); |
| uint64_t cgen_var_602; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_602, 1); |
| countingStream->write((uint64_t*)&cgen_var_602, 1 * 8); |
| countingStream->write((VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout)); |
| marshal_VkClearDepthStencilValue(countingStream, (VkClearDepthStencilValue*)(local_pDepthStencil)); |
| countingStream->write((uint32_t*)&local_rangeCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i) |
| { |
| marshal_VkImageSubresourceRange(countingStream, (VkImageSubresourceRange*)(local_pRanges + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdClearDepthStencilImage = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdClearDepthStencilImage = OP_vkCmdClearDepthStencilImage; |
| stream->write(&opcode_vkCmdClearDepthStencilImage, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdClearDepthStencilImage, sizeof(uint32_t)); |
| uint64_t cgen_var_603; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_603, 1); |
| stream->write((uint64_t*)&cgen_var_603, 1 * 8); |
| uint64_t cgen_var_604; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_604, 1); |
| stream->write((uint64_t*)&cgen_var_604, 1 * 8); |
| stream->write((VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout)); |
| marshal_VkClearDepthStencilValue(stream, (VkClearDepthStencilValue*)(local_pDepthStencil)); |
| stream->write((uint32_t*)&local_rangeCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i) |
| { |
| marshal_VkImageSubresourceRange(stream, (VkImageSubresourceRange*)(local_pRanges + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage readParams"); |
| AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage returnUnmarshal"); |
| mImpl->log("finish vkCmdClearDepthStencilImage");; |
| } |
| |
| void VkEncoder::vkCmdClearAttachments( |
| VkCommandBuffer commandBuffer, |
| uint32_t attachmentCount, |
| const VkClearAttachment* pAttachments, |
| uint32_t rectCount, |
| const VkClearRect* pRects) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdClearAttachments encode"); |
| mImpl->log("start vkCmdClearAttachments"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_attachmentCount; |
| VkClearAttachment* local_pAttachments; |
| uint32_t local_rectCount; |
| VkClearRect* local_pRects; |
| local_commandBuffer = commandBuffer; |
| local_attachmentCount = attachmentCount; |
| local_pAttachments = nullptr; |
| if (pAttachments) |
| { |
| local_pAttachments = (VkClearAttachment*)pool->alloc(((attachmentCount)) * sizeof(const VkClearAttachment)); |
| for (uint32_t i = 0; i < (uint32_t)((attachmentCount)); ++i) |
| { |
| deepcopy_VkClearAttachment(pool, pAttachments + i, (VkClearAttachment*)(local_pAttachments + i)); |
| } |
| } |
| local_rectCount = rectCount; |
| local_pRects = nullptr; |
| if (pRects) |
| { |
| local_pRects = (VkClearRect*)pool->alloc(((rectCount)) * sizeof(const VkClearRect)); |
| for (uint32_t i = 0; i < (uint32_t)((rectCount)); ++i) |
| { |
| deepcopy_VkClearRect(pool, pRects + i, (VkClearRect*)(local_pRects + i)); |
| } |
| } |
| if (local_pAttachments) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((attachmentCount)); ++i) |
| { |
| transform_tohost_VkClearAttachment(mImpl->resources(), (VkClearAttachment*)(local_pAttachments + i)); |
| } |
| } |
| if (local_pRects) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((rectCount)); ++i) |
| { |
| transform_tohost_VkClearRect(mImpl->resources(), (VkClearRect*)(local_pRects + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_605; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_605, 1); |
| countingStream->write((uint64_t*)&cgen_var_605, 1 * 8); |
| countingStream->write((uint32_t*)&local_attachmentCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((attachmentCount)); ++i) |
| { |
| marshal_VkClearAttachment(countingStream, (VkClearAttachment*)(local_pAttachments + i)); |
| } |
| countingStream->write((uint32_t*)&local_rectCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((rectCount)); ++i) |
| { |
| marshal_VkClearRect(countingStream, (VkClearRect*)(local_pRects + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdClearAttachments = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdClearAttachments = OP_vkCmdClearAttachments; |
| stream->write(&opcode_vkCmdClearAttachments, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdClearAttachments, sizeof(uint32_t)); |
| uint64_t cgen_var_606; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_606, 1); |
| stream->write((uint64_t*)&cgen_var_606, 1 * 8); |
| stream->write((uint32_t*)&local_attachmentCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((attachmentCount)); ++i) |
| { |
| marshal_VkClearAttachment(stream, (VkClearAttachment*)(local_pAttachments + i)); |
| } |
| stream->write((uint32_t*)&local_rectCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((rectCount)); ++i) |
| { |
| marshal_VkClearRect(stream, (VkClearRect*)(local_pRects + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdClearAttachments readParams"); |
| AEMU_SCOPED_TRACE("vkCmdClearAttachments returnUnmarshal"); |
| mImpl->log("finish vkCmdClearAttachments");; |
| } |
| |
| void VkEncoder::vkCmdResolveImage( |
| VkCommandBuffer commandBuffer, |
| VkImage srcImage, |
| VkImageLayout srcImageLayout, |
| VkImage dstImage, |
| VkImageLayout dstImageLayout, |
| uint32_t regionCount, |
| const VkImageResolve* pRegions) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdResolveImage encode"); |
| mImpl->log("start vkCmdResolveImage"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkImage local_srcImage; |
| VkImageLayout local_srcImageLayout; |
| VkImage local_dstImage; |
| VkImageLayout local_dstImageLayout; |
| uint32_t local_regionCount; |
| VkImageResolve* local_pRegions; |
| local_commandBuffer = commandBuffer; |
| local_srcImage = srcImage; |
| local_srcImageLayout = srcImageLayout; |
| local_dstImage = dstImage; |
| local_dstImageLayout = dstImageLayout; |
| local_regionCount = regionCount; |
| local_pRegions = nullptr; |
| if (pRegions) |
| { |
| local_pRegions = (VkImageResolve*)pool->alloc(((regionCount)) * sizeof(const VkImageResolve)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| deepcopy_VkImageResolve(pool, pRegions + i, (VkImageResolve*)(local_pRegions + i)); |
| } |
| } |
| if (local_pRegions) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| transform_tohost_VkImageResolve(mImpl->resources(), (VkImageResolve*)(local_pRegions + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_607; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_607, 1); |
| countingStream->write((uint64_t*)&cgen_var_607, 1 * 8); |
| uint64_t cgen_var_608; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_608, 1); |
| countingStream->write((uint64_t*)&cgen_var_608, 1 * 8); |
| countingStream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout)); |
| uint64_t cgen_var_609; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_609, 1); |
| countingStream->write((uint64_t*)&cgen_var_609, 1 * 8); |
| countingStream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout)); |
| countingStream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkImageResolve(countingStream, (VkImageResolve*)(local_pRegions + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdResolveImage = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdResolveImage = OP_vkCmdResolveImage; |
| stream->write(&opcode_vkCmdResolveImage, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdResolveImage, sizeof(uint32_t)); |
| uint64_t cgen_var_610; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_610, 1); |
| stream->write((uint64_t*)&cgen_var_610, 1 * 8); |
| uint64_t cgen_var_611; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_srcImage, &cgen_var_611, 1); |
| stream->write((uint64_t*)&cgen_var_611, 1 * 8); |
| stream->write((VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout)); |
| uint64_t cgen_var_612; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_dstImage, &cgen_var_612, 1); |
| stream->write((uint64_t*)&cgen_var_612, 1 * 8); |
| stream->write((VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout)); |
| stream->write((uint32_t*)&local_regionCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i) |
| { |
| marshal_VkImageResolve(stream, (VkImageResolve*)(local_pRegions + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdResolveImage readParams"); |
| AEMU_SCOPED_TRACE("vkCmdResolveImage returnUnmarshal"); |
| mImpl->log("finish vkCmdResolveImage");; |
| } |
| |
| void VkEncoder::vkCmdSetEvent( |
| VkCommandBuffer commandBuffer, |
| VkEvent event, |
| VkPipelineStageFlags stageMask) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetEvent encode"); |
| mImpl->log("start vkCmdSetEvent"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkEvent local_event; |
| VkPipelineStageFlags local_stageMask; |
| local_commandBuffer = commandBuffer; |
| local_event = event; |
| local_stageMask = stageMask; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_613; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_613, 1); |
| countingStream->write((uint64_t*)&cgen_var_613, 1 * 8); |
| uint64_t cgen_var_614; |
| countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_614, 1); |
| countingStream->write((uint64_t*)&cgen_var_614, 1 * 8); |
| countingStream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags)); |
| } |
| uint32_t packetSize_vkCmdSetEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetEvent = OP_vkCmdSetEvent; |
| stream->write(&opcode_vkCmdSetEvent, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetEvent, sizeof(uint32_t)); |
| uint64_t cgen_var_615; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_615, 1); |
| stream->write((uint64_t*)&cgen_var_615, 1 * 8); |
| uint64_t cgen_var_616; |
| stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_616, 1); |
| stream->write((uint64_t*)&cgen_var_616, 1 * 8); |
| stream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags)); |
| AEMU_SCOPED_TRACE("vkCmdSetEvent readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetEvent returnUnmarshal"); |
| mImpl->log("finish vkCmdSetEvent");; |
| } |
| |
| void VkEncoder::vkCmdResetEvent( |
| VkCommandBuffer commandBuffer, |
| VkEvent event, |
| VkPipelineStageFlags stageMask) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdResetEvent encode"); |
| mImpl->log("start vkCmdResetEvent"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkEvent local_event; |
| VkPipelineStageFlags local_stageMask; |
| local_commandBuffer = commandBuffer; |
| local_event = event; |
| local_stageMask = stageMask; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_617; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_617, 1); |
| countingStream->write((uint64_t*)&cgen_var_617, 1 * 8); |
| uint64_t cgen_var_618; |
| countingStream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_618, 1); |
| countingStream->write((uint64_t*)&cgen_var_618, 1 * 8); |
| countingStream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags)); |
| } |
| uint32_t packetSize_vkCmdResetEvent = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdResetEvent = OP_vkCmdResetEvent; |
| stream->write(&opcode_vkCmdResetEvent, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdResetEvent, sizeof(uint32_t)); |
| uint64_t cgen_var_619; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_619, 1); |
| stream->write((uint64_t*)&cgen_var_619, 1 * 8); |
| uint64_t cgen_var_620; |
| stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_620, 1); |
| stream->write((uint64_t*)&cgen_var_620, 1 * 8); |
| stream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags)); |
| AEMU_SCOPED_TRACE("vkCmdResetEvent readParams"); |
| AEMU_SCOPED_TRACE("vkCmdResetEvent returnUnmarshal"); |
| mImpl->log("finish vkCmdResetEvent");; |
| } |
| |
| void VkEncoder::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) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdWaitEvents encode"); |
| mImpl->log("start vkCmdWaitEvents"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_eventCount; |
| VkEvent* local_pEvents; |
| VkPipelineStageFlags local_srcStageMask; |
| VkPipelineStageFlags local_dstStageMask; |
| uint32_t local_memoryBarrierCount; |
| VkMemoryBarrier* local_pMemoryBarriers; |
| uint32_t local_bufferMemoryBarrierCount; |
| VkBufferMemoryBarrier* local_pBufferMemoryBarriers; |
| uint32_t local_imageMemoryBarrierCount; |
| VkImageMemoryBarrier* local_pImageMemoryBarriers; |
| local_commandBuffer = commandBuffer; |
| local_eventCount = eventCount; |
| local_pEvents = nullptr; |
| if (pEvents) |
| { |
| local_pEvents = (VkEvent*)pool->dupArray(pEvents, ((eventCount)) * sizeof(const VkEvent)); |
| } |
| local_srcStageMask = srcStageMask; |
| local_dstStageMask = dstStageMask; |
| local_memoryBarrierCount = memoryBarrierCount; |
| local_pMemoryBarriers = nullptr; |
| if (pMemoryBarriers) |
| { |
| local_pMemoryBarriers = (VkMemoryBarrier*)pool->alloc(((memoryBarrierCount)) * sizeof(const VkMemoryBarrier)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i) |
| { |
| deepcopy_VkMemoryBarrier(pool, pMemoryBarriers + i, (VkMemoryBarrier*)(local_pMemoryBarriers + i)); |
| } |
| } |
| local_bufferMemoryBarrierCount = bufferMemoryBarrierCount; |
| local_pBufferMemoryBarriers = nullptr; |
| if (pBufferMemoryBarriers) |
| { |
| local_pBufferMemoryBarriers = (VkBufferMemoryBarrier*)pool->alloc(((bufferMemoryBarrierCount)) * sizeof(const VkBufferMemoryBarrier)); |
| for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i) |
| { |
| deepcopy_VkBufferMemoryBarrier(pool, pBufferMemoryBarriers + i, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i)); |
| } |
| } |
| local_imageMemoryBarrierCount = imageMemoryBarrierCount; |
| local_pImageMemoryBarriers = nullptr; |
| if (pImageMemoryBarriers) |
| { |
| local_pImageMemoryBarriers = (VkImageMemoryBarrier*)pool->alloc(((imageMemoryBarrierCount)) * sizeof(const VkImageMemoryBarrier)); |
| for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i) |
| { |
| deepcopy_VkImageMemoryBarrier(pool, pImageMemoryBarriers + i, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i)); |
| } |
| } |
| if (local_pMemoryBarriers) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i) |
| { |
| transform_tohost_VkMemoryBarrier(mImpl->resources(), (VkMemoryBarrier*)(local_pMemoryBarriers + i)); |
| } |
| } |
| if (local_pBufferMemoryBarriers) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i) |
| { |
| transform_tohost_VkBufferMemoryBarrier(mImpl->resources(), (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i)); |
| } |
| } |
| if (local_pImageMemoryBarriers) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i) |
| { |
| transform_tohost_VkImageMemoryBarrier(mImpl->resources(), (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_621; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_621, 1); |
| countingStream->write((uint64_t*)&cgen_var_621, 1 * 8); |
| countingStream->write((uint32_t*)&local_eventCount, sizeof(uint32_t)); |
| if (((eventCount))) |
| { |
| uint64_t* cgen_var_622; |
| countingStream->alloc((void**)&cgen_var_622, ((eventCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkEvent_u64(local_pEvents, cgen_var_622, ((eventCount))); |
| countingStream->write((uint64_t*)cgen_var_622, ((eventCount)) * 8); |
| } |
| countingStream->write((VkPipelineStageFlags*)&local_srcStageMask, sizeof(VkPipelineStageFlags)); |
| countingStream->write((VkPipelineStageFlags*)&local_dstStageMask, sizeof(VkPipelineStageFlags)); |
| countingStream->write((uint32_t*)&local_memoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i) |
| { |
| marshal_VkMemoryBarrier(countingStream, (VkMemoryBarrier*)(local_pMemoryBarriers + i)); |
| } |
| countingStream->write((uint32_t*)&local_bufferMemoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i) |
| { |
| marshal_VkBufferMemoryBarrier(countingStream, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i)); |
| } |
| countingStream->write((uint32_t*)&local_imageMemoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i) |
| { |
| marshal_VkImageMemoryBarrier(countingStream, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdWaitEvents = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdWaitEvents = OP_vkCmdWaitEvents; |
| stream->write(&opcode_vkCmdWaitEvents, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdWaitEvents, sizeof(uint32_t)); |
| uint64_t cgen_var_623; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_623, 1); |
| stream->write((uint64_t*)&cgen_var_623, 1 * 8); |
| stream->write((uint32_t*)&local_eventCount, sizeof(uint32_t)); |
| if (((eventCount))) |
| { |
| uint64_t* cgen_var_624; |
| stream->alloc((void**)&cgen_var_624, ((eventCount)) * 8); |
| stream->handleMapping()->mapHandles_VkEvent_u64(local_pEvents, cgen_var_624, ((eventCount))); |
| stream->write((uint64_t*)cgen_var_624, ((eventCount)) * 8); |
| } |
| stream->write((VkPipelineStageFlags*)&local_srcStageMask, sizeof(VkPipelineStageFlags)); |
| stream->write((VkPipelineStageFlags*)&local_dstStageMask, sizeof(VkPipelineStageFlags)); |
| stream->write((uint32_t*)&local_memoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i) |
| { |
| marshal_VkMemoryBarrier(stream, (VkMemoryBarrier*)(local_pMemoryBarriers + i)); |
| } |
| stream->write((uint32_t*)&local_bufferMemoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i) |
| { |
| marshal_VkBufferMemoryBarrier(stream, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i)); |
| } |
| stream->write((uint32_t*)&local_imageMemoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i) |
| { |
| marshal_VkImageMemoryBarrier(stream, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdWaitEvents readParams"); |
| AEMU_SCOPED_TRACE("vkCmdWaitEvents returnUnmarshal"); |
| mImpl->log("finish vkCmdWaitEvents");; |
| } |
| |
| void VkEncoder::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) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdPipelineBarrier encode"); |
| mImpl->log("start vkCmdPipelineBarrier"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkPipelineStageFlags local_srcStageMask; |
| VkPipelineStageFlags local_dstStageMask; |
| VkDependencyFlags local_dependencyFlags; |
| uint32_t local_memoryBarrierCount; |
| VkMemoryBarrier* local_pMemoryBarriers; |
| uint32_t local_bufferMemoryBarrierCount; |
| VkBufferMemoryBarrier* local_pBufferMemoryBarriers; |
| uint32_t local_imageMemoryBarrierCount; |
| VkImageMemoryBarrier* local_pImageMemoryBarriers; |
| local_commandBuffer = commandBuffer; |
| local_srcStageMask = srcStageMask; |
| local_dstStageMask = dstStageMask; |
| local_dependencyFlags = dependencyFlags; |
| local_memoryBarrierCount = memoryBarrierCount; |
| local_pMemoryBarriers = nullptr; |
| if (pMemoryBarriers) |
| { |
| local_pMemoryBarriers = (VkMemoryBarrier*)pool->alloc(((memoryBarrierCount)) * sizeof(const VkMemoryBarrier)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i) |
| { |
| deepcopy_VkMemoryBarrier(pool, pMemoryBarriers + i, (VkMemoryBarrier*)(local_pMemoryBarriers + i)); |
| } |
| } |
| local_bufferMemoryBarrierCount = bufferMemoryBarrierCount; |
| local_pBufferMemoryBarriers = nullptr; |
| if (pBufferMemoryBarriers) |
| { |
| local_pBufferMemoryBarriers = (VkBufferMemoryBarrier*)pool->alloc(((bufferMemoryBarrierCount)) * sizeof(const VkBufferMemoryBarrier)); |
| for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i) |
| { |
| deepcopy_VkBufferMemoryBarrier(pool, pBufferMemoryBarriers + i, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i)); |
| } |
| } |
| local_imageMemoryBarrierCount = imageMemoryBarrierCount; |
| local_pImageMemoryBarriers = nullptr; |
| if (pImageMemoryBarriers) |
| { |
| local_pImageMemoryBarriers = (VkImageMemoryBarrier*)pool->alloc(((imageMemoryBarrierCount)) * sizeof(const VkImageMemoryBarrier)); |
| for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i) |
| { |
| deepcopy_VkImageMemoryBarrier(pool, pImageMemoryBarriers + i, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i)); |
| } |
| } |
| if (local_pMemoryBarriers) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i) |
| { |
| transform_tohost_VkMemoryBarrier(mImpl->resources(), (VkMemoryBarrier*)(local_pMemoryBarriers + i)); |
| } |
| } |
| if (local_pBufferMemoryBarriers) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i) |
| { |
| transform_tohost_VkBufferMemoryBarrier(mImpl->resources(), (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i)); |
| } |
| } |
| if (local_pImageMemoryBarriers) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i) |
| { |
| transform_tohost_VkImageMemoryBarrier(mImpl->resources(), (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_625; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_625, 1); |
| countingStream->write((uint64_t*)&cgen_var_625, 1 * 8); |
| countingStream->write((VkPipelineStageFlags*)&local_srcStageMask, sizeof(VkPipelineStageFlags)); |
| countingStream->write((VkPipelineStageFlags*)&local_dstStageMask, sizeof(VkPipelineStageFlags)); |
| countingStream->write((VkDependencyFlags*)&local_dependencyFlags, sizeof(VkDependencyFlags)); |
| countingStream->write((uint32_t*)&local_memoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i) |
| { |
| marshal_VkMemoryBarrier(countingStream, (VkMemoryBarrier*)(local_pMemoryBarriers + i)); |
| } |
| countingStream->write((uint32_t*)&local_bufferMemoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i) |
| { |
| marshal_VkBufferMemoryBarrier(countingStream, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i)); |
| } |
| countingStream->write((uint32_t*)&local_imageMemoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i) |
| { |
| marshal_VkImageMemoryBarrier(countingStream, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdPipelineBarrier = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdPipelineBarrier = OP_vkCmdPipelineBarrier; |
| stream->write(&opcode_vkCmdPipelineBarrier, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdPipelineBarrier, sizeof(uint32_t)); |
| uint64_t cgen_var_626; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_626, 1); |
| stream->write((uint64_t*)&cgen_var_626, 1 * 8); |
| stream->write((VkPipelineStageFlags*)&local_srcStageMask, sizeof(VkPipelineStageFlags)); |
| stream->write((VkPipelineStageFlags*)&local_dstStageMask, sizeof(VkPipelineStageFlags)); |
| stream->write((VkDependencyFlags*)&local_dependencyFlags, sizeof(VkDependencyFlags)); |
| stream->write((uint32_t*)&local_memoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((memoryBarrierCount)); ++i) |
| { |
| marshal_VkMemoryBarrier(stream, (VkMemoryBarrier*)(local_pMemoryBarriers + i)); |
| } |
| stream->write((uint32_t*)&local_bufferMemoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bufferMemoryBarrierCount)); ++i) |
| { |
| marshal_VkBufferMemoryBarrier(stream, (VkBufferMemoryBarrier*)(local_pBufferMemoryBarriers + i)); |
| } |
| stream->write((uint32_t*)&local_imageMemoryBarrierCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((imageMemoryBarrierCount)); ++i) |
| { |
| marshal_VkImageMemoryBarrier(stream, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdPipelineBarrier readParams"); |
| AEMU_SCOPED_TRACE("vkCmdPipelineBarrier returnUnmarshal"); |
| mImpl->log("finish vkCmdPipelineBarrier");; |
| } |
| |
| void VkEncoder::vkCmdBeginQuery( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t query, |
| VkQueryControlFlags flags) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdBeginQuery encode"); |
| mImpl->log("start vkCmdBeginQuery"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkQueryPool local_queryPool; |
| uint32_t local_query; |
| VkQueryControlFlags local_flags; |
| local_commandBuffer = commandBuffer; |
| local_queryPool = queryPool; |
| local_query = query; |
| local_flags = flags; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_627; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_627, 1); |
| countingStream->write((uint64_t*)&cgen_var_627, 1 * 8); |
| uint64_t cgen_var_628; |
| countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_628, 1); |
| countingStream->write((uint64_t*)&cgen_var_628, 1 * 8); |
| countingStream->write((uint32_t*)&local_query, sizeof(uint32_t)); |
| countingStream->write((VkQueryControlFlags*)&local_flags, sizeof(VkQueryControlFlags)); |
| } |
| uint32_t packetSize_vkCmdBeginQuery = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdBeginQuery = OP_vkCmdBeginQuery; |
| stream->write(&opcode_vkCmdBeginQuery, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdBeginQuery, sizeof(uint32_t)); |
| uint64_t cgen_var_629; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_629, 1); |
| stream->write((uint64_t*)&cgen_var_629, 1 * 8); |
| uint64_t cgen_var_630; |
| stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_630, 1); |
| stream->write((uint64_t*)&cgen_var_630, 1 * 8); |
| stream->write((uint32_t*)&local_query, sizeof(uint32_t)); |
| stream->write((VkQueryControlFlags*)&local_flags, sizeof(VkQueryControlFlags)); |
| AEMU_SCOPED_TRACE("vkCmdBeginQuery readParams"); |
| AEMU_SCOPED_TRACE("vkCmdBeginQuery returnUnmarshal"); |
| mImpl->log("finish vkCmdBeginQuery");; |
| } |
| |
| void VkEncoder::vkCmdEndQuery( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t query) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdEndQuery encode"); |
| mImpl->log("start vkCmdEndQuery"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkQueryPool local_queryPool; |
| uint32_t local_query; |
| local_commandBuffer = commandBuffer; |
| local_queryPool = queryPool; |
| local_query = query; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_631; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_631, 1); |
| countingStream->write((uint64_t*)&cgen_var_631, 1 * 8); |
| uint64_t cgen_var_632; |
| countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_632, 1); |
| countingStream->write((uint64_t*)&cgen_var_632, 1 * 8); |
| countingStream->write((uint32_t*)&local_query, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdEndQuery = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdEndQuery = OP_vkCmdEndQuery; |
| stream->write(&opcode_vkCmdEndQuery, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdEndQuery, sizeof(uint32_t)); |
| uint64_t cgen_var_633; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_633, 1); |
| stream->write((uint64_t*)&cgen_var_633, 1 * 8); |
| uint64_t cgen_var_634; |
| stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_634, 1); |
| stream->write((uint64_t*)&cgen_var_634, 1 * 8); |
| stream->write((uint32_t*)&local_query, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdEndQuery readParams"); |
| AEMU_SCOPED_TRACE("vkCmdEndQuery returnUnmarshal"); |
| mImpl->log("finish vkCmdEndQuery");; |
| } |
| |
| void VkEncoder::vkCmdResetQueryPool( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t firstQuery, |
| uint32_t queryCount) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdResetQueryPool encode"); |
| mImpl->log("start vkCmdResetQueryPool"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkQueryPool local_queryPool; |
| uint32_t local_firstQuery; |
| uint32_t local_queryCount; |
| local_commandBuffer = commandBuffer; |
| local_queryPool = queryPool; |
| local_firstQuery = firstQuery; |
| local_queryCount = queryCount; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_635; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_635, 1); |
| countingStream->write((uint64_t*)&cgen_var_635, 1 * 8); |
| uint64_t cgen_var_636; |
| countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_636, 1); |
| countingStream->write((uint64_t*)&cgen_var_636, 1 * 8); |
| countingStream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_queryCount, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdResetQueryPool = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdResetQueryPool = OP_vkCmdResetQueryPool; |
| stream->write(&opcode_vkCmdResetQueryPool, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdResetQueryPool, sizeof(uint32_t)); |
| uint64_t cgen_var_637; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_637, 1); |
| stream->write((uint64_t*)&cgen_var_637, 1 * 8); |
| uint64_t cgen_var_638; |
| stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_638, 1); |
| stream->write((uint64_t*)&cgen_var_638, 1 * 8); |
| stream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_queryCount, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdResetQueryPool readParams"); |
| AEMU_SCOPED_TRACE("vkCmdResetQueryPool returnUnmarshal"); |
| mImpl->log("finish vkCmdResetQueryPool");; |
| } |
| |
| void VkEncoder::vkCmdWriteTimestamp( |
| VkCommandBuffer commandBuffer, |
| VkPipelineStageFlagBits pipelineStage, |
| VkQueryPool queryPool, |
| uint32_t query) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdWriteTimestamp encode"); |
| mImpl->log("start vkCmdWriteTimestamp"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkPipelineStageFlagBits local_pipelineStage; |
| VkQueryPool local_queryPool; |
| uint32_t local_query; |
| local_commandBuffer = commandBuffer; |
| local_pipelineStage = pipelineStage; |
| local_queryPool = queryPool; |
| local_query = query; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_639; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_639, 1); |
| countingStream->write((uint64_t*)&cgen_var_639, 1 * 8); |
| countingStream->write((VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits)); |
| uint64_t cgen_var_640; |
| countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_640, 1); |
| countingStream->write((uint64_t*)&cgen_var_640, 1 * 8); |
| countingStream->write((uint32_t*)&local_query, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdWriteTimestamp = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdWriteTimestamp = OP_vkCmdWriteTimestamp; |
| stream->write(&opcode_vkCmdWriteTimestamp, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdWriteTimestamp, sizeof(uint32_t)); |
| uint64_t cgen_var_641; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_641, 1); |
| stream->write((uint64_t*)&cgen_var_641, 1 * 8); |
| stream->write((VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits)); |
| uint64_t cgen_var_642; |
| stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_642, 1); |
| stream->write((uint64_t*)&cgen_var_642, 1 * 8); |
| stream->write((uint32_t*)&local_query, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdWriteTimestamp readParams"); |
| AEMU_SCOPED_TRACE("vkCmdWriteTimestamp returnUnmarshal"); |
| mImpl->log("finish vkCmdWriteTimestamp");; |
| } |
| |
| void VkEncoder::vkCmdCopyQueryPoolResults( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t firstQuery, |
| uint32_t queryCount, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| VkDeviceSize stride, |
| VkQueryResultFlags flags) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults encode"); |
| mImpl->log("start vkCmdCopyQueryPoolResults"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkQueryPool local_queryPool; |
| uint32_t local_firstQuery; |
| uint32_t local_queryCount; |
| VkBuffer local_dstBuffer; |
| VkDeviceSize local_dstOffset; |
| VkDeviceSize local_stride; |
| VkQueryResultFlags local_flags; |
| local_commandBuffer = commandBuffer; |
| local_queryPool = queryPool; |
| local_firstQuery = firstQuery; |
| local_queryCount = queryCount; |
| local_dstBuffer = dstBuffer; |
| local_dstOffset = dstOffset; |
| local_stride = stride; |
| local_flags = flags; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_643; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_643, 1); |
| countingStream->write((uint64_t*)&cgen_var_643, 1 * 8); |
| uint64_t cgen_var_644; |
| countingStream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_644, 1); |
| countingStream->write((uint64_t*)&cgen_var_644, 1 * 8); |
| countingStream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_queryCount, sizeof(uint32_t)); |
| uint64_t cgen_var_645; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_645, 1); |
| countingStream->write((uint64_t*)&cgen_var_645, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize)); |
| countingStream->write((VkDeviceSize*)&local_stride, sizeof(VkDeviceSize)); |
| countingStream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags)); |
| } |
| uint32_t packetSize_vkCmdCopyQueryPoolResults = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdCopyQueryPoolResults = OP_vkCmdCopyQueryPoolResults; |
| stream->write(&opcode_vkCmdCopyQueryPoolResults, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdCopyQueryPoolResults, sizeof(uint32_t)); |
| uint64_t cgen_var_646; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_646, 1); |
| stream->write((uint64_t*)&cgen_var_646, 1 * 8); |
| uint64_t cgen_var_647; |
| stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_647, 1); |
| stream->write((uint64_t*)&cgen_var_647, 1 * 8); |
| stream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_queryCount, sizeof(uint32_t)); |
| uint64_t cgen_var_648; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_648, 1); |
| stream->write((uint64_t*)&cgen_var_648, 1 * 8); |
| stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize)); |
| stream->write((VkDeviceSize*)&local_stride, sizeof(VkDeviceSize)); |
| stream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags)); |
| AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults readParams"); |
| AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults returnUnmarshal"); |
| mImpl->log("finish vkCmdCopyQueryPoolResults");; |
| } |
| |
| void VkEncoder::vkCmdPushConstants( |
| VkCommandBuffer commandBuffer, |
| VkPipelineLayout layout, |
| VkShaderStageFlags stageFlags, |
| uint32_t offset, |
| uint32_t size, |
| const void* pValues) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdPushConstants encode"); |
| mImpl->log("start vkCmdPushConstants"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkPipelineLayout local_layout; |
| VkShaderStageFlags local_stageFlags; |
| uint32_t local_offset; |
| uint32_t local_size; |
| void* local_pValues; |
| local_commandBuffer = commandBuffer; |
| local_layout = layout; |
| local_stageFlags = stageFlags; |
| local_offset = offset; |
| local_size = size; |
| local_pValues = nullptr; |
| if (pValues) |
| { |
| local_pValues = (void*)pool->dupArray(pValues, ((size)) * sizeof(const uint8_t)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_649; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_649, 1); |
| countingStream->write((uint64_t*)&cgen_var_649, 1 * 8); |
| uint64_t cgen_var_650; |
| countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_650, 1); |
| countingStream->write((uint64_t*)&cgen_var_650, 1 * 8); |
| countingStream->write((VkShaderStageFlags*)&local_stageFlags, sizeof(VkShaderStageFlags)); |
| countingStream->write((uint32_t*)&local_offset, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_size, sizeof(uint32_t)); |
| countingStream->write((void*)local_pValues, ((size)) * sizeof(uint8_t)); |
| } |
| uint32_t packetSize_vkCmdPushConstants = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdPushConstants = OP_vkCmdPushConstants; |
| stream->write(&opcode_vkCmdPushConstants, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdPushConstants, sizeof(uint32_t)); |
| uint64_t cgen_var_651; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_651, 1); |
| stream->write((uint64_t*)&cgen_var_651, 1 * 8); |
| uint64_t cgen_var_652; |
| stream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_652, 1); |
| stream->write((uint64_t*)&cgen_var_652, 1 * 8); |
| stream->write((VkShaderStageFlags*)&local_stageFlags, sizeof(VkShaderStageFlags)); |
| stream->write((uint32_t*)&local_offset, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_size, sizeof(uint32_t)); |
| stream->write((void*)local_pValues, ((size)) * sizeof(uint8_t)); |
| AEMU_SCOPED_TRACE("vkCmdPushConstants readParams"); |
| AEMU_SCOPED_TRACE("vkCmdPushConstants returnUnmarshal"); |
| mImpl->log("finish vkCmdPushConstants");; |
| } |
| |
| void VkEncoder::vkCmdBeginRenderPass( |
| VkCommandBuffer commandBuffer, |
| const VkRenderPassBeginInfo* pRenderPassBegin, |
| VkSubpassContents contents) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderPass encode"); |
| mImpl->log("start vkCmdBeginRenderPass"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkRenderPassBeginInfo* local_pRenderPassBegin; |
| VkSubpassContents local_contents; |
| local_commandBuffer = commandBuffer; |
| local_pRenderPassBegin = nullptr; |
| if (pRenderPassBegin) |
| { |
| local_pRenderPassBegin = (VkRenderPassBeginInfo*)pool->alloc(sizeof(const VkRenderPassBeginInfo)); |
| deepcopy_VkRenderPassBeginInfo(pool, pRenderPassBegin, (VkRenderPassBeginInfo*)(local_pRenderPassBegin)); |
| } |
| local_contents = contents; |
| if (local_pRenderPassBegin) |
| { |
| transform_tohost_VkRenderPassBeginInfo(mImpl->resources(), (VkRenderPassBeginInfo*)(local_pRenderPassBegin)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_653; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_653, 1); |
| countingStream->write((uint64_t*)&cgen_var_653, 1 * 8); |
| marshal_VkRenderPassBeginInfo(countingStream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin)); |
| countingStream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents)); |
| } |
| uint32_t packetSize_vkCmdBeginRenderPass = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdBeginRenderPass = OP_vkCmdBeginRenderPass; |
| stream->write(&opcode_vkCmdBeginRenderPass, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdBeginRenderPass, sizeof(uint32_t)); |
| uint64_t cgen_var_654; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_654, 1); |
| stream->write((uint64_t*)&cgen_var_654, 1 * 8); |
| marshal_VkRenderPassBeginInfo(stream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin)); |
| stream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents)); |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderPass readParams"); |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderPass returnUnmarshal"); |
| mImpl->log("finish vkCmdBeginRenderPass");; |
| } |
| |
| void VkEncoder::vkCmdNextSubpass( |
| VkCommandBuffer commandBuffer, |
| VkSubpassContents contents) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdNextSubpass encode"); |
| mImpl->log("start vkCmdNextSubpass"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkSubpassContents local_contents; |
| local_commandBuffer = commandBuffer; |
| local_contents = contents; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_655; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_655, 1); |
| countingStream->write((uint64_t*)&cgen_var_655, 1 * 8); |
| countingStream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents)); |
| } |
| uint32_t packetSize_vkCmdNextSubpass = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdNextSubpass = OP_vkCmdNextSubpass; |
| stream->write(&opcode_vkCmdNextSubpass, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdNextSubpass, sizeof(uint32_t)); |
| uint64_t cgen_var_656; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_656, 1); |
| stream->write((uint64_t*)&cgen_var_656, 1 * 8); |
| stream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents)); |
| AEMU_SCOPED_TRACE("vkCmdNextSubpass readParams"); |
| AEMU_SCOPED_TRACE("vkCmdNextSubpass returnUnmarshal"); |
| mImpl->log("finish vkCmdNextSubpass");; |
| } |
| |
| void VkEncoder::vkCmdEndRenderPass( |
| VkCommandBuffer commandBuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdEndRenderPass encode"); |
| mImpl->log("start vkCmdEndRenderPass"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| local_commandBuffer = commandBuffer; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_657; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_657, 1); |
| countingStream->write((uint64_t*)&cgen_var_657, 1 * 8); |
| } |
| uint32_t packetSize_vkCmdEndRenderPass = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdEndRenderPass = OP_vkCmdEndRenderPass; |
| stream->write(&opcode_vkCmdEndRenderPass, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdEndRenderPass, sizeof(uint32_t)); |
| uint64_t cgen_var_658; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_658, 1); |
| stream->write((uint64_t*)&cgen_var_658, 1 * 8); |
| AEMU_SCOPED_TRACE("vkCmdEndRenderPass readParams"); |
| AEMU_SCOPED_TRACE("vkCmdEndRenderPass returnUnmarshal"); |
| mImpl->log("finish vkCmdEndRenderPass");; |
| } |
| |
| void VkEncoder::vkCmdExecuteCommands( |
| VkCommandBuffer commandBuffer, |
| uint32_t commandBufferCount, |
| const VkCommandBuffer* pCommandBuffers) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdExecuteCommands encode"); |
| mImpl->log("start vkCmdExecuteCommands"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_commandBufferCount; |
| VkCommandBuffer* local_pCommandBuffers; |
| local_commandBuffer = commandBuffer; |
| local_commandBufferCount = commandBufferCount; |
| local_pCommandBuffers = nullptr; |
| if (pCommandBuffers) |
| { |
| local_pCommandBuffers = (VkCommandBuffer*)pool->dupArray(pCommandBuffers, ((commandBufferCount)) * sizeof(const VkCommandBuffer)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_659; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_659, 1); |
| countingStream->write((uint64_t*)&cgen_var_659, 1 * 8); |
| countingStream->write((uint32_t*)&local_commandBufferCount, sizeof(uint32_t)); |
| if (((commandBufferCount))) |
| { |
| uint64_t* cgen_var_660; |
| countingStream->alloc((void**)&cgen_var_660, ((commandBufferCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(local_pCommandBuffers, cgen_var_660, ((commandBufferCount))); |
| countingStream->write((uint64_t*)cgen_var_660, ((commandBufferCount)) * 8); |
| } |
| } |
| uint32_t packetSize_vkCmdExecuteCommands = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdExecuteCommands = OP_vkCmdExecuteCommands; |
| stream->write(&opcode_vkCmdExecuteCommands, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdExecuteCommands, sizeof(uint32_t)); |
| uint64_t cgen_var_661; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_661, 1); |
| stream->write((uint64_t*)&cgen_var_661, 1 * 8); |
| stream->write((uint32_t*)&local_commandBufferCount, sizeof(uint32_t)); |
| if (((commandBufferCount))) |
| { |
| uint64_t* cgen_var_662; |
| stream->alloc((void**)&cgen_var_662, ((commandBufferCount)) * 8); |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(local_pCommandBuffers, cgen_var_662, ((commandBufferCount))); |
| stream->write((uint64_t*)cgen_var_662, ((commandBufferCount)) * 8); |
| } |
| AEMU_SCOPED_TRACE("vkCmdExecuteCommands readParams"); |
| AEMU_SCOPED_TRACE("vkCmdExecuteCommands returnUnmarshal"); |
| mImpl->log("finish vkCmdExecuteCommands");; |
| } |
| |
| #endif |
| #ifdef VK_VERSION_1_1 |
| VkResult VkEncoder::vkEnumerateInstanceVersion( |
| uint32_t* pApiVersion) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion encode"); |
| mImpl->log("start vkEnumerateInstanceVersion"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| countingStream->rewind(); |
| { |
| countingStream->write((uint32_t*)pApiVersion, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkEnumerateInstanceVersion = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkEnumerateInstanceVersion = OP_vkEnumerateInstanceVersion; |
| stream->write(&opcode_vkEnumerateInstanceVersion, sizeof(uint32_t)); |
| stream->write(&packetSize_vkEnumerateInstanceVersion, sizeof(uint32_t)); |
| stream->write((uint32_t*)pApiVersion, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion readParams"); |
| stream->read((uint32_t*)pApiVersion, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion returnUnmarshal"); |
| VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0; |
| stream->read(&vkEnumerateInstanceVersion_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkEnumerateInstanceVersion");; |
| return vkEnumerateInstanceVersion_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkBindBufferMemory2( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindBufferMemoryInfo* pBindInfos) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkBindBufferMemory2 encode"); |
| mImpl->log("start vkBindBufferMemory2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_bindInfoCount; |
| VkBindBufferMemoryInfo* local_pBindInfos; |
| local_device = device; |
| local_bindInfoCount = bindInfoCount; |
| local_pBindInfos = nullptr; |
| if (pBindInfos) |
| { |
| local_pBindInfos = (VkBindBufferMemoryInfo*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindBufferMemoryInfo)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| deepcopy_VkBindBufferMemoryInfo(pool, pBindInfos + i, (VkBindBufferMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| if (local_pBindInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| transform_tohost_VkBindBufferMemoryInfo(mImpl->resources(), (VkBindBufferMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_663; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_663, 1); |
| countingStream->write((uint64_t*)&cgen_var_663, 1 * 8); |
| countingStream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| marshal_VkBindBufferMemoryInfo(countingStream, (VkBindBufferMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| uint32_t packetSize_vkBindBufferMemory2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkBindBufferMemory2 = OP_vkBindBufferMemory2; |
| stream->write(&opcode_vkBindBufferMemory2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkBindBufferMemory2, sizeof(uint32_t)); |
| uint64_t cgen_var_664; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_664, 1); |
| stream->write((uint64_t*)&cgen_var_664, 1 * 8); |
| stream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| marshal_VkBindBufferMemoryInfo(stream, (VkBindBufferMemoryInfo*)(local_pBindInfos + i)); |
| } |
| AEMU_SCOPED_TRACE("vkBindBufferMemory2 readParams"); |
| AEMU_SCOPED_TRACE("vkBindBufferMemory2 returnUnmarshal"); |
| VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0; |
| stream->read(&vkBindBufferMemory2_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkBindBufferMemory2");; |
| return vkBindBufferMemory2_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkBindImageMemory2( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindImageMemoryInfo* pBindInfos) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkBindImageMemory2 encode"); |
| mImpl->log("start vkBindImageMemory2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_bindInfoCount; |
| VkBindImageMemoryInfo* local_pBindInfos; |
| local_device = device; |
| local_bindInfoCount = bindInfoCount; |
| local_pBindInfos = nullptr; |
| if (pBindInfos) |
| { |
| local_pBindInfos = (VkBindImageMemoryInfo*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindImageMemoryInfo)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| deepcopy_VkBindImageMemoryInfo(pool, pBindInfos + i, (VkBindImageMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| if (local_pBindInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| transform_tohost_VkBindImageMemoryInfo(mImpl->resources(), (VkBindImageMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_665; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_665, 1); |
| countingStream->write((uint64_t*)&cgen_var_665, 1 * 8); |
| countingStream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| marshal_VkBindImageMemoryInfo(countingStream, (VkBindImageMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| uint32_t packetSize_vkBindImageMemory2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkBindImageMemory2 = OP_vkBindImageMemory2; |
| stream->write(&opcode_vkBindImageMemory2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkBindImageMemory2, sizeof(uint32_t)); |
| uint64_t cgen_var_666; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_666, 1); |
| stream->write((uint64_t*)&cgen_var_666, 1 * 8); |
| stream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| marshal_VkBindImageMemoryInfo(stream, (VkBindImageMemoryInfo*)(local_pBindInfos + i)); |
| } |
| AEMU_SCOPED_TRACE("vkBindImageMemory2 readParams"); |
| AEMU_SCOPED_TRACE("vkBindImageMemory2 returnUnmarshal"); |
| VkResult vkBindImageMemory2_VkResult_return = (VkResult)0; |
| stream->read(&vkBindImageMemory2_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkBindImageMemory2");; |
| return vkBindImageMemory2_VkResult_return; |
| } |
| |
| void VkEncoder::vkGetDeviceGroupPeerMemoryFeatures( |
| VkDevice device, |
| uint32_t heapIndex, |
| uint32_t localDeviceIndex, |
| uint32_t remoteDeviceIndex, |
| VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures encode"); |
| mImpl->log("start vkGetDeviceGroupPeerMemoryFeatures"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_heapIndex; |
| uint32_t local_localDeviceIndex; |
| uint32_t local_remoteDeviceIndex; |
| local_device = device; |
| local_heapIndex = heapIndex; |
| local_localDeviceIndex = localDeviceIndex; |
| local_remoteDeviceIndex = remoteDeviceIndex; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_667; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_667, 1); |
| countingStream->write((uint64_t*)&cgen_var_667, 1 * 8); |
| countingStream->write((uint32_t*)&local_heapIndex, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_localDeviceIndex, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_remoteDeviceIndex, sizeof(uint32_t)); |
| countingStream->write((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags)); |
| } |
| uint32_t packetSize_vkGetDeviceGroupPeerMemoryFeatures = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDeviceGroupPeerMemoryFeatures = OP_vkGetDeviceGroupPeerMemoryFeatures; |
| stream->write(&opcode_vkGetDeviceGroupPeerMemoryFeatures, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDeviceGroupPeerMemoryFeatures, sizeof(uint32_t)); |
| uint64_t cgen_var_668; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_668, 1); |
| stream->write((uint64_t*)&cgen_var_668, 1 * 8); |
| stream->write((uint32_t*)&local_heapIndex, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_localDeviceIndex, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_remoteDeviceIndex, sizeof(uint32_t)); |
| stream->write((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags)); |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures readParams"); |
| stream->read((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags)); |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures returnUnmarshal"); |
| mImpl->log("finish vkGetDeviceGroupPeerMemoryFeatures");; |
| } |
| |
| void VkEncoder::vkCmdSetDeviceMask( |
| VkCommandBuffer commandBuffer, |
| uint32_t deviceMask) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetDeviceMask encode"); |
| mImpl->log("start vkCmdSetDeviceMask"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_deviceMask; |
| local_commandBuffer = commandBuffer; |
| local_deviceMask = deviceMask; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_669; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_669, 1); |
| countingStream->write((uint64_t*)&cgen_var_669, 1 * 8); |
| countingStream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdSetDeviceMask = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetDeviceMask = OP_vkCmdSetDeviceMask; |
| stream->write(&opcode_vkCmdSetDeviceMask, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetDeviceMask, sizeof(uint32_t)); |
| uint64_t cgen_var_670; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_670, 1); |
| stream->write((uint64_t*)&cgen_var_670, 1 * 8); |
| stream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdSetDeviceMask readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetDeviceMask returnUnmarshal"); |
| mImpl->log("finish vkCmdSetDeviceMask");; |
| } |
| |
| void VkEncoder::vkCmdDispatchBase( |
| VkCommandBuffer commandBuffer, |
| uint32_t baseGroupX, |
| uint32_t baseGroupY, |
| uint32_t baseGroupZ, |
| uint32_t groupCountX, |
| uint32_t groupCountY, |
| uint32_t groupCountZ) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDispatchBase encode"); |
| mImpl->log("start vkCmdDispatchBase"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_baseGroupX; |
| uint32_t local_baseGroupY; |
| uint32_t local_baseGroupZ; |
| uint32_t local_groupCountX; |
| uint32_t local_groupCountY; |
| uint32_t local_groupCountZ; |
| local_commandBuffer = commandBuffer; |
| local_baseGroupX = baseGroupX; |
| local_baseGroupY = baseGroupY; |
| local_baseGroupZ = baseGroupZ; |
| local_groupCountX = groupCountX; |
| local_groupCountY = groupCountY; |
| local_groupCountZ = groupCountZ; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_671; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_671, 1); |
| countingStream->write((uint64_t*)&cgen_var_671, 1 * 8); |
| countingStream->write((uint32_t*)&local_baseGroupX, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_baseGroupY, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_baseGroupZ, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDispatchBase = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDispatchBase = OP_vkCmdDispatchBase; |
| stream->write(&opcode_vkCmdDispatchBase, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDispatchBase, sizeof(uint32_t)); |
| uint64_t cgen_var_672; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_672, 1); |
| stream->write((uint64_t*)&cgen_var_672, 1 * 8); |
| stream->write((uint32_t*)&local_baseGroupX, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_baseGroupY, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_baseGroupZ, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDispatchBase readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDispatchBase returnUnmarshal"); |
| mImpl->log("finish vkCmdDispatchBase");; |
| } |
| |
| VkResult VkEncoder::vkEnumeratePhysicalDeviceGroups( |
| VkInstance instance, |
| uint32_t* pPhysicalDeviceGroupCount, |
| VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups encode"); |
| mImpl->log("start vkEnumeratePhysicalDeviceGroups"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| local_instance = instance; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_673; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_673, 1); |
| countingStream->write((uint64_t*)&cgen_var_673, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_674 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount; |
| countingStream->putBe64(cgen_var_674); |
| if (pPhysicalDeviceGroupCount) |
| { |
| countingStream->write((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_675 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties; |
| countingStream->putBe64(cgen_var_675); |
| if (pPhysicalDeviceGroupProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i) |
| { |
| marshal_VkPhysicalDeviceGroupProperties(countingStream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkEnumeratePhysicalDeviceGroups = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkEnumeratePhysicalDeviceGroups = OP_vkEnumeratePhysicalDeviceGroups; |
| stream->write(&opcode_vkEnumeratePhysicalDeviceGroups, sizeof(uint32_t)); |
| stream->write(&packetSize_vkEnumeratePhysicalDeviceGroups, sizeof(uint32_t)); |
| uint64_t cgen_var_676; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_676, 1); |
| stream->write((uint64_t*)&cgen_var_676, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_677 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount; |
| stream->putBe64(cgen_var_677); |
| if (pPhysicalDeviceGroupCount) |
| { |
| stream->write((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_678 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties; |
| stream->putBe64(cgen_var_678); |
| if (pPhysicalDeviceGroupProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i) |
| { |
| marshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPhysicalDeviceGroupCount; |
| check_pPhysicalDeviceGroupCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPhysicalDeviceGroupCount) |
| { |
| if (!(check_pPhysicalDeviceGroupCount)) |
| { |
| fprintf(stderr, "fatal: pPhysicalDeviceGroupCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkPhysicalDeviceGroupProperties* check_pPhysicalDeviceGroupProperties; |
| check_pPhysicalDeviceGroupProperties = (VkPhysicalDeviceGroupProperties*)(uintptr_t)stream->getBe64(); |
| if (pPhysicalDeviceGroupProperties) |
| { |
| if (!(check_pPhysicalDeviceGroupProperties)) |
| { |
| fprintf(stderr, "fatal: pPhysicalDeviceGroupProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i) |
| { |
| unmarshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i)); |
| } |
| } |
| if (pPhysicalDeviceGroupProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i) |
| { |
| transform_fromhost_VkPhysicalDeviceGroupProperties(mImpl->resources(), (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups returnUnmarshal"); |
| VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0; |
| stream->read(&vkEnumeratePhysicalDeviceGroups_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkEnumeratePhysicalDeviceGroups");; |
| return vkEnumeratePhysicalDeviceGroups_VkResult_return; |
| } |
| |
| void VkEncoder::vkGetImageMemoryRequirements2( |
| VkDevice device, |
| const VkImageMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 encode"); |
| mImpl->log("start vkGetImageMemoryRequirements2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImageMemoryRequirementsInfo2* local_pInfo; |
| local_device = device; |
| local_pInfo = nullptr; |
| if (pInfo) |
| { |
| local_pInfo = (VkImageMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkImageMemoryRequirementsInfo2)); |
| deepcopy_VkImageMemoryRequirementsInfo2(pool, pInfo, (VkImageMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| if (local_pInfo) |
| { |
| transform_tohost_VkImageMemoryRequirementsInfo2(mImpl->resources(), (VkImageMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_681; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_681, 1); |
| countingStream->write((uint64_t*)&cgen_var_681, 1 * 8); |
| marshal_VkImageMemoryRequirementsInfo2(countingStream, (VkImageMemoryRequirementsInfo2*)(local_pInfo)); |
| marshal_VkMemoryRequirements2(countingStream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| } |
| uint32_t packetSize_vkGetImageMemoryRequirements2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetImageMemoryRequirements2 = OP_vkGetImageMemoryRequirements2; |
| stream->write(&opcode_vkGetImageMemoryRequirements2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetImageMemoryRequirements2, sizeof(uint32_t)); |
| uint64_t cgen_var_682; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_682, 1); |
| stream->write((uint64_t*)&cgen_var_682, 1 * 8); |
| marshal_VkImageMemoryRequirementsInfo2(stream, (VkImageMemoryRequirementsInfo2*)(local_pInfo)); |
| marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 readParams"); |
| unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| if (pMemoryRequirements) |
| { |
| transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements)); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 returnUnmarshal"); |
| mImpl->log("finish vkGetImageMemoryRequirements2");; |
| } |
| |
| void VkEncoder::vkGetBufferMemoryRequirements2( |
| VkDevice device, |
| const VkBufferMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 encode"); |
| mImpl->log("start vkGetBufferMemoryRequirements2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkBufferMemoryRequirementsInfo2* local_pInfo; |
| local_device = device; |
| local_pInfo = nullptr; |
| if (pInfo) |
| { |
| local_pInfo = (VkBufferMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkBufferMemoryRequirementsInfo2)); |
| deepcopy_VkBufferMemoryRequirementsInfo2(pool, pInfo, (VkBufferMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| if (local_pInfo) |
| { |
| transform_tohost_VkBufferMemoryRequirementsInfo2(mImpl->resources(), (VkBufferMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_683; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_683, 1); |
| countingStream->write((uint64_t*)&cgen_var_683, 1 * 8); |
| marshal_VkBufferMemoryRequirementsInfo2(countingStream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo)); |
| marshal_VkMemoryRequirements2(countingStream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| } |
| uint32_t packetSize_vkGetBufferMemoryRequirements2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetBufferMemoryRequirements2 = OP_vkGetBufferMemoryRequirements2; |
| stream->write(&opcode_vkGetBufferMemoryRequirements2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetBufferMemoryRequirements2, sizeof(uint32_t)); |
| uint64_t cgen_var_684; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_684, 1); |
| stream->write((uint64_t*)&cgen_var_684, 1 * 8); |
| marshal_VkBufferMemoryRequirementsInfo2(stream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo)); |
| marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 readParams"); |
| unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| if (pMemoryRequirements) |
| { |
| transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements)); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 returnUnmarshal"); |
| mImpl->log("finish vkGetBufferMemoryRequirements2");; |
| } |
| |
| void VkEncoder::vkGetImageSparseMemoryRequirements2( |
| VkDevice device, |
| const VkImageSparseMemoryRequirementsInfo2* pInfo, |
| uint32_t* pSparseMemoryRequirementCount, |
| VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 encode"); |
| mImpl->log("start vkGetImageSparseMemoryRequirements2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImageSparseMemoryRequirementsInfo2* local_pInfo; |
| local_device = device; |
| local_pInfo = nullptr; |
| if (pInfo) |
| { |
| local_pInfo = (VkImageSparseMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkImageSparseMemoryRequirementsInfo2)); |
| deepcopy_VkImageSparseMemoryRequirementsInfo2(pool, pInfo, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| if (local_pInfo) |
| { |
| transform_tohost_VkImageSparseMemoryRequirementsInfo2(mImpl->resources(), (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_685; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_685, 1); |
| countingStream->write((uint64_t*)&cgen_var_685, 1 * 8); |
| marshal_VkImageSparseMemoryRequirementsInfo2(countingStream, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_686 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount; |
| countingStream->putBe64(cgen_var_686); |
| if (pSparseMemoryRequirementCount) |
| { |
| countingStream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_687 = (uint64_t)(uintptr_t)pSparseMemoryRequirements; |
| countingStream->putBe64(cgen_var_687); |
| if (pSparseMemoryRequirements) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| marshal_VkSparseImageMemoryRequirements2(countingStream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetImageSparseMemoryRequirements2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetImageSparseMemoryRequirements2 = OP_vkGetImageSparseMemoryRequirements2; |
| stream->write(&opcode_vkGetImageSparseMemoryRequirements2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetImageSparseMemoryRequirements2, sizeof(uint32_t)); |
| uint64_t cgen_var_688; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_688, 1); |
| stream->write((uint64_t*)&cgen_var_688, 1 * 8); |
| marshal_VkImageSparseMemoryRequirementsInfo2(stream, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_689 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount; |
| stream->putBe64(cgen_var_689); |
| if (pSparseMemoryRequirementCount) |
| { |
| stream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_690 = (uint64_t)(uintptr_t)pSparseMemoryRequirements; |
| stream->putBe64(cgen_var_690); |
| if (pSparseMemoryRequirements) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| marshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pSparseMemoryRequirementCount; |
| check_pSparseMemoryRequirementCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pSparseMemoryRequirementCount) |
| { |
| if (!(check_pSparseMemoryRequirementCount)) |
| { |
| fprintf(stderr, "fatal: pSparseMemoryRequirementCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkSparseImageMemoryRequirements2* check_pSparseMemoryRequirements; |
| check_pSparseMemoryRequirements = (VkSparseImageMemoryRequirements2*)(uintptr_t)stream->getBe64(); |
| if (pSparseMemoryRequirements) |
| { |
| if (!(check_pSparseMemoryRequirements)) |
| { |
| fprintf(stderr, "fatal: pSparseMemoryRequirements inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| unmarshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| if (pSparseMemoryRequirements) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| transform_fromhost_VkSparseImageMemoryRequirements2(mImpl->resources(), (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 returnUnmarshal"); |
| mImpl->log("finish vkGetImageSparseMemoryRequirements2");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceFeatures2( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceFeatures2* pFeatures) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 encode"); |
| mImpl->log("start vkGetPhysicalDeviceFeatures2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_693; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_693, 1); |
| countingStream->write((uint64_t*)&cgen_var_693, 1 * 8); |
| marshal_VkPhysicalDeviceFeatures2(countingStream, (VkPhysicalDeviceFeatures2*)(pFeatures)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceFeatures2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceFeatures2 = OP_vkGetPhysicalDeviceFeatures2; |
| stream->write(&opcode_vkGetPhysicalDeviceFeatures2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceFeatures2, sizeof(uint32_t)); |
| uint64_t cgen_var_694; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_694, 1); |
| stream->write((uint64_t*)&cgen_var_694, 1 * 8); |
| marshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 readParams"); |
| unmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures)); |
| if (pFeatures) |
| { |
| transform_fromhost_VkPhysicalDeviceFeatures2(mImpl->resources(), (VkPhysicalDeviceFeatures2*)(pFeatures)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceFeatures2");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceProperties2( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceProperties2* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 encode"); |
| mImpl->log("start vkGetPhysicalDeviceProperties2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_695; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_695, 1); |
| countingStream->write((uint64_t*)&cgen_var_695, 1 * 8); |
| marshal_VkPhysicalDeviceProperties2(countingStream, (VkPhysicalDeviceProperties2*)(pProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceProperties2 = OP_vkGetPhysicalDeviceProperties2; |
| stream->write(&opcode_vkGetPhysicalDeviceProperties2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceProperties2, sizeof(uint32_t)); |
| uint64_t cgen_var_696; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_696, 1); |
| stream->write((uint64_t*)&cgen_var_696, 1 * 8); |
| marshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 readParams"); |
| unmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties)); |
| if (pProperties) |
| { |
| transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceProperties2");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceFormatProperties2( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkFormatProperties2* pFormatProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 encode"); |
| mImpl->log("start vkGetPhysicalDeviceFormatProperties2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkFormat local_format; |
| local_physicalDevice = physicalDevice; |
| local_format = format; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_697; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_697, 1); |
| countingStream->write((uint64_t*)&cgen_var_697, 1 * 8); |
| countingStream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| marshal_VkFormatProperties2(countingStream, (VkFormatProperties2*)(pFormatProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceFormatProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceFormatProperties2 = OP_vkGetPhysicalDeviceFormatProperties2; |
| stream->write(&opcode_vkGetPhysicalDeviceFormatProperties2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceFormatProperties2, sizeof(uint32_t)); |
| uint64_t cgen_var_698; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_698, 1); |
| stream->write((uint64_t*)&cgen_var_698, 1 * 8); |
| stream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| marshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 readParams"); |
| unmarshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties)); |
| if (pFormatProperties) |
| { |
| transform_fromhost_VkFormatProperties2(mImpl->resources(), (VkFormatProperties2*)(pFormatProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceFormatProperties2");; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties2( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, |
| VkImageFormatProperties2* pImageFormatProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 encode"); |
| mImpl->log("start vkGetPhysicalDeviceImageFormatProperties2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceImageFormatInfo2* local_pImageFormatInfo; |
| local_physicalDevice = physicalDevice; |
| local_pImageFormatInfo = nullptr; |
| if (pImageFormatInfo) |
| { |
| local_pImageFormatInfo = (VkPhysicalDeviceImageFormatInfo2*)pool->alloc(sizeof(const VkPhysicalDeviceImageFormatInfo2)); |
| deepcopy_VkPhysicalDeviceImageFormatInfo2(pool, pImageFormatInfo, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo)); |
| } |
| if (local_pImageFormatInfo) |
| { |
| transform_tohost_VkPhysicalDeviceImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_699; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_699, 1); |
| countingStream->write((uint64_t*)&cgen_var_699, 1 * 8); |
| marshal_VkPhysicalDeviceImageFormatInfo2(countingStream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo)); |
| marshal_VkImageFormatProperties2(countingStream, (VkImageFormatProperties2*)(pImageFormatProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceImageFormatProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceImageFormatProperties2 = OP_vkGetPhysicalDeviceImageFormatProperties2; |
| stream->write(&opcode_vkGetPhysicalDeviceImageFormatProperties2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceImageFormatProperties2, sizeof(uint32_t)); |
| uint64_t cgen_var_700; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_700, 1); |
| stream->write((uint64_t*)&cgen_var_700, 1 * 8); |
| marshal_VkPhysicalDeviceImageFormatInfo2(stream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo)); |
| marshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 readParams"); |
| unmarshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties)); |
| if (pImageFormatProperties) |
| { |
| transform_fromhost_VkImageFormatProperties2(mImpl->resources(), (VkImageFormatProperties2*)(pImageFormatProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceImageFormatProperties2_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceImageFormatProperties2");; |
| return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties2( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pQueueFamilyPropertyCount, |
| VkQueueFamilyProperties2* pQueueFamilyProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 encode"); |
| mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_701; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_701, 1); |
| countingStream->write((uint64_t*)&cgen_var_701, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_702 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount; |
| countingStream->putBe64(cgen_var_702); |
| if (pQueueFamilyPropertyCount) |
| { |
| countingStream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_703 = (uint64_t)(uintptr_t)pQueueFamilyProperties; |
| countingStream->putBe64(cgen_var_703); |
| if (pQueueFamilyProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| marshal_VkQueueFamilyProperties2(countingStream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceQueueFamilyProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceQueueFamilyProperties2 = OP_vkGetPhysicalDeviceQueueFamilyProperties2; |
| stream->write(&opcode_vkGetPhysicalDeviceQueueFamilyProperties2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceQueueFamilyProperties2, sizeof(uint32_t)); |
| uint64_t cgen_var_704; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_704, 1); |
| stream->write((uint64_t*)&cgen_var_704, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_705 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount; |
| stream->putBe64(cgen_var_705); |
| if (pQueueFamilyPropertyCount) |
| { |
| stream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_706 = (uint64_t)(uintptr_t)pQueueFamilyProperties; |
| stream->putBe64(cgen_var_706); |
| if (pQueueFamilyProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| marshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pQueueFamilyPropertyCount; |
| check_pQueueFamilyPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pQueueFamilyPropertyCount) |
| { |
| if (!(check_pQueueFamilyPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pQueueFamilyPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkQueueFamilyProperties2* check_pQueueFamilyProperties; |
| check_pQueueFamilyProperties = (VkQueueFamilyProperties2*)(uintptr_t)stream->getBe64(); |
| if (pQueueFamilyProperties) |
| { |
| if (!(check_pQueueFamilyProperties)) |
| { |
| fprintf(stderr, "fatal: pQueueFamilyProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| unmarshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i)); |
| } |
| } |
| if (pQueueFamilyProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| transform_fromhost_VkQueueFamilyProperties2(mImpl->resources(), (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties2");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceMemoryProperties2( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceMemoryProperties2* pMemoryProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 encode"); |
| mImpl->log("start vkGetPhysicalDeviceMemoryProperties2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_709; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_709, 1); |
| countingStream->write((uint64_t*)&cgen_var_709, 1 * 8); |
| marshal_VkPhysicalDeviceMemoryProperties2(countingStream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceMemoryProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceMemoryProperties2 = OP_vkGetPhysicalDeviceMemoryProperties2; |
| stream->write(&opcode_vkGetPhysicalDeviceMemoryProperties2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceMemoryProperties2, sizeof(uint32_t)); |
| uint64_t cgen_var_710; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_710, 1); |
| stream->write((uint64_t*)&cgen_var_710, 1 * 8); |
| marshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 readParams"); |
| unmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties)); |
| if (pMemoryProperties) |
| { |
| transform_fromhost_VkPhysicalDeviceMemoryProperties2(mImpl->resources(), (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 returnUnmarshal"); |
| encoderLock.unlock(); |
| mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties2(this, physicalDevice, pMemoryProperties); |
| encoderLock.lock(); |
| mImpl->log("finish vkGetPhysicalDeviceMemoryProperties2");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties2( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, |
| uint32_t* pPropertyCount, |
| VkSparseImageFormatProperties2* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 encode"); |
| mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceSparseImageFormatInfo2* local_pFormatInfo; |
| local_physicalDevice = physicalDevice; |
| local_pFormatInfo = nullptr; |
| if (pFormatInfo) |
| { |
| local_pFormatInfo = (VkPhysicalDeviceSparseImageFormatInfo2*)pool->alloc(sizeof(const VkPhysicalDeviceSparseImageFormatInfo2)); |
| deepcopy_VkPhysicalDeviceSparseImageFormatInfo2(pool, pFormatInfo, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo)); |
| } |
| if (local_pFormatInfo) |
| { |
| transform_tohost_VkPhysicalDeviceSparseImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_711; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_711, 1); |
| countingStream->write((uint64_t*)&cgen_var_711, 1 * 8); |
| marshal_VkPhysicalDeviceSparseImageFormatInfo2(countingStream, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_712 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_712); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_713 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_713); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkSparseImageFormatProperties2(countingStream, (VkSparseImageFormatProperties2*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceSparseImageFormatProperties2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceSparseImageFormatProperties2 = OP_vkGetPhysicalDeviceSparseImageFormatProperties2; |
| stream->write(&opcode_vkGetPhysicalDeviceSparseImageFormatProperties2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceSparseImageFormatProperties2, sizeof(uint32_t)); |
| uint64_t cgen_var_714; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_714, 1); |
| stream->write((uint64_t*)&cgen_var_714, 1 * 8); |
| marshal_VkPhysicalDeviceSparseImageFormatInfo2(stream, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_715 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_715); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_716 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_716); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkSparseImageFormatProperties2* check_pProperties; |
| check_pProperties = (VkSparseImageFormatProperties2*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkSparseImageFormatProperties2(mImpl->resources(), (VkSparseImageFormatProperties2*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties2");; |
| } |
| |
| void VkEncoder::vkTrimCommandPool( |
| VkDevice device, |
| VkCommandPool commandPool, |
| VkCommandPoolTrimFlags flags) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkTrimCommandPool encode"); |
| mImpl->log("start vkTrimCommandPool"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkCommandPool local_commandPool; |
| VkCommandPoolTrimFlags local_flags; |
| local_device = device; |
| local_commandPool = commandPool; |
| local_flags = flags; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_719; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_719, 1); |
| countingStream->write((uint64_t*)&cgen_var_719, 1 * 8); |
| uint64_t cgen_var_720; |
| countingStream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_720, 1); |
| countingStream->write((uint64_t*)&cgen_var_720, 1 * 8); |
| countingStream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags)); |
| } |
| uint32_t packetSize_vkTrimCommandPool = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkTrimCommandPool = OP_vkTrimCommandPool; |
| stream->write(&opcode_vkTrimCommandPool, sizeof(uint32_t)); |
| stream->write(&packetSize_vkTrimCommandPool, sizeof(uint32_t)); |
| uint64_t cgen_var_721; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_721, 1); |
| stream->write((uint64_t*)&cgen_var_721, 1 * 8); |
| uint64_t cgen_var_722; |
| stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_722, 1); |
| stream->write((uint64_t*)&cgen_var_722, 1 * 8); |
| stream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags)); |
| AEMU_SCOPED_TRACE("vkTrimCommandPool readParams"); |
| AEMU_SCOPED_TRACE("vkTrimCommandPool returnUnmarshal"); |
| mImpl->log("finish vkTrimCommandPool");; |
| } |
| |
| void VkEncoder::vkGetDeviceQueue2( |
| VkDevice device, |
| const VkDeviceQueueInfo2* pQueueInfo, |
| VkQueue* pQueue) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDeviceQueue2 encode"); |
| mImpl->log("start vkGetDeviceQueue2"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDeviceQueueInfo2* local_pQueueInfo; |
| local_device = device; |
| local_pQueueInfo = nullptr; |
| if (pQueueInfo) |
| { |
| local_pQueueInfo = (VkDeviceQueueInfo2*)pool->alloc(sizeof(const VkDeviceQueueInfo2)); |
| deepcopy_VkDeviceQueueInfo2(pool, pQueueInfo, (VkDeviceQueueInfo2*)(local_pQueueInfo)); |
| } |
| if (local_pQueueInfo) |
| { |
| transform_tohost_VkDeviceQueueInfo2(mImpl->resources(), (VkDeviceQueueInfo2*)(local_pQueueInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_723; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_723, 1); |
| countingStream->write((uint64_t*)&cgen_var_723, 1 * 8); |
| marshal_VkDeviceQueueInfo2(countingStream, (VkDeviceQueueInfo2*)(local_pQueueInfo)); |
| uint64_t cgen_var_724; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(pQueue, &cgen_var_724, 1); |
| countingStream->write((uint64_t*)&cgen_var_724, 8); |
| } |
| uint32_t packetSize_vkGetDeviceQueue2 = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDeviceQueue2 = OP_vkGetDeviceQueue2; |
| stream->write(&opcode_vkGetDeviceQueue2, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDeviceQueue2, sizeof(uint32_t)); |
| uint64_t cgen_var_725; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_725, 1); |
| stream->write((uint64_t*)&cgen_var_725, 1 * 8); |
| marshal_VkDeviceQueueInfo2(stream, (VkDeviceQueueInfo2*)(local_pQueueInfo)); |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_726; |
| stream->handleMapping()->mapHandles_VkQueue_u64(pQueue, &cgen_var_726, 1); |
| stream->write((uint64_t*)&cgen_var_726, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkGetDeviceQueue2 readParams"); |
| uint64_t cgen_var_727; |
| stream->read((uint64_t*)&cgen_var_727, 8); |
| stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_727, (VkQueue*)pQueue, 1); |
| AEMU_SCOPED_TRACE("vkGetDeviceQueue2 returnUnmarshal"); |
| mImpl->log("finish vkGetDeviceQueue2");; |
| } |
| |
| VkResult VkEncoder::vkCreateSamplerYcbcrConversion( |
| VkDevice device, |
| const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSamplerYcbcrConversion* pYcbcrConversion) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion encode"); |
| mImpl->log("start vkCreateSamplerYcbcrConversion"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSamplerYcbcrConversionCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkSamplerYcbcrConversionCreateInfo*)pool->alloc(sizeof(const VkSamplerYcbcrConversionCreateInfo)); |
| deepcopy_VkSamplerYcbcrConversionCreateInfo(pool, pCreateInfo, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkSamplerYcbcrConversionCreateInfo(mImpl->resources(), (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_728; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_728, 1); |
| countingStream->write((uint64_t*)&cgen_var_728, 1 * 8); |
| marshal_VkSamplerYcbcrConversionCreateInfo(countingStream, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_729 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_729); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_730; |
| countingStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(pYcbcrConversion, &cgen_var_730, 1); |
| countingStream->write((uint64_t*)&cgen_var_730, 8); |
| } |
| uint32_t packetSize_vkCreateSamplerYcbcrConversion = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateSamplerYcbcrConversion = OP_vkCreateSamplerYcbcrConversion; |
| stream->write(&opcode_vkCreateSamplerYcbcrConversion, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateSamplerYcbcrConversion, sizeof(uint32_t)); |
| uint64_t cgen_var_731; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_731, 1); |
| stream->write((uint64_t*)&cgen_var_731, 1 * 8); |
| marshal_VkSamplerYcbcrConversionCreateInfo(stream, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_732 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_732); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_733; |
| stream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(pYcbcrConversion, &cgen_var_733, 1); |
| stream->write((uint64_t*)&cgen_var_733, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_734; |
| stream->read((uint64_t*)&cgen_var_734, 8); |
| stream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_734, (VkSamplerYcbcrConversion*)pYcbcrConversion, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion returnUnmarshal"); |
| VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateSamplerYcbcrConversion_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateSamplerYcbcrConversion");; |
| return vkCreateSamplerYcbcrConversion_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroySamplerYcbcrConversion( |
| VkDevice device, |
| VkSamplerYcbcrConversion ycbcrConversion, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion encode"); |
| mImpl->log("start vkDestroySamplerYcbcrConversion"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSamplerYcbcrConversion local_ycbcrConversion; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_ycbcrConversion = ycbcrConversion; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_735; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_735, 1); |
| countingStream->write((uint64_t*)&cgen_var_735, 1 * 8); |
| uint64_t cgen_var_736; |
| countingStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&local_ycbcrConversion, &cgen_var_736, 1); |
| countingStream->write((uint64_t*)&cgen_var_736, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_737 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_737); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroySamplerYcbcrConversion = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroySamplerYcbcrConversion = OP_vkDestroySamplerYcbcrConversion; |
| stream->write(&opcode_vkDestroySamplerYcbcrConversion, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroySamplerYcbcrConversion, sizeof(uint32_t)); |
| uint64_t cgen_var_738; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_738, 1); |
| stream->write((uint64_t*)&cgen_var_738, 1 * 8); |
| uint64_t cgen_var_739; |
| stream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&local_ycbcrConversion, &cgen_var_739, 1); |
| stream->write((uint64_t*)&cgen_var_739, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_740 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_740); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion readParams"); |
| AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkSamplerYcbcrConversion((VkSamplerYcbcrConversion*)&ycbcrConversion); |
| mImpl->log("finish vkDestroySamplerYcbcrConversion");; |
| } |
| |
| VkResult VkEncoder::vkCreateDescriptorUpdateTemplate( |
| VkDevice device, |
| const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate encode"); |
| mImpl->log("start vkCreateDescriptorUpdateTemplate"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorUpdateTemplateCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDescriptorUpdateTemplateCreateInfo*)pool->alloc(sizeof(const VkDescriptorUpdateTemplateCreateInfo)); |
| deepcopy_VkDescriptorUpdateTemplateCreateInfo(pool, pCreateInfo, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDescriptorUpdateTemplateCreateInfo(mImpl->resources(), (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_741; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_741, 1); |
| countingStream->write((uint64_t*)&cgen_var_741, 1 * 8); |
| marshal_VkDescriptorUpdateTemplateCreateInfo(countingStream, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_742 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_742); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_743; |
| countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(pDescriptorUpdateTemplate, &cgen_var_743, 1); |
| countingStream->write((uint64_t*)&cgen_var_743, 8); |
| } |
| uint32_t packetSize_vkCreateDescriptorUpdateTemplate = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateDescriptorUpdateTemplate = OP_vkCreateDescriptorUpdateTemplate; |
| stream->write(&opcode_vkCreateDescriptorUpdateTemplate, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateDescriptorUpdateTemplate, sizeof(uint32_t)); |
| uint64_t cgen_var_744; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_744, 1); |
| stream->write((uint64_t*)&cgen_var_744, 1 * 8); |
| marshal_VkDescriptorUpdateTemplateCreateInfo(stream, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_745 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_745); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_746; |
| stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(pDescriptorUpdateTemplate, &cgen_var_746, 1); |
| stream->write((uint64_t*)&cgen_var_746, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_747; |
| stream->read((uint64_t*)&cgen_var_747, 8); |
| stream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(&cgen_var_747, (VkDescriptorUpdateTemplate*)pDescriptorUpdateTemplate, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate returnUnmarshal"); |
| VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateDescriptorUpdateTemplate_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| encoderLock.unlock(); |
| mImpl->resources()->on_vkCreateDescriptorUpdateTemplate(this, vkCreateDescriptorUpdateTemplate_VkResult_return, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); |
| encoderLock.lock(); |
| mImpl->log("finish vkCreateDescriptorUpdateTemplate");; |
| return vkCreateDescriptorUpdateTemplate_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyDescriptorUpdateTemplate( |
| VkDevice device, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate encode"); |
| mImpl->log("start vkDestroyDescriptorUpdateTemplate"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorUpdateTemplate local_descriptorUpdateTemplate; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_descriptorUpdateTemplate = descriptorUpdateTemplate; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_748; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_748, 1); |
| countingStream->write((uint64_t*)&cgen_var_748, 1 * 8); |
| uint64_t cgen_var_749; |
| countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_749, 1); |
| countingStream->write((uint64_t*)&cgen_var_749, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_750 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_750); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyDescriptorUpdateTemplate = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyDescriptorUpdateTemplate = OP_vkDestroyDescriptorUpdateTemplate; |
| stream->write(&opcode_vkDestroyDescriptorUpdateTemplate, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyDescriptorUpdateTemplate, sizeof(uint32_t)); |
| uint64_t cgen_var_751; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_751, 1); |
| stream->write((uint64_t*)&cgen_var_751, 1 * 8); |
| uint64_t cgen_var_752; |
| stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_752, 1); |
| stream->write((uint64_t*)&cgen_var_752, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_753 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_753); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkDescriptorUpdateTemplate((VkDescriptorUpdateTemplate*)&descriptorUpdateTemplate); |
| mImpl->log("finish vkDestroyDescriptorUpdateTemplate");; |
| } |
| |
| void VkEncoder::vkUpdateDescriptorSetWithTemplate( |
| VkDevice device, |
| VkDescriptorSet descriptorSet, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const void* pData) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate encode"); |
| mImpl->log("start vkUpdateDescriptorSetWithTemplate"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorSet local_descriptorSet; |
| VkDescriptorUpdateTemplate local_descriptorUpdateTemplate; |
| void* local_pData; |
| local_device = device; |
| local_descriptorSet = descriptorSet; |
| local_descriptorUpdateTemplate = descriptorUpdateTemplate; |
| local_pData = nullptr; |
| if (pData) |
| { |
| local_pData = (void*)pool->dupArray(pData, sizeof(const uint8_t)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_754; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_754, 1); |
| countingStream->write((uint64_t*)&cgen_var_754, 1 * 8); |
| uint64_t cgen_var_755; |
| countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_755, 1); |
| countingStream->write((uint64_t*)&cgen_var_755, 1 * 8); |
| uint64_t cgen_var_756; |
| countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_756, 1); |
| countingStream->write((uint64_t*)&cgen_var_756, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_757 = (uint64_t)(uintptr_t)local_pData; |
| countingStream->putBe64(cgen_var_757); |
| if (local_pData) |
| { |
| countingStream->write((void*)local_pData, sizeof(uint8_t)); |
| } |
| } |
| uint32_t packetSize_vkUpdateDescriptorSetWithTemplate = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkUpdateDescriptorSetWithTemplate = OP_vkUpdateDescriptorSetWithTemplate; |
| stream->write(&opcode_vkUpdateDescriptorSetWithTemplate, sizeof(uint32_t)); |
| stream->write(&packetSize_vkUpdateDescriptorSetWithTemplate, sizeof(uint32_t)); |
| uint64_t cgen_var_758; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_758, 1); |
| stream->write((uint64_t*)&cgen_var_758, 1 * 8); |
| uint64_t cgen_var_759; |
| stream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_759, 1); |
| stream->write((uint64_t*)&cgen_var_759, 1 * 8); |
| uint64_t cgen_var_760; |
| stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_760, 1); |
| stream->write((uint64_t*)&cgen_var_760, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_761 = (uint64_t)(uintptr_t)local_pData; |
| stream->putBe64(cgen_var_761); |
| if (local_pData) |
| { |
| stream->write((void*)local_pData, sizeof(uint8_t)); |
| } |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate readParams"); |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate returnUnmarshal"); |
| mImpl->log("finish vkUpdateDescriptorSetWithTemplate");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceExternalBufferProperties( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, |
| VkExternalBufferProperties* pExternalBufferProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties encode"); |
| mImpl->log("start vkGetPhysicalDeviceExternalBufferProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceExternalBufferInfo* local_pExternalBufferInfo; |
| local_physicalDevice = physicalDevice; |
| local_pExternalBufferInfo = nullptr; |
| if (pExternalBufferInfo) |
| { |
| local_pExternalBufferInfo = (VkPhysicalDeviceExternalBufferInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalBufferInfo)); |
| deepcopy_VkPhysicalDeviceExternalBufferInfo(pool, pExternalBufferInfo, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo)); |
| } |
| if (local_pExternalBufferInfo) |
| { |
| mImpl->resources()->transformImpl_VkPhysicalDeviceExternalBufferInfo_tohost(local_pExternalBufferInfo, 1); |
| transform_tohost_VkPhysicalDeviceExternalBufferInfo(mImpl->resources(), (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_762; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_762, 1); |
| countingStream->write((uint64_t*)&cgen_var_762, 1 * 8); |
| marshal_VkPhysicalDeviceExternalBufferInfo(countingStream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo)); |
| marshal_VkExternalBufferProperties(countingStream, (VkExternalBufferProperties*)(pExternalBufferProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceExternalBufferProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceExternalBufferProperties = OP_vkGetPhysicalDeviceExternalBufferProperties; |
| stream->write(&opcode_vkGetPhysicalDeviceExternalBufferProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceExternalBufferProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_763; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_763, 1); |
| stream->write((uint64_t*)&cgen_var_763, 1 * 8); |
| marshal_VkPhysicalDeviceExternalBufferInfo(stream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo)); |
| marshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties readParams"); |
| unmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties)); |
| if (pExternalBufferProperties) |
| { |
| mImpl->resources()->transformImpl_VkExternalBufferProperties_fromhost(pExternalBufferProperties, 1); |
| transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceExternalBufferProperties");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceExternalFenceProperties( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, |
| VkExternalFenceProperties* pExternalFenceProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties encode"); |
| mImpl->log("start vkGetPhysicalDeviceExternalFenceProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceExternalFenceInfo* local_pExternalFenceInfo; |
| local_physicalDevice = physicalDevice; |
| local_pExternalFenceInfo = nullptr; |
| if (pExternalFenceInfo) |
| { |
| local_pExternalFenceInfo = (VkPhysicalDeviceExternalFenceInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalFenceInfo)); |
| deepcopy_VkPhysicalDeviceExternalFenceInfo(pool, pExternalFenceInfo, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo)); |
| } |
| if (local_pExternalFenceInfo) |
| { |
| transform_tohost_VkPhysicalDeviceExternalFenceInfo(mImpl->resources(), (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_764; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_764, 1); |
| countingStream->write((uint64_t*)&cgen_var_764, 1 * 8); |
| marshal_VkPhysicalDeviceExternalFenceInfo(countingStream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo)); |
| marshal_VkExternalFenceProperties(countingStream, (VkExternalFenceProperties*)(pExternalFenceProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceExternalFenceProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceExternalFenceProperties = OP_vkGetPhysicalDeviceExternalFenceProperties; |
| stream->write(&opcode_vkGetPhysicalDeviceExternalFenceProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceExternalFenceProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_765; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_765, 1); |
| stream->write((uint64_t*)&cgen_var_765, 1 * 8); |
| marshal_VkPhysicalDeviceExternalFenceInfo(stream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo)); |
| marshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties readParams"); |
| unmarshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties)); |
| if (pExternalFenceProperties) |
| { |
| transform_fromhost_VkExternalFenceProperties(mImpl->resources(), (VkExternalFenceProperties*)(pExternalFenceProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceExternalFenceProperties");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceExternalSemaphoreProperties( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, |
| VkExternalSemaphoreProperties* pExternalSemaphoreProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties encode"); |
| mImpl->log("start vkGetPhysicalDeviceExternalSemaphoreProperties"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceExternalSemaphoreInfo* local_pExternalSemaphoreInfo; |
| local_physicalDevice = physicalDevice; |
| local_pExternalSemaphoreInfo = nullptr; |
| if (pExternalSemaphoreInfo) |
| { |
| local_pExternalSemaphoreInfo = (VkPhysicalDeviceExternalSemaphoreInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalSemaphoreInfo)); |
| deepcopy_VkPhysicalDeviceExternalSemaphoreInfo(pool, pExternalSemaphoreInfo, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo)); |
| } |
| if (local_pExternalSemaphoreInfo) |
| { |
| transform_tohost_VkPhysicalDeviceExternalSemaphoreInfo(mImpl->resources(), (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_766; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_766, 1); |
| countingStream->write((uint64_t*)&cgen_var_766, 1 * 8); |
| marshal_VkPhysicalDeviceExternalSemaphoreInfo(countingStream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo)); |
| marshal_VkExternalSemaphoreProperties(countingStream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceExternalSemaphoreProperties = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceExternalSemaphoreProperties = OP_vkGetPhysicalDeviceExternalSemaphoreProperties; |
| stream->write(&opcode_vkGetPhysicalDeviceExternalSemaphoreProperties, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceExternalSemaphoreProperties, sizeof(uint32_t)); |
| uint64_t cgen_var_767; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_767, 1); |
| stream->write((uint64_t*)&cgen_var_767, 1 * 8); |
| marshal_VkPhysicalDeviceExternalSemaphoreInfo(stream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo)); |
| marshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties readParams"); |
| unmarshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties)); |
| if (pExternalSemaphoreProperties) |
| { |
| transform_fromhost_VkExternalSemaphoreProperties(mImpl->resources(), (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceExternalSemaphoreProperties");; |
| } |
| |
| void VkEncoder::vkGetDescriptorSetLayoutSupport( |
| VkDevice device, |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, |
| VkDescriptorSetLayoutSupport* pSupport) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport encode"); |
| mImpl->log("start vkGetDescriptorSetLayoutSupport"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorSetLayoutCreateInfo* local_pCreateInfo; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDescriptorSetLayoutCreateInfo*)pool->alloc(sizeof(const VkDescriptorSetLayoutCreateInfo)); |
| deepcopy_VkDescriptorSetLayoutCreateInfo(pool, pCreateInfo, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_768; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_768, 1); |
| countingStream->write((uint64_t*)&cgen_var_768, 1 * 8); |
| marshal_VkDescriptorSetLayoutCreateInfo(countingStream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| marshal_VkDescriptorSetLayoutSupport(countingStream, (VkDescriptorSetLayoutSupport*)(pSupport)); |
| } |
| uint32_t packetSize_vkGetDescriptorSetLayoutSupport = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDescriptorSetLayoutSupport = OP_vkGetDescriptorSetLayoutSupport; |
| stream->write(&opcode_vkGetDescriptorSetLayoutSupport, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDescriptorSetLayoutSupport, sizeof(uint32_t)); |
| uint64_t cgen_var_769; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_769, 1); |
| stream->write((uint64_t*)&cgen_var_769, 1 * 8); |
| marshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| marshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport)); |
| AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport readParams"); |
| unmarshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport)); |
| if (pSupport) |
| { |
| transform_fromhost_VkDescriptorSetLayoutSupport(mImpl->resources(), (VkDescriptorSetLayoutSupport*)(pSupport)); |
| } |
| AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport returnUnmarshal"); |
| mImpl->log("finish vkGetDescriptorSetLayoutSupport");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_surface |
| void VkEncoder::vkDestroySurfaceKHR( |
| VkInstance instance, |
| VkSurfaceKHR surface, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroySurfaceKHR encode"); |
| mImpl->log("start vkDestroySurfaceKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkSurfaceKHR local_surface; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_surface = surface; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_770; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_770, 1); |
| countingStream->write((uint64_t*)&cgen_var_770, 1 * 8); |
| uint64_t cgen_var_771; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_771, 1); |
| countingStream->write((uint64_t*)&cgen_var_771, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_772 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_772); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroySurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroySurfaceKHR = OP_vkDestroySurfaceKHR; |
| stream->write(&opcode_vkDestroySurfaceKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroySurfaceKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_773; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_773, 1); |
| stream->write((uint64_t*)&cgen_var_773, 1 * 8); |
| uint64_t cgen_var_774; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_774, 1); |
| stream->write((uint64_t*)&cgen_var_774, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_775 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_775); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroySurfaceKHR readParams"); |
| AEMU_SCOPED_TRACE("vkDestroySurfaceKHR returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkSurfaceKHR((VkSurfaceKHR*)&surface); |
| mImpl->log("finish vkDestroySurfaceKHR");; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDeviceSurfaceSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| VkSurfaceKHR surface, |
| VkBool32* pSupported) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceSurfaceSupportKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| uint32_t local_queueFamilyIndex; |
| VkSurfaceKHR local_surface; |
| local_physicalDevice = physicalDevice; |
| local_queueFamilyIndex = queueFamilyIndex; |
| local_surface = surface; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_776; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_776, 1); |
| countingStream->write((uint64_t*)&cgen_var_776, 1 * 8); |
| countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| uint64_t cgen_var_777; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_777, 1); |
| countingStream->write((uint64_t*)&cgen_var_777, 1 * 8); |
| countingStream->write((VkBool32*)pSupported, sizeof(VkBool32)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceSurfaceSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceSurfaceSupportKHR = OP_vkGetPhysicalDeviceSurfaceSupportKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceSurfaceSupportKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceSurfaceSupportKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_778; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_778, 1); |
| stream->write((uint64_t*)&cgen_var_778, 1 * 8); |
| stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| uint64_t cgen_var_779; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_779, 1); |
| stream->write((uint64_t*)&cgen_var_779, 1 * 8); |
| stream->write((VkBool32*)pSupported, sizeof(VkBool32)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR readParams"); |
| stream->read((VkBool32*)pSupported, sizeof(VkBool32)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceSurfaceSupportKHR");; |
| return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( |
| VkPhysicalDevice physicalDevice, |
| VkSurfaceKHR surface, |
| VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilitiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkSurfaceKHR local_surface; |
| local_physicalDevice = physicalDevice; |
| local_surface = surface; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_780; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_780, 1); |
| countingStream->write((uint64_t*)&cgen_var_780, 1 * 8); |
| uint64_t cgen_var_781; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_781, 1); |
| countingStream->write((uint64_t*)&cgen_var_781, 1 * 8); |
| marshal_VkSurfaceCapabilitiesKHR(countingStream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceSurfaceCapabilitiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceSurfaceCapabilitiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_782; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_782, 1); |
| stream->write((uint64_t*)&cgen_var_782, 1 * 8); |
| uint64_t cgen_var_783; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_783, 1); |
| stream->write((uint64_t*)&cgen_var_783, 1 * 8); |
| marshal_VkSurfaceCapabilitiesKHR(stream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR readParams"); |
| unmarshal_VkSurfaceCapabilitiesKHR(stream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities)); |
| if (pSurfaceCapabilities) |
| { |
| transform_fromhost_VkSurfaceCapabilitiesKHR(mImpl->resources(), (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceSurfaceCapabilitiesKHR");; |
| return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDeviceSurfaceFormatsKHR( |
| VkPhysicalDevice physicalDevice, |
| VkSurfaceKHR surface, |
| uint32_t* pSurfaceFormatCount, |
| VkSurfaceFormatKHR* pSurfaceFormats) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceSurfaceFormatsKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkSurfaceKHR local_surface; |
| local_physicalDevice = physicalDevice; |
| local_surface = surface; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_784; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_784, 1); |
| countingStream->write((uint64_t*)&cgen_var_784, 1 * 8); |
| uint64_t cgen_var_785; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_785, 1); |
| countingStream->write((uint64_t*)&cgen_var_785, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_786 = (uint64_t)(uintptr_t)pSurfaceFormatCount; |
| countingStream->putBe64(cgen_var_786); |
| if (pSurfaceFormatCount) |
| { |
| countingStream->write((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_787 = (uint64_t)(uintptr_t)pSurfaceFormats; |
| countingStream->putBe64(cgen_var_787); |
| if (pSurfaceFormats) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i) |
| { |
| marshal_VkSurfaceFormatKHR(countingStream, (VkSurfaceFormatKHR*)(pSurfaceFormats + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceSurfaceFormatsKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceSurfaceFormatsKHR = OP_vkGetPhysicalDeviceSurfaceFormatsKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceSurfaceFormatsKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceSurfaceFormatsKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_788; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_788, 1); |
| stream->write((uint64_t*)&cgen_var_788, 1 * 8); |
| uint64_t cgen_var_789; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_789, 1); |
| stream->write((uint64_t*)&cgen_var_789, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_790 = (uint64_t)(uintptr_t)pSurfaceFormatCount; |
| stream->putBe64(cgen_var_790); |
| if (pSurfaceFormatCount) |
| { |
| stream->write((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_791 = (uint64_t)(uintptr_t)pSurfaceFormats; |
| stream->putBe64(cgen_var_791); |
| if (pSurfaceFormats) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i) |
| { |
| marshal_VkSurfaceFormatKHR(stream, (VkSurfaceFormatKHR*)(pSurfaceFormats + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pSurfaceFormatCount; |
| check_pSurfaceFormatCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pSurfaceFormatCount) |
| { |
| if (!(check_pSurfaceFormatCount)) |
| { |
| fprintf(stderr, "fatal: pSurfaceFormatCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkSurfaceFormatKHR* check_pSurfaceFormats; |
| check_pSurfaceFormats = (VkSurfaceFormatKHR*)(uintptr_t)stream->getBe64(); |
| if (pSurfaceFormats) |
| { |
| if (!(check_pSurfaceFormats)) |
| { |
| fprintf(stderr, "fatal: pSurfaceFormats inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i) |
| { |
| unmarshal_VkSurfaceFormatKHR(stream, (VkSurfaceFormatKHR*)(pSurfaceFormats + i)); |
| } |
| } |
| if (pSurfaceFormats) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i) |
| { |
| transform_fromhost_VkSurfaceFormatKHR(mImpl->resources(), (VkSurfaceFormatKHR*)(pSurfaceFormats + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceSurfaceFormatsKHR");; |
| return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDeviceSurfacePresentModesKHR( |
| VkPhysicalDevice physicalDevice, |
| VkSurfaceKHR surface, |
| uint32_t* pPresentModeCount, |
| VkPresentModeKHR* pPresentModes) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceSurfacePresentModesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkSurfaceKHR local_surface; |
| local_physicalDevice = physicalDevice; |
| local_surface = surface; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_794; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_794, 1); |
| countingStream->write((uint64_t*)&cgen_var_794, 1 * 8); |
| uint64_t cgen_var_795; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_795, 1); |
| countingStream->write((uint64_t*)&cgen_var_795, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_796 = (uint64_t)(uintptr_t)pPresentModeCount; |
| countingStream->putBe64(cgen_var_796); |
| if (pPresentModeCount) |
| { |
| countingStream->write((uint32_t*)pPresentModeCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_797 = (uint64_t)(uintptr_t)pPresentModes; |
| countingStream->putBe64(cgen_var_797); |
| if (pPresentModes) |
| { |
| countingStream->write((VkPresentModeKHR*)pPresentModes, (*(pPresentModeCount)) * sizeof(VkPresentModeKHR)); |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceSurfacePresentModesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceSurfacePresentModesKHR = OP_vkGetPhysicalDeviceSurfacePresentModesKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceSurfacePresentModesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceSurfacePresentModesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_798; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_798, 1); |
| stream->write((uint64_t*)&cgen_var_798, 1 * 8); |
| uint64_t cgen_var_799; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_799, 1); |
| stream->write((uint64_t*)&cgen_var_799, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_800 = (uint64_t)(uintptr_t)pPresentModeCount; |
| stream->putBe64(cgen_var_800); |
| if (pPresentModeCount) |
| { |
| stream->write((uint32_t*)pPresentModeCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_801 = (uint64_t)(uintptr_t)pPresentModes; |
| stream->putBe64(cgen_var_801); |
| if (pPresentModes) |
| { |
| stream->write((VkPresentModeKHR*)pPresentModes, (*(pPresentModeCount)) * sizeof(VkPresentModeKHR)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPresentModeCount; |
| check_pPresentModeCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPresentModeCount) |
| { |
| if (!(check_pPresentModeCount)) |
| { |
| fprintf(stderr, "fatal: pPresentModeCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPresentModeCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkPresentModeKHR* check_pPresentModes; |
| check_pPresentModes = (VkPresentModeKHR*)(uintptr_t)stream->getBe64(); |
| if (pPresentModes) |
| { |
| if (!(check_pPresentModes)) |
| { |
| fprintf(stderr, "fatal: pPresentModes inconsistent between guest and host\n"); |
| } |
| stream->read((VkPresentModeKHR*)pPresentModes, (*(pPresentModeCount)) * sizeof(VkPresentModeKHR)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceSurfacePresentModesKHR");; |
| return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_swapchain |
| VkResult VkEncoder::vkCreateSwapchainKHR( |
| VkDevice device, |
| const VkSwapchainCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSwapchainKHR* pSwapchain) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateSwapchainKHR encode"); |
| mImpl->log("start vkCreateSwapchainKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSwapchainCreateInfoKHR* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkSwapchainCreateInfoKHR*)pool->alloc(sizeof(const VkSwapchainCreateInfoKHR)); |
| deepcopy_VkSwapchainCreateInfoKHR(pool, pCreateInfo, (VkSwapchainCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkSwapchainCreateInfoKHR(mImpl->resources(), (VkSwapchainCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_804; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_804, 1); |
| countingStream->write((uint64_t*)&cgen_var_804, 1 * 8); |
| marshal_VkSwapchainCreateInfoKHR(countingStream, (VkSwapchainCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_805 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_805); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_806; |
| countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(pSwapchain, &cgen_var_806, 1); |
| countingStream->write((uint64_t*)&cgen_var_806, 8); |
| } |
| uint32_t packetSize_vkCreateSwapchainKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateSwapchainKHR = OP_vkCreateSwapchainKHR; |
| stream->write(&opcode_vkCreateSwapchainKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateSwapchainKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_807; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_807, 1); |
| stream->write((uint64_t*)&cgen_var_807, 1 * 8); |
| marshal_VkSwapchainCreateInfoKHR(stream, (VkSwapchainCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_808 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_808); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_809; |
| stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(pSwapchain, &cgen_var_809, 1); |
| stream->write((uint64_t*)&cgen_var_809, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateSwapchainKHR readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_810; |
| stream->read((uint64_t*)&cgen_var_810, 8); |
| stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_810, (VkSwapchainKHR*)pSwapchain, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateSwapchainKHR returnUnmarshal"); |
| VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateSwapchainKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateSwapchainKHR");; |
| return vkCreateSwapchainKHR_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroySwapchainKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroySwapchainKHR encode"); |
| mImpl->log("start vkDestroySwapchainKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSwapchainKHR local_swapchain; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_swapchain = swapchain; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_811; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_811, 1); |
| countingStream->write((uint64_t*)&cgen_var_811, 1 * 8); |
| uint64_t cgen_var_812; |
| countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_812, 1); |
| countingStream->write((uint64_t*)&cgen_var_812, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_813 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_813); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroySwapchainKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroySwapchainKHR = OP_vkDestroySwapchainKHR; |
| stream->write(&opcode_vkDestroySwapchainKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroySwapchainKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_814; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_814, 1); |
| stream->write((uint64_t*)&cgen_var_814, 1 * 8); |
| uint64_t cgen_var_815; |
| stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_815, 1); |
| stream->write((uint64_t*)&cgen_var_815, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_816 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_816); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroySwapchainKHR readParams"); |
| AEMU_SCOPED_TRACE("vkDestroySwapchainKHR returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkSwapchainKHR((VkSwapchainKHR*)&swapchain); |
| mImpl->log("finish vkDestroySwapchainKHR");; |
| } |
| |
| VkResult VkEncoder::vkGetSwapchainImagesKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint32_t* pSwapchainImageCount, |
| VkImage* pSwapchainImages) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR encode"); |
| mImpl->log("start vkGetSwapchainImagesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSwapchainKHR local_swapchain; |
| local_device = device; |
| local_swapchain = swapchain; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_817; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_817, 1); |
| countingStream->write((uint64_t*)&cgen_var_817, 1 * 8); |
| uint64_t cgen_var_818; |
| countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_818, 1); |
| countingStream->write((uint64_t*)&cgen_var_818, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_819 = (uint64_t)(uintptr_t)pSwapchainImageCount; |
| countingStream->putBe64(cgen_var_819); |
| if (pSwapchainImageCount) |
| { |
| countingStream->write((uint32_t*)pSwapchainImageCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_820 = (uint64_t)(uintptr_t)pSwapchainImages; |
| countingStream->putBe64(cgen_var_820); |
| if (pSwapchainImages) |
| { |
| if ((*(pSwapchainImageCount))) |
| { |
| uint64_t* cgen_var_821; |
| countingStream->alloc((void**)&cgen_var_821, (*(pSwapchainImageCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkImage_u64(pSwapchainImages, cgen_var_821, (*(pSwapchainImageCount))); |
| countingStream->write((uint64_t*)cgen_var_821, (*(pSwapchainImageCount)) * 8); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetSwapchainImagesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetSwapchainImagesKHR = OP_vkGetSwapchainImagesKHR; |
| stream->write(&opcode_vkGetSwapchainImagesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetSwapchainImagesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_822; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_822, 1); |
| stream->write((uint64_t*)&cgen_var_822, 1 * 8); |
| uint64_t cgen_var_823; |
| stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_823, 1); |
| stream->write((uint64_t*)&cgen_var_823, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_824 = (uint64_t)(uintptr_t)pSwapchainImageCount; |
| stream->putBe64(cgen_var_824); |
| if (pSwapchainImageCount) |
| { |
| stream->write((uint32_t*)pSwapchainImageCount, sizeof(uint32_t)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| // WARNING PTR CHECK |
| uint64_t cgen_var_825 = (uint64_t)(uintptr_t)pSwapchainImages; |
| stream->putBe64(cgen_var_825); |
| if (pSwapchainImages) |
| { |
| if ((*(pSwapchainImageCount))) |
| { |
| uint64_t* cgen_var_826; |
| stream->alloc((void**)&cgen_var_826, (*(pSwapchainImageCount)) * 8); |
| stream->handleMapping()->mapHandles_VkImage_u64(pSwapchainImages, cgen_var_826, (*(pSwapchainImageCount))); |
| stream->write((uint64_t*)cgen_var_826, (*(pSwapchainImageCount)) * 8); |
| } |
| } |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pSwapchainImageCount; |
| check_pSwapchainImageCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pSwapchainImageCount) |
| { |
| if (!(check_pSwapchainImageCount)) |
| { |
| fprintf(stderr, "fatal: pSwapchainImageCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pSwapchainImageCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkImage* check_pSwapchainImages; |
| check_pSwapchainImages = (VkImage*)(uintptr_t)stream->getBe64(); |
| if (pSwapchainImages) |
| { |
| if (!(check_pSwapchainImages)) |
| { |
| fprintf(stderr, "fatal: pSwapchainImages inconsistent between guest and host\n"); |
| } |
| if ((*(pSwapchainImageCount))) |
| { |
| uint64_t* cgen_var_829; |
| stream->alloc((void**)&cgen_var_829, (*(pSwapchainImageCount)) * 8); |
| stream->read((uint64_t*)cgen_var_829, (*(pSwapchainImageCount)) * 8); |
| stream->handleMapping()->mapHandles_u64_VkImage(cgen_var_829, (VkImage*)pSwapchainImages, (*(pSwapchainImageCount))); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR returnUnmarshal"); |
| VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetSwapchainImagesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetSwapchainImagesKHR");; |
| return vkGetSwapchainImagesKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkAcquireNextImageKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint64_t timeout, |
| VkSemaphore semaphore, |
| VkFence fence, |
| uint32_t* pImageIndex) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkAcquireNextImageKHR encode"); |
| mImpl->log("start vkAcquireNextImageKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSwapchainKHR local_swapchain; |
| uint64_t local_timeout; |
| VkSemaphore local_semaphore; |
| VkFence local_fence; |
| local_device = device; |
| local_swapchain = swapchain; |
| local_timeout = timeout; |
| local_semaphore = semaphore; |
| local_fence = fence; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_830; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_830, 1); |
| countingStream->write((uint64_t*)&cgen_var_830, 1 * 8); |
| uint64_t cgen_var_831; |
| countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_831, 1); |
| countingStream->write((uint64_t*)&cgen_var_831, 1 * 8); |
| countingStream->write((uint64_t*)&local_timeout, sizeof(uint64_t)); |
| uint64_t cgen_var_832; |
| countingStream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_832, 1); |
| countingStream->write((uint64_t*)&cgen_var_832, 1 * 8); |
| uint64_t cgen_var_833; |
| countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_833, 1); |
| countingStream->write((uint64_t*)&cgen_var_833, 1 * 8); |
| countingStream->write((uint32_t*)pImageIndex, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkAcquireNextImageKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkAcquireNextImageKHR = OP_vkAcquireNextImageKHR; |
| stream->write(&opcode_vkAcquireNextImageKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkAcquireNextImageKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_834; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_834, 1); |
| stream->write((uint64_t*)&cgen_var_834, 1 * 8); |
| uint64_t cgen_var_835; |
| stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_835, 1); |
| stream->write((uint64_t*)&cgen_var_835, 1 * 8); |
| stream->write((uint64_t*)&local_timeout, sizeof(uint64_t)); |
| uint64_t cgen_var_836; |
| stream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_836, 1); |
| stream->write((uint64_t*)&cgen_var_836, 1 * 8); |
| uint64_t cgen_var_837; |
| stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_837, 1); |
| stream->write((uint64_t*)&cgen_var_837, 1 * 8); |
| stream->write((uint32_t*)pImageIndex, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkAcquireNextImageKHR readParams"); |
| stream->read((uint32_t*)pImageIndex, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkAcquireNextImageKHR returnUnmarshal"); |
| VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkAcquireNextImageKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkAcquireNextImageKHR");; |
| return vkAcquireNextImageKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkQueuePresentKHR( |
| VkQueue queue, |
| const VkPresentInfoKHR* pPresentInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkQueuePresentKHR encode"); |
| mImpl->log("start vkQueuePresentKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkQueue local_queue; |
| VkPresentInfoKHR* local_pPresentInfo; |
| local_queue = queue; |
| local_pPresentInfo = nullptr; |
| if (pPresentInfo) |
| { |
| local_pPresentInfo = (VkPresentInfoKHR*)pool->alloc(sizeof(const VkPresentInfoKHR)); |
| deepcopy_VkPresentInfoKHR(pool, pPresentInfo, (VkPresentInfoKHR*)(local_pPresentInfo)); |
| } |
| if (local_pPresentInfo) |
| { |
| transform_tohost_VkPresentInfoKHR(mImpl->resources(), (VkPresentInfoKHR*)(local_pPresentInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_838; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_838, 1); |
| countingStream->write((uint64_t*)&cgen_var_838, 1 * 8); |
| marshal_VkPresentInfoKHR(countingStream, (VkPresentInfoKHR*)(local_pPresentInfo)); |
| } |
| uint32_t packetSize_vkQueuePresentKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkQueuePresentKHR = OP_vkQueuePresentKHR; |
| stream->write(&opcode_vkQueuePresentKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkQueuePresentKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_839; |
| stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_839, 1); |
| stream->write((uint64_t*)&cgen_var_839, 1 * 8); |
| marshal_VkPresentInfoKHR(stream, (VkPresentInfoKHR*)(local_pPresentInfo)); |
| AEMU_SCOPED_TRACE("vkQueuePresentKHR readParams"); |
| AEMU_SCOPED_TRACE("vkQueuePresentKHR returnUnmarshal"); |
| VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkQueuePresentKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkQueuePresentKHR");; |
| return vkQueuePresentKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetDeviceGroupPresentCapabilitiesKHR( |
| VkDevice device, |
| VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR encode"); |
| mImpl->log("start vkGetDeviceGroupPresentCapabilitiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| local_device = device; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_840; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_840, 1); |
| countingStream->write((uint64_t*)&cgen_var_840, 1 * 8); |
| marshal_VkDeviceGroupPresentCapabilitiesKHR(countingStream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities)); |
| } |
| uint32_t packetSize_vkGetDeviceGroupPresentCapabilitiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDeviceGroupPresentCapabilitiesKHR = OP_vkGetDeviceGroupPresentCapabilitiesKHR; |
| stream->write(&opcode_vkGetDeviceGroupPresentCapabilitiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDeviceGroupPresentCapabilitiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_841; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_841, 1); |
| stream->write((uint64_t*)&cgen_var_841, 1 * 8); |
| marshal_VkDeviceGroupPresentCapabilitiesKHR(stream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities)); |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR readParams"); |
| unmarshal_VkDeviceGroupPresentCapabilitiesKHR(stream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities)); |
| if (pDeviceGroupPresentCapabilities) |
| { |
| transform_fromhost_VkDeviceGroupPresentCapabilitiesKHR(mImpl->resources(), (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities)); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR returnUnmarshal"); |
| VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetDeviceGroupPresentCapabilitiesKHR");; |
| return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetDeviceGroupSurfacePresentModesKHR( |
| VkDevice device, |
| VkSurfaceKHR surface, |
| VkDeviceGroupPresentModeFlagsKHR* pModes) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR encode"); |
| mImpl->log("start vkGetDeviceGroupSurfacePresentModesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSurfaceKHR local_surface; |
| local_device = device; |
| local_surface = surface; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_842; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_842, 1); |
| countingStream->write((uint64_t*)&cgen_var_842, 1 * 8); |
| uint64_t cgen_var_843; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_843, 1); |
| countingStream->write((uint64_t*)&cgen_var_843, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_844 = (uint64_t)(uintptr_t)pModes; |
| countingStream->putBe64(cgen_var_844); |
| if (pModes) |
| { |
| countingStream->write((VkDeviceGroupPresentModeFlagsKHR*)pModes, sizeof(VkDeviceGroupPresentModeFlagsKHR)); |
| } |
| } |
| uint32_t packetSize_vkGetDeviceGroupSurfacePresentModesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDeviceGroupSurfacePresentModesKHR = OP_vkGetDeviceGroupSurfacePresentModesKHR; |
| stream->write(&opcode_vkGetDeviceGroupSurfacePresentModesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDeviceGroupSurfacePresentModesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_845; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_845, 1); |
| stream->write((uint64_t*)&cgen_var_845, 1 * 8); |
| uint64_t cgen_var_846; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_846, 1); |
| stream->write((uint64_t*)&cgen_var_846, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_847 = (uint64_t)(uintptr_t)pModes; |
| stream->putBe64(cgen_var_847); |
| if (pModes) |
| { |
| stream->write((VkDeviceGroupPresentModeFlagsKHR*)pModes, sizeof(VkDeviceGroupPresentModeFlagsKHR)); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR readParams"); |
| // WARNING PTR CHECK |
| VkDeviceGroupPresentModeFlagsKHR* check_pModes; |
| check_pModes = (VkDeviceGroupPresentModeFlagsKHR*)(uintptr_t)stream->getBe64(); |
| if (pModes) |
| { |
| if (!(check_pModes)) |
| { |
| fprintf(stderr, "fatal: pModes inconsistent between guest and host\n"); |
| } |
| stream->read((VkDeviceGroupPresentModeFlagsKHR*)pModes, sizeof(VkDeviceGroupPresentModeFlagsKHR)); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR returnUnmarshal"); |
| VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetDeviceGroupSurfacePresentModesKHR");; |
| return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDevicePresentRectanglesKHR( |
| VkPhysicalDevice physicalDevice, |
| VkSurfaceKHR surface, |
| uint32_t* pRectCount, |
| VkRect2D* pRects) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR encode"); |
| mImpl->log("start vkGetPhysicalDevicePresentRectanglesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkSurfaceKHR local_surface; |
| local_physicalDevice = physicalDevice; |
| local_surface = surface; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_849; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_849, 1); |
| countingStream->write((uint64_t*)&cgen_var_849, 1 * 8); |
| uint64_t cgen_var_850; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_850, 1); |
| countingStream->write((uint64_t*)&cgen_var_850, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_851 = (uint64_t)(uintptr_t)pRectCount; |
| countingStream->putBe64(cgen_var_851); |
| if (pRectCount) |
| { |
| countingStream->write((uint32_t*)pRectCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_852 = (uint64_t)(uintptr_t)pRects; |
| countingStream->putBe64(cgen_var_852); |
| if (pRects) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i) |
| { |
| marshal_VkRect2D(countingStream, (VkRect2D*)(pRects + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDevicePresentRectanglesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDevicePresentRectanglesKHR = OP_vkGetPhysicalDevicePresentRectanglesKHR; |
| stream->write(&opcode_vkGetPhysicalDevicePresentRectanglesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDevicePresentRectanglesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_853; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_853, 1); |
| stream->write((uint64_t*)&cgen_var_853, 1 * 8); |
| uint64_t cgen_var_854; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_854, 1); |
| stream->write((uint64_t*)&cgen_var_854, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_855 = (uint64_t)(uintptr_t)pRectCount; |
| stream->putBe64(cgen_var_855); |
| if (pRectCount) |
| { |
| stream->write((uint32_t*)pRectCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_856 = (uint64_t)(uintptr_t)pRects; |
| stream->putBe64(cgen_var_856); |
| if (pRects) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i) |
| { |
| marshal_VkRect2D(stream, (VkRect2D*)(pRects + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pRectCount; |
| check_pRectCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pRectCount) |
| { |
| if (!(check_pRectCount)) |
| { |
| fprintf(stderr, "fatal: pRectCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pRectCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkRect2D* check_pRects; |
| check_pRects = (VkRect2D*)(uintptr_t)stream->getBe64(); |
| if (pRects) |
| { |
| if (!(check_pRects)) |
| { |
| fprintf(stderr, "fatal: pRects inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i) |
| { |
| unmarshal_VkRect2D(stream, (VkRect2D*)(pRects + i)); |
| } |
| } |
| if (pRects) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i) |
| { |
| transform_fromhost_VkRect2D(mImpl->resources(), (VkRect2D*)(pRects + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR returnUnmarshal"); |
| VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDevicePresentRectanglesKHR");; |
| return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkAcquireNextImage2KHR( |
| VkDevice device, |
| const VkAcquireNextImageInfoKHR* pAcquireInfo, |
| uint32_t* pImageIndex) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR encode"); |
| mImpl->log("start vkAcquireNextImage2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkAcquireNextImageInfoKHR* local_pAcquireInfo; |
| local_device = device; |
| local_pAcquireInfo = nullptr; |
| if (pAcquireInfo) |
| { |
| local_pAcquireInfo = (VkAcquireNextImageInfoKHR*)pool->alloc(sizeof(const VkAcquireNextImageInfoKHR)); |
| deepcopy_VkAcquireNextImageInfoKHR(pool, pAcquireInfo, (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo)); |
| } |
| if (local_pAcquireInfo) |
| { |
| transform_tohost_VkAcquireNextImageInfoKHR(mImpl->resources(), (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_859; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_859, 1); |
| countingStream->write((uint64_t*)&cgen_var_859, 1 * 8); |
| marshal_VkAcquireNextImageInfoKHR(countingStream, (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo)); |
| countingStream->write((uint32_t*)pImageIndex, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkAcquireNextImage2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkAcquireNextImage2KHR = OP_vkAcquireNextImage2KHR; |
| stream->write(&opcode_vkAcquireNextImage2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkAcquireNextImage2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_860; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_860, 1); |
| stream->write((uint64_t*)&cgen_var_860, 1 * 8); |
| marshal_VkAcquireNextImageInfoKHR(stream, (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo)); |
| stream->write((uint32_t*)pImageIndex, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR readParams"); |
| stream->read((uint32_t*)pImageIndex, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR returnUnmarshal"); |
| VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkAcquireNextImage2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkAcquireNextImage2KHR");; |
| return vkAcquireNextImage2KHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_display |
| VkResult VkEncoder::vkGetPhysicalDeviceDisplayPropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkDisplayPropertiesKHR* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceDisplayPropertiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_861; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_861, 1); |
| countingStream->write((uint64_t*)&cgen_var_861, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_862 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_862); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_863 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_863); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayPropertiesKHR(countingStream, (VkDisplayPropertiesKHR*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceDisplayPropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceDisplayPropertiesKHR = OP_vkGetPhysicalDeviceDisplayPropertiesKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceDisplayPropertiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceDisplayPropertiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_864; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_864, 1); |
| stream->write((uint64_t*)&cgen_var_864, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_865 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_865); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_866 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_866); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayPropertiesKHR(stream, (VkDisplayPropertiesKHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkDisplayPropertiesKHR* check_pProperties; |
| check_pProperties = (VkDisplayPropertiesKHR*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkDisplayPropertiesKHR(stream, (VkDisplayPropertiesKHR*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkDisplayPropertiesKHR(mImpl->resources(), (VkDisplayPropertiesKHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceDisplayPropertiesKHR");; |
| return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkDisplayPlanePropertiesKHR* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceDisplayPlanePropertiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_869; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_869, 1); |
| countingStream->write((uint64_t*)&cgen_var_869, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_870 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_870); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_871 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_871); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayPlanePropertiesKHR(countingStream, (VkDisplayPlanePropertiesKHR*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = OP_vkGetPhysicalDeviceDisplayPlanePropertiesKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceDisplayPlanePropertiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceDisplayPlanePropertiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_872; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_872, 1); |
| stream->write((uint64_t*)&cgen_var_872, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_873 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_873); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_874 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_874); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayPlanePropertiesKHR(stream, (VkDisplayPlanePropertiesKHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkDisplayPlanePropertiesKHR* check_pProperties; |
| check_pProperties = (VkDisplayPlanePropertiesKHR*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkDisplayPlanePropertiesKHR(stream, (VkDisplayPlanePropertiesKHR*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkDisplayPlanePropertiesKHR(mImpl->resources(), (VkDisplayPlanePropertiesKHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceDisplayPlanePropertiesKHR");; |
| return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetDisplayPlaneSupportedDisplaysKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t planeIndex, |
| uint32_t* pDisplayCount, |
| VkDisplayKHR* pDisplays) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR encode"); |
| mImpl->log("start vkGetDisplayPlaneSupportedDisplaysKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| uint32_t local_planeIndex; |
| local_physicalDevice = physicalDevice; |
| local_planeIndex = planeIndex; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_877; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_877, 1); |
| countingStream->write((uint64_t*)&cgen_var_877, 1 * 8); |
| countingStream->write((uint32_t*)&local_planeIndex, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_878 = (uint64_t)(uintptr_t)pDisplayCount; |
| countingStream->putBe64(cgen_var_878); |
| if (pDisplayCount) |
| { |
| countingStream->write((uint32_t*)pDisplayCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_879 = (uint64_t)(uintptr_t)pDisplays; |
| countingStream->putBe64(cgen_var_879); |
| if (pDisplays) |
| { |
| if ((*(pDisplayCount))) |
| { |
| uint64_t* cgen_var_880; |
| countingStream->alloc((void**)&cgen_var_880, (*(pDisplayCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplays, cgen_var_880, (*(pDisplayCount))); |
| countingStream->write((uint64_t*)cgen_var_880, (*(pDisplayCount)) * 8); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetDisplayPlaneSupportedDisplaysKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDisplayPlaneSupportedDisplaysKHR = OP_vkGetDisplayPlaneSupportedDisplaysKHR; |
| stream->write(&opcode_vkGetDisplayPlaneSupportedDisplaysKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDisplayPlaneSupportedDisplaysKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_881; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_881, 1); |
| stream->write((uint64_t*)&cgen_var_881, 1 * 8); |
| stream->write((uint32_t*)&local_planeIndex, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_882 = (uint64_t)(uintptr_t)pDisplayCount; |
| stream->putBe64(cgen_var_882); |
| if (pDisplayCount) |
| { |
| stream->write((uint32_t*)pDisplayCount, sizeof(uint32_t)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| // WARNING PTR CHECK |
| uint64_t cgen_var_883 = (uint64_t)(uintptr_t)pDisplays; |
| stream->putBe64(cgen_var_883); |
| if (pDisplays) |
| { |
| if ((*(pDisplayCount))) |
| { |
| uint64_t* cgen_var_884; |
| stream->alloc((void**)&cgen_var_884, (*(pDisplayCount)) * 8); |
| stream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplays, cgen_var_884, (*(pDisplayCount))); |
| stream->write((uint64_t*)cgen_var_884, (*(pDisplayCount)) * 8); |
| } |
| } |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pDisplayCount; |
| check_pDisplayCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pDisplayCount) |
| { |
| if (!(check_pDisplayCount)) |
| { |
| fprintf(stderr, "fatal: pDisplayCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pDisplayCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkDisplayKHR* check_pDisplays; |
| check_pDisplays = (VkDisplayKHR*)(uintptr_t)stream->getBe64(); |
| if (pDisplays) |
| { |
| if (!(check_pDisplays)) |
| { |
| fprintf(stderr, "fatal: pDisplays inconsistent between guest and host\n"); |
| } |
| if ((*(pDisplayCount))) |
| { |
| uint64_t* cgen_var_887; |
| stream->alloc((void**)&cgen_var_887, (*(pDisplayCount)) * 8); |
| stream->read((uint64_t*)cgen_var_887, (*(pDisplayCount)) * 8); |
| stream->handleMapping()->mapHandles_u64_VkDisplayKHR(cgen_var_887, (VkDisplayKHR*)pDisplays, (*(pDisplayCount))); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR returnUnmarshal"); |
| VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetDisplayPlaneSupportedDisplaysKHR");; |
| return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetDisplayModePropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayKHR display, |
| uint32_t* pPropertyCount, |
| VkDisplayModePropertiesKHR* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR encode"); |
| mImpl->log("start vkGetDisplayModePropertiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkDisplayKHR local_display; |
| local_physicalDevice = physicalDevice; |
| local_display = display; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_888; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_888, 1); |
| countingStream->write((uint64_t*)&cgen_var_888, 1 * 8); |
| uint64_t cgen_var_889; |
| countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_889, 1); |
| countingStream->write((uint64_t*)&cgen_var_889, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_890 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_890); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_891 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_891); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayModePropertiesKHR(countingStream, (VkDisplayModePropertiesKHR*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetDisplayModePropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDisplayModePropertiesKHR = OP_vkGetDisplayModePropertiesKHR; |
| stream->write(&opcode_vkGetDisplayModePropertiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDisplayModePropertiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_892; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_892, 1); |
| stream->write((uint64_t*)&cgen_var_892, 1 * 8); |
| uint64_t cgen_var_893; |
| stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_893, 1); |
| stream->write((uint64_t*)&cgen_var_893, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_894 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_894); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_895 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_895); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayModePropertiesKHR(stream, (VkDisplayModePropertiesKHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkDisplayModePropertiesKHR* check_pProperties; |
| check_pProperties = (VkDisplayModePropertiesKHR*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkDisplayModePropertiesKHR(stream, (VkDisplayModePropertiesKHR*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkDisplayModePropertiesKHR(mImpl->resources(), (VkDisplayModePropertiesKHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR returnUnmarshal"); |
| VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetDisplayModePropertiesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetDisplayModePropertiesKHR");; |
| return vkGetDisplayModePropertiesKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkCreateDisplayModeKHR( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayKHR display, |
| const VkDisplayModeCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDisplayModeKHR* pMode) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR encode"); |
| mImpl->log("start vkCreateDisplayModeKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkDisplayKHR local_display; |
| VkDisplayModeCreateInfoKHR* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_physicalDevice = physicalDevice; |
| local_display = display; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDisplayModeCreateInfoKHR*)pool->alloc(sizeof(const VkDisplayModeCreateInfoKHR)); |
| deepcopy_VkDisplayModeCreateInfoKHR(pool, pCreateInfo, (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDisplayModeCreateInfoKHR(mImpl->resources(), (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_898; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_898, 1); |
| countingStream->write((uint64_t*)&cgen_var_898, 1 * 8); |
| uint64_t cgen_var_899; |
| countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_899, 1); |
| countingStream->write((uint64_t*)&cgen_var_899, 1 * 8); |
| marshal_VkDisplayModeCreateInfoKHR(countingStream, (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_900 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_900); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_901; |
| countingStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(pMode, &cgen_var_901, 1); |
| countingStream->write((uint64_t*)&cgen_var_901, 8); |
| } |
| uint32_t packetSize_vkCreateDisplayModeKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateDisplayModeKHR = OP_vkCreateDisplayModeKHR; |
| stream->write(&opcode_vkCreateDisplayModeKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateDisplayModeKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_902; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_902, 1); |
| stream->write((uint64_t*)&cgen_var_902, 1 * 8); |
| uint64_t cgen_var_903; |
| stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_903, 1); |
| stream->write((uint64_t*)&cgen_var_903, 1 * 8); |
| marshal_VkDisplayModeCreateInfoKHR(stream, (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_904 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_904); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_905; |
| stream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(pMode, &cgen_var_905, 1); |
| stream->write((uint64_t*)&cgen_var_905, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_906; |
| stream->read((uint64_t*)&cgen_var_906, 8); |
| stream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_906, (VkDisplayModeKHR*)pMode, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR returnUnmarshal"); |
| VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateDisplayModeKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateDisplayModeKHR");; |
| return vkCreateDisplayModeKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetDisplayPlaneCapabilitiesKHR( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayModeKHR mode, |
| uint32_t planeIndex, |
| VkDisplayPlaneCapabilitiesKHR* pCapabilities) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR encode"); |
| mImpl->log("start vkGetDisplayPlaneCapabilitiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkDisplayModeKHR local_mode; |
| uint32_t local_planeIndex; |
| local_physicalDevice = physicalDevice; |
| local_mode = mode; |
| local_planeIndex = planeIndex; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_907; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_907, 1); |
| countingStream->write((uint64_t*)&cgen_var_907, 1 * 8); |
| uint64_t cgen_var_908; |
| countingStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&local_mode, &cgen_var_908, 1); |
| countingStream->write((uint64_t*)&cgen_var_908, 1 * 8); |
| countingStream->write((uint32_t*)&local_planeIndex, sizeof(uint32_t)); |
| marshal_VkDisplayPlaneCapabilitiesKHR(countingStream, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities)); |
| } |
| uint32_t packetSize_vkGetDisplayPlaneCapabilitiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDisplayPlaneCapabilitiesKHR = OP_vkGetDisplayPlaneCapabilitiesKHR; |
| stream->write(&opcode_vkGetDisplayPlaneCapabilitiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDisplayPlaneCapabilitiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_909; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_909, 1); |
| stream->write((uint64_t*)&cgen_var_909, 1 * 8); |
| uint64_t cgen_var_910; |
| stream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&local_mode, &cgen_var_910, 1); |
| stream->write((uint64_t*)&cgen_var_910, 1 * 8); |
| stream->write((uint32_t*)&local_planeIndex, sizeof(uint32_t)); |
| marshal_VkDisplayPlaneCapabilitiesKHR(stream, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities)); |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR readParams"); |
| unmarshal_VkDisplayPlaneCapabilitiesKHR(stream, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities)); |
| if (pCapabilities) |
| { |
| transform_fromhost_VkDisplayPlaneCapabilitiesKHR(mImpl->resources(), (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities)); |
| } |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR returnUnmarshal"); |
| VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetDisplayPlaneCapabilitiesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetDisplayPlaneCapabilitiesKHR");; |
| return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkCreateDisplayPlaneSurfaceKHR( |
| VkInstance instance, |
| const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR encode"); |
| mImpl->log("start vkCreateDisplayPlaneSurfaceKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkDisplaySurfaceCreateInfoKHR* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDisplaySurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkDisplaySurfaceCreateInfoKHR)); |
| deepcopy_VkDisplaySurfaceCreateInfoKHR(pool, pCreateInfo, (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDisplaySurfaceCreateInfoKHR(mImpl->resources(), (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_911; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_911, 1); |
| countingStream->write((uint64_t*)&cgen_var_911, 1 * 8); |
| marshal_VkDisplaySurfaceCreateInfoKHR(countingStream, (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_912 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_912); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_913; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_913, 1); |
| countingStream->write((uint64_t*)&cgen_var_913, 8); |
| } |
| uint32_t packetSize_vkCreateDisplayPlaneSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateDisplayPlaneSurfaceKHR = OP_vkCreateDisplayPlaneSurfaceKHR; |
| stream->write(&opcode_vkCreateDisplayPlaneSurfaceKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateDisplayPlaneSurfaceKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_914; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_914, 1); |
| stream->write((uint64_t*)&cgen_var_914, 1 * 8); |
| marshal_VkDisplaySurfaceCreateInfoKHR(stream, (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_915 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_915); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_916; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_916, 1); |
| stream->write((uint64_t*)&cgen_var_916, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR readParams"); |
| uint64_t cgen_var_917; |
| stream->read((uint64_t*)&cgen_var_917, 8); |
| stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_917, (VkSurfaceKHR*)pSurface, 1); |
| AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR returnUnmarshal"); |
| VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateDisplayPlaneSurfaceKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateDisplayPlaneSurfaceKHR");; |
| return vkCreateDisplayPlaneSurfaceKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_display_swapchain |
| VkResult VkEncoder::vkCreateSharedSwapchainsKHR( |
| VkDevice device, |
| uint32_t swapchainCount, |
| const VkSwapchainCreateInfoKHR* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkSwapchainKHR* pSwapchains) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR encode"); |
| mImpl->log("start vkCreateSharedSwapchainsKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_swapchainCount; |
| VkSwapchainCreateInfoKHR* local_pCreateInfos; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_swapchainCount = swapchainCount; |
| local_pCreateInfos = nullptr; |
| if (pCreateInfos) |
| { |
| local_pCreateInfos = (VkSwapchainCreateInfoKHR*)pool->alloc(((swapchainCount)) * sizeof(const VkSwapchainCreateInfoKHR)); |
| for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i) |
| { |
| deepcopy_VkSwapchainCreateInfoKHR(pool, pCreateInfos + i, (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i)); |
| } |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i) |
| { |
| transform_tohost_VkSwapchainCreateInfoKHR(mImpl->resources(), (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i)); |
| } |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_918; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_918, 1); |
| countingStream->write((uint64_t*)&cgen_var_918, 1 * 8); |
| countingStream->write((uint32_t*)&local_swapchainCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i) |
| { |
| marshal_VkSwapchainCreateInfoKHR(countingStream, (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_919 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_919); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| if (((swapchainCount))) |
| { |
| uint64_t* cgen_var_920; |
| countingStream->alloc((void**)&cgen_var_920, ((swapchainCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(pSwapchains, cgen_var_920, ((swapchainCount))); |
| countingStream->write((uint64_t*)cgen_var_920, ((swapchainCount)) * 8); |
| } |
| } |
| uint32_t packetSize_vkCreateSharedSwapchainsKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateSharedSwapchainsKHR = OP_vkCreateSharedSwapchainsKHR; |
| stream->write(&opcode_vkCreateSharedSwapchainsKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateSharedSwapchainsKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_921; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_921, 1); |
| stream->write((uint64_t*)&cgen_var_921, 1 * 8); |
| stream->write((uint32_t*)&local_swapchainCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i) |
| { |
| marshal_VkSwapchainCreateInfoKHR(stream, (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_922 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_922); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| if (((swapchainCount))) |
| { |
| uint64_t* cgen_var_923; |
| stream->alloc((void**)&cgen_var_923, ((swapchainCount)) * 8); |
| stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(pSwapchains, cgen_var_923, ((swapchainCount))); |
| stream->write((uint64_t*)cgen_var_923, ((swapchainCount)) * 8); |
| } |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR readParams"); |
| if (((swapchainCount))) |
| { |
| uint64_t* cgen_var_924; |
| stream->alloc((void**)&cgen_var_924, ((swapchainCount)) * 8); |
| stream->read((uint64_t*)cgen_var_924, ((swapchainCount)) * 8); |
| stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(cgen_var_924, (VkSwapchainKHR*)pSwapchains, ((swapchainCount))); |
| } |
| AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR returnUnmarshal"); |
| VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateSharedSwapchainsKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateSharedSwapchainsKHR");; |
| return vkCreateSharedSwapchainsKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_xlib_surface |
| VkResult VkEncoder::vkCreateXlibSurfaceKHR( |
| VkInstance instance, |
| const VkXlibSurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR encode"); |
| mImpl->log("start vkCreateXlibSurfaceKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkXlibSurfaceCreateInfoKHR* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkXlibSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkXlibSurfaceCreateInfoKHR)); |
| deepcopy_VkXlibSurfaceCreateInfoKHR(pool, pCreateInfo, (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkXlibSurfaceCreateInfoKHR(mImpl->resources(), (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_925; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_925, 1); |
| countingStream->write((uint64_t*)&cgen_var_925, 1 * 8); |
| marshal_VkXlibSurfaceCreateInfoKHR(countingStream, (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_926 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_926); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_927; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_927, 1); |
| countingStream->write((uint64_t*)&cgen_var_927, 8); |
| } |
| uint32_t packetSize_vkCreateXlibSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateXlibSurfaceKHR = OP_vkCreateXlibSurfaceKHR; |
| stream->write(&opcode_vkCreateXlibSurfaceKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateXlibSurfaceKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_928; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_928, 1); |
| stream->write((uint64_t*)&cgen_var_928, 1 * 8); |
| marshal_VkXlibSurfaceCreateInfoKHR(stream, (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_929 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_929); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_930; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_930, 1); |
| stream->write((uint64_t*)&cgen_var_930, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR readParams"); |
| uint64_t cgen_var_931; |
| stream->read((uint64_t*)&cgen_var_931, 8); |
| stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_931, (VkSurfaceKHR*)pSurface, 1); |
| AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR returnUnmarshal"); |
| VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateXlibSurfaceKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateXlibSurfaceKHR");; |
| return vkCreateXlibSurfaceKHR_VkResult_return; |
| } |
| |
| VkBool32 VkEncoder::vkGetPhysicalDeviceXlibPresentationSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| Display* dpy, |
| VisualID visualID) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceXlibPresentationSupportKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| uint32_t local_queueFamilyIndex; |
| VisualID local_visualID; |
| local_physicalDevice = physicalDevice; |
| local_queueFamilyIndex = queueFamilyIndex; |
| local_visualID = visualID; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_932; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_932, 1); |
| countingStream->write((uint64_t*)&cgen_var_932, 1 * 8); |
| countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| countingStream->write((Display*)dpy, sizeof(Display)); |
| countingStream->write((VisualID*)&local_visualID, sizeof(VisualID)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceXlibPresentationSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceXlibPresentationSupportKHR = OP_vkGetPhysicalDeviceXlibPresentationSupportKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceXlibPresentationSupportKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceXlibPresentationSupportKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_933; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_933, 1); |
| stream->write((uint64_t*)&cgen_var_933, 1 * 8); |
| stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| stream->write((Display*)dpy, sizeof(Display)); |
| stream->write((VisualID*)&local_visualID, sizeof(VisualID)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR readParams"); |
| stream->read((Display*)dpy, sizeof(Display)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR returnUnmarshal"); |
| VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0; |
| stream->read(&vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return, sizeof(VkBool32)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceXlibPresentationSupportKHR");; |
| return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_xcb_surface |
| VkResult VkEncoder::vkCreateXcbSurfaceKHR( |
| VkInstance instance, |
| const VkXcbSurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR encode"); |
| mImpl->log("start vkCreateXcbSurfaceKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkXcbSurfaceCreateInfoKHR* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkXcbSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkXcbSurfaceCreateInfoKHR)); |
| deepcopy_VkXcbSurfaceCreateInfoKHR(pool, pCreateInfo, (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkXcbSurfaceCreateInfoKHR(mImpl->resources(), (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_934; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_934, 1); |
| countingStream->write((uint64_t*)&cgen_var_934, 1 * 8); |
| marshal_VkXcbSurfaceCreateInfoKHR(countingStream, (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_935 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_935); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_936; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_936, 1); |
| countingStream->write((uint64_t*)&cgen_var_936, 8); |
| } |
| uint32_t packetSize_vkCreateXcbSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateXcbSurfaceKHR = OP_vkCreateXcbSurfaceKHR; |
| stream->write(&opcode_vkCreateXcbSurfaceKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateXcbSurfaceKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_937; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_937, 1); |
| stream->write((uint64_t*)&cgen_var_937, 1 * 8); |
| marshal_VkXcbSurfaceCreateInfoKHR(stream, (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_938 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_938); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_939; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_939, 1); |
| stream->write((uint64_t*)&cgen_var_939, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR readParams"); |
| uint64_t cgen_var_940; |
| stream->read((uint64_t*)&cgen_var_940, 8); |
| stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_940, (VkSurfaceKHR*)pSurface, 1); |
| AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR returnUnmarshal"); |
| VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateXcbSurfaceKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateXcbSurfaceKHR");; |
| return vkCreateXcbSurfaceKHR_VkResult_return; |
| } |
| |
| VkBool32 VkEncoder::vkGetPhysicalDeviceXcbPresentationSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| xcb_connection_t* connection, |
| xcb_visualid_t visual_id) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceXcbPresentationSupportKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| uint32_t local_queueFamilyIndex; |
| xcb_visualid_t local_visual_id; |
| local_physicalDevice = physicalDevice; |
| local_queueFamilyIndex = queueFamilyIndex; |
| local_visual_id = visual_id; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_941; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_941, 1); |
| countingStream->write((uint64_t*)&cgen_var_941, 1 * 8); |
| countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| countingStream->write((xcb_connection_t*)connection, sizeof(xcb_connection_t)); |
| countingStream->write((xcb_visualid_t*)&local_visual_id, sizeof(xcb_visualid_t)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceXcbPresentationSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceXcbPresentationSupportKHR = OP_vkGetPhysicalDeviceXcbPresentationSupportKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceXcbPresentationSupportKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceXcbPresentationSupportKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_942; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_942, 1); |
| stream->write((uint64_t*)&cgen_var_942, 1 * 8); |
| stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| stream->write((xcb_connection_t*)connection, sizeof(xcb_connection_t)); |
| stream->write((xcb_visualid_t*)&local_visual_id, sizeof(xcb_visualid_t)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR readParams"); |
| stream->read((xcb_connection_t*)connection, sizeof(xcb_connection_t)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR returnUnmarshal"); |
| VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0; |
| stream->read(&vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return, sizeof(VkBool32)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceXcbPresentationSupportKHR");; |
| return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_wayland_surface |
| VkResult VkEncoder::vkCreateWaylandSurfaceKHR( |
| VkInstance instance, |
| const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR encode"); |
| mImpl->log("start vkCreateWaylandSurfaceKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkWaylandSurfaceCreateInfoKHR* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkWaylandSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkWaylandSurfaceCreateInfoKHR)); |
| deepcopy_VkWaylandSurfaceCreateInfoKHR(pool, pCreateInfo, (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkWaylandSurfaceCreateInfoKHR(mImpl->resources(), (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_943; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_943, 1); |
| countingStream->write((uint64_t*)&cgen_var_943, 1 * 8); |
| marshal_VkWaylandSurfaceCreateInfoKHR(countingStream, (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_944 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_944); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_945; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_945, 1); |
| countingStream->write((uint64_t*)&cgen_var_945, 8); |
| } |
| uint32_t packetSize_vkCreateWaylandSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateWaylandSurfaceKHR = OP_vkCreateWaylandSurfaceKHR; |
| stream->write(&opcode_vkCreateWaylandSurfaceKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateWaylandSurfaceKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_946; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_946, 1); |
| stream->write((uint64_t*)&cgen_var_946, 1 * 8); |
| marshal_VkWaylandSurfaceCreateInfoKHR(stream, (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_947 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_947); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_948; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_948, 1); |
| stream->write((uint64_t*)&cgen_var_948, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR readParams"); |
| uint64_t cgen_var_949; |
| stream->read((uint64_t*)&cgen_var_949, 8); |
| stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_949, (VkSurfaceKHR*)pSurface, 1); |
| AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR returnUnmarshal"); |
| VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateWaylandSurfaceKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateWaylandSurfaceKHR");; |
| return vkCreateWaylandSurfaceKHR_VkResult_return; |
| } |
| |
| VkBool32 VkEncoder::vkGetPhysicalDeviceWaylandPresentationSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| wl_display* display) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceWaylandPresentationSupportKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| uint32_t local_queueFamilyIndex; |
| local_physicalDevice = physicalDevice; |
| local_queueFamilyIndex = queueFamilyIndex; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_950; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_950, 1); |
| countingStream->write((uint64_t*)&cgen_var_950, 1 * 8); |
| countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| countingStream->write((wl_display*)display, sizeof(wl_display)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceWaylandPresentationSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceWaylandPresentationSupportKHR = OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceWaylandPresentationSupportKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceWaylandPresentationSupportKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_951; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_951, 1); |
| stream->write((uint64_t*)&cgen_var_951, 1 * 8); |
| stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| stream->write((wl_display*)display, sizeof(wl_display)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR readParams"); |
| stream->read((wl_display*)display, sizeof(wl_display)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR returnUnmarshal"); |
| VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0; |
| stream->read(&vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return, sizeof(VkBool32)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceWaylandPresentationSupportKHR");; |
| return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_mir_surface |
| VkResult VkEncoder::vkCreateMirSurfaceKHR( |
| VkInstance instance, |
| const VkMirSurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR encode"); |
| mImpl->log("start vkCreateMirSurfaceKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkMirSurfaceCreateInfoKHR* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkMirSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkMirSurfaceCreateInfoKHR)); |
| deepcopy_VkMirSurfaceCreateInfoKHR(pool, pCreateInfo, (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkMirSurfaceCreateInfoKHR(mImpl->resources(), (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_952; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_952, 1); |
| countingStream->write((uint64_t*)&cgen_var_952, 1 * 8); |
| marshal_VkMirSurfaceCreateInfoKHR(countingStream, (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_953 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_953); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_954; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_954, 1); |
| countingStream->write((uint64_t*)&cgen_var_954, 8); |
| } |
| uint32_t packetSize_vkCreateMirSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateMirSurfaceKHR = OP_vkCreateMirSurfaceKHR; |
| stream->write(&opcode_vkCreateMirSurfaceKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateMirSurfaceKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_955; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_955, 1); |
| stream->write((uint64_t*)&cgen_var_955, 1 * 8); |
| marshal_VkMirSurfaceCreateInfoKHR(stream, (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_956 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_956); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_957; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_957, 1); |
| stream->write((uint64_t*)&cgen_var_957, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR readParams"); |
| uint64_t cgen_var_958; |
| stream->read((uint64_t*)&cgen_var_958, 8); |
| stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_958, (VkSurfaceKHR*)pSurface, 1); |
| AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR returnUnmarshal"); |
| VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateMirSurfaceKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateMirSurfaceKHR");; |
| return vkCreateMirSurfaceKHR_VkResult_return; |
| } |
| |
| VkBool32 VkEncoder::vkGetPhysicalDeviceMirPresentationSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| MirConnection* connection) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceMirPresentationSupportKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| uint32_t local_queueFamilyIndex; |
| local_physicalDevice = physicalDevice; |
| local_queueFamilyIndex = queueFamilyIndex; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_959; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_959, 1); |
| countingStream->write((uint64_t*)&cgen_var_959, 1 * 8); |
| countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| countingStream->write((MirConnection*)connection, sizeof(MirConnection)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceMirPresentationSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceMirPresentationSupportKHR = OP_vkGetPhysicalDeviceMirPresentationSupportKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceMirPresentationSupportKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceMirPresentationSupportKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_960; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_960, 1); |
| stream->write((uint64_t*)&cgen_var_960, 1 * 8); |
| stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| stream->write((MirConnection*)connection, sizeof(MirConnection)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR readParams"); |
| stream->read((MirConnection*)connection, sizeof(MirConnection)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR returnUnmarshal"); |
| VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0; |
| stream->read(&vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return, sizeof(VkBool32)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceMirPresentationSupportKHR");; |
| return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_android_surface |
| VkResult VkEncoder::vkCreateAndroidSurfaceKHR( |
| VkInstance instance, |
| const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR encode"); |
| mImpl->log("start vkCreateAndroidSurfaceKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkAndroidSurfaceCreateInfoKHR* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkAndroidSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkAndroidSurfaceCreateInfoKHR)); |
| deepcopy_VkAndroidSurfaceCreateInfoKHR(pool, pCreateInfo, (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkAndroidSurfaceCreateInfoKHR(mImpl->resources(), (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_961; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_961, 1); |
| countingStream->write((uint64_t*)&cgen_var_961, 1 * 8); |
| marshal_VkAndroidSurfaceCreateInfoKHR(countingStream, (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_962 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_962); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_963; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_963, 1); |
| countingStream->write((uint64_t*)&cgen_var_963, 8); |
| } |
| uint32_t packetSize_vkCreateAndroidSurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateAndroidSurfaceKHR = OP_vkCreateAndroidSurfaceKHR; |
| stream->write(&opcode_vkCreateAndroidSurfaceKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateAndroidSurfaceKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_964; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_964, 1); |
| stream->write((uint64_t*)&cgen_var_964, 1 * 8); |
| marshal_VkAndroidSurfaceCreateInfoKHR(stream, (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_965 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_965); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_966; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_966, 1); |
| stream->write((uint64_t*)&cgen_var_966, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR readParams"); |
| uint64_t cgen_var_967; |
| stream->read((uint64_t*)&cgen_var_967, 8); |
| stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_967, (VkSurfaceKHR*)pSurface, 1); |
| AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR returnUnmarshal"); |
| VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateAndroidSurfaceKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateAndroidSurfaceKHR");; |
| return vkCreateAndroidSurfaceKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_win32_surface |
| VkResult VkEncoder::vkCreateWin32SurfaceKHR( |
| VkInstance instance, |
| const VkWin32SurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR encode"); |
| mImpl->log("start vkCreateWin32SurfaceKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkWin32SurfaceCreateInfoKHR* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkWin32SurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkWin32SurfaceCreateInfoKHR)); |
| deepcopy_VkWin32SurfaceCreateInfoKHR(pool, pCreateInfo, (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkWin32SurfaceCreateInfoKHR(mImpl->resources(), (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_968; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_968, 1); |
| countingStream->write((uint64_t*)&cgen_var_968, 1 * 8); |
| marshal_VkWin32SurfaceCreateInfoKHR(countingStream, (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_969 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_969); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_970; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_970, 1); |
| countingStream->write((uint64_t*)&cgen_var_970, 8); |
| } |
| uint32_t packetSize_vkCreateWin32SurfaceKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateWin32SurfaceKHR = OP_vkCreateWin32SurfaceKHR; |
| stream->write(&opcode_vkCreateWin32SurfaceKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateWin32SurfaceKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_971; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_971, 1); |
| stream->write((uint64_t*)&cgen_var_971, 1 * 8); |
| marshal_VkWin32SurfaceCreateInfoKHR(stream, (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_972 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_972); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_973; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_973, 1); |
| stream->write((uint64_t*)&cgen_var_973, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR readParams"); |
| uint64_t cgen_var_974; |
| stream->read((uint64_t*)&cgen_var_974, 8); |
| stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_974, (VkSurfaceKHR*)pSurface, 1); |
| AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR returnUnmarshal"); |
| VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateWin32SurfaceKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateWin32SurfaceKHR");; |
| return vkCreateWin32SurfaceKHR_VkResult_return; |
| } |
| |
| VkBool32 VkEncoder::vkGetPhysicalDeviceWin32PresentationSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceWin32PresentationSupportKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| uint32_t local_queueFamilyIndex; |
| local_physicalDevice = physicalDevice; |
| local_queueFamilyIndex = queueFamilyIndex; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_975; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_975, 1); |
| countingStream->write((uint64_t*)&cgen_var_975, 1 * 8); |
| countingStream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceWin32PresentationSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceWin32PresentationSupportKHR = OP_vkGetPhysicalDeviceWin32PresentationSupportKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceWin32PresentationSupportKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceWin32PresentationSupportKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_976; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_976, 1); |
| stream->write((uint64_t*)&cgen_var_976, 1 * 8); |
| stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR readParams"); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR returnUnmarshal"); |
| VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0; |
| stream->read(&vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return, sizeof(VkBool32)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceWin32PresentationSupportKHR");; |
| return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_sampler_mirror_clamp_to_edge |
| #endif |
| #ifdef VK_KHR_multiview |
| #endif |
| #ifdef VK_KHR_get_physical_device_properties2 |
| void VkEncoder::vkGetPhysicalDeviceFeatures2KHR( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceFeatures2* pFeatures) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceFeatures2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_977; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_977, 1); |
| countingStream->write((uint64_t*)&cgen_var_977, 1 * 8); |
| marshal_VkPhysicalDeviceFeatures2(countingStream, (VkPhysicalDeviceFeatures2*)(pFeatures)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceFeatures2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceFeatures2KHR = OP_vkGetPhysicalDeviceFeatures2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceFeatures2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceFeatures2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_978; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_978, 1); |
| stream->write((uint64_t*)&cgen_var_978, 1 * 8); |
| marshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR readParams"); |
| unmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures)); |
| if (pFeatures) |
| { |
| transform_fromhost_VkPhysicalDeviceFeatures2(mImpl->resources(), (VkPhysicalDeviceFeatures2*)(pFeatures)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceFeatures2KHR");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceProperties2* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceProperties2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_979; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_979, 1); |
| countingStream->write((uint64_t*)&cgen_var_979, 1 * 8); |
| marshal_VkPhysicalDeviceProperties2(countingStream, (VkPhysicalDeviceProperties2*)(pProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceProperties2KHR = OP_vkGetPhysicalDeviceProperties2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceProperties2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceProperties2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_980; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_980, 1); |
| stream->write((uint64_t*)&cgen_var_980, 1 * 8); |
| marshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR readParams"); |
| unmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties)); |
| if (pProperties) |
| { |
| transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceProperties2KHR");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceFormatProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkFormatProperties2* pFormatProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceFormatProperties2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkFormat local_format; |
| local_physicalDevice = physicalDevice; |
| local_format = format; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_981; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_981, 1); |
| countingStream->write((uint64_t*)&cgen_var_981, 1 * 8); |
| countingStream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| marshal_VkFormatProperties2(countingStream, (VkFormatProperties2*)(pFormatProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceFormatProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceFormatProperties2KHR = OP_vkGetPhysicalDeviceFormatProperties2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceFormatProperties2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceFormatProperties2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_982; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_982, 1); |
| stream->write((uint64_t*)&cgen_var_982, 1 * 8); |
| stream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| marshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR readParams"); |
| unmarshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties)); |
| if (pFormatProperties) |
| { |
| transform_fromhost_VkFormatProperties2(mImpl->resources(), (VkFormatProperties2*)(pFormatProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceFormatProperties2KHR");; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, |
| VkImageFormatProperties2* pImageFormatProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceImageFormatProperties2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceImageFormatInfo2* local_pImageFormatInfo; |
| local_physicalDevice = physicalDevice; |
| local_pImageFormatInfo = nullptr; |
| if (pImageFormatInfo) |
| { |
| local_pImageFormatInfo = (VkPhysicalDeviceImageFormatInfo2*)pool->alloc(sizeof(const VkPhysicalDeviceImageFormatInfo2)); |
| deepcopy_VkPhysicalDeviceImageFormatInfo2(pool, pImageFormatInfo, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo)); |
| } |
| if (local_pImageFormatInfo) |
| { |
| transform_tohost_VkPhysicalDeviceImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_983; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_983, 1); |
| countingStream->write((uint64_t*)&cgen_var_983, 1 * 8); |
| marshal_VkPhysicalDeviceImageFormatInfo2(countingStream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo)); |
| marshal_VkImageFormatProperties2(countingStream, (VkImageFormatProperties2*)(pImageFormatProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceImageFormatProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceImageFormatProperties2KHR = OP_vkGetPhysicalDeviceImageFormatProperties2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceImageFormatProperties2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceImageFormatProperties2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_984; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_984, 1); |
| stream->write((uint64_t*)&cgen_var_984, 1 * 8); |
| marshal_VkPhysicalDeviceImageFormatInfo2(stream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo)); |
| marshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR readParams"); |
| unmarshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties)); |
| if (pImageFormatProperties) |
| { |
| transform_fromhost_VkImageFormatProperties2(mImpl->resources(), (VkImageFormatProperties2*)(pImageFormatProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceImageFormatProperties2KHR");; |
| return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pQueueFamilyPropertyCount, |
| VkQueueFamilyProperties2* pQueueFamilyProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_985; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_985, 1); |
| countingStream->write((uint64_t*)&cgen_var_985, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_986 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount; |
| countingStream->putBe64(cgen_var_986); |
| if (pQueueFamilyPropertyCount) |
| { |
| countingStream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_987 = (uint64_t)(uintptr_t)pQueueFamilyProperties; |
| countingStream->putBe64(cgen_var_987); |
| if (pQueueFamilyProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| marshal_VkQueueFamilyProperties2(countingStream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceQueueFamilyProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceQueueFamilyProperties2KHR = OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceQueueFamilyProperties2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceQueueFamilyProperties2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_988; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_988, 1); |
| stream->write((uint64_t*)&cgen_var_988, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_989 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount; |
| stream->putBe64(cgen_var_989); |
| if (pQueueFamilyPropertyCount) |
| { |
| stream->write((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_990 = (uint64_t)(uintptr_t)pQueueFamilyProperties; |
| stream->putBe64(cgen_var_990); |
| if (pQueueFamilyProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| marshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pQueueFamilyPropertyCount; |
| check_pQueueFamilyPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pQueueFamilyPropertyCount) |
| { |
| if (!(check_pQueueFamilyPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pQueueFamilyPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pQueueFamilyPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkQueueFamilyProperties2* check_pQueueFamilyProperties; |
| check_pQueueFamilyProperties = (VkQueueFamilyProperties2*)(uintptr_t)stream->getBe64(); |
| if (pQueueFamilyProperties) |
| { |
| if (!(check_pQueueFamilyProperties)) |
| { |
| fprintf(stderr, "fatal: pQueueFamilyProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| unmarshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i)); |
| } |
| } |
| if (pQueueFamilyProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i) |
| { |
| transform_fromhost_VkQueueFamilyProperties2(mImpl->resources(), (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties2KHR");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceMemoryProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceMemoryProperties2* pMemoryProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceMemoryProperties2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_993; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_993, 1); |
| countingStream->write((uint64_t*)&cgen_var_993, 1 * 8); |
| marshal_VkPhysicalDeviceMemoryProperties2(countingStream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceMemoryProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceMemoryProperties2KHR = OP_vkGetPhysicalDeviceMemoryProperties2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceMemoryProperties2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceMemoryProperties2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_994; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_994, 1); |
| stream->write((uint64_t*)&cgen_var_994, 1 * 8); |
| marshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR readParams"); |
| unmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties)); |
| if (pMemoryProperties) |
| { |
| transform_fromhost_VkPhysicalDeviceMemoryProperties2(mImpl->resources(), (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR returnUnmarshal"); |
| encoderLock.unlock(); |
| mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties2KHR(this, physicalDevice, pMemoryProperties); |
| encoderLock.lock(); |
| mImpl->log("finish vkGetPhysicalDeviceMemoryProperties2KHR");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, |
| uint32_t* pPropertyCount, |
| VkSparseImageFormatProperties2* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceSparseImageFormatInfo2* local_pFormatInfo; |
| local_physicalDevice = physicalDevice; |
| local_pFormatInfo = nullptr; |
| if (pFormatInfo) |
| { |
| local_pFormatInfo = (VkPhysicalDeviceSparseImageFormatInfo2*)pool->alloc(sizeof(const VkPhysicalDeviceSparseImageFormatInfo2)); |
| deepcopy_VkPhysicalDeviceSparseImageFormatInfo2(pool, pFormatInfo, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo)); |
| } |
| if (local_pFormatInfo) |
| { |
| transform_tohost_VkPhysicalDeviceSparseImageFormatInfo2(mImpl->resources(), (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_995; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_995, 1); |
| countingStream->write((uint64_t*)&cgen_var_995, 1 * 8); |
| marshal_VkPhysicalDeviceSparseImageFormatInfo2(countingStream, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_996 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_996); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_997 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_997); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkSparseImageFormatProperties2(countingStream, (VkSparseImageFormatProperties2*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceSparseImageFormatProperties2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceSparseImageFormatProperties2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_998; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_998, 1); |
| stream->write((uint64_t*)&cgen_var_998, 1 * 8); |
| marshal_VkPhysicalDeviceSparseImageFormatInfo2(stream, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_999 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_999); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1000 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_1000); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkSparseImageFormatProperties2* check_pProperties; |
| check_pProperties = (VkSparseImageFormatProperties2*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkSparseImageFormatProperties2(mImpl->resources(), (VkSparseImageFormatProperties2*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties2KHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_device_group |
| void VkEncoder::vkGetDeviceGroupPeerMemoryFeaturesKHR( |
| VkDevice device, |
| uint32_t heapIndex, |
| uint32_t localDeviceIndex, |
| uint32_t remoteDeviceIndex, |
| VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR encode"); |
| mImpl->log("start vkGetDeviceGroupPeerMemoryFeaturesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_heapIndex; |
| uint32_t local_localDeviceIndex; |
| uint32_t local_remoteDeviceIndex; |
| local_device = device; |
| local_heapIndex = heapIndex; |
| local_localDeviceIndex = localDeviceIndex; |
| local_remoteDeviceIndex = remoteDeviceIndex; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1003; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1003, 1); |
| countingStream->write((uint64_t*)&cgen_var_1003, 1 * 8); |
| countingStream->write((uint32_t*)&local_heapIndex, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_localDeviceIndex, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_remoteDeviceIndex, sizeof(uint32_t)); |
| countingStream->write((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags)); |
| } |
| uint32_t packetSize_vkGetDeviceGroupPeerMemoryFeaturesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDeviceGroupPeerMemoryFeaturesKHR = OP_vkGetDeviceGroupPeerMemoryFeaturesKHR; |
| stream->write(&opcode_vkGetDeviceGroupPeerMemoryFeaturesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDeviceGroupPeerMemoryFeaturesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1004; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1004, 1); |
| stream->write((uint64_t*)&cgen_var_1004, 1 * 8); |
| stream->write((uint32_t*)&local_heapIndex, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_localDeviceIndex, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_remoteDeviceIndex, sizeof(uint32_t)); |
| stream->write((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags)); |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR readParams"); |
| stream->read((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags)); |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR returnUnmarshal"); |
| mImpl->log("finish vkGetDeviceGroupPeerMemoryFeaturesKHR");; |
| } |
| |
| void VkEncoder::vkCmdSetDeviceMaskKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t deviceMask) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR encode"); |
| mImpl->log("start vkCmdSetDeviceMaskKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_deviceMask; |
| local_commandBuffer = commandBuffer; |
| local_deviceMask = deviceMask; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1005; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1005, 1); |
| countingStream->write((uint64_t*)&cgen_var_1005, 1 * 8); |
| countingStream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdSetDeviceMaskKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetDeviceMaskKHR = OP_vkCmdSetDeviceMaskKHR; |
| stream->write(&opcode_vkCmdSetDeviceMaskKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetDeviceMaskKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1006; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1006, 1); |
| stream->write((uint64_t*)&cgen_var_1006, 1 * 8); |
| stream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR returnUnmarshal"); |
| mImpl->log("finish vkCmdSetDeviceMaskKHR");; |
| } |
| |
| void VkEncoder::vkCmdDispatchBaseKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t baseGroupX, |
| uint32_t baseGroupY, |
| uint32_t baseGroupZ, |
| uint32_t groupCountX, |
| uint32_t groupCountY, |
| uint32_t groupCountZ) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR encode"); |
| mImpl->log("start vkCmdDispatchBaseKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_baseGroupX; |
| uint32_t local_baseGroupY; |
| uint32_t local_baseGroupZ; |
| uint32_t local_groupCountX; |
| uint32_t local_groupCountY; |
| uint32_t local_groupCountZ; |
| local_commandBuffer = commandBuffer; |
| local_baseGroupX = baseGroupX; |
| local_baseGroupY = baseGroupY; |
| local_baseGroupZ = baseGroupZ; |
| local_groupCountX = groupCountX; |
| local_groupCountY = groupCountY; |
| local_groupCountZ = groupCountZ; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1007; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1007, 1); |
| countingStream->write((uint64_t*)&cgen_var_1007, 1 * 8); |
| countingStream->write((uint32_t*)&local_baseGroupX, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_baseGroupY, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_baseGroupZ, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDispatchBaseKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDispatchBaseKHR = OP_vkCmdDispatchBaseKHR; |
| stream->write(&opcode_vkCmdDispatchBaseKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDispatchBaseKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1008; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1008, 1); |
| stream->write((uint64_t*)&cgen_var_1008, 1 * 8); |
| stream->write((uint32_t*)&local_baseGroupX, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_baseGroupY, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_baseGroupZ, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR returnUnmarshal"); |
| mImpl->log("finish vkCmdDispatchBaseKHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_shader_draw_parameters |
| #endif |
| #ifdef VK_KHR_maintenance1 |
| void VkEncoder::vkTrimCommandPoolKHR( |
| VkDevice device, |
| VkCommandPool commandPool, |
| VkCommandPoolTrimFlags flags) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR encode"); |
| mImpl->log("start vkTrimCommandPoolKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkCommandPool local_commandPool; |
| VkCommandPoolTrimFlags local_flags; |
| local_device = device; |
| local_commandPool = commandPool; |
| local_flags = flags; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1009; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1009, 1); |
| countingStream->write((uint64_t*)&cgen_var_1009, 1 * 8); |
| uint64_t cgen_var_1010; |
| countingStream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_1010, 1); |
| countingStream->write((uint64_t*)&cgen_var_1010, 1 * 8); |
| countingStream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags)); |
| } |
| uint32_t packetSize_vkTrimCommandPoolKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkTrimCommandPoolKHR = OP_vkTrimCommandPoolKHR; |
| stream->write(&opcode_vkTrimCommandPoolKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkTrimCommandPoolKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1011; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1011, 1); |
| stream->write((uint64_t*)&cgen_var_1011, 1 * 8); |
| uint64_t cgen_var_1012; |
| stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_1012, 1); |
| stream->write((uint64_t*)&cgen_var_1012, 1 * 8); |
| stream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags)); |
| AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR readParams"); |
| AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR returnUnmarshal"); |
| mImpl->log("finish vkTrimCommandPoolKHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_device_group_creation |
| VkResult VkEncoder::vkEnumeratePhysicalDeviceGroupsKHR( |
| VkInstance instance, |
| uint32_t* pPhysicalDeviceGroupCount, |
| VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR encode"); |
| mImpl->log("start vkEnumeratePhysicalDeviceGroupsKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| local_instance = instance; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1013; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1013, 1); |
| countingStream->write((uint64_t*)&cgen_var_1013, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1014 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount; |
| countingStream->putBe64(cgen_var_1014); |
| if (pPhysicalDeviceGroupCount) |
| { |
| countingStream->write((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1015 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties; |
| countingStream->putBe64(cgen_var_1015); |
| if (pPhysicalDeviceGroupProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i) |
| { |
| marshal_VkPhysicalDeviceGroupProperties(countingStream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkEnumeratePhysicalDeviceGroupsKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkEnumeratePhysicalDeviceGroupsKHR = OP_vkEnumeratePhysicalDeviceGroupsKHR; |
| stream->write(&opcode_vkEnumeratePhysicalDeviceGroupsKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkEnumeratePhysicalDeviceGroupsKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1016; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1016, 1); |
| stream->write((uint64_t*)&cgen_var_1016, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1017 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount; |
| stream->putBe64(cgen_var_1017); |
| if (pPhysicalDeviceGroupCount) |
| { |
| stream->write((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1018 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties; |
| stream->putBe64(cgen_var_1018); |
| if (pPhysicalDeviceGroupProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i) |
| { |
| marshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPhysicalDeviceGroupCount; |
| check_pPhysicalDeviceGroupCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPhysicalDeviceGroupCount) |
| { |
| if (!(check_pPhysicalDeviceGroupCount)) |
| { |
| fprintf(stderr, "fatal: pPhysicalDeviceGroupCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPhysicalDeviceGroupCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkPhysicalDeviceGroupProperties* check_pPhysicalDeviceGroupProperties; |
| check_pPhysicalDeviceGroupProperties = (VkPhysicalDeviceGroupProperties*)(uintptr_t)stream->getBe64(); |
| if (pPhysicalDeviceGroupProperties) |
| { |
| if (!(check_pPhysicalDeviceGroupProperties)) |
| { |
| fprintf(stderr, "fatal: pPhysicalDeviceGroupProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i) |
| { |
| unmarshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i)); |
| } |
| } |
| if (pPhysicalDeviceGroupProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i) |
| { |
| transform_fromhost_VkPhysicalDeviceGroupProperties(mImpl->resources(), (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR returnUnmarshal"); |
| VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkEnumeratePhysicalDeviceGroupsKHR");; |
| return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_external_memory_capabilities |
| void VkEncoder::vkGetPhysicalDeviceExternalBufferPropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, |
| VkExternalBufferProperties* pExternalBufferProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceExternalBufferPropertiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceExternalBufferInfo* local_pExternalBufferInfo; |
| local_physicalDevice = physicalDevice; |
| local_pExternalBufferInfo = nullptr; |
| if (pExternalBufferInfo) |
| { |
| local_pExternalBufferInfo = (VkPhysicalDeviceExternalBufferInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalBufferInfo)); |
| deepcopy_VkPhysicalDeviceExternalBufferInfo(pool, pExternalBufferInfo, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo)); |
| } |
| if (local_pExternalBufferInfo) |
| { |
| mImpl->resources()->transformImpl_VkPhysicalDeviceExternalBufferInfo_tohost(local_pExternalBufferInfo, 1); |
| transform_tohost_VkPhysicalDeviceExternalBufferInfo(mImpl->resources(), (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1021; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1021, 1); |
| countingStream->write((uint64_t*)&cgen_var_1021, 1 * 8); |
| marshal_VkPhysicalDeviceExternalBufferInfo(countingStream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo)); |
| marshal_VkExternalBufferProperties(countingStream, (VkExternalBufferProperties*)(pExternalBufferProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceExternalBufferPropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceExternalBufferPropertiesKHR = OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceExternalBufferPropertiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceExternalBufferPropertiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1022; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1022, 1); |
| stream->write((uint64_t*)&cgen_var_1022, 1 * 8); |
| marshal_VkPhysicalDeviceExternalBufferInfo(stream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo)); |
| marshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR readParams"); |
| unmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties)); |
| if (pExternalBufferProperties) |
| { |
| mImpl->resources()->transformImpl_VkExternalBufferProperties_fromhost(pExternalBufferProperties, 1); |
| transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceExternalBufferPropertiesKHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_external_memory |
| #endif |
| #ifdef VK_KHR_external_memory_win32 |
| VkResult VkEncoder::vkGetMemoryWin32HandleKHR( |
| VkDevice device, |
| const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, |
| HANDLE* pHandle) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR encode"); |
| mImpl->log("start vkGetMemoryWin32HandleKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkMemoryGetWin32HandleInfoKHR* local_pGetWin32HandleInfo; |
| local_device = device; |
| local_pGetWin32HandleInfo = nullptr; |
| if (pGetWin32HandleInfo) |
| { |
| local_pGetWin32HandleInfo = (VkMemoryGetWin32HandleInfoKHR*)pool->alloc(sizeof(const VkMemoryGetWin32HandleInfoKHR)); |
| deepcopy_VkMemoryGetWin32HandleInfoKHR(pool, pGetWin32HandleInfo, (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| } |
| if (local_pGetWin32HandleInfo) |
| { |
| transform_tohost_VkMemoryGetWin32HandleInfoKHR(mImpl->resources(), (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1023; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1023, 1); |
| countingStream->write((uint64_t*)&cgen_var_1023, 1 * 8); |
| marshal_VkMemoryGetWin32HandleInfoKHR(countingStream, (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| countingStream->write((HANDLE*)pHandle, sizeof(HANDLE)); |
| } |
| uint32_t packetSize_vkGetMemoryWin32HandleKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetMemoryWin32HandleKHR = OP_vkGetMemoryWin32HandleKHR; |
| stream->write(&opcode_vkGetMemoryWin32HandleKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetMemoryWin32HandleKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1024; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1024, 1); |
| stream->write((uint64_t*)&cgen_var_1024, 1 * 8); |
| marshal_VkMemoryGetWin32HandleInfoKHR(stream, (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| stream->write((HANDLE*)pHandle, sizeof(HANDLE)); |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR readParams"); |
| stream->read((HANDLE*)pHandle, sizeof(HANDLE)); |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR returnUnmarshal"); |
| VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetMemoryWin32HandleKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetMemoryWin32HandleKHR");; |
| return vkGetMemoryWin32HandleKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetMemoryWin32HandlePropertiesKHR( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| HANDLE handle, |
| VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR encode"); |
| mImpl->log("start vkGetMemoryWin32HandlePropertiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkExternalMemoryHandleTypeFlagBits local_handleType; |
| HANDLE local_handle; |
| local_device = device; |
| local_handleType = handleType; |
| local_handle = handle; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1025; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1025, 1); |
| countingStream->write((uint64_t*)&cgen_var_1025, 1 * 8); |
| countingStream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits)); |
| countingStream->write((HANDLE*)&local_handle, sizeof(HANDLE)); |
| marshal_VkMemoryWin32HandlePropertiesKHR(countingStream, (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties)); |
| } |
| uint32_t packetSize_vkGetMemoryWin32HandlePropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetMemoryWin32HandlePropertiesKHR = OP_vkGetMemoryWin32HandlePropertiesKHR; |
| stream->write(&opcode_vkGetMemoryWin32HandlePropertiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetMemoryWin32HandlePropertiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1026; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1026, 1); |
| stream->write((uint64_t*)&cgen_var_1026, 1 * 8); |
| stream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits)); |
| stream->write((HANDLE*)&local_handle, sizeof(HANDLE)); |
| marshal_VkMemoryWin32HandlePropertiesKHR(stream, (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties)); |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR readParams"); |
| unmarshal_VkMemoryWin32HandlePropertiesKHR(stream, (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties)); |
| if (pMemoryWin32HandleProperties) |
| { |
| transform_fromhost_VkMemoryWin32HandlePropertiesKHR(mImpl->resources(), (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR returnUnmarshal"); |
| VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetMemoryWin32HandlePropertiesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetMemoryWin32HandlePropertiesKHR");; |
| return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_external_memory_fd |
| VkResult VkEncoder::vkGetMemoryFdKHR( |
| VkDevice device, |
| const VkMemoryGetFdInfoKHR* pGetFdInfo, |
| int* pFd) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetMemoryFdKHR encode"); |
| mImpl->log("start vkGetMemoryFdKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkMemoryGetFdInfoKHR* local_pGetFdInfo; |
| local_device = device; |
| local_pGetFdInfo = nullptr; |
| if (pGetFdInfo) |
| { |
| local_pGetFdInfo = (VkMemoryGetFdInfoKHR*)pool->alloc(sizeof(const VkMemoryGetFdInfoKHR)); |
| deepcopy_VkMemoryGetFdInfoKHR(pool, pGetFdInfo, (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo)); |
| } |
| if (local_pGetFdInfo) |
| { |
| transform_tohost_VkMemoryGetFdInfoKHR(mImpl->resources(), (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1027; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1027, 1); |
| countingStream->write((uint64_t*)&cgen_var_1027, 1 * 8); |
| marshal_VkMemoryGetFdInfoKHR(countingStream, (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo)); |
| countingStream->write((int*)pFd, sizeof(int)); |
| } |
| uint32_t packetSize_vkGetMemoryFdKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetMemoryFdKHR = OP_vkGetMemoryFdKHR; |
| stream->write(&opcode_vkGetMemoryFdKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetMemoryFdKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1028; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1028, 1); |
| stream->write((uint64_t*)&cgen_var_1028, 1 * 8); |
| marshal_VkMemoryGetFdInfoKHR(stream, (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo)); |
| stream->write((int*)pFd, sizeof(int)); |
| AEMU_SCOPED_TRACE("vkGetMemoryFdKHR readParams"); |
| stream->read((int*)pFd, sizeof(int)); |
| AEMU_SCOPED_TRACE("vkGetMemoryFdKHR returnUnmarshal"); |
| VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetMemoryFdKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetMemoryFdKHR");; |
| return vkGetMemoryFdKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetMemoryFdPropertiesKHR( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| int fd, |
| VkMemoryFdPropertiesKHR* pMemoryFdProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR encode"); |
| mImpl->log("start vkGetMemoryFdPropertiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkExternalMemoryHandleTypeFlagBits local_handleType; |
| int local_fd; |
| local_device = device; |
| local_handleType = handleType; |
| local_fd = fd; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1029; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1029, 1); |
| countingStream->write((uint64_t*)&cgen_var_1029, 1 * 8); |
| countingStream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits)); |
| countingStream->write((int*)&local_fd, sizeof(int)); |
| marshal_VkMemoryFdPropertiesKHR(countingStream, (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties)); |
| } |
| uint32_t packetSize_vkGetMemoryFdPropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetMemoryFdPropertiesKHR = OP_vkGetMemoryFdPropertiesKHR; |
| stream->write(&opcode_vkGetMemoryFdPropertiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetMemoryFdPropertiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1030; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1030, 1); |
| stream->write((uint64_t*)&cgen_var_1030, 1 * 8); |
| stream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits)); |
| stream->write((int*)&local_fd, sizeof(int)); |
| marshal_VkMemoryFdPropertiesKHR(stream, (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties)); |
| AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR readParams"); |
| unmarshal_VkMemoryFdPropertiesKHR(stream, (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties)); |
| if (pMemoryFdProperties) |
| { |
| transform_fromhost_VkMemoryFdPropertiesKHR(mImpl->resources(), (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR returnUnmarshal"); |
| VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetMemoryFdPropertiesKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetMemoryFdPropertiesKHR");; |
| return vkGetMemoryFdPropertiesKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_win32_keyed_mutex |
| #endif |
| #ifdef VK_KHR_external_semaphore_capabilities |
| void VkEncoder::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, |
| VkExternalSemaphoreProperties* pExternalSemaphoreProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceExternalSemaphoreInfo* local_pExternalSemaphoreInfo; |
| local_physicalDevice = physicalDevice; |
| local_pExternalSemaphoreInfo = nullptr; |
| if (pExternalSemaphoreInfo) |
| { |
| local_pExternalSemaphoreInfo = (VkPhysicalDeviceExternalSemaphoreInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalSemaphoreInfo)); |
| deepcopy_VkPhysicalDeviceExternalSemaphoreInfo(pool, pExternalSemaphoreInfo, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo)); |
| } |
| if (local_pExternalSemaphoreInfo) |
| { |
| transform_tohost_VkPhysicalDeviceExternalSemaphoreInfo(mImpl->resources(), (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1031; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1031, 1); |
| countingStream->write((uint64_t*)&cgen_var_1031, 1 * 8); |
| marshal_VkPhysicalDeviceExternalSemaphoreInfo(countingStream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo)); |
| marshal_VkExternalSemaphoreProperties(countingStream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1032; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1032, 1); |
| stream->write((uint64_t*)&cgen_var_1032, 1 * 8); |
| marshal_VkPhysicalDeviceExternalSemaphoreInfo(stream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo)); |
| marshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR readParams"); |
| unmarshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties)); |
| if (pExternalSemaphoreProperties) |
| { |
| transform_fromhost_VkExternalSemaphoreProperties(mImpl->resources(), (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_external_semaphore |
| #endif |
| #ifdef VK_KHR_external_semaphore_win32 |
| VkResult VkEncoder::vkImportSemaphoreWin32HandleKHR( |
| VkDevice device, |
| const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR encode"); |
| mImpl->log("start vkImportSemaphoreWin32HandleKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImportSemaphoreWin32HandleInfoKHR* local_pImportSemaphoreWin32HandleInfo; |
| local_device = device; |
| local_pImportSemaphoreWin32HandleInfo = nullptr; |
| if (pImportSemaphoreWin32HandleInfo) |
| { |
| local_pImportSemaphoreWin32HandleInfo = (VkImportSemaphoreWin32HandleInfoKHR*)pool->alloc(sizeof(const VkImportSemaphoreWin32HandleInfoKHR)); |
| deepcopy_VkImportSemaphoreWin32HandleInfoKHR(pool, pImportSemaphoreWin32HandleInfo, (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo)); |
| } |
| if (local_pImportSemaphoreWin32HandleInfo) |
| { |
| transform_tohost_VkImportSemaphoreWin32HandleInfoKHR(mImpl->resources(), (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1033; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1033, 1); |
| countingStream->write((uint64_t*)&cgen_var_1033, 1 * 8); |
| marshal_VkImportSemaphoreWin32HandleInfoKHR(countingStream, (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo)); |
| } |
| uint32_t packetSize_vkImportSemaphoreWin32HandleKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkImportSemaphoreWin32HandleKHR = OP_vkImportSemaphoreWin32HandleKHR; |
| stream->write(&opcode_vkImportSemaphoreWin32HandleKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkImportSemaphoreWin32HandleKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1034; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1034, 1); |
| stream->write((uint64_t*)&cgen_var_1034, 1 * 8); |
| marshal_VkImportSemaphoreWin32HandleInfoKHR(stream, (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo)); |
| AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR readParams"); |
| AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR returnUnmarshal"); |
| VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkImportSemaphoreWin32HandleKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkImportSemaphoreWin32HandleKHR");; |
| return vkImportSemaphoreWin32HandleKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetSemaphoreWin32HandleKHR( |
| VkDevice device, |
| const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, |
| HANDLE* pHandle) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR encode"); |
| mImpl->log("start vkGetSemaphoreWin32HandleKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSemaphoreGetWin32HandleInfoKHR* local_pGetWin32HandleInfo; |
| local_device = device; |
| local_pGetWin32HandleInfo = nullptr; |
| if (pGetWin32HandleInfo) |
| { |
| local_pGetWin32HandleInfo = (VkSemaphoreGetWin32HandleInfoKHR*)pool->alloc(sizeof(const VkSemaphoreGetWin32HandleInfoKHR)); |
| deepcopy_VkSemaphoreGetWin32HandleInfoKHR(pool, pGetWin32HandleInfo, (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| } |
| if (local_pGetWin32HandleInfo) |
| { |
| transform_tohost_VkSemaphoreGetWin32HandleInfoKHR(mImpl->resources(), (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1035; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1035, 1); |
| countingStream->write((uint64_t*)&cgen_var_1035, 1 * 8); |
| marshal_VkSemaphoreGetWin32HandleInfoKHR(countingStream, (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| countingStream->write((HANDLE*)pHandle, sizeof(HANDLE)); |
| } |
| uint32_t packetSize_vkGetSemaphoreWin32HandleKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetSemaphoreWin32HandleKHR = OP_vkGetSemaphoreWin32HandleKHR; |
| stream->write(&opcode_vkGetSemaphoreWin32HandleKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetSemaphoreWin32HandleKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1036; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1036, 1); |
| stream->write((uint64_t*)&cgen_var_1036, 1 * 8); |
| marshal_VkSemaphoreGetWin32HandleInfoKHR(stream, (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| stream->write((HANDLE*)pHandle, sizeof(HANDLE)); |
| AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR readParams"); |
| stream->read((HANDLE*)pHandle, sizeof(HANDLE)); |
| AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR returnUnmarshal"); |
| VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetSemaphoreWin32HandleKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetSemaphoreWin32HandleKHR");; |
| return vkGetSemaphoreWin32HandleKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_external_semaphore_fd |
| VkResult VkEncoder::vkImportSemaphoreFdKHR( |
| VkDevice device, |
| const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR encode"); |
| mImpl->log("start vkImportSemaphoreFdKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImportSemaphoreFdInfoKHR* local_pImportSemaphoreFdInfo; |
| local_device = device; |
| local_pImportSemaphoreFdInfo = nullptr; |
| if (pImportSemaphoreFdInfo) |
| { |
| local_pImportSemaphoreFdInfo = (VkImportSemaphoreFdInfoKHR*)pool->alloc(sizeof(const VkImportSemaphoreFdInfoKHR)); |
| deepcopy_VkImportSemaphoreFdInfoKHR(pool, pImportSemaphoreFdInfo, (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo)); |
| } |
| if (local_pImportSemaphoreFdInfo) |
| { |
| transform_tohost_VkImportSemaphoreFdInfoKHR(mImpl->resources(), (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1037; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1037, 1); |
| countingStream->write((uint64_t*)&cgen_var_1037, 1 * 8); |
| marshal_VkImportSemaphoreFdInfoKHR(countingStream, (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo)); |
| } |
| uint32_t packetSize_vkImportSemaphoreFdKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkImportSemaphoreFdKHR = OP_vkImportSemaphoreFdKHR; |
| stream->write(&opcode_vkImportSemaphoreFdKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkImportSemaphoreFdKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1038; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1038, 1); |
| stream->write((uint64_t*)&cgen_var_1038, 1 * 8); |
| marshal_VkImportSemaphoreFdInfoKHR(stream, (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo)); |
| AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR readParams"); |
| AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR returnUnmarshal"); |
| VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkImportSemaphoreFdKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkImportSemaphoreFdKHR");; |
| return vkImportSemaphoreFdKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetSemaphoreFdKHR( |
| VkDevice device, |
| const VkSemaphoreGetFdInfoKHR* pGetFdInfo, |
| int* pFd) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR encode"); |
| mImpl->log("start vkGetSemaphoreFdKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSemaphoreGetFdInfoKHR* local_pGetFdInfo; |
| local_device = device; |
| local_pGetFdInfo = nullptr; |
| if (pGetFdInfo) |
| { |
| local_pGetFdInfo = (VkSemaphoreGetFdInfoKHR*)pool->alloc(sizeof(const VkSemaphoreGetFdInfoKHR)); |
| deepcopy_VkSemaphoreGetFdInfoKHR(pool, pGetFdInfo, (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo)); |
| } |
| if (local_pGetFdInfo) |
| { |
| transform_tohost_VkSemaphoreGetFdInfoKHR(mImpl->resources(), (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1039; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1039, 1); |
| countingStream->write((uint64_t*)&cgen_var_1039, 1 * 8); |
| marshal_VkSemaphoreGetFdInfoKHR(countingStream, (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo)); |
| countingStream->write((int*)pFd, sizeof(int)); |
| } |
| uint32_t packetSize_vkGetSemaphoreFdKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetSemaphoreFdKHR = OP_vkGetSemaphoreFdKHR; |
| stream->write(&opcode_vkGetSemaphoreFdKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetSemaphoreFdKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1040; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1040, 1); |
| stream->write((uint64_t*)&cgen_var_1040, 1 * 8); |
| marshal_VkSemaphoreGetFdInfoKHR(stream, (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo)); |
| stream->write((int*)pFd, sizeof(int)); |
| AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR readParams"); |
| stream->read((int*)pFd, sizeof(int)); |
| AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR returnUnmarshal"); |
| VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetSemaphoreFdKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetSemaphoreFdKHR");; |
| return vkGetSemaphoreFdKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_push_descriptor |
| void VkEncoder::vkCmdPushDescriptorSetKHR( |
| VkCommandBuffer commandBuffer, |
| VkPipelineBindPoint pipelineBindPoint, |
| VkPipelineLayout layout, |
| uint32_t set, |
| uint32_t descriptorWriteCount, |
| const VkWriteDescriptorSet* pDescriptorWrites) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR encode"); |
| mImpl->log("start vkCmdPushDescriptorSetKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkPipelineBindPoint local_pipelineBindPoint; |
| VkPipelineLayout local_layout; |
| uint32_t local_set; |
| uint32_t local_descriptorWriteCount; |
| VkWriteDescriptorSet* local_pDescriptorWrites; |
| local_commandBuffer = commandBuffer; |
| local_pipelineBindPoint = pipelineBindPoint; |
| local_layout = layout; |
| local_set = set; |
| local_descriptorWriteCount = descriptorWriteCount; |
| local_pDescriptorWrites = nullptr; |
| if (pDescriptorWrites) |
| { |
| local_pDescriptorWrites = (VkWriteDescriptorSet*)pool->alloc(((descriptorWriteCount)) * sizeof(const VkWriteDescriptorSet)); |
| for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i) |
| { |
| deepcopy_VkWriteDescriptorSet(pool, pDescriptorWrites + i, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i)); |
| } |
| } |
| if (local_pDescriptorWrites) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i) |
| { |
| transform_tohost_VkWriteDescriptorSet(mImpl->resources(), (VkWriteDescriptorSet*)(local_pDescriptorWrites + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1041; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1041, 1); |
| countingStream->write((uint64_t*)&cgen_var_1041, 1 * 8); |
| countingStream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint)); |
| uint64_t cgen_var_1042; |
| countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_1042, 1); |
| countingStream->write((uint64_t*)&cgen_var_1042, 1 * 8); |
| countingStream->write((uint32_t*)&local_set, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_descriptorWriteCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i) |
| { |
| marshal_VkWriteDescriptorSet(countingStream, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdPushDescriptorSetKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdPushDescriptorSetKHR = OP_vkCmdPushDescriptorSetKHR; |
| stream->write(&opcode_vkCmdPushDescriptorSetKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdPushDescriptorSetKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1043; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1043, 1); |
| stream->write((uint64_t*)&cgen_var_1043, 1 * 8); |
| stream->write((VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint)); |
| uint64_t cgen_var_1044; |
| stream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_1044, 1); |
| stream->write((uint64_t*)&cgen_var_1044, 1 * 8); |
| stream->write((uint32_t*)&local_set, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_descriptorWriteCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i) |
| { |
| marshal_VkWriteDescriptorSet(stream, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR readParams"); |
| AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR returnUnmarshal"); |
| mImpl->log("finish vkCmdPushDescriptorSetKHR");; |
| } |
| |
| void VkEncoder::vkCmdPushDescriptorSetWithTemplateKHR( |
| VkCommandBuffer commandBuffer, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| VkPipelineLayout layout, |
| uint32_t set, |
| const void* pData) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR encode"); |
| mImpl->log("start vkCmdPushDescriptorSetWithTemplateKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkDescriptorUpdateTemplate local_descriptorUpdateTemplate; |
| VkPipelineLayout local_layout; |
| uint32_t local_set; |
| void* local_pData; |
| local_commandBuffer = commandBuffer; |
| local_descriptorUpdateTemplate = descriptorUpdateTemplate; |
| local_layout = layout; |
| local_set = set; |
| local_pData = nullptr; |
| if (pData) |
| { |
| local_pData = (void*)pool->dupArray(pData, sizeof(const uint8_t)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1045; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1045, 1); |
| countingStream->write((uint64_t*)&cgen_var_1045, 1 * 8); |
| uint64_t cgen_var_1046; |
| countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1046, 1); |
| countingStream->write((uint64_t*)&cgen_var_1046, 1 * 8); |
| uint64_t cgen_var_1047; |
| countingStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_1047, 1); |
| countingStream->write((uint64_t*)&cgen_var_1047, 1 * 8); |
| countingStream->write((uint32_t*)&local_set, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1048 = (uint64_t)(uintptr_t)local_pData; |
| countingStream->putBe64(cgen_var_1048); |
| if (local_pData) |
| { |
| countingStream->write((void*)local_pData, sizeof(uint8_t)); |
| } |
| } |
| uint32_t packetSize_vkCmdPushDescriptorSetWithTemplateKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdPushDescriptorSetWithTemplateKHR = OP_vkCmdPushDescriptorSetWithTemplateKHR; |
| stream->write(&opcode_vkCmdPushDescriptorSetWithTemplateKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdPushDescriptorSetWithTemplateKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1049; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1049, 1); |
| stream->write((uint64_t*)&cgen_var_1049, 1 * 8); |
| uint64_t cgen_var_1050; |
| stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1050, 1); |
| stream->write((uint64_t*)&cgen_var_1050, 1 * 8); |
| uint64_t cgen_var_1051; |
| stream->handleMapping()->mapHandles_VkPipelineLayout_u64(&local_layout, &cgen_var_1051, 1); |
| stream->write((uint64_t*)&cgen_var_1051, 1 * 8); |
| stream->write((uint32_t*)&local_set, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1052 = (uint64_t)(uintptr_t)local_pData; |
| stream->putBe64(cgen_var_1052); |
| if (local_pData) |
| { |
| stream->write((void*)local_pData, sizeof(uint8_t)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR readParams"); |
| AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR returnUnmarshal"); |
| mImpl->log("finish vkCmdPushDescriptorSetWithTemplateKHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_16bit_storage |
| #endif |
| #ifdef VK_KHR_incremental_present |
| #endif |
| #ifdef VK_KHR_descriptor_update_template |
| VkResult VkEncoder::vkCreateDescriptorUpdateTemplateKHR( |
| VkDevice device, |
| const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR encode"); |
| mImpl->log("start vkCreateDescriptorUpdateTemplateKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorUpdateTemplateCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDescriptorUpdateTemplateCreateInfo*)pool->alloc(sizeof(const VkDescriptorUpdateTemplateCreateInfo)); |
| deepcopy_VkDescriptorUpdateTemplateCreateInfo(pool, pCreateInfo, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDescriptorUpdateTemplateCreateInfo(mImpl->resources(), (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1053; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1053, 1); |
| countingStream->write((uint64_t*)&cgen_var_1053, 1 * 8); |
| marshal_VkDescriptorUpdateTemplateCreateInfo(countingStream, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1054 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1054); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1055; |
| countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(pDescriptorUpdateTemplate, &cgen_var_1055, 1); |
| countingStream->write((uint64_t*)&cgen_var_1055, 8); |
| } |
| uint32_t packetSize_vkCreateDescriptorUpdateTemplateKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateDescriptorUpdateTemplateKHR = OP_vkCreateDescriptorUpdateTemplateKHR; |
| stream->write(&opcode_vkCreateDescriptorUpdateTemplateKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateDescriptorUpdateTemplateKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1056; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1056, 1); |
| stream->write((uint64_t*)&cgen_var_1056, 1 * 8); |
| marshal_VkDescriptorUpdateTemplateCreateInfo(stream, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1057 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1057); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1058; |
| stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(pDescriptorUpdateTemplate, &cgen_var_1058, 1); |
| stream->write((uint64_t*)&cgen_var_1058, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_1059; |
| stream->read((uint64_t*)&cgen_var_1059, 8); |
| stream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(&cgen_var_1059, (VkDescriptorUpdateTemplate*)pDescriptorUpdateTemplate, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR returnUnmarshal"); |
| VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateDescriptorUpdateTemplateKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| encoderLock.unlock(); |
| mImpl->resources()->on_vkCreateDescriptorUpdateTemplateKHR(this, vkCreateDescriptorUpdateTemplateKHR_VkResult_return, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); |
| encoderLock.lock(); |
| mImpl->log("finish vkCreateDescriptorUpdateTemplateKHR");; |
| return vkCreateDescriptorUpdateTemplateKHR_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyDescriptorUpdateTemplateKHR( |
| VkDevice device, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR encode"); |
| mImpl->log("start vkDestroyDescriptorUpdateTemplateKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorUpdateTemplate local_descriptorUpdateTemplate; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_descriptorUpdateTemplate = descriptorUpdateTemplate; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1060; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1060, 1); |
| countingStream->write((uint64_t*)&cgen_var_1060, 1 * 8); |
| uint64_t cgen_var_1061; |
| countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1061, 1); |
| countingStream->write((uint64_t*)&cgen_var_1061, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1062 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1062); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyDescriptorUpdateTemplateKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyDescriptorUpdateTemplateKHR = OP_vkDestroyDescriptorUpdateTemplateKHR; |
| stream->write(&opcode_vkDestroyDescriptorUpdateTemplateKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyDescriptorUpdateTemplateKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1063; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1063, 1); |
| stream->write((uint64_t*)&cgen_var_1063, 1 * 8); |
| uint64_t cgen_var_1064; |
| stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1064, 1); |
| stream->write((uint64_t*)&cgen_var_1064, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1065 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1065); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkDescriptorUpdateTemplate((VkDescriptorUpdateTemplate*)&descriptorUpdateTemplate); |
| mImpl->log("finish vkDestroyDescriptorUpdateTemplateKHR");; |
| } |
| |
| void VkEncoder::vkUpdateDescriptorSetWithTemplateKHR( |
| VkDevice device, |
| VkDescriptorSet descriptorSet, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const void* pData) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR encode"); |
| mImpl->log("start vkUpdateDescriptorSetWithTemplateKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorSet local_descriptorSet; |
| VkDescriptorUpdateTemplate local_descriptorUpdateTemplate; |
| void* local_pData; |
| local_device = device; |
| local_descriptorSet = descriptorSet; |
| local_descriptorUpdateTemplate = descriptorUpdateTemplate; |
| local_pData = nullptr; |
| if (pData) |
| { |
| local_pData = (void*)pool->dupArray(pData, sizeof(const uint8_t)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1066; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1066, 1); |
| countingStream->write((uint64_t*)&cgen_var_1066, 1 * 8); |
| uint64_t cgen_var_1067; |
| countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_1067, 1); |
| countingStream->write((uint64_t*)&cgen_var_1067, 1 * 8); |
| uint64_t cgen_var_1068; |
| countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1068, 1); |
| countingStream->write((uint64_t*)&cgen_var_1068, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1069 = (uint64_t)(uintptr_t)local_pData; |
| countingStream->putBe64(cgen_var_1069); |
| if (local_pData) |
| { |
| countingStream->write((void*)local_pData, sizeof(uint8_t)); |
| } |
| } |
| uint32_t packetSize_vkUpdateDescriptorSetWithTemplateKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkUpdateDescriptorSetWithTemplateKHR = OP_vkUpdateDescriptorSetWithTemplateKHR; |
| stream->write(&opcode_vkUpdateDescriptorSetWithTemplateKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkUpdateDescriptorSetWithTemplateKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1070; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1070, 1); |
| stream->write((uint64_t*)&cgen_var_1070, 1 * 8); |
| uint64_t cgen_var_1071; |
| stream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_1071, 1); |
| stream->write((uint64_t*)&cgen_var_1071, 1 * 8); |
| uint64_t cgen_var_1072; |
| stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1072, 1); |
| stream->write((uint64_t*)&cgen_var_1072, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1073 = (uint64_t)(uintptr_t)local_pData; |
| stream->putBe64(cgen_var_1073); |
| if (local_pData) |
| { |
| stream->write((void*)local_pData, sizeof(uint8_t)); |
| } |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR readParams"); |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR returnUnmarshal"); |
| mImpl->log("finish vkUpdateDescriptorSetWithTemplateKHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_create_renderpass2 |
| VkResult VkEncoder::vkCreateRenderPass2KHR( |
| VkDevice device, |
| const VkRenderPassCreateInfo2KHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkRenderPass* pRenderPass) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR encode"); |
| mImpl->log("start vkCreateRenderPass2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkRenderPassCreateInfo2KHR* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkRenderPassCreateInfo2KHR*)pool->alloc(sizeof(const VkRenderPassCreateInfo2KHR)); |
| deepcopy_VkRenderPassCreateInfo2KHR(pool, pCreateInfo, (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkRenderPassCreateInfo2KHR(mImpl->resources(), (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1074; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1074, 1); |
| countingStream->write((uint64_t*)&cgen_var_1074, 1 * 8); |
| marshal_VkRenderPassCreateInfo2KHR(countingStream, (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1075 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1075); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1076; |
| countingStream->handleMapping()->mapHandles_VkRenderPass_u64(pRenderPass, &cgen_var_1076, 1); |
| countingStream->write((uint64_t*)&cgen_var_1076, 8); |
| } |
| uint32_t packetSize_vkCreateRenderPass2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateRenderPass2KHR = OP_vkCreateRenderPass2KHR; |
| stream->write(&opcode_vkCreateRenderPass2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateRenderPass2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1077; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1077, 1); |
| stream->write((uint64_t*)&cgen_var_1077, 1 * 8); |
| marshal_VkRenderPassCreateInfo2KHR(stream, (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1078 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1078); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1079; |
| stream->handleMapping()->mapHandles_VkRenderPass_u64(pRenderPass, &cgen_var_1079, 1); |
| stream->write((uint64_t*)&cgen_var_1079, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR readParams"); |
| uint64_t cgen_var_1080; |
| stream->read((uint64_t*)&cgen_var_1080, 8); |
| stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_1080, (VkRenderPass*)pRenderPass, 1); |
| AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR returnUnmarshal"); |
| VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateRenderPass2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateRenderPass2KHR");; |
| return vkCreateRenderPass2KHR_VkResult_return; |
| } |
| |
| void VkEncoder::vkCmdBeginRenderPass2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkRenderPassBeginInfo* pRenderPassBegin, |
| const VkSubpassBeginInfoKHR* pSubpassBeginInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR encode"); |
| mImpl->log("start vkCmdBeginRenderPass2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkRenderPassBeginInfo* local_pRenderPassBegin; |
| VkSubpassBeginInfoKHR* local_pSubpassBeginInfo; |
| local_commandBuffer = commandBuffer; |
| local_pRenderPassBegin = nullptr; |
| if (pRenderPassBegin) |
| { |
| local_pRenderPassBegin = (VkRenderPassBeginInfo*)pool->alloc(sizeof(const VkRenderPassBeginInfo)); |
| deepcopy_VkRenderPassBeginInfo(pool, pRenderPassBegin, (VkRenderPassBeginInfo*)(local_pRenderPassBegin)); |
| } |
| local_pSubpassBeginInfo = nullptr; |
| if (pSubpassBeginInfo) |
| { |
| local_pSubpassBeginInfo = (VkSubpassBeginInfoKHR*)pool->alloc(sizeof(const VkSubpassBeginInfoKHR)); |
| deepcopy_VkSubpassBeginInfoKHR(pool, pSubpassBeginInfo, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo)); |
| } |
| if (local_pRenderPassBegin) |
| { |
| transform_tohost_VkRenderPassBeginInfo(mImpl->resources(), (VkRenderPassBeginInfo*)(local_pRenderPassBegin)); |
| } |
| if (local_pSubpassBeginInfo) |
| { |
| transform_tohost_VkSubpassBeginInfoKHR(mImpl->resources(), (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1081; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1081, 1); |
| countingStream->write((uint64_t*)&cgen_var_1081, 1 * 8); |
| marshal_VkRenderPassBeginInfo(countingStream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin)); |
| marshal_VkSubpassBeginInfoKHR(countingStream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo)); |
| } |
| uint32_t packetSize_vkCmdBeginRenderPass2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdBeginRenderPass2KHR = OP_vkCmdBeginRenderPass2KHR; |
| stream->write(&opcode_vkCmdBeginRenderPass2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdBeginRenderPass2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1082; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1082, 1); |
| stream->write((uint64_t*)&cgen_var_1082, 1 * 8); |
| marshal_VkRenderPassBeginInfo(stream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin)); |
| marshal_VkSubpassBeginInfoKHR(stream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo)); |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR readParams"); |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR returnUnmarshal"); |
| mImpl->log("finish vkCmdBeginRenderPass2KHR");; |
| } |
| |
| void VkEncoder::vkCmdNextSubpass2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkSubpassBeginInfoKHR* pSubpassBeginInfo, |
| const VkSubpassEndInfoKHR* pSubpassEndInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR encode"); |
| mImpl->log("start vkCmdNextSubpass2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkSubpassBeginInfoKHR* local_pSubpassBeginInfo; |
| VkSubpassEndInfoKHR* local_pSubpassEndInfo; |
| local_commandBuffer = commandBuffer; |
| local_pSubpassBeginInfo = nullptr; |
| if (pSubpassBeginInfo) |
| { |
| local_pSubpassBeginInfo = (VkSubpassBeginInfoKHR*)pool->alloc(sizeof(const VkSubpassBeginInfoKHR)); |
| deepcopy_VkSubpassBeginInfoKHR(pool, pSubpassBeginInfo, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo)); |
| } |
| local_pSubpassEndInfo = nullptr; |
| if (pSubpassEndInfo) |
| { |
| local_pSubpassEndInfo = (VkSubpassEndInfoKHR*)pool->alloc(sizeof(const VkSubpassEndInfoKHR)); |
| deepcopy_VkSubpassEndInfoKHR(pool, pSubpassEndInfo, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo)); |
| } |
| if (local_pSubpassBeginInfo) |
| { |
| transform_tohost_VkSubpassBeginInfoKHR(mImpl->resources(), (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo)); |
| } |
| if (local_pSubpassEndInfo) |
| { |
| transform_tohost_VkSubpassEndInfoKHR(mImpl->resources(), (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1083; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1083, 1); |
| countingStream->write((uint64_t*)&cgen_var_1083, 1 * 8); |
| marshal_VkSubpassBeginInfoKHR(countingStream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo)); |
| marshal_VkSubpassEndInfoKHR(countingStream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo)); |
| } |
| uint32_t packetSize_vkCmdNextSubpass2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdNextSubpass2KHR = OP_vkCmdNextSubpass2KHR; |
| stream->write(&opcode_vkCmdNextSubpass2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdNextSubpass2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1084; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1084, 1); |
| stream->write((uint64_t*)&cgen_var_1084, 1 * 8); |
| marshal_VkSubpassBeginInfoKHR(stream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo)); |
| marshal_VkSubpassEndInfoKHR(stream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo)); |
| AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR readParams"); |
| AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR returnUnmarshal"); |
| mImpl->log("finish vkCmdNextSubpass2KHR");; |
| } |
| |
| void VkEncoder::vkCmdEndRenderPass2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkSubpassEndInfoKHR* pSubpassEndInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR encode"); |
| mImpl->log("start vkCmdEndRenderPass2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkSubpassEndInfoKHR* local_pSubpassEndInfo; |
| local_commandBuffer = commandBuffer; |
| local_pSubpassEndInfo = nullptr; |
| if (pSubpassEndInfo) |
| { |
| local_pSubpassEndInfo = (VkSubpassEndInfoKHR*)pool->alloc(sizeof(const VkSubpassEndInfoKHR)); |
| deepcopy_VkSubpassEndInfoKHR(pool, pSubpassEndInfo, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo)); |
| } |
| if (local_pSubpassEndInfo) |
| { |
| transform_tohost_VkSubpassEndInfoKHR(mImpl->resources(), (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1085; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1085, 1); |
| countingStream->write((uint64_t*)&cgen_var_1085, 1 * 8); |
| marshal_VkSubpassEndInfoKHR(countingStream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo)); |
| } |
| uint32_t packetSize_vkCmdEndRenderPass2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdEndRenderPass2KHR = OP_vkCmdEndRenderPass2KHR; |
| stream->write(&opcode_vkCmdEndRenderPass2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdEndRenderPass2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1086; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1086, 1); |
| stream->write((uint64_t*)&cgen_var_1086, 1 * 8); |
| marshal_VkSubpassEndInfoKHR(stream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo)); |
| AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR readParams"); |
| AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR returnUnmarshal"); |
| mImpl->log("finish vkCmdEndRenderPass2KHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_shared_presentable_image |
| VkResult VkEncoder::vkGetSwapchainStatusKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR encode"); |
| mImpl->log("start vkGetSwapchainStatusKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSwapchainKHR local_swapchain; |
| local_device = device; |
| local_swapchain = swapchain; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1087; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1087, 1); |
| countingStream->write((uint64_t*)&cgen_var_1087, 1 * 8); |
| uint64_t cgen_var_1088; |
| countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1088, 1); |
| countingStream->write((uint64_t*)&cgen_var_1088, 1 * 8); |
| } |
| uint32_t packetSize_vkGetSwapchainStatusKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetSwapchainStatusKHR = OP_vkGetSwapchainStatusKHR; |
| stream->write(&opcode_vkGetSwapchainStatusKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetSwapchainStatusKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1089; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1089, 1); |
| stream->write((uint64_t*)&cgen_var_1089, 1 * 8); |
| uint64_t cgen_var_1090; |
| stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1090, 1); |
| stream->write((uint64_t*)&cgen_var_1090, 1 * 8); |
| AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR readParams"); |
| AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR returnUnmarshal"); |
| VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetSwapchainStatusKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetSwapchainStatusKHR");; |
| return vkGetSwapchainStatusKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_external_fence_capabilities |
| void VkEncoder::vkGetPhysicalDeviceExternalFencePropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, |
| VkExternalFenceProperties* pExternalFenceProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceExternalFencePropertiesKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceExternalFenceInfo* local_pExternalFenceInfo; |
| local_physicalDevice = physicalDevice; |
| local_pExternalFenceInfo = nullptr; |
| if (pExternalFenceInfo) |
| { |
| local_pExternalFenceInfo = (VkPhysicalDeviceExternalFenceInfo*)pool->alloc(sizeof(const VkPhysicalDeviceExternalFenceInfo)); |
| deepcopy_VkPhysicalDeviceExternalFenceInfo(pool, pExternalFenceInfo, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo)); |
| } |
| if (local_pExternalFenceInfo) |
| { |
| transform_tohost_VkPhysicalDeviceExternalFenceInfo(mImpl->resources(), (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1091; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1091, 1); |
| countingStream->write((uint64_t*)&cgen_var_1091, 1 * 8); |
| marshal_VkPhysicalDeviceExternalFenceInfo(countingStream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo)); |
| marshal_VkExternalFenceProperties(countingStream, (VkExternalFenceProperties*)(pExternalFenceProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceExternalFencePropertiesKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceExternalFencePropertiesKHR = OP_vkGetPhysicalDeviceExternalFencePropertiesKHR; |
| stream->write(&opcode_vkGetPhysicalDeviceExternalFencePropertiesKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceExternalFencePropertiesKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1092; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1092, 1); |
| stream->write((uint64_t*)&cgen_var_1092, 1 * 8); |
| marshal_VkPhysicalDeviceExternalFenceInfo(stream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo)); |
| marshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR readParams"); |
| unmarshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties)); |
| if (pExternalFenceProperties) |
| { |
| transform_fromhost_VkExternalFenceProperties(mImpl->resources(), (VkExternalFenceProperties*)(pExternalFenceProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceExternalFencePropertiesKHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_external_fence |
| #endif |
| #ifdef VK_KHR_external_fence_win32 |
| VkResult VkEncoder::vkImportFenceWin32HandleKHR( |
| VkDevice device, |
| const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR encode"); |
| mImpl->log("start vkImportFenceWin32HandleKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImportFenceWin32HandleInfoKHR* local_pImportFenceWin32HandleInfo; |
| local_device = device; |
| local_pImportFenceWin32HandleInfo = nullptr; |
| if (pImportFenceWin32HandleInfo) |
| { |
| local_pImportFenceWin32HandleInfo = (VkImportFenceWin32HandleInfoKHR*)pool->alloc(sizeof(const VkImportFenceWin32HandleInfoKHR)); |
| deepcopy_VkImportFenceWin32HandleInfoKHR(pool, pImportFenceWin32HandleInfo, (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo)); |
| } |
| if (local_pImportFenceWin32HandleInfo) |
| { |
| transform_tohost_VkImportFenceWin32HandleInfoKHR(mImpl->resources(), (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1093; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1093, 1); |
| countingStream->write((uint64_t*)&cgen_var_1093, 1 * 8); |
| marshal_VkImportFenceWin32HandleInfoKHR(countingStream, (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo)); |
| } |
| uint32_t packetSize_vkImportFenceWin32HandleKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkImportFenceWin32HandleKHR = OP_vkImportFenceWin32HandleKHR; |
| stream->write(&opcode_vkImportFenceWin32HandleKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkImportFenceWin32HandleKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1094; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1094, 1); |
| stream->write((uint64_t*)&cgen_var_1094, 1 * 8); |
| marshal_VkImportFenceWin32HandleInfoKHR(stream, (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo)); |
| AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR readParams"); |
| AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR returnUnmarshal"); |
| VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkImportFenceWin32HandleKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkImportFenceWin32HandleKHR");; |
| return vkImportFenceWin32HandleKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetFenceWin32HandleKHR( |
| VkDevice device, |
| const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, |
| HANDLE* pHandle) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR encode"); |
| mImpl->log("start vkGetFenceWin32HandleKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkFenceGetWin32HandleInfoKHR* local_pGetWin32HandleInfo; |
| local_device = device; |
| local_pGetWin32HandleInfo = nullptr; |
| if (pGetWin32HandleInfo) |
| { |
| local_pGetWin32HandleInfo = (VkFenceGetWin32HandleInfoKHR*)pool->alloc(sizeof(const VkFenceGetWin32HandleInfoKHR)); |
| deepcopy_VkFenceGetWin32HandleInfoKHR(pool, pGetWin32HandleInfo, (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| } |
| if (local_pGetWin32HandleInfo) |
| { |
| transform_tohost_VkFenceGetWin32HandleInfoKHR(mImpl->resources(), (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1095; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1095, 1); |
| countingStream->write((uint64_t*)&cgen_var_1095, 1 * 8); |
| marshal_VkFenceGetWin32HandleInfoKHR(countingStream, (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| countingStream->write((HANDLE*)pHandle, sizeof(HANDLE)); |
| } |
| uint32_t packetSize_vkGetFenceWin32HandleKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetFenceWin32HandleKHR = OP_vkGetFenceWin32HandleKHR; |
| stream->write(&opcode_vkGetFenceWin32HandleKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetFenceWin32HandleKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1096; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1096, 1); |
| stream->write((uint64_t*)&cgen_var_1096, 1 * 8); |
| marshal_VkFenceGetWin32HandleInfoKHR(stream, (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo)); |
| stream->write((HANDLE*)pHandle, sizeof(HANDLE)); |
| AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR readParams"); |
| stream->read((HANDLE*)pHandle, sizeof(HANDLE)); |
| AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR returnUnmarshal"); |
| VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetFenceWin32HandleKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetFenceWin32HandleKHR");; |
| return vkGetFenceWin32HandleKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_external_fence_fd |
| VkResult VkEncoder::vkImportFenceFdKHR( |
| VkDevice device, |
| const VkImportFenceFdInfoKHR* pImportFenceFdInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkImportFenceFdKHR encode"); |
| mImpl->log("start vkImportFenceFdKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImportFenceFdInfoKHR* local_pImportFenceFdInfo; |
| local_device = device; |
| local_pImportFenceFdInfo = nullptr; |
| if (pImportFenceFdInfo) |
| { |
| local_pImportFenceFdInfo = (VkImportFenceFdInfoKHR*)pool->alloc(sizeof(const VkImportFenceFdInfoKHR)); |
| deepcopy_VkImportFenceFdInfoKHR(pool, pImportFenceFdInfo, (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo)); |
| } |
| if (local_pImportFenceFdInfo) |
| { |
| transform_tohost_VkImportFenceFdInfoKHR(mImpl->resources(), (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1097; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1097, 1); |
| countingStream->write((uint64_t*)&cgen_var_1097, 1 * 8); |
| marshal_VkImportFenceFdInfoKHR(countingStream, (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo)); |
| } |
| uint32_t packetSize_vkImportFenceFdKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkImportFenceFdKHR = OP_vkImportFenceFdKHR; |
| stream->write(&opcode_vkImportFenceFdKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkImportFenceFdKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1098; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1098, 1); |
| stream->write((uint64_t*)&cgen_var_1098, 1 * 8); |
| marshal_VkImportFenceFdInfoKHR(stream, (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo)); |
| AEMU_SCOPED_TRACE("vkImportFenceFdKHR readParams"); |
| AEMU_SCOPED_TRACE("vkImportFenceFdKHR returnUnmarshal"); |
| VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkImportFenceFdKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkImportFenceFdKHR");; |
| return vkImportFenceFdKHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetFenceFdKHR( |
| VkDevice device, |
| const VkFenceGetFdInfoKHR* pGetFdInfo, |
| int* pFd) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetFenceFdKHR encode"); |
| mImpl->log("start vkGetFenceFdKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkFenceGetFdInfoKHR* local_pGetFdInfo; |
| local_device = device; |
| local_pGetFdInfo = nullptr; |
| if (pGetFdInfo) |
| { |
| local_pGetFdInfo = (VkFenceGetFdInfoKHR*)pool->alloc(sizeof(const VkFenceGetFdInfoKHR)); |
| deepcopy_VkFenceGetFdInfoKHR(pool, pGetFdInfo, (VkFenceGetFdInfoKHR*)(local_pGetFdInfo)); |
| } |
| if (local_pGetFdInfo) |
| { |
| transform_tohost_VkFenceGetFdInfoKHR(mImpl->resources(), (VkFenceGetFdInfoKHR*)(local_pGetFdInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1099; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1099, 1); |
| countingStream->write((uint64_t*)&cgen_var_1099, 1 * 8); |
| marshal_VkFenceGetFdInfoKHR(countingStream, (VkFenceGetFdInfoKHR*)(local_pGetFdInfo)); |
| countingStream->write((int*)pFd, sizeof(int)); |
| } |
| uint32_t packetSize_vkGetFenceFdKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetFenceFdKHR = OP_vkGetFenceFdKHR; |
| stream->write(&opcode_vkGetFenceFdKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetFenceFdKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1100; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1100, 1); |
| stream->write((uint64_t*)&cgen_var_1100, 1 * 8); |
| marshal_VkFenceGetFdInfoKHR(stream, (VkFenceGetFdInfoKHR*)(local_pGetFdInfo)); |
| stream->write((int*)pFd, sizeof(int)); |
| AEMU_SCOPED_TRACE("vkGetFenceFdKHR readParams"); |
| stream->read((int*)pFd, sizeof(int)); |
| AEMU_SCOPED_TRACE("vkGetFenceFdKHR returnUnmarshal"); |
| VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetFenceFdKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetFenceFdKHR");; |
| return vkGetFenceFdKHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_maintenance2 |
| #endif |
| #ifdef VK_KHR_get_surface_capabilities2 |
| VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilities2KHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, |
| VkSurfaceCapabilities2KHR* pSurfaceCapabilities) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilities2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceSurfaceInfo2KHR* local_pSurfaceInfo; |
| local_physicalDevice = physicalDevice; |
| local_pSurfaceInfo = nullptr; |
| if (pSurfaceInfo) |
| { |
| local_pSurfaceInfo = (VkPhysicalDeviceSurfaceInfo2KHR*)pool->alloc(sizeof(const VkPhysicalDeviceSurfaceInfo2KHR)); |
| deepcopy_VkPhysicalDeviceSurfaceInfo2KHR(pool, pSurfaceInfo, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo)); |
| } |
| if (local_pSurfaceInfo) |
| { |
| transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(mImpl->resources(), (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1101; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1101, 1); |
| countingStream->write((uint64_t*)&cgen_var_1101, 1 * 8); |
| marshal_VkPhysicalDeviceSurfaceInfo2KHR(countingStream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo)); |
| marshal_VkSurfaceCapabilities2KHR(countingStream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceSurfaceCapabilities2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceSurfaceCapabilities2KHR = OP_vkGetPhysicalDeviceSurfaceCapabilities2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceSurfaceCapabilities2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceSurfaceCapabilities2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1102; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1102, 1); |
| stream->write((uint64_t*)&cgen_var_1102, 1 * 8); |
| marshal_VkPhysicalDeviceSurfaceInfo2KHR(stream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo)); |
| marshal_VkSurfaceCapabilities2KHR(stream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR readParams"); |
| unmarshal_VkSurfaceCapabilities2KHR(stream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities)); |
| if (pSurfaceCapabilities) |
| { |
| transform_fromhost_VkSurfaceCapabilities2KHR(mImpl->resources(), (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceSurfaceCapabilities2KHR");; |
| return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDeviceSurfaceFormats2KHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, |
| uint32_t* pSurfaceFormatCount, |
| VkSurfaceFormat2KHR* pSurfaceFormats) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceSurfaceFormats2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkPhysicalDeviceSurfaceInfo2KHR* local_pSurfaceInfo; |
| local_physicalDevice = physicalDevice; |
| local_pSurfaceInfo = nullptr; |
| if (pSurfaceInfo) |
| { |
| local_pSurfaceInfo = (VkPhysicalDeviceSurfaceInfo2KHR*)pool->alloc(sizeof(const VkPhysicalDeviceSurfaceInfo2KHR)); |
| deepcopy_VkPhysicalDeviceSurfaceInfo2KHR(pool, pSurfaceInfo, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo)); |
| } |
| if (local_pSurfaceInfo) |
| { |
| transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(mImpl->resources(), (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1103; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1103, 1); |
| countingStream->write((uint64_t*)&cgen_var_1103, 1 * 8); |
| marshal_VkPhysicalDeviceSurfaceInfo2KHR(countingStream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1104 = (uint64_t)(uintptr_t)pSurfaceFormatCount; |
| countingStream->putBe64(cgen_var_1104); |
| if (pSurfaceFormatCount) |
| { |
| countingStream->write((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1105 = (uint64_t)(uintptr_t)pSurfaceFormats; |
| countingStream->putBe64(cgen_var_1105); |
| if (pSurfaceFormats) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i) |
| { |
| marshal_VkSurfaceFormat2KHR(countingStream, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceSurfaceFormats2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceSurfaceFormats2KHR = OP_vkGetPhysicalDeviceSurfaceFormats2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceSurfaceFormats2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceSurfaceFormats2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1106; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1106, 1); |
| stream->write((uint64_t*)&cgen_var_1106, 1 * 8); |
| marshal_VkPhysicalDeviceSurfaceInfo2KHR(stream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1107 = (uint64_t)(uintptr_t)pSurfaceFormatCount; |
| stream->putBe64(cgen_var_1107); |
| if (pSurfaceFormatCount) |
| { |
| stream->write((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1108 = (uint64_t)(uintptr_t)pSurfaceFormats; |
| stream->putBe64(cgen_var_1108); |
| if (pSurfaceFormats) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i) |
| { |
| marshal_VkSurfaceFormat2KHR(stream, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pSurfaceFormatCount; |
| check_pSurfaceFormatCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pSurfaceFormatCount) |
| { |
| if (!(check_pSurfaceFormatCount)) |
| { |
| fprintf(stderr, "fatal: pSurfaceFormatCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pSurfaceFormatCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkSurfaceFormat2KHR* check_pSurfaceFormats; |
| check_pSurfaceFormats = (VkSurfaceFormat2KHR*)(uintptr_t)stream->getBe64(); |
| if (pSurfaceFormats) |
| { |
| if (!(check_pSurfaceFormats)) |
| { |
| fprintf(stderr, "fatal: pSurfaceFormats inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i) |
| { |
| unmarshal_VkSurfaceFormat2KHR(stream, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i)); |
| } |
| } |
| if (pSurfaceFormats) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i) |
| { |
| transform_fromhost_VkSurfaceFormat2KHR(mImpl->resources(), (VkSurfaceFormat2KHR*)(pSurfaceFormats + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceSurfaceFormats2KHR");; |
| return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_variable_pointers |
| #endif |
| #ifdef VK_KHR_get_display_properties2 |
| VkResult VkEncoder::vkGetPhysicalDeviceDisplayProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkDisplayProperties2KHR* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceDisplayProperties2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1111; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1111, 1); |
| countingStream->write((uint64_t*)&cgen_var_1111, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1112 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_1112); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1113 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_1113); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayProperties2KHR(countingStream, (VkDisplayProperties2KHR*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceDisplayProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceDisplayProperties2KHR = OP_vkGetPhysicalDeviceDisplayProperties2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceDisplayProperties2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceDisplayProperties2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1114; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1114, 1); |
| stream->write((uint64_t*)&cgen_var_1114, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1115 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_1115); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1116 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_1116); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayProperties2KHR(stream, (VkDisplayProperties2KHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkDisplayProperties2KHR* check_pProperties; |
| check_pProperties = (VkDisplayProperties2KHR*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkDisplayProperties2KHR(stream, (VkDisplayProperties2KHR*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkDisplayProperties2KHR(mImpl->resources(), (VkDisplayProperties2KHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceDisplayProperties2KHR");; |
| return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkDisplayPlaneProperties2KHR* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR encode"); |
| mImpl->log("start vkGetPhysicalDeviceDisplayPlaneProperties2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1119; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1119, 1); |
| countingStream->write((uint64_t*)&cgen_var_1119, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1120 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_1120); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1121 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_1121); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayPlaneProperties2KHR(countingStream, (VkDisplayPlaneProperties2KHR*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = OP_vkGetPhysicalDeviceDisplayPlaneProperties2KHR; |
| stream->write(&opcode_vkGetPhysicalDeviceDisplayPlaneProperties2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceDisplayPlaneProperties2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1122; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1122, 1); |
| stream->write((uint64_t*)&cgen_var_1122, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1123 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_1123); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1124 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_1124); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayPlaneProperties2KHR(stream, (VkDisplayPlaneProperties2KHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkDisplayPlaneProperties2KHR* check_pProperties; |
| check_pProperties = (VkDisplayPlaneProperties2KHR*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkDisplayPlaneProperties2KHR(stream, (VkDisplayPlaneProperties2KHR*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkDisplayPlaneProperties2KHR(mImpl->resources(), (VkDisplayPlaneProperties2KHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceDisplayPlaneProperties2KHR");; |
| return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetDisplayModeProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayKHR display, |
| uint32_t* pPropertyCount, |
| VkDisplayModeProperties2KHR* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR encode"); |
| mImpl->log("start vkGetDisplayModeProperties2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkDisplayKHR local_display; |
| local_physicalDevice = physicalDevice; |
| local_display = display; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1127; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1127, 1); |
| countingStream->write((uint64_t*)&cgen_var_1127, 1 * 8); |
| uint64_t cgen_var_1128; |
| countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1128, 1); |
| countingStream->write((uint64_t*)&cgen_var_1128, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1129 = (uint64_t)(uintptr_t)pPropertyCount; |
| countingStream->putBe64(cgen_var_1129); |
| if (pPropertyCount) |
| { |
| countingStream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1130 = (uint64_t)(uintptr_t)pProperties; |
| countingStream->putBe64(cgen_var_1130); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayModeProperties2KHR(countingStream, (VkDisplayModeProperties2KHR*)(pProperties + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetDisplayModeProperties2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDisplayModeProperties2KHR = OP_vkGetDisplayModeProperties2KHR; |
| stream->write(&opcode_vkGetDisplayModeProperties2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDisplayModeProperties2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1131; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1131, 1); |
| stream->write((uint64_t*)&cgen_var_1131, 1 * 8); |
| uint64_t cgen_var_1132; |
| stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1132, 1); |
| stream->write((uint64_t*)&cgen_var_1132, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1133 = (uint64_t)(uintptr_t)pPropertyCount; |
| stream->putBe64(cgen_var_1133); |
| if (pPropertyCount) |
| { |
| stream->write((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1134 = (uint64_t)(uintptr_t)pProperties; |
| stream->putBe64(cgen_var_1134); |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| marshal_VkDisplayModeProperties2KHR(stream, (VkDisplayModeProperties2KHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPropertyCount; |
| check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPropertyCount) |
| { |
| if (!(check_pPropertyCount)) |
| { |
| fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkDisplayModeProperties2KHR* check_pProperties; |
| check_pProperties = (VkDisplayModeProperties2KHR*)(uintptr_t)stream->getBe64(); |
| if (pProperties) |
| { |
| if (!(check_pProperties)) |
| { |
| fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| unmarshal_VkDisplayModeProperties2KHR(stream, (VkDisplayModeProperties2KHR*)(pProperties + i)); |
| } |
| } |
| if (pProperties) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i) |
| { |
| transform_fromhost_VkDisplayModeProperties2KHR(mImpl->resources(), (VkDisplayModeProperties2KHR*)(pProperties + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR returnUnmarshal"); |
| VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetDisplayModeProperties2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetDisplayModeProperties2KHR");; |
| return vkGetDisplayModeProperties2KHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetDisplayPlaneCapabilities2KHR( |
| VkPhysicalDevice physicalDevice, |
| const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, |
| VkDisplayPlaneCapabilities2KHR* pCapabilities) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR encode"); |
| mImpl->log("start vkGetDisplayPlaneCapabilities2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkDisplayPlaneInfo2KHR* local_pDisplayPlaneInfo; |
| local_physicalDevice = physicalDevice; |
| local_pDisplayPlaneInfo = nullptr; |
| if (pDisplayPlaneInfo) |
| { |
| local_pDisplayPlaneInfo = (VkDisplayPlaneInfo2KHR*)pool->alloc(sizeof(const VkDisplayPlaneInfo2KHR)); |
| deepcopy_VkDisplayPlaneInfo2KHR(pool, pDisplayPlaneInfo, (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo)); |
| } |
| if (local_pDisplayPlaneInfo) |
| { |
| transform_tohost_VkDisplayPlaneInfo2KHR(mImpl->resources(), (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1137; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1137, 1); |
| countingStream->write((uint64_t*)&cgen_var_1137, 1 * 8); |
| marshal_VkDisplayPlaneInfo2KHR(countingStream, (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo)); |
| marshal_VkDisplayPlaneCapabilities2KHR(countingStream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities)); |
| } |
| uint32_t packetSize_vkGetDisplayPlaneCapabilities2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDisplayPlaneCapabilities2KHR = OP_vkGetDisplayPlaneCapabilities2KHR; |
| stream->write(&opcode_vkGetDisplayPlaneCapabilities2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDisplayPlaneCapabilities2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1138; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1138, 1); |
| stream->write((uint64_t*)&cgen_var_1138, 1 * 8); |
| marshal_VkDisplayPlaneInfo2KHR(stream, (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo)); |
| marshal_VkDisplayPlaneCapabilities2KHR(stream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities)); |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR readParams"); |
| unmarshal_VkDisplayPlaneCapabilities2KHR(stream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities)); |
| if (pCapabilities) |
| { |
| transform_fromhost_VkDisplayPlaneCapabilities2KHR(mImpl->resources(), (VkDisplayPlaneCapabilities2KHR*)(pCapabilities)); |
| } |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR returnUnmarshal"); |
| VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkGetDisplayPlaneCapabilities2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetDisplayPlaneCapabilities2KHR");; |
| return vkGetDisplayPlaneCapabilities2KHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_dedicated_allocation |
| #endif |
| #ifdef VK_KHR_storage_buffer_storage_class |
| #endif |
| #ifdef VK_KHR_relaxed_block_layout |
| #endif |
| #ifdef VK_KHR_get_memory_requirements2 |
| void VkEncoder::vkGetImageMemoryRequirements2KHR( |
| VkDevice device, |
| const VkImageMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR encode"); |
| mImpl->log("start vkGetImageMemoryRequirements2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImageMemoryRequirementsInfo2* local_pInfo; |
| local_device = device; |
| local_pInfo = nullptr; |
| if (pInfo) |
| { |
| local_pInfo = (VkImageMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkImageMemoryRequirementsInfo2)); |
| deepcopy_VkImageMemoryRequirementsInfo2(pool, pInfo, (VkImageMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| if (local_pInfo) |
| { |
| transform_tohost_VkImageMemoryRequirementsInfo2(mImpl->resources(), (VkImageMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1139; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1139, 1); |
| countingStream->write((uint64_t*)&cgen_var_1139, 1 * 8); |
| marshal_VkImageMemoryRequirementsInfo2(countingStream, (VkImageMemoryRequirementsInfo2*)(local_pInfo)); |
| marshal_VkMemoryRequirements2(countingStream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| } |
| uint32_t packetSize_vkGetImageMemoryRequirements2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetImageMemoryRequirements2KHR = OP_vkGetImageMemoryRequirements2KHR; |
| stream->write(&opcode_vkGetImageMemoryRequirements2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetImageMemoryRequirements2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1140; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1140, 1); |
| stream->write((uint64_t*)&cgen_var_1140, 1 * 8); |
| marshal_VkImageMemoryRequirementsInfo2(stream, (VkImageMemoryRequirementsInfo2*)(local_pInfo)); |
| marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR readParams"); |
| unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| if (pMemoryRequirements) |
| { |
| transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements)); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR returnUnmarshal"); |
| mImpl->log("finish vkGetImageMemoryRequirements2KHR");; |
| } |
| |
| void VkEncoder::vkGetBufferMemoryRequirements2KHR( |
| VkDevice device, |
| const VkBufferMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR encode"); |
| mImpl->log("start vkGetBufferMemoryRequirements2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkBufferMemoryRequirementsInfo2* local_pInfo; |
| local_device = device; |
| local_pInfo = nullptr; |
| if (pInfo) |
| { |
| local_pInfo = (VkBufferMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkBufferMemoryRequirementsInfo2)); |
| deepcopy_VkBufferMemoryRequirementsInfo2(pool, pInfo, (VkBufferMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| if (local_pInfo) |
| { |
| transform_tohost_VkBufferMemoryRequirementsInfo2(mImpl->resources(), (VkBufferMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1141; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1141, 1); |
| countingStream->write((uint64_t*)&cgen_var_1141, 1 * 8); |
| marshal_VkBufferMemoryRequirementsInfo2(countingStream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo)); |
| marshal_VkMemoryRequirements2(countingStream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| } |
| uint32_t packetSize_vkGetBufferMemoryRequirements2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetBufferMemoryRequirements2KHR = OP_vkGetBufferMemoryRequirements2KHR; |
| stream->write(&opcode_vkGetBufferMemoryRequirements2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetBufferMemoryRequirements2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1142; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1142, 1); |
| stream->write((uint64_t*)&cgen_var_1142, 1 * 8); |
| marshal_VkBufferMemoryRequirementsInfo2(stream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo)); |
| marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR readParams"); |
| unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements)); |
| if (pMemoryRequirements) |
| { |
| transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements)); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR returnUnmarshal"); |
| mImpl->log("finish vkGetBufferMemoryRequirements2KHR");; |
| } |
| |
| void VkEncoder::vkGetImageSparseMemoryRequirements2KHR( |
| VkDevice device, |
| const VkImageSparseMemoryRequirementsInfo2* pInfo, |
| uint32_t* pSparseMemoryRequirementCount, |
| VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR encode"); |
| mImpl->log("start vkGetImageSparseMemoryRequirements2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImageSparseMemoryRequirementsInfo2* local_pInfo; |
| local_device = device; |
| local_pInfo = nullptr; |
| if (pInfo) |
| { |
| local_pInfo = (VkImageSparseMemoryRequirementsInfo2*)pool->alloc(sizeof(const VkImageSparseMemoryRequirementsInfo2)); |
| deepcopy_VkImageSparseMemoryRequirementsInfo2(pool, pInfo, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| if (local_pInfo) |
| { |
| transform_tohost_VkImageSparseMemoryRequirementsInfo2(mImpl->resources(), (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1143; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1143, 1); |
| countingStream->write((uint64_t*)&cgen_var_1143, 1 * 8); |
| marshal_VkImageSparseMemoryRequirementsInfo2(countingStream, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1144 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount; |
| countingStream->putBe64(cgen_var_1144); |
| if (pSparseMemoryRequirementCount) |
| { |
| countingStream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1145 = (uint64_t)(uintptr_t)pSparseMemoryRequirements; |
| countingStream->putBe64(cgen_var_1145); |
| if (pSparseMemoryRequirements) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| marshal_VkSparseImageMemoryRequirements2(countingStream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetImageSparseMemoryRequirements2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetImageSparseMemoryRequirements2KHR = OP_vkGetImageSparseMemoryRequirements2KHR; |
| stream->write(&opcode_vkGetImageSparseMemoryRequirements2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetImageSparseMemoryRequirements2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1146; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1146, 1); |
| stream->write((uint64_t*)&cgen_var_1146, 1 * 8); |
| marshal_VkImageSparseMemoryRequirementsInfo2(stream, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1147 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount; |
| stream->putBe64(cgen_var_1147); |
| if (pSparseMemoryRequirementCount) |
| { |
| stream->write((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1148 = (uint64_t)(uintptr_t)pSparseMemoryRequirements; |
| stream->putBe64(cgen_var_1148); |
| if (pSparseMemoryRequirements) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| marshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pSparseMemoryRequirementCount; |
| check_pSparseMemoryRequirementCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pSparseMemoryRequirementCount) |
| { |
| if (!(check_pSparseMemoryRequirementCount)) |
| { |
| fprintf(stderr, "fatal: pSparseMemoryRequirementCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkSparseImageMemoryRequirements2* check_pSparseMemoryRequirements; |
| check_pSparseMemoryRequirements = (VkSparseImageMemoryRequirements2*)(uintptr_t)stream->getBe64(); |
| if (pSparseMemoryRequirements) |
| { |
| if (!(check_pSparseMemoryRequirements)) |
| { |
| fprintf(stderr, "fatal: pSparseMemoryRequirements inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| unmarshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| if (pSparseMemoryRequirements) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i) |
| { |
| transform_fromhost_VkSparseImageMemoryRequirements2(mImpl->resources(), (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR returnUnmarshal"); |
| mImpl->log("finish vkGetImageSparseMemoryRequirements2KHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_image_format_list |
| #endif |
| #ifdef VK_KHR_sampler_ycbcr_conversion |
| VkResult VkEncoder::vkCreateSamplerYcbcrConversionKHR( |
| VkDevice device, |
| const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSamplerYcbcrConversion* pYcbcrConversion) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR encode"); |
| mImpl->log("start vkCreateSamplerYcbcrConversionKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSamplerYcbcrConversionCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkSamplerYcbcrConversionCreateInfo*)pool->alloc(sizeof(const VkSamplerYcbcrConversionCreateInfo)); |
| deepcopy_VkSamplerYcbcrConversionCreateInfo(pool, pCreateInfo, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkSamplerYcbcrConversionCreateInfo(mImpl->resources(), (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1151; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1151, 1); |
| countingStream->write((uint64_t*)&cgen_var_1151, 1 * 8); |
| marshal_VkSamplerYcbcrConversionCreateInfo(countingStream, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1152 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1152); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1153; |
| countingStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(pYcbcrConversion, &cgen_var_1153, 1); |
| countingStream->write((uint64_t*)&cgen_var_1153, 8); |
| } |
| uint32_t packetSize_vkCreateSamplerYcbcrConversionKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateSamplerYcbcrConversionKHR = OP_vkCreateSamplerYcbcrConversionKHR; |
| stream->write(&opcode_vkCreateSamplerYcbcrConversionKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateSamplerYcbcrConversionKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1154; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1154, 1); |
| stream->write((uint64_t*)&cgen_var_1154, 1 * 8); |
| marshal_VkSamplerYcbcrConversionCreateInfo(stream, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1155 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1155); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1156; |
| stream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(pYcbcrConversion, &cgen_var_1156, 1); |
| stream->write((uint64_t*)&cgen_var_1156, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_1157; |
| stream->read((uint64_t*)&cgen_var_1157, 8); |
| stream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_1157, (VkSamplerYcbcrConversion*)pYcbcrConversion, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR returnUnmarshal"); |
| VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateSamplerYcbcrConversionKHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateSamplerYcbcrConversionKHR");; |
| return vkCreateSamplerYcbcrConversionKHR_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroySamplerYcbcrConversionKHR( |
| VkDevice device, |
| VkSamplerYcbcrConversion ycbcrConversion, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR encode"); |
| mImpl->log("start vkDestroySamplerYcbcrConversionKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSamplerYcbcrConversion local_ycbcrConversion; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_ycbcrConversion = ycbcrConversion; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1158; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1158, 1); |
| countingStream->write((uint64_t*)&cgen_var_1158, 1 * 8); |
| uint64_t cgen_var_1159; |
| countingStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&local_ycbcrConversion, &cgen_var_1159, 1); |
| countingStream->write((uint64_t*)&cgen_var_1159, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1160 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1160); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroySamplerYcbcrConversionKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroySamplerYcbcrConversionKHR = OP_vkDestroySamplerYcbcrConversionKHR; |
| stream->write(&opcode_vkDestroySamplerYcbcrConversionKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroySamplerYcbcrConversionKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1161; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1161, 1); |
| stream->write((uint64_t*)&cgen_var_1161, 1 * 8); |
| uint64_t cgen_var_1162; |
| stream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&local_ycbcrConversion, &cgen_var_1162, 1); |
| stream->write((uint64_t*)&cgen_var_1162, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1163 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1163); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR readParams"); |
| AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkSamplerYcbcrConversion((VkSamplerYcbcrConversion*)&ycbcrConversion); |
| mImpl->log("finish vkDestroySamplerYcbcrConversionKHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_bind_memory2 |
| VkResult VkEncoder::vkBindBufferMemory2KHR( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindBufferMemoryInfo* pBindInfos) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR encode"); |
| mImpl->log("start vkBindBufferMemory2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_bindInfoCount; |
| VkBindBufferMemoryInfo* local_pBindInfos; |
| local_device = device; |
| local_bindInfoCount = bindInfoCount; |
| local_pBindInfos = nullptr; |
| if (pBindInfos) |
| { |
| local_pBindInfos = (VkBindBufferMemoryInfo*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindBufferMemoryInfo)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| deepcopy_VkBindBufferMemoryInfo(pool, pBindInfos + i, (VkBindBufferMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| if (local_pBindInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| transform_tohost_VkBindBufferMemoryInfo(mImpl->resources(), (VkBindBufferMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1164; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1164, 1); |
| countingStream->write((uint64_t*)&cgen_var_1164, 1 * 8); |
| countingStream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| marshal_VkBindBufferMemoryInfo(countingStream, (VkBindBufferMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| uint32_t packetSize_vkBindBufferMemory2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkBindBufferMemory2KHR = OP_vkBindBufferMemory2KHR; |
| stream->write(&opcode_vkBindBufferMemory2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkBindBufferMemory2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1165; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1165, 1); |
| stream->write((uint64_t*)&cgen_var_1165, 1 * 8); |
| stream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| marshal_VkBindBufferMemoryInfo(stream, (VkBindBufferMemoryInfo*)(local_pBindInfos + i)); |
| } |
| AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR readParams"); |
| AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR returnUnmarshal"); |
| VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkBindBufferMemory2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkBindBufferMemory2KHR");; |
| return vkBindBufferMemory2KHR_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkBindImageMemory2KHR( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindImageMemoryInfo* pBindInfos) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkBindImageMemory2KHR encode"); |
| mImpl->log("start vkBindImageMemory2KHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_bindInfoCount; |
| VkBindImageMemoryInfo* local_pBindInfos; |
| local_device = device; |
| local_bindInfoCount = bindInfoCount; |
| local_pBindInfos = nullptr; |
| if (pBindInfos) |
| { |
| local_pBindInfos = (VkBindImageMemoryInfo*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindImageMemoryInfo)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| deepcopy_VkBindImageMemoryInfo(pool, pBindInfos + i, (VkBindImageMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| if (local_pBindInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| transform_tohost_VkBindImageMemoryInfo(mImpl->resources(), (VkBindImageMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1166; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1166, 1); |
| countingStream->write((uint64_t*)&cgen_var_1166, 1 * 8); |
| countingStream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| marshal_VkBindImageMemoryInfo(countingStream, (VkBindImageMemoryInfo*)(local_pBindInfos + i)); |
| } |
| } |
| uint32_t packetSize_vkBindImageMemory2KHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkBindImageMemory2KHR = OP_vkBindImageMemory2KHR; |
| stream->write(&opcode_vkBindImageMemory2KHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkBindImageMemory2KHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1167; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1167, 1); |
| stream->write((uint64_t*)&cgen_var_1167, 1 * 8); |
| stream->write((uint32_t*)&local_bindInfoCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i) |
| { |
| marshal_VkBindImageMemoryInfo(stream, (VkBindImageMemoryInfo*)(local_pBindInfos + i)); |
| } |
| AEMU_SCOPED_TRACE("vkBindImageMemory2KHR readParams"); |
| AEMU_SCOPED_TRACE("vkBindImageMemory2KHR returnUnmarshal"); |
| VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0; |
| stream->read(&vkBindImageMemory2KHR_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkBindImageMemory2KHR");; |
| return vkBindImageMemory2KHR_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_KHR_maintenance3 |
| void VkEncoder::vkGetDescriptorSetLayoutSupportKHR( |
| VkDevice device, |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, |
| VkDescriptorSetLayoutSupport* pSupport) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR encode"); |
| mImpl->log("start vkGetDescriptorSetLayoutSupportKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorSetLayoutCreateInfo* local_pCreateInfo; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDescriptorSetLayoutCreateInfo*)pool->alloc(sizeof(const VkDescriptorSetLayoutCreateInfo)); |
| deepcopy_VkDescriptorSetLayoutCreateInfo(pool, pCreateInfo, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDescriptorSetLayoutCreateInfo(mImpl->resources(), (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1168; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1168, 1); |
| countingStream->write((uint64_t*)&cgen_var_1168, 1 * 8); |
| marshal_VkDescriptorSetLayoutCreateInfo(countingStream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| marshal_VkDescriptorSetLayoutSupport(countingStream, (VkDescriptorSetLayoutSupport*)(pSupport)); |
| } |
| uint32_t packetSize_vkGetDescriptorSetLayoutSupportKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetDescriptorSetLayoutSupportKHR = OP_vkGetDescriptorSetLayoutSupportKHR; |
| stream->write(&opcode_vkGetDescriptorSetLayoutSupportKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetDescriptorSetLayoutSupportKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1169; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1169, 1); |
| stream->write((uint64_t*)&cgen_var_1169, 1 * 8); |
| marshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo)); |
| marshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport)); |
| AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR readParams"); |
| unmarshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport)); |
| if (pSupport) |
| { |
| transform_fromhost_VkDescriptorSetLayoutSupport(mImpl->resources(), (VkDescriptorSetLayoutSupport*)(pSupport)); |
| } |
| AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR returnUnmarshal"); |
| mImpl->log("finish vkGetDescriptorSetLayoutSupportKHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_draw_indirect_count |
| void VkEncoder::vkCmdDrawIndirectCountKHR( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR encode"); |
| mImpl->log("start vkCmdDrawIndirectCountKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_buffer; |
| VkDeviceSize local_offset; |
| VkBuffer local_countBuffer; |
| VkDeviceSize local_countBufferOffset; |
| uint32_t local_maxDrawCount; |
| uint32_t local_stride; |
| local_commandBuffer = commandBuffer; |
| local_buffer = buffer; |
| local_offset = offset; |
| local_countBuffer = countBuffer; |
| local_countBufferOffset = countBufferOffset; |
| local_maxDrawCount = maxDrawCount; |
| local_stride = stride; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1170; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1170, 1); |
| countingStream->write((uint64_t*)&cgen_var_1170, 1 * 8); |
| uint64_t cgen_var_1171; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1171, 1); |
| countingStream->write((uint64_t*)&cgen_var_1171, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| uint64_t cgen_var_1172; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1172, 1); |
| countingStream->write((uint64_t*)&cgen_var_1172, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize)); |
| countingStream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDrawIndirectCountKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDrawIndirectCountKHR = OP_vkCmdDrawIndirectCountKHR; |
| stream->write(&opcode_vkCmdDrawIndirectCountKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDrawIndirectCountKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1173; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1173, 1); |
| stream->write((uint64_t*)&cgen_var_1173, 1 * 8); |
| uint64_t cgen_var_1174; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1174, 1); |
| stream->write((uint64_t*)&cgen_var_1174, 1 * 8); |
| stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| uint64_t cgen_var_1175; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1175, 1); |
| stream->write((uint64_t*)&cgen_var_1175, 1 * 8); |
| stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize)); |
| stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR returnUnmarshal"); |
| mImpl->log("finish vkCmdDrawIndirectCountKHR");; |
| } |
| |
| void VkEncoder::vkCmdDrawIndexedIndirectCountKHR( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR encode"); |
| mImpl->log("start vkCmdDrawIndexedIndirectCountKHR"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_buffer; |
| VkDeviceSize local_offset; |
| VkBuffer local_countBuffer; |
| VkDeviceSize local_countBufferOffset; |
| uint32_t local_maxDrawCount; |
| uint32_t local_stride; |
| local_commandBuffer = commandBuffer; |
| local_buffer = buffer; |
| local_offset = offset; |
| local_countBuffer = countBuffer; |
| local_countBufferOffset = countBufferOffset; |
| local_maxDrawCount = maxDrawCount; |
| local_stride = stride; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1176; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1176, 1); |
| countingStream->write((uint64_t*)&cgen_var_1176, 1 * 8); |
| uint64_t cgen_var_1177; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1177, 1); |
| countingStream->write((uint64_t*)&cgen_var_1177, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| uint64_t cgen_var_1178; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1178, 1); |
| countingStream->write((uint64_t*)&cgen_var_1178, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize)); |
| countingStream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDrawIndexedIndirectCountKHR = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDrawIndexedIndirectCountKHR = OP_vkCmdDrawIndexedIndirectCountKHR; |
| stream->write(&opcode_vkCmdDrawIndexedIndirectCountKHR, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDrawIndexedIndirectCountKHR, sizeof(uint32_t)); |
| uint64_t cgen_var_1179; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1179, 1); |
| stream->write((uint64_t*)&cgen_var_1179, 1 * 8); |
| uint64_t cgen_var_1180; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1180, 1); |
| stream->write((uint64_t*)&cgen_var_1180, 1 * 8); |
| stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| uint64_t cgen_var_1181; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1181, 1); |
| stream->write((uint64_t*)&cgen_var_1181, 1 * 8); |
| stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize)); |
| stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR returnUnmarshal"); |
| mImpl->log("finish vkCmdDrawIndexedIndirectCountKHR");; |
| } |
| |
| #endif |
| #ifdef VK_KHR_8bit_storage |
| #endif |
| #ifdef VK_ANDROID_native_buffer |
| VkResult VkEncoder::vkGetSwapchainGrallocUsageANDROID( |
| VkDevice device, |
| VkFormat format, |
| VkImageUsageFlags imageUsage, |
| int* grallocUsage) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID encode"); |
| mImpl->log("start vkGetSwapchainGrallocUsageANDROID"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkFormat local_format; |
| VkImageUsageFlags local_imageUsage; |
| local_device = device; |
| local_format = format; |
| local_imageUsage = imageUsage; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1182; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1182, 1); |
| countingStream->write((uint64_t*)&cgen_var_1182, 1 * 8); |
| countingStream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| countingStream->write((VkImageUsageFlags*)&local_imageUsage, sizeof(VkImageUsageFlags)); |
| countingStream->write((int*)grallocUsage, sizeof(int)); |
| } |
| uint32_t packetSize_vkGetSwapchainGrallocUsageANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetSwapchainGrallocUsageANDROID = OP_vkGetSwapchainGrallocUsageANDROID; |
| stream->write(&opcode_vkGetSwapchainGrallocUsageANDROID, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetSwapchainGrallocUsageANDROID, sizeof(uint32_t)); |
| uint64_t cgen_var_1183; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1183, 1); |
| stream->write((uint64_t*)&cgen_var_1183, 1 * 8); |
| stream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| stream->write((VkImageUsageFlags*)&local_imageUsage, sizeof(VkImageUsageFlags)); |
| stream->write((int*)grallocUsage, sizeof(int)); |
| AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID readParams"); |
| stream->read((int*)grallocUsage, sizeof(int)); |
| AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID returnUnmarshal"); |
| VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0; |
| stream->read(&vkGetSwapchainGrallocUsageANDROID_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetSwapchainGrallocUsageANDROID");; |
| return vkGetSwapchainGrallocUsageANDROID_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkAcquireImageANDROID( |
| VkDevice device, |
| VkImage image, |
| int nativeFenceFd, |
| VkSemaphore semaphore, |
| VkFence fence) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkAcquireImageANDROID encode"); |
| mImpl->log("start vkAcquireImageANDROID"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImage local_image; |
| int local_nativeFenceFd; |
| VkSemaphore local_semaphore; |
| VkFence local_fence; |
| local_device = device; |
| local_image = image; |
| local_nativeFenceFd = nativeFenceFd; |
| local_semaphore = semaphore; |
| local_fence = fence; |
| mImpl->resources()->unwrap_vkAcquireImageANDROID_nativeFenceFd(nativeFenceFd, &local_nativeFenceFd); |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1184; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1184, 1); |
| countingStream->write((uint64_t*)&cgen_var_1184, 1 * 8); |
| uint64_t cgen_var_1185; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1185, 1); |
| countingStream->write((uint64_t*)&cgen_var_1185, 1 * 8); |
| countingStream->write((int*)&local_nativeFenceFd, sizeof(int)); |
| uint64_t cgen_var_1186; |
| countingStream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_1186, 1); |
| countingStream->write((uint64_t*)&cgen_var_1186, 1 * 8); |
| uint64_t cgen_var_1187; |
| countingStream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_1187, 1); |
| countingStream->write((uint64_t*)&cgen_var_1187, 1 * 8); |
| } |
| uint32_t packetSize_vkAcquireImageANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkAcquireImageANDROID = OP_vkAcquireImageANDROID; |
| stream->write(&opcode_vkAcquireImageANDROID, sizeof(uint32_t)); |
| stream->write(&packetSize_vkAcquireImageANDROID, sizeof(uint32_t)); |
| uint64_t cgen_var_1188; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1188, 1); |
| stream->write((uint64_t*)&cgen_var_1188, 1 * 8); |
| uint64_t cgen_var_1189; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1189, 1); |
| stream->write((uint64_t*)&cgen_var_1189, 1 * 8); |
| stream->write((int*)&local_nativeFenceFd, sizeof(int)); |
| uint64_t cgen_var_1190; |
| stream->handleMapping()->mapHandles_VkSemaphore_u64(&local_semaphore, &cgen_var_1190, 1); |
| stream->write((uint64_t*)&cgen_var_1190, 1 * 8); |
| uint64_t cgen_var_1191; |
| stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_1191, 1); |
| stream->write((uint64_t*)&cgen_var_1191, 1 * 8); |
| AEMU_SCOPED_TRACE("vkAcquireImageANDROID readParams"); |
| AEMU_SCOPED_TRACE("vkAcquireImageANDROID returnUnmarshal"); |
| VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0; |
| stream->read(&vkAcquireImageANDROID_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkAcquireImageANDROID");; |
| return vkAcquireImageANDROID_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkQueueSignalReleaseImageANDROID( |
| VkQueue queue, |
| uint32_t waitSemaphoreCount, |
| const VkSemaphore* pWaitSemaphores, |
| VkImage image, |
| int* pNativeFenceFd) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID encode"); |
| mImpl->log("start vkQueueSignalReleaseImageANDROID"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkQueue local_queue; |
| uint32_t local_waitSemaphoreCount; |
| VkSemaphore* local_pWaitSemaphores; |
| VkImage local_image; |
| local_queue = queue; |
| local_waitSemaphoreCount = waitSemaphoreCount; |
| local_pWaitSemaphores = nullptr; |
| if (pWaitSemaphores) |
| { |
| local_pWaitSemaphores = (VkSemaphore*)pool->dupArray(pWaitSemaphores, ((waitSemaphoreCount)) * sizeof(const VkSemaphore)); |
| } |
| local_image = image; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1192; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1192, 1); |
| countingStream->write((uint64_t*)&cgen_var_1192, 1 * 8); |
| countingStream->write((uint32_t*)&local_waitSemaphoreCount, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1193 = (uint64_t)(uintptr_t)local_pWaitSemaphores; |
| countingStream->putBe64(cgen_var_1193); |
| if (local_pWaitSemaphores) |
| { |
| if (((waitSemaphoreCount))) |
| { |
| uint64_t* cgen_var_1194; |
| countingStream->alloc((void**)&cgen_var_1194, ((waitSemaphoreCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkSemaphore_u64(local_pWaitSemaphores, cgen_var_1194, ((waitSemaphoreCount))); |
| countingStream->write((uint64_t*)cgen_var_1194, ((waitSemaphoreCount)) * 8); |
| } |
| } |
| uint64_t cgen_var_1195; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1195, 1); |
| countingStream->write((uint64_t*)&cgen_var_1195, 1 * 8); |
| countingStream->write((int*)pNativeFenceFd, sizeof(int)); |
| } |
| uint32_t packetSize_vkQueueSignalReleaseImageANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkQueueSignalReleaseImageANDROID = OP_vkQueueSignalReleaseImageANDROID; |
| stream->write(&opcode_vkQueueSignalReleaseImageANDROID, sizeof(uint32_t)); |
| stream->write(&packetSize_vkQueueSignalReleaseImageANDROID, sizeof(uint32_t)); |
| uint64_t cgen_var_1196; |
| stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1196, 1); |
| stream->write((uint64_t*)&cgen_var_1196, 1 * 8); |
| stream->write((uint32_t*)&local_waitSemaphoreCount, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1197 = (uint64_t)(uintptr_t)local_pWaitSemaphores; |
| stream->putBe64(cgen_var_1197); |
| if (local_pWaitSemaphores) |
| { |
| if (((waitSemaphoreCount))) |
| { |
| uint64_t* cgen_var_1198; |
| stream->alloc((void**)&cgen_var_1198, ((waitSemaphoreCount)) * 8); |
| stream->handleMapping()->mapHandles_VkSemaphore_u64(local_pWaitSemaphores, cgen_var_1198, ((waitSemaphoreCount))); |
| stream->write((uint64_t*)cgen_var_1198, ((waitSemaphoreCount)) * 8); |
| } |
| } |
| uint64_t cgen_var_1199; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1199, 1); |
| stream->write((uint64_t*)&cgen_var_1199, 1 * 8); |
| stream->write((int*)pNativeFenceFd, sizeof(int)); |
| AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID readParams"); |
| stream->read((int*)pNativeFenceFd, sizeof(int)); |
| AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID returnUnmarshal"); |
| VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0; |
| stream->read(&vkQueueSignalReleaseImageANDROID_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkQueueSignalReleaseImageANDROID");; |
| return vkQueueSignalReleaseImageANDROID_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_EXT_debug_report |
| VkResult VkEncoder::vkCreateDebugReportCallbackEXT( |
| VkInstance instance, |
| const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDebugReportCallbackEXT* pCallback) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT encode"); |
| mImpl->log("start vkCreateDebugReportCallbackEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkDebugReportCallbackCreateInfoEXT* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDebugReportCallbackCreateInfoEXT*)pool->alloc(sizeof(const VkDebugReportCallbackCreateInfoEXT)); |
| deepcopy_VkDebugReportCallbackCreateInfoEXT(pool, pCreateInfo, (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDebugReportCallbackCreateInfoEXT(mImpl->resources(), (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1200; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1200, 1); |
| countingStream->write((uint64_t*)&cgen_var_1200, 1 * 8); |
| marshal_VkDebugReportCallbackCreateInfoEXT(countingStream, (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1201 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1201); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1202; |
| countingStream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(pCallback, &cgen_var_1202, 1); |
| countingStream->write((uint64_t*)&cgen_var_1202, 8); |
| } |
| uint32_t packetSize_vkCreateDebugReportCallbackEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateDebugReportCallbackEXT = OP_vkCreateDebugReportCallbackEXT; |
| stream->write(&opcode_vkCreateDebugReportCallbackEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateDebugReportCallbackEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1203; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1203, 1); |
| stream->write((uint64_t*)&cgen_var_1203, 1 * 8); |
| marshal_VkDebugReportCallbackCreateInfoEXT(stream, (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1204 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1204); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1205; |
| stream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(pCallback, &cgen_var_1205, 1); |
| stream->write((uint64_t*)&cgen_var_1205, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_1206; |
| stream->read((uint64_t*)&cgen_var_1206, 8); |
| stream->handleMapping()->mapHandles_u64_VkDebugReportCallbackEXT(&cgen_var_1206, (VkDebugReportCallbackEXT*)pCallback, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT returnUnmarshal"); |
| VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateDebugReportCallbackEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateDebugReportCallbackEXT");; |
| return vkCreateDebugReportCallbackEXT_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyDebugReportCallbackEXT( |
| VkInstance instance, |
| VkDebugReportCallbackEXT callback, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT encode"); |
| mImpl->log("start vkDestroyDebugReportCallbackEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkDebugReportCallbackEXT local_callback; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_callback = callback; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1207; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1207, 1); |
| countingStream->write((uint64_t*)&cgen_var_1207, 1 * 8); |
| uint64_t cgen_var_1208; |
| countingStream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(&local_callback, &cgen_var_1208, 1); |
| countingStream->write((uint64_t*)&cgen_var_1208, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1209 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1209); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyDebugReportCallbackEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyDebugReportCallbackEXT = OP_vkDestroyDebugReportCallbackEXT; |
| stream->write(&opcode_vkDestroyDebugReportCallbackEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyDebugReportCallbackEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1210; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1210, 1); |
| stream->write((uint64_t*)&cgen_var_1210, 1 * 8); |
| uint64_t cgen_var_1211; |
| stream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(&local_callback, &cgen_var_1211, 1); |
| stream->write((uint64_t*)&cgen_var_1211, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1212 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1212); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkDebugReportCallbackEXT((VkDebugReportCallbackEXT*)&callback); |
| mImpl->log("finish vkDestroyDebugReportCallbackEXT");; |
| } |
| |
| void VkEncoder::vkDebugReportMessageEXT( |
| VkInstance instance, |
| VkDebugReportFlagsEXT flags, |
| VkDebugReportObjectTypeEXT objectType, |
| uint64_t object, |
| size_t location, |
| int32_t messageCode, |
| const char* pLayerPrefix, |
| const char* pMessage) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDebugReportMessageEXT encode"); |
| mImpl->log("start vkDebugReportMessageEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkDebugReportFlagsEXT local_flags; |
| VkDebugReportObjectTypeEXT local_objectType; |
| uint64_t local_object; |
| size_t local_location; |
| int32_t local_messageCode; |
| char* local_pLayerPrefix; |
| char* local_pMessage; |
| local_instance = instance; |
| local_flags = flags; |
| local_objectType = objectType; |
| local_object = object; |
| local_location = location; |
| local_messageCode = messageCode; |
| local_pLayerPrefix = nullptr; |
| if (pLayerPrefix) |
| { |
| local_pLayerPrefix = pool->strDup(pLayerPrefix); |
| } |
| local_pMessage = nullptr; |
| if (pMessage) |
| { |
| local_pMessage = pool->strDup(pMessage); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1213; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1213, 1); |
| countingStream->write((uint64_t*)&cgen_var_1213, 1 * 8); |
| countingStream->write((VkDebugReportFlagsEXT*)&local_flags, sizeof(VkDebugReportFlagsEXT)); |
| countingStream->write((VkDebugReportObjectTypeEXT*)&local_objectType, sizeof(VkDebugReportObjectTypeEXT)); |
| countingStream->write((uint64_t*)&local_object, sizeof(uint64_t)); |
| uint64_t cgen_var_1214 = (uint64_t)local_location; |
| countingStream->putBe64(cgen_var_1214); |
| countingStream->write((int32_t*)&local_messageCode, sizeof(int32_t)); |
| countingStream->putString(local_pLayerPrefix); |
| countingStream->putString(local_pMessage); |
| } |
| uint32_t packetSize_vkDebugReportMessageEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDebugReportMessageEXT = OP_vkDebugReportMessageEXT; |
| stream->write(&opcode_vkDebugReportMessageEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDebugReportMessageEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1215; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1215, 1); |
| stream->write((uint64_t*)&cgen_var_1215, 1 * 8); |
| stream->write((VkDebugReportFlagsEXT*)&local_flags, sizeof(VkDebugReportFlagsEXT)); |
| stream->write((VkDebugReportObjectTypeEXT*)&local_objectType, sizeof(VkDebugReportObjectTypeEXT)); |
| stream->write((uint64_t*)&local_object, sizeof(uint64_t)); |
| uint64_t cgen_var_1216 = (uint64_t)local_location; |
| stream->putBe64(cgen_var_1216); |
| stream->write((int32_t*)&local_messageCode, sizeof(int32_t)); |
| stream->putString(local_pLayerPrefix); |
| stream->putString(local_pMessage); |
| AEMU_SCOPED_TRACE("vkDebugReportMessageEXT readParams"); |
| AEMU_SCOPED_TRACE("vkDebugReportMessageEXT returnUnmarshal"); |
| mImpl->log("finish vkDebugReportMessageEXT");; |
| } |
| |
| #endif |
| #ifdef VK_NV_glsl_shader |
| #endif |
| #ifdef VK_EXT_depth_range_unrestricted |
| #endif |
| #ifdef VK_IMG_filter_cubic |
| #endif |
| #ifdef VK_AMD_rasterization_order |
| #endif |
| #ifdef VK_AMD_shader_trinary_minmax |
| #endif |
| #ifdef VK_AMD_shader_explicit_vertex_parameter |
| #endif |
| #ifdef VK_EXT_debug_marker |
| VkResult VkEncoder::vkDebugMarkerSetObjectTagEXT( |
| VkDevice device, |
| const VkDebugMarkerObjectTagInfoEXT* pTagInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT encode"); |
| mImpl->log("start vkDebugMarkerSetObjectTagEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDebugMarkerObjectTagInfoEXT* local_pTagInfo; |
| local_device = device; |
| local_pTagInfo = nullptr; |
| if (pTagInfo) |
| { |
| local_pTagInfo = (VkDebugMarkerObjectTagInfoEXT*)pool->alloc(sizeof(const VkDebugMarkerObjectTagInfoEXT)); |
| deepcopy_VkDebugMarkerObjectTagInfoEXT(pool, pTagInfo, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo)); |
| } |
| if (local_pTagInfo) |
| { |
| transform_tohost_VkDebugMarkerObjectTagInfoEXT(mImpl->resources(), (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1217; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1217, 1); |
| countingStream->write((uint64_t*)&cgen_var_1217, 1 * 8); |
| marshal_VkDebugMarkerObjectTagInfoEXT(countingStream, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo)); |
| } |
| uint32_t packetSize_vkDebugMarkerSetObjectTagEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDebugMarkerSetObjectTagEXT = OP_vkDebugMarkerSetObjectTagEXT; |
| stream->write(&opcode_vkDebugMarkerSetObjectTagEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDebugMarkerSetObjectTagEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1218; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1218, 1); |
| stream->write((uint64_t*)&cgen_var_1218, 1 * 8); |
| marshal_VkDebugMarkerObjectTagInfoEXT(stream, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo)); |
| AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT readParams"); |
| AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT returnUnmarshal"); |
| VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkDebugMarkerSetObjectTagEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkDebugMarkerSetObjectTagEXT");; |
| return vkDebugMarkerSetObjectTagEXT_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkDebugMarkerSetObjectNameEXT( |
| VkDevice device, |
| const VkDebugMarkerObjectNameInfoEXT* pNameInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT encode"); |
| mImpl->log("start vkDebugMarkerSetObjectNameEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDebugMarkerObjectNameInfoEXT* local_pNameInfo; |
| local_device = device; |
| local_pNameInfo = nullptr; |
| if (pNameInfo) |
| { |
| local_pNameInfo = (VkDebugMarkerObjectNameInfoEXT*)pool->alloc(sizeof(const VkDebugMarkerObjectNameInfoEXT)); |
| deepcopy_VkDebugMarkerObjectNameInfoEXT(pool, pNameInfo, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo)); |
| } |
| if (local_pNameInfo) |
| { |
| transform_tohost_VkDebugMarkerObjectNameInfoEXT(mImpl->resources(), (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1219; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1219, 1); |
| countingStream->write((uint64_t*)&cgen_var_1219, 1 * 8); |
| marshal_VkDebugMarkerObjectNameInfoEXT(countingStream, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo)); |
| } |
| uint32_t packetSize_vkDebugMarkerSetObjectNameEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDebugMarkerSetObjectNameEXT = OP_vkDebugMarkerSetObjectNameEXT; |
| stream->write(&opcode_vkDebugMarkerSetObjectNameEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDebugMarkerSetObjectNameEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1220; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1220, 1); |
| stream->write((uint64_t*)&cgen_var_1220, 1 * 8); |
| marshal_VkDebugMarkerObjectNameInfoEXT(stream, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo)); |
| AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT readParams"); |
| AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT returnUnmarshal"); |
| VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkDebugMarkerSetObjectNameEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkDebugMarkerSetObjectNameEXT");; |
| return vkDebugMarkerSetObjectNameEXT_VkResult_return; |
| } |
| |
| void VkEncoder::vkCmdDebugMarkerBeginEXT( |
| VkCommandBuffer commandBuffer, |
| const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT encode"); |
| mImpl->log("start vkCmdDebugMarkerBeginEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkDebugMarkerMarkerInfoEXT* local_pMarkerInfo; |
| local_commandBuffer = commandBuffer; |
| local_pMarkerInfo = nullptr; |
| if (pMarkerInfo) |
| { |
| local_pMarkerInfo = (VkDebugMarkerMarkerInfoEXT*)pool->alloc(sizeof(const VkDebugMarkerMarkerInfoEXT)); |
| deepcopy_VkDebugMarkerMarkerInfoEXT(pool, pMarkerInfo, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo)); |
| } |
| if (local_pMarkerInfo) |
| { |
| transform_tohost_VkDebugMarkerMarkerInfoEXT(mImpl->resources(), (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1221; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1221, 1); |
| countingStream->write((uint64_t*)&cgen_var_1221, 1 * 8); |
| marshal_VkDebugMarkerMarkerInfoEXT(countingStream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo)); |
| } |
| uint32_t packetSize_vkCmdDebugMarkerBeginEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDebugMarkerBeginEXT = OP_vkCmdDebugMarkerBeginEXT; |
| stream->write(&opcode_vkCmdDebugMarkerBeginEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDebugMarkerBeginEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1222; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1222, 1); |
| stream->write((uint64_t*)&cgen_var_1222, 1 * 8); |
| marshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo)); |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT returnUnmarshal"); |
| mImpl->log("finish vkCmdDebugMarkerBeginEXT");; |
| } |
| |
| void VkEncoder::vkCmdDebugMarkerEndEXT( |
| VkCommandBuffer commandBuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT encode"); |
| mImpl->log("start vkCmdDebugMarkerEndEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| local_commandBuffer = commandBuffer; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1223; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1223, 1); |
| countingStream->write((uint64_t*)&cgen_var_1223, 1 * 8); |
| } |
| uint32_t packetSize_vkCmdDebugMarkerEndEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDebugMarkerEndEXT = OP_vkCmdDebugMarkerEndEXT; |
| stream->write(&opcode_vkCmdDebugMarkerEndEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDebugMarkerEndEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1224; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1224, 1); |
| stream->write((uint64_t*)&cgen_var_1224, 1 * 8); |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT returnUnmarshal"); |
| mImpl->log("finish vkCmdDebugMarkerEndEXT");; |
| } |
| |
| void VkEncoder::vkCmdDebugMarkerInsertEXT( |
| VkCommandBuffer commandBuffer, |
| const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT encode"); |
| mImpl->log("start vkCmdDebugMarkerInsertEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkDebugMarkerMarkerInfoEXT* local_pMarkerInfo; |
| local_commandBuffer = commandBuffer; |
| local_pMarkerInfo = nullptr; |
| if (pMarkerInfo) |
| { |
| local_pMarkerInfo = (VkDebugMarkerMarkerInfoEXT*)pool->alloc(sizeof(const VkDebugMarkerMarkerInfoEXT)); |
| deepcopy_VkDebugMarkerMarkerInfoEXT(pool, pMarkerInfo, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo)); |
| } |
| if (local_pMarkerInfo) |
| { |
| transform_tohost_VkDebugMarkerMarkerInfoEXT(mImpl->resources(), (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1225; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1225, 1); |
| countingStream->write((uint64_t*)&cgen_var_1225, 1 * 8); |
| marshal_VkDebugMarkerMarkerInfoEXT(countingStream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo)); |
| } |
| uint32_t packetSize_vkCmdDebugMarkerInsertEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDebugMarkerInsertEXT = OP_vkCmdDebugMarkerInsertEXT; |
| stream->write(&opcode_vkCmdDebugMarkerInsertEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDebugMarkerInsertEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1226; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1226, 1); |
| stream->write((uint64_t*)&cgen_var_1226, 1 * 8); |
| marshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo)); |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT returnUnmarshal"); |
| mImpl->log("finish vkCmdDebugMarkerInsertEXT");; |
| } |
| |
| #endif |
| #ifdef VK_AMD_gcn_shader |
| #endif |
| #ifdef VK_NV_dedicated_allocation |
| #endif |
| #ifdef VK_AMD_draw_indirect_count |
| void VkEncoder::vkCmdDrawIndirectCountAMD( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD encode"); |
| mImpl->log("start vkCmdDrawIndirectCountAMD"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_buffer; |
| VkDeviceSize local_offset; |
| VkBuffer local_countBuffer; |
| VkDeviceSize local_countBufferOffset; |
| uint32_t local_maxDrawCount; |
| uint32_t local_stride; |
| local_commandBuffer = commandBuffer; |
| local_buffer = buffer; |
| local_offset = offset; |
| local_countBuffer = countBuffer; |
| local_countBufferOffset = countBufferOffset; |
| local_maxDrawCount = maxDrawCount; |
| local_stride = stride; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1227; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1227, 1); |
| countingStream->write((uint64_t*)&cgen_var_1227, 1 * 8); |
| uint64_t cgen_var_1228; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1228, 1); |
| countingStream->write((uint64_t*)&cgen_var_1228, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| uint64_t cgen_var_1229; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1229, 1); |
| countingStream->write((uint64_t*)&cgen_var_1229, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize)); |
| countingStream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDrawIndirectCountAMD = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDrawIndirectCountAMD = OP_vkCmdDrawIndirectCountAMD; |
| stream->write(&opcode_vkCmdDrawIndirectCountAMD, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDrawIndirectCountAMD, sizeof(uint32_t)); |
| uint64_t cgen_var_1230; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1230, 1); |
| stream->write((uint64_t*)&cgen_var_1230, 1 * 8); |
| uint64_t cgen_var_1231; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1231, 1); |
| stream->write((uint64_t*)&cgen_var_1231, 1 * 8); |
| stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| uint64_t cgen_var_1232; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1232, 1); |
| stream->write((uint64_t*)&cgen_var_1232, 1 * 8); |
| stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize)); |
| stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD returnUnmarshal"); |
| mImpl->log("finish vkCmdDrawIndirectCountAMD");; |
| } |
| |
| void VkEncoder::vkCmdDrawIndexedIndirectCountAMD( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD encode"); |
| mImpl->log("start vkCmdDrawIndexedIndirectCountAMD"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkBuffer local_buffer; |
| VkDeviceSize local_offset; |
| VkBuffer local_countBuffer; |
| VkDeviceSize local_countBufferOffset; |
| uint32_t local_maxDrawCount; |
| uint32_t local_stride; |
| local_commandBuffer = commandBuffer; |
| local_buffer = buffer; |
| local_offset = offset; |
| local_countBuffer = countBuffer; |
| local_countBufferOffset = countBufferOffset; |
| local_maxDrawCount = maxDrawCount; |
| local_stride = stride; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1233; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1233, 1); |
| countingStream->write((uint64_t*)&cgen_var_1233, 1 * 8); |
| uint64_t cgen_var_1234; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1234, 1); |
| countingStream->write((uint64_t*)&cgen_var_1234, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| uint64_t cgen_var_1235; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1235, 1); |
| countingStream->write((uint64_t*)&cgen_var_1235, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize)); |
| countingStream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdDrawIndexedIndirectCountAMD = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdDrawIndexedIndirectCountAMD = OP_vkCmdDrawIndexedIndirectCountAMD; |
| stream->write(&opcode_vkCmdDrawIndexedIndirectCountAMD, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdDrawIndexedIndirectCountAMD, sizeof(uint32_t)); |
| uint64_t cgen_var_1236; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1236, 1); |
| stream->write((uint64_t*)&cgen_var_1236, 1 * 8); |
| uint64_t cgen_var_1237; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1237, 1); |
| stream->write((uint64_t*)&cgen_var_1237, 1 * 8); |
| stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); |
| uint64_t cgen_var_1238; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_countBuffer, &cgen_var_1238, 1); |
| stream->write((uint64_t*)&cgen_var_1238, 1 * 8); |
| stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize)); |
| stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD readParams"); |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD returnUnmarshal"); |
| mImpl->log("finish vkCmdDrawIndexedIndirectCountAMD");; |
| } |
| |
| #endif |
| #ifdef VK_AMD_negative_viewport_height |
| #endif |
| #ifdef VK_AMD_gpu_shader_half_float |
| #endif |
| #ifdef VK_AMD_shader_ballot |
| #endif |
| #ifdef VK_AMD_texture_gather_bias_lod |
| #endif |
| #ifdef VK_AMD_shader_info |
| VkResult VkEncoder::vkGetShaderInfoAMD( |
| VkDevice device, |
| VkPipeline pipeline, |
| VkShaderStageFlagBits shaderStage, |
| VkShaderInfoTypeAMD infoType, |
| size_t* pInfoSize, |
| void* pInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetShaderInfoAMD encode"); |
| mImpl->log("start vkGetShaderInfoAMD"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkPipeline local_pipeline; |
| VkShaderStageFlagBits local_shaderStage; |
| VkShaderInfoTypeAMD local_infoType; |
| local_device = device; |
| local_pipeline = pipeline; |
| local_shaderStage = shaderStage; |
| local_infoType = infoType; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1239; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1239, 1); |
| countingStream->write((uint64_t*)&cgen_var_1239, 1 * 8); |
| uint64_t cgen_var_1240; |
| countingStream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_1240, 1); |
| countingStream->write((uint64_t*)&cgen_var_1240, 1 * 8); |
| countingStream->write((VkShaderStageFlagBits*)&local_shaderStage, sizeof(VkShaderStageFlagBits)); |
| countingStream->write((VkShaderInfoTypeAMD*)&local_infoType, sizeof(VkShaderInfoTypeAMD)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1241 = (uint64_t)(uintptr_t)pInfoSize; |
| countingStream->putBe64(cgen_var_1241); |
| if (pInfoSize) |
| { |
| uint64_t cgen_var_1242 = (uint64_t)(*pInfoSize); |
| countingStream->putBe64(cgen_var_1242); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1243 = (uint64_t)(uintptr_t)pInfo; |
| countingStream->putBe64(cgen_var_1243); |
| if (pInfo) |
| { |
| countingStream->write((void*)pInfo, (*(pInfoSize)) * sizeof(uint8_t)); |
| } |
| } |
| uint32_t packetSize_vkGetShaderInfoAMD = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetShaderInfoAMD = OP_vkGetShaderInfoAMD; |
| stream->write(&opcode_vkGetShaderInfoAMD, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetShaderInfoAMD, sizeof(uint32_t)); |
| uint64_t cgen_var_1244; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1244, 1); |
| stream->write((uint64_t*)&cgen_var_1244, 1 * 8); |
| uint64_t cgen_var_1245; |
| stream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_1245, 1); |
| stream->write((uint64_t*)&cgen_var_1245, 1 * 8); |
| stream->write((VkShaderStageFlagBits*)&local_shaderStage, sizeof(VkShaderStageFlagBits)); |
| stream->write((VkShaderInfoTypeAMD*)&local_infoType, sizeof(VkShaderInfoTypeAMD)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1246 = (uint64_t)(uintptr_t)pInfoSize; |
| stream->putBe64(cgen_var_1246); |
| if (pInfoSize) |
| { |
| uint64_t cgen_var_1247 = (uint64_t)(*pInfoSize); |
| stream->putBe64(cgen_var_1247); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1248 = (uint64_t)(uintptr_t)pInfo; |
| stream->putBe64(cgen_var_1248); |
| if (pInfo) |
| { |
| stream->write((void*)pInfo, (*(pInfoSize)) * sizeof(uint8_t)); |
| } |
| AEMU_SCOPED_TRACE("vkGetShaderInfoAMD readParams"); |
| // WARNING PTR CHECK |
| size_t* check_pInfoSize; |
| check_pInfoSize = (size_t*)(uintptr_t)stream->getBe64(); |
| if (pInfoSize) |
| { |
| if (!(check_pInfoSize)) |
| { |
| fprintf(stderr, "fatal: pInfoSize inconsistent between guest and host\n"); |
| } |
| (*pInfoSize) = (size_t)stream->getBe64(); |
| } |
| // WARNING PTR CHECK |
| void* check_pInfo; |
| check_pInfo = (void*)(uintptr_t)stream->getBe64(); |
| if (pInfo) |
| { |
| if (!(check_pInfo)) |
| { |
| fprintf(stderr, "fatal: pInfo inconsistent between guest and host\n"); |
| } |
| stream->read((void*)pInfo, (*(pInfoSize)) * sizeof(uint8_t)); |
| } |
| AEMU_SCOPED_TRACE("vkGetShaderInfoAMD returnUnmarshal"); |
| VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0; |
| stream->read(&vkGetShaderInfoAMD_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetShaderInfoAMD");; |
| return vkGetShaderInfoAMD_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_AMD_shader_image_load_store_lod |
| #endif |
| #ifdef VK_IMG_format_pvrtc |
| #endif |
| #ifdef VK_NV_external_memory_capabilities |
| VkResult VkEncoder::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkImageType type, |
| VkImageTiling tiling, |
| VkImageUsageFlags usage, |
| VkImageCreateFlags flags, |
| VkExternalMemoryHandleTypeFlagsNV externalHandleType, |
| VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV encode"); |
| mImpl->log("start vkGetPhysicalDeviceExternalImageFormatPropertiesNV"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkFormat local_format; |
| VkImageType local_type; |
| VkImageTiling local_tiling; |
| VkImageUsageFlags local_usage; |
| VkImageCreateFlags local_flags; |
| VkExternalMemoryHandleTypeFlagsNV local_externalHandleType; |
| local_physicalDevice = physicalDevice; |
| local_format = format; |
| local_type = type; |
| local_tiling = tiling; |
| local_usage = usage; |
| local_flags = flags; |
| local_externalHandleType = externalHandleType; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1252; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1252, 1); |
| countingStream->write((uint64_t*)&cgen_var_1252, 1 * 8); |
| countingStream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| countingStream->write((VkImageType*)&local_type, sizeof(VkImageType)); |
| countingStream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling)); |
| countingStream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags)); |
| countingStream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags)); |
| countingStream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_externalHandleType, sizeof(VkExternalMemoryHandleTypeFlagsNV)); |
| marshal_VkExternalImageFormatPropertiesNV(countingStream, (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV; |
| stream->write(&opcode_vkGetPhysicalDeviceExternalImageFormatPropertiesNV, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceExternalImageFormatPropertiesNV, sizeof(uint32_t)); |
| uint64_t cgen_var_1253; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1253, 1); |
| stream->write((uint64_t*)&cgen_var_1253, 1 * 8); |
| stream->write((VkFormat*)&local_format, sizeof(VkFormat)); |
| stream->write((VkImageType*)&local_type, sizeof(VkImageType)); |
| stream->write((VkImageTiling*)&local_tiling, sizeof(VkImageTiling)); |
| stream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags)); |
| stream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags)); |
| stream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_externalHandleType, sizeof(VkExternalMemoryHandleTypeFlagsNV)); |
| marshal_VkExternalImageFormatPropertiesNV(stream, (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV readParams"); |
| unmarshal_VkExternalImageFormatPropertiesNV(stream, (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties)); |
| if (pExternalImageFormatProperties) |
| { |
| transform_fromhost_VkExternalImageFormatPropertiesNV(mImpl->resources(), (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceExternalImageFormatPropertiesNV");; |
| return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_NV_external_memory |
| #endif |
| #ifdef VK_NV_external_memory_win32 |
| VkResult VkEncoder::vkGetMemoryWin32HandleNV( |
| VkDevice device, |
| VkDeviceMemory memory, |
| VkExternalMemoryHandleTypeFlagsNV handleType, |
| HANDLE* pHandle) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV encode"); |
| mImpl->log("start vkGetMemoryWin32HandleNV"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDeviceMemory local_memory; |
| VkExternalMemoryHandleTypeFlagsNV local_handleType; |
| local_device = device; |
| local_memory = memory; |
| local_handleType = handleType; |
| mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0); |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1254; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1254, 1); |
| countingStream->write((uint64_t*)&cgen_var_1254, 1 * 8); |
| uint64_t cgen_var_1255; |
| countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1255, 1); |
| countingStream->write((uint64_t*)&cgen_var_1255, 1 * 8); |
| countingStream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV)); |
| countingStream->write((HANDLE*)pHandle, sizeof(HANDLE)); |
| } |
| uint32_t packetSize_vkGetMemoryWin32HandleNV = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetMemoryWin32HandleNV = OP_vkGetMemoryWin32HandleNV; |
| stream->write(&opcode_vkGetMemoryWin32HandleNV, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetMemoryWin32HandleNV, sizeof(uint32_t)); |
| uint64_t cgen_var_1256; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1256, 1); |
| stream->write((uint64_t*)&cgen_var_1256, 1 * 8); |
| uint64_t cgen_var_1257; |
| stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1257, 1); |
| stream->write((uint64_t*)&cgen_var_1257, 1 * 8); |
| stream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV)); |
| stream->write((HANDLE*)pHandle, sizeof(HANDLE)); |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV readParams"); |
| stream->read((HANDLE*)pHandle, sizeof(HANDLE)); |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV returnUnmarshal"); |
| VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0; |
| stream->read(&vkGetMemoryWin32HandleNV_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetMemoryWin32HandleNV");; |
| return vkGetMemoryWin32HandleNV_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_NV_win32_keyed_mutex |
| #endif |
| #ifdef VK_EXT_validation_flags |
| #endif |
| #ifdef VK_NN_vi_surface |
| VkResult VkEncoder::vkCreateViSurfaceNN( |
| VkInstance instance, |
| const VkViSurfaceCreateInfoNN* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateViSurfaceNN encode"); |
| mImpl->log("start vkCreateViSurfaceNN"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkViSurfaceCreateInfoNN* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkViSurfaceCreateInfoNN*)pool->alloc(sizeof(const VkViSurfaceCreateInfoNN)); |
| deepcopy_VkViSurfaceCreateInfoNN(pool, pCreateInfo, (VkViSurfaceCreateInfoNN*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkViSurfaceCreateInfoNN(mImpl->resources(), (VkViSurfaceCreateInfoNN*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1258; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1258, 1); |
| countingStream->write((uint64_t*)&cgen_var_1258, 1 * 8); |
| marshal_VkViSurfaceCreateInfoNN(countingStream, (VkViSurfaceCreateInfoNN*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1259 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1259); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1260; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1260, 1); |
| countingStream->write((uint64_t*)&cgen_var_1260, 8); |
| } |
| uint32_t packetSize_vkCreateViSurfaceNN = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateViSurfaceNN = OP_vkCreateViSurfaceNN; |
| stream->write(&opcode_vkCreateViSurfaceNN, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateViSurfaceNN, sizeof(uint32_t)); |
| uint64_t cgen_var_1261; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1261, 1); |
| stream->write((uint64_t*)&cgen_var_1261, 1 * 8); |
| marshal_VkViSurfaceCreateInfoNN(stream, (VkViSurfaceCreateInfoNN*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1262 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1262); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1263; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1263, 1); |
| stream->write((uint64_t*)&cgen_var_1263, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateViSurfaceNN readParams"); |
| uint64_t cgen_var_1264; |
| stream->read((uint64_t*)&cgen_var_1264, 8); |
| stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1264, (VkSurfaceKHR*)pSurface, 1); |
| AEMU_SCOPED_TRACE("vkCreateViSurfaceNN returnUnmarshal"); |
| VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateViSurfaceNN_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateViSurfaceNN");; |
| return vkCreateViSurfaceNN_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_EXT_shader_subgroup_ballot |
| #endif |
| #ifdef VK_EXT_shader_subgroup_vote |
| #endif |
| #ifdef VK_EXT_conditional_rendering |
| void VkEncoder::vkCmdBeginConditionalRenderingEXT( |
| VkCommandBuffer commandBuffer, |
| const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT encode"); |
| mImpl->log("start vkCmdBeginConditionalRenderingEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkConditionalRenderingBeginInfoEXT* local_pConditionalRenderingBegin; |
| local_commandBuffer = commandBuffer; |
| local_pConditionalRenderingBegin = nullptr; |
| if (pConditionalRenderingBegin) |
| { |
| local_pConditionalRenderingBegin = (VkConditionalRenderingBeginInfoEXT*)pool->alloc(sizeof(const VkConditionalRenderingBeginInfoEXT)); |
| deepcopy_VkConditionalRenderingBeginInfoEXT(pool, pConditionalRenderingBegin, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin)); |
| } |
| if (local_pConditionalRenderingBegin) |
| { |
| transform_tohost_VkConditionalRenderingBeginInfoEXT(mImpl->resources(), (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1265; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1265, 1); |
| countingStream->write((uint64_t*)&cgen_var_1265, 1 * 8); |
| marshal_VkConditionalRenderingBeginInfoEXT(countingStream, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin)); |
| } |
| uint32_t packetSize_vkCmdBeginConditionalRenderingEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdBeginConditionalRenderingEXT = OP_vkCmdBeginConditionalRenderingEXT; |
| stream->write(&opcode_vkCmdBeginConditionalRenderingEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdBeginConditionalRenderingEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1266; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1266, 1); |
| stream->write((uint64_t*)&cgen_var_1266, 1 * 8); |
| marshal_VkConditionalRenderingBeginInfoEXT(stream, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin)); |
| AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT readParams"); |
| AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT returnUnmarshal"); |
| mImpl->log("finish vkCmdBeginConditionalRenderingEXT");; |
| } |
| |
| void VkEncoder::vkCmdEndConditionalRenderingEXT( |
| VkCommandBuffer commandBuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT encode"); |
| mImpl->log("start vkCmdEndConditionalRenderingEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| local_commandBuffer = commandBuffer; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1267; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1267, 1); |
| countingStream->write((uint64_t*)&cgen_var_1267, 1 * 8); |
| } |
| uint32_t packetSize_vkCmdEndConditionalRenderingEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdEndConditionalRenderingEXT = OP_vkCmdEndConditionalRenderingEXT; |
| stream->write(&opcode_vkCmdEndConditionalRenderingEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdEndConditionalRenderingEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1268; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1268, 1); |
| stream->write((uint64_t*)&cgen_var_1268, 1 * 8); |
| AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT readParams"); |
| AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT returnUnmarshal"); |
| mImpl->log("finish vkCmdEndConditionalRenderingEXT");; |
| } |
| |
| #endif |
| #ifdef VK_NVX_device_generated_commands |
| void VkEncoder::vkCmdProcessCommandsNVX( |
| VkCommandBuffer commandBuffer, |
| const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX encode"); |
| mImpl->log("start vkCmdProcessCommandsNVX"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkCmdProcessCommandsInfoNVX* local_pProcessCommandsInfo; |
| local_commandBuffer = commandBuffer; |
| local_pProcessCommandsInfo = nullptr; |
| if (pProcessCommandsInfo) |
| { |
| local_pProcessCommandsInfo = (VkCmdProcessCommandsInfoNVX*)pool->alloc(sizeof(const VkCmdProcessCommandsInfoNVX)); |
| deepcopy_VkCmdProcessCommandsInfoNVX(pool, pProcessCommandsInfo, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo)); |
| } |
| if (local_pProcessCommandsInfo) |
| { |
| transform_tohost_VkCmdProcessCommandsInfoNVX(mImpl->resources(), (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1269; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1269, 1); |
| countingStream->write((uint64_t*)&cgen_var_1269, 1 * 8); |
| marshal_VkCmdProcessCommandsInfoNVX(countingStream, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo)); |
| } |
| uint32_t packetSize_vkCmdProcessCommandsNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdProcessCommandsNVX = OP_vkCmdProcessCommandsNVX; |
| stream->write(&opcode_vkCmdProcessCommandsNVX, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdProcessCommandsNVX, sizeof(uint32_t)); |
| uint64_t cgen_var_1270; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1270, 1); |
| stream->write((uint64_t*)&cgen_var_1270, 1 * 8); |
| marshal_VkCmdProcessCommandsInfoNVX(stream, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo)); |
| AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX readParams"); |
| AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX returnUnmarshal"); |
| mImpl->log("finish vkCmdProcessCommandsNVX");; |
| } |
| |
| void VkEncoder::vkCmdReserveSpaceForCommandsNVX( |
| VkCommandBuffer commandBuffer, |
| const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX encode"); |
| mImpl->log("start vkCmdReserveSpaceForCommandsNVX"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkCmdReserveSpaceForCommandsInfoNVX* local_pReserveSpaceInfo; |
| local_commandBuffer = commandBuffer; |
| local_pReserveSpaceInfo = nullptr; |
| if (pReserveSpaceInfo) |
| { |
| local_pReserveSpaceInfo = (VkCmdReserveSpaceForCommandsInfoNVX*)pool->alloc(sizeof(const VkCmdReserveSpaceForCommandsInfoNVX)); |
| deepcopy_VkCmdReserveSpaceForCommandsInfoNVX(pool, pReserveSpaceInfo, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo)); |
| } |
| if (local_pReserveSpaceInfo) |
| { |
| transform_tohost_VkCmdReserveSpaceForCommandsInfoNVX(mImpl->resources(), (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1271; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1271, 1); |
| countingStream->write((uint64_t*)&cgen_var_1271, 1 * 8); |
| marshal_VkCmdReserveSpaceForCommandsInfoNVX(countingStream, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo)); |
| } |
| uint32_t packetSize_vkCmdReserveSpaceForCommandsNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdReserveSpaceForCommandsNVX = OP_vkCmdReserveSpaceForCommandsNVX; |
| stream->write(&opcode_vkCmdReserveSpaceForCommandsNVX, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdReserveSpaceForCommandsNVX, sizeof(uint32_t)); |
| uint64_t cgen_var_1272; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1272, 1); |
| stream->write((uint64_t*)&cgen_var_1272, 1 * 8); |
| marshal_VkCmdReserveSpaceForCommandsInfoNVX(stream, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo)); |
| AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX readParams"); |
| AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX returnUnmarshal"); |
| mImpl->log("finish vkCmdReserveSpaceForCommandsNVX");; |
| } |
| |
| VkResult VkEncoder::vkCreateIndirectCommandsLayoutNVX( |
| VkDevice device, |
| const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX encode"); |
| mImpl->log("start vkCreateIndirectCommandsLayoutNVX"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkIndirectCommandsLayoutCreateInfoNVX* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkIndirectCommandsLayoutCreateInfoNVX*)pool->alloc(sizeof(const VkIndirectCommandsLayoutCreateInfoNVX)); |
| deepcopy_VkIndirectCommandsLayoutCreateInfoNVX(pool, pCreateInfo, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkIndirectCommandsLayoutCreateInfoNVX(mImpl->resources(), (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1273; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1273, 1); |
| countingStream->write((uint64_t*)&cgen_var_1273, 1 * 8); |
| marshal_VkIndirectCommandsLayoutCreateInfoNVX(countingStream, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1274 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1274); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1275; |
| countingStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(pIndirectCommandsLayout, &cgen_var_1275, 1); |
| countingStream->write((uint64_t*)&cgen_var_1275, 8); |
| } |
| uint32_t packetSize_vkCreateIndirectCommandsLayoutNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateIndirectCommandsLayoutNVX = OP_vkCreateIndirectCommandsLayoutNVX; |
| stream->write(&opcode_vkCreateIndirectCommandsLayoutNVX, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateIndirectCommandsLayoutNVX, sizeof(uint32_t)); |
| uint64_t cgen_var_1276; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1276, 1); |
| stream->write((uint64_t*)&cgen_var_1276, 1 * 8); |
| marshal_VkIndirectCommandsLayoutCreateInfoNVX(stream, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1277 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1277); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1278; |
| stream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(pIndirectCommandsLayout, &cgen_var_1278, 1); |
| stream->write((uint64_t*)&cgen_var_1278, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_1279; |
| stream->read((uint64_t*)&cgen_var_1279, 8); |
| stream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_1279, (VkIndirectCommandsLayoutNVX*)pIndirectCommandsLayout, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX returnUnmarshal"); |
| VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateIndirectCommandsLayoutNVX_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateIndirectCommandsLayoutNVX");; |
| return vkCreateIndirectCommandsLayoutNVX_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyIndirectCommandsLayoutNVX( |
| VkDevice device, |
| VkIndirectCommandsLayoutNVX indirectCommandsLayout, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX encode"); |
| mImpl->log("start vkDestroyIndirectCommandsLayoutNVX"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkIndirectCommandsLayoutNVX local_indirectCommandsLayout; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_indirectCommandsLayout = indirectCommandsLayout; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1280; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1280, 1); |
| countingStream->write((uint64_t*)&cgen_var_1280, 1 * 8); |
| uint64_t cgen_var_1281; |
| countingStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&local_indirectCommandsLayout, &cgen_var_1281, 1); |
| countingStream->write((uint64_t*)&cgen_var_1281, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1282 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1282); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyIndirectCommandsLayoutNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyIndirectCommandsLayoutNVX = OP_vkDestroyIndirectCommandsLayoutNVX; |
| stream->write(&opcode_vkDestroyIndirectCommandsLayoutNVX, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyIndirectCommandsLayoutNVX, sizeof(uint32_t)); |
| uint64_t cgen_var_1283; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1283, 1); |
| stream->write((uint64_t*)&cgen_var_1283, 1 * 8); |
| uint64_t cgen_var_1284; |
| stream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&local_indirectCommandsLayout, &cgen_var_1284, 1); |
| stream->write((uint64_t*)&cgen_var_1284, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1285 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1285); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkIndirectCommandsLayoutNVX((VkIndirectCommandsLayoutNVX*)&indirectCommandsLayout); |
| mImpl->log("finish vkDestroyIndirectCommandsLayoutNVX");; |
| } |
| |
| VkResult VkEncoder::vkCreateObjectTableNVX( |
| VkDevice device, |
| const VkObjectTableCreateInfoNVX* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkObjectTableNVX* pObjectTable) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateObjectTableNVX encode"); |
| mImpl->log("start vkCreateObjectTableNVX"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkObjectTableCreateInfoNVX* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkObjectTableCreateInfoNVX*)pool->alloc(sizeof(const VkObjectTableCreateInfoNVX)); |
| deepcopy_VkObjectTableCreateInfoNVX(pool, pCreateInfo, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkObjectTableCreateInfoNVX(mImpl->resources(), (VkObjectTableCreateInfoNVX*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1286; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1286, 1); |
| countingStream->write((uint64_t*)&cgen_var_1286, 1 * 8); |
| marshal_VkObjectTableCreateInfoNVX(countingStream, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1287 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1287); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1288; |
| countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(pObjectTable, &cgen_var_1288, 1); |
| countingStream->write((uint64_t*)&cgen_var_1288, 8); |
| } |
| uint32_t packetSize_vkCreateObjectTableNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateObjectTableNVX = OP_vkCreateObjectTableNVX; |
| stream->write(&opcode_vkCreateObjectTableNVX, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateObjectTableNVX, sizeof(uint32_t)); |
| uint64_t cgen_var_1289; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1289, 1); |
| stream->write((uint64_t*)&cgen_var_1289, 1 * 8); |
| marshal_VkObjectTableCreateInfoNVX(stream, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1290 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1290); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1291; |
| stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(pObjectTable, &cgen_var_1291, 1); |
| stream->write((uint64_t*)&cgen_var_1291, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateObjectTableNVX readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_1292; |
| stream->read((uint64_t*)&cgen_var_1292, 8); |
| stream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_1292, (VkObjectTableNVX*)pObjectTable, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateObjectTableNVX returnUnmarshal"); |
| VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateObjectTableNVX_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateObjectTableNVX");; |
| return vkCreateObjectTableNVX_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyObjectTableNVX( |
| VkDevice device, |
| VkObjectTableNVX objectTable, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX encode"); |
| mImpl->log("start vkDestroyObjectTableNVX"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkObjectTableNVX local_objectTable; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_objectTable = objectTable; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1293; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1293, 1); |
| countingStream->write((uint64_t*)&cgen_var_1293, 1 * 8); |
| uint64_t cgen_var_1294; |
| countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1294, 1); |
| countingStream->write((uint64_t*)&cgen_var_1294, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1295 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1295); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyObjectTableNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyObjectTableNVX = OP_vkDestroyObjectTableNVX; |
| stream->write(&opcode_vkDestroyObjectTableNVX, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyObjectTableNVX, sizeof(uint32_t)); |
| uint64_t cgen_var_1296; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1296, 1); |
| stream->write((uint64_t*)&cgen_var_1296, 1 * 8); |
| uint64_t cgen_var_1297; |
| stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1297, 1); |
| stream->write((uint64_t*)&cgen_var_1297, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1298 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1298); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkObjectTableNVX((VkObjectTableNVX*)&objectTable); |
| mImpl->log("finish vkDestroyObjectTableNVX");; |
| } |
| |
| VkResult VkEncoder::vkRegisterObjectsNVX( |
| VkDevice device, |
| VkObjectTableNVX objectTable, |
| uint32_t objectCount, |
| const VkObjectTableEntryNVX* const* ppObjectTableEntries, |
| const uint32_t* pObjectIndices) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkRegisterObjectsNVX encode"); |
| mImpl->log("start vkRegisterObjectsNVX"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkObjectTableNVX local_objectTable; |
| uint32_t local_objectCount; |
| VkObjectTableEntryNVX** local_ppObjectTableEntries; |
| uint32_t* local_pObjectIndices; |
| local_device = device; |
| local_objectTable = objectTable; |
| local_objectCount = objectCount; |
| (void)ppObjectTableEntries; |
| local_pObjectIndices = nullptr; |
| if (pObjectIndices) |
| { |
| local_pObjectIndices = (uint32_t*)pool->dupArray(pObjectIndices, ((objectCount)) * sizeof(const uint32_t)); |
| } |
| (void)local_ppObjectTableEntries; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1299; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1299, 1); |
| countingStream->write((uint64_t*)&cgen_var_1299, 1 * 8); |
| uint64_t cgen_var_1300; |
| countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1300, 1); |
| countingStream->write((uint64_t*)&cgen_var_1300, 1 * 8); |
| countingStream->write((uint32_t*)&local_objectCount, sizeof(uint32_t)); |
| (void)local_ppObjectTableEntries; |
| countingStream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkRegisterObjectsNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkRegisterObjectsNVX = OP_vkRegisterObjectsNVX; |
| stream->write(&opcode_vkRegisterObjectsNVX, sizeof(uint32_t)); |
| stream->write(&packetSize_vkRegisterObjectsNVX, sizeof(uint32_t)); |
| uint64_t cgen_var_1301; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1301, 1); |
| stream->write((uint64_t*)&cgen_var_1301, 1 * 8); |
| uint64_t cgen_var_1302; |
| stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1302, 1); |
| stream->write((uint64_t*)&cgen_var_1302, 1 * 8); |
| stream->write((uint32_t*)&local_objectCount, sizeof(uint32_t)); |
| (void)local_ppObjectTableEntries; |
| stream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkRegisterObjectsNVX readParams"); |
| AEMU_SCOPED_TRACE("vkRegisterObjectsNVX returnUnmarshal"); |
| VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0; |
| stream->read(&vkRegisterObjectsNVX_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkRegisterObjectsNVX");; |
| return vkRegisterObjectsNVX_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkUnregisterObjectsNVX( |
| VkDevice device, |
| VkObjectTableNVX objectTable, |
| uint32_t objectCount, |
| const VkObjectEntryTypeNVX* pObjectEntryTypes, |
| const uint32_t* pObjectIndices) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX encode"); |
| mImpl->log("start vkUnregisterObjectsNVX"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkObjectTableNVX local_objectTable; |
| uint32_t local_objectCount; |
| VkObjectEntryTypeNVX* local_pObjectEntryTypes; |
| uint32_t* local_pObjectIndices; |
| local_device = device; |
| local_objectTable = objectTable; |
| local_objectCount = objectCount; |
| local_pObjectEntryTypes = nullptr; |
| if (pObjectEntryTypes) |
| { |
| local_pObjectEntryTypes = (VkObjectEntryTypeNVX*)pool->dupArray(pObjectEntryTypes, ((objectCount)) * sizeof(const VkObjectEntryTypeNVX)); |
| } |
| local_pObjectIndices = nullptr; |
| if (pObjectIndices) |
| { |
| local_pObjectIndices = (uint32_t*)pool->dupArray(pObjectIndices, ((objectCount)) * sizeof(const uint32_t)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1303; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1303, 1); |
| countingStream->write((uint64_t*)&cgen_var_1303, 1 * 8); |
| uint64_t cgen_var_1304; |
| countingStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1304, 1); |
| countingStream->write((uint64_t*)&cgen_var_1304, 1 * 8); |
| countingStream->write((uint32_t*)&local_objectCount, sizeof(uint32_t)); |
| countingStream->write((VkObjectEntryTypeNVX*)local_pObjectEntryTypes, ((objectCount)) * sizeof(VkObjectEntryTypeNVX)); |
| countingStream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkUnregisterObjectsNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkUnregisterObjectsNVX = OP_vkUnregisterObjectsNVX; |
| stream->write(&opcode_vkUnregisterObjectsNVX, sizeof(uint32_t)); |
| stream->write(&packetSize_vkUnregisterObjectsNVX, sizeof(uint32_t)); |
| uint64_t cgen_var_1305; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1305, 1); |
| stream->write((uint64_t*)&cgen_var_1305, 1 * 8); |
| uint64_t cgen_var_1306; |
| stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&local_objectTable, &cgen_var_1306, 1); |
| stream->write((uint64_t*)&cgen_var_1306, 1 * 8); |
| stream->write((uint32_t*)&local_objectCount, sizeof(uint32_t)); |
| stream->write((VkObjectEntryTypeNVX*)local_pObjectEntryTypes, ((objectCount)) * sizeof(VkObjectEntryTypeNVX)); |
| stream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX readParams"); |
| AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX returnUnmarshal"); |
| VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0; |
| stream->read(&vkUnregisterObjectsNVX_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkUnregisterObjectsNVX");; |
| return vkUnregisterObjectsNVX_VkResult_return; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( |
| VkPhysicalDevice physicalDevice, |
| VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, |
| VkDeviceGeneratedCommandsLimitsNVX* pLimits) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX encode"); |
| mImpl->log("start vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| local_physicalDevice = physicalDevice; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1307; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1307, 1); |
| countingStream->write((uint64_t*)&cgen_var_1307, 1 * 8); |
| marshal_VkDeviceGeneratedCommandsFeaturesNVX(countingStream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures)); |
| marshal_VkDeviceGeneratedCommandsLimitsNVX(countingStream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX; |
| stream->write(&opcode_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, sizeof(uint32_t)); |
| uint64_t cgen_var_1308; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1308, 1); |
| stream->write((uint64_t*)&cgen_var_1308, 1 * 8); |
| marshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures)); |
| marshal_VkDeviceGeneratedCommandsLimitsNVX(stream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX readParams"); |
| unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures)); |
| if (pFeatures) |
| { |
| transform_fromhost_VkDeviceGeneratedCommandsFeaturesNVX(mImpl->resources(), (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures)); |
| } |
| unmarshal_VkDeviceGeneratedCommandsLimitsNVX(stream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits)); |
| if (pLimits) |
| { |
| transform_fromhost_VkDeviceGeneratedCommandsLimitsNVX(mImpl->resources(), (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");; |
| } |
| |
| #endif |
| #ifdef VK_NV_clip_space_w_scaling |
| void VkEncoder::vkCmdSetViewportWScalingNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstViewport, |
| uint32_t viewportCount, |
| const VkViewportWScalingNV* pViewportWScalings) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV encode"); |
| mImpl->log("start vkCmdSetViewportWScalingNV"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_firstViewport; |
| uint32_t local_viewportCount; |
| VkViewportWScalingNV* local_pViewportWScalings; |
| local_commandBuffer = commandBuffer; |
| local_firstViewport = firstViewport; |
| local_viewportCount = viewportCount; |
| local_pViewportWScalings = nullptr; |
| if (pViewportWScalings) |
| { |
| local_pViewportWScalings = (VkViewportWScalingNV*)pool->alloc(((viewportCount)) * sizeof(const VkViewportWScalingNV)); |
| for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i) |
| { |
| deepcopy_VkViewportWScalingNV(pool, pViewportWScalings + i, (VkViewportWScalingNV*)(local_pViewportWScalings + i)); |
| } |
| } |
| if (local_pViewportWScalings) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i) |
| { |
| transform_tohost_VkViewportWScalingNV(mImpl->resources(), (VkViewportWScalingNV*)(local_pViewportWScalings + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1309; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1309, 1); |
| countingStream->write((uint64_t*)&cgen_var_1309, 1 * 8); |
| countingStream->write((uint32_t*)&local_firstViewport, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_viewportCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i) |
| { |
| marshal_VkViewportWScalingNV(countingStream, (VkViewportWScalingNV*)(local_pViewportWScalings + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdSetViewportWScalingNV = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetViewportWScalingNV = OP_vkCmdSetViewportWScalingNV; |
| stream->write(&opcode_vkCmdSetViewportWScalingNV, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetViewportWScalingNV, sizeof(uint32_t)); |
| uint64_t cgen_var_1310; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1310, 1); |
| stream->write((uint64_t*)&cgen_var_1310, 1 * 8); |
| stream->write((uint32_t*)&local_firstViewport, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_viewportCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i) |
| { |
| marshal_VkViewportWScalingNV(stream, (VkViewportWScalingNV*)(local_pViewportWScalings + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV returnUnmarshal"); |
| mImpl->log("finish vkCmdSetViewportWScalingNV");; |
| } |
| |
| #endif |
| #ifdef VK_EXT_direct_mode_display |
| VkResult VkEncoder::vkReleaseDisplayEXT( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayKHR display) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkReleaseDisplayEXT encode"); |
| mImpl->log("start vkReleaseDisplayEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkDisplayKHR local_display; |
| local_physicalDevice = physicalDevice; |
| local_display = display; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1311; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1311, 1); |
| countingStream->write((uint64_t*)&cgen_var_1311, 1 * 8); |
| uint64_t cgen_var_1312; |
| countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1312, 1); |
| countingStream->write((uint64_t*)&cgen_var_1312, 1 * 8); |
| } |
| uint32_t packetSize_vkReleaseDisplayEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkReleaseDisplayEXT = OP_vkReleaseDisplayEXT; |
| stream->write(&opcode_vkReleaseDisplayEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkReleaseDisplayEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1313; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1313, 1); |
| stream->write((uint64_t*)&cgen_var_1313, 1 * 8); |
| uint64_t cgen_var_1314; |
| stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1314, 1); |
| stream->write((uint64_t*)&cgen_var_1314, 1 * 8); |
| AEMU_SCOPED_TRACE("vkReleaseDisplayEXT readParams"); |
| AEMU_SCOPED_TRACE("vkReleaseDisplayEXT returnUnmarshal"); |
| VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkReleaseDisplayEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkReleaseDisplayEXT");; |
| return vkReleaseDisplayEXT_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_EXT_acquire_xlib_display |
| VkResult VkEncoder::vkAcquireXlibDisplayEXT( |
| VkPhysicalDevice physicalDevice, |
| Display* dpy, |
| VkDisplayKHR display) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT encode"); |
| mImpl->log("start vkAcquireXlibDisplayEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkDisplayKHR local_display; |
| local_physicalDevice = physicalDevice; |
| local_display = display; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1315; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1315, 1); |
| countingStream->write((uint64_t*)&cgen_var_1315, 1 * 8); |
| countingStream->write((Display*)dpy, sizeof(Display)); |
| uint64_t cgen_var_1316; |
| countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1316, 1); |
| countingStream->write((uint64_t*)&cgen_var_1316, 1 * 8); |
| } |
| uint32_t packetSize_vkAcquireXlibDisplayEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkAcquireXlibDisplayEXT = OP_vkAcquireXlibDisplayEXT; |
| stream->write(&opcode_vkAcquireXlibDisplayEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkAcquireXlibDisplayEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1317; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1317, 1); |
| stream->write((uint64_t*)&cgen_var_1317, 1 * 8); |
| stream->write((Display*)dpy, sizeof(Display)); |
| uint64_t cgen_var_1318; |
| stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1318, 1); |
| stream->write((uint64_t*)&cgen_var_1318, 1 * 8); |
| AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT readParams"); |
| stream->read((Display*)dpy, sizeof(Display)); |
| AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT returnUnmarshal"); |
| VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkAcquireXlibDisplayEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkAcquireXlibDisplayEXT");; |
| return vkAcquireXlibDisplayEXT_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetRandROutputDisplayEXT( |
| VkPhysicalDevice physicalDevice, |
| Display* dpy, |
| RROutput rrOutput, |
| VkDisplayKHR* pDisplay) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT encode"); |
| mImpl->log("start vkGetRandROutputDisplayEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| RROutput local_rrOutput; |
| local_physicalDevice = physicalDevice; |
| local_rrOutput = rrOutput; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1319; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1319, 1); |
| countingStream->write((uint64_t*)&cgen_var_1319, 1 * 8); |
| countingStream->write((Display*)dpy, sizeof(Display)); |
| countingStream->write((RROutput*)&local_rrOutput, sizeof(RROutput)); |
| uint64_t cgen_var_1320; |
| countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplay, &cgen_var_1320, 1); |
| countingStream->write((uint64_t*)&cgen_var_1320, 8); |
| } |
| uint32_t packetSize_vkGetRandROutputDisplayEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetRandROutputDisplayEXT = OP_vkGetRandROutputDisplayEXT; |
| stream->write(&opcode_vkGetRandROutputDisplayEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetRandROutputDisplayEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1321; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1321, 1); |
| stream->write((uint64_t*)&cgen_var_1321, 1 * 8); |
| stream->write((Display*)dpy, sizeof(Display)); |
| stream->write((RROutput*)&local_rrOutput, sizeof(RROutput)); |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1322; |
| stream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplay, &cgen_var_1322, 1); |
| stream->write((uint64_t*)&cgen_var_1322, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT readParams"); |
| stream->read((Display*)dpy, sizeof(Display)); |
| uint64_t cgen_var_1323; |
| stream->read((uint64_t*)&cgen_var_1323, 8); |
| stream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_1323, (VkDisplayKHR*)pDisplay, 1); |
| AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT returnUnmarshal"); |
| VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkGetRandROutputDisplayEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetRandROutputDisplayEXT");; |
| return vkGetRandROutputDisplayEXT_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_EXT_display_surface_counter |
| VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilities2EXT( |
| VkPhysicalDevice physicalDevice, |
| VkSurfaceKHR surface, |
| VkSurfaceCapabilities2EXT* pSurfaceCapabilities) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT encode"); |
| mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilities2EXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkSurfaceKHR local_surface; |
| local_physicalDevice = physicalDevice; |
| local_surface = surface; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1324; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1324, 1); |
| countingStream->write((uint64_t*)&cgen_var_1324, 1 * 8); |
| uint64_t cgen_var_1325; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_1325, 1); |
| countingStream->write((uint64_t*)&cgen_var_1325, 1 * 8); |
| marshal_VkSurfaceCapabilities2EXT(countingStream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceSurfaceCapabilities2EXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceSurfaceCapabilities2EXT = OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT; |
| stream->write(&opcode_vkGetPhysicalDeviceSurfaceCapabilities2EXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceSurfaceCapabilities2EXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1326; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1326, 1); |
| stream->write((uint64_t*)&cgen_var_1326, 1 * 8); |
| uint64_t cgen_var_1327; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_1327, 1); |
| stream->write((uint64_t*)&cgen_var_1327, 1 * 8); |
| marshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT readParams"); |
| unmarshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities)); |
| if (pSurfaceCapabilities) |
| { |
| transform_fromhost_VkSurfaceCapabilities2EXT(mImpl->resources(), (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT returnUnmarshal"); |
| VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPhysicalDeviceSurfaceCapabilities2EXT");; |
| return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_EXT_display_control |
| VkResult VkEncoder::vkDisplayPowerControlEXT( |
| VkDevice device, |
| VkDisplayKHR display, |
| const VkDisplayPowerInfoEXT* pDisplayPowerInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT encode"); |
| mImpl->log("start vkDisplayPowerControlEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDisplayKHR local_display; |
| VkDisplayPowerInfoEXT* local_pDisplayPowerInfo; |
| local_device = device; |
| local_display = display; |
| local_pDisplayPowerInfo = nullptr; |
| if (pDisplayPowerInfo) |
| { |
| local_pDisplayPowerInfo = (VkDisplayPowerInfoEXT*)pool->alloc(sizeof(const VkDisplayPowerInfoEXT)); |
| deepcopy_VkDisplayPowerInfoEXT(pool, pDisplayPowerInfo, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo)); |
| } |
| if (local_pDisplayPowerInfo) |
| { |
| transform_tohost_VkDisplayPowerInfoEXT(mImpl->resources(), (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1328; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1328, 1); |
| countingStream->write((uint64_t*)&cgen_var_1328, 1 * 8); |
| uint64_t cgen_var_1329; |
| countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1329, 1); |
| countingStream->write((uint64_t*)&cgen_var_1329, 1 * 8); |
| marshal_VkDisplayPowerInfoEXT(countingStream, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo)); |
| } |
| uint32_t packetSize_vkDisplayPowerControlEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDisplayPowerControlEXT = OP_vkDisplayPowerControlEXT; |
| stream->write(&opcode_vkDisplayPowerControlEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDisplayPowerControlEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1330; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1330, 1); |
| stream->write((uint64_t*)&cgen_var_1330, 1 * 8); |
| uint64_t cgen_var_1331; |
| stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1331, 1); |
| stream->write((uint64_t*)&cgen_var_1331, 1 * 8); |
| marshal_VkDisplayPowerInfoEXT(stream, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo)); |
| AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT readParams"); |
| AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT returnUnmarshal"); |
| VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkDisplayPowerControlEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkDisplayPowerControlEXT");; |
| return vkDisplayPowerControlEXT_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkRegisterDeviceEventEXT( |
| VkDevice device, |
| const VkDeviceEventInfoEXT* pDeviceEventInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkFence* pFence) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT encode"); |
| mImpl->log("start vkRegisterDeviceEventEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDeviceEventInfoEXT* local_pDeviceEventInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pDeviceEventInfo = nullptr; |
| if (pDeviceEventInfo) |
| { |
| local_pDeviceEventInfo = (VkDeviceEventInfoEXT*)pool->alloc(sizeof(const VkDeviceEventInfoEXT)); |
| deepcopy_VkDeviceEventInfoEXT(pool, pDeviceEventInfo, (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pDeviceEventInfo) |
| { |
| transform_tohost_VkDeviceEventInfoEXT(mImpl->resources(), (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1332; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1332, 1); |
| countingStream->write((uint64_t*)&cgen_var_1332, 1 * 8); |
| marshal_VkDeviceEventInfoEXT(countingStream, (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1333 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1333); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1334; |
| countingStream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1334, 1); |
| countingStream->write((uint64_t*)&cgen_var_1334, 8); |
| } |
| uint32_t packetSize_vkRegisterDeviceEventEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkRegisterDeviceEventEXT = OP_vkRegisterDeviceEventEXT; |
| stream->write(&opcode_vkRegisterDeviceEventEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkRegisterDeviceEventEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1335; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1335, 1); |
| stream->write((uint64_t*)&cgen_var_1335, 1 * 8); |
| marshal_VkDeviceEventInfoEXT(stream, (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1336 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1336); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1337; |
| stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1337, 1); |
| stream->write((uint64_t*)&cgen_var_1337, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT readParams"); |
| uint64_t cgen_var_1338; |
| stream->read((uint64_t*)&cgen_var_1338, 8); |
| stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1338, (VkFence*)pFence, 1); |
| AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT returnUnmarshal"); |
| VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkRegisterDeviceEventEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkRegisterDeviceEventEXT");; |
| return vkRegisterDeviceEventEXT_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkRegisterDisplayEventEXT( |
| VkDevice device, |
| VkDisplayKHR display, |
| const VkDisplayEventInfoEXT* pDisplayEventInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkFence* pFence) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT encode"); |
| mImpl->log("start vkRegisterDisplayEventEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDisplayKHR local_display; |
| VkDisplayEventInfoEXT* local_pDisplayEventInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_display = display; |
| local_pDisplayEventInfo = nullptr; |
| if (pDisplayEventInfo) |
| { |
| local_pDisplayEventInfo = (VkDisplayEventInfoEXT*)pool->alloc(sizeof(const VkDisplayEventInfoEXT)); |
| deepcopy_VkDisplayEventInfoEXT(pool, pDisplayEventInfo, (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pDisplayEventInfo) |
| { |
| transform_tohost_VkDisplayEventInfoEXT(mImpl->resources(), (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1339; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1339, 1); |
| countingStream->write((uint64_t*)&cgen_var_1339, 1 * 8); |
| uint64_t cgen_var_1340; |
| countingStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1340, 1); |
| countingStream->write((uint64_t*)&cgen_var_1340, 1 * 8); |
| marshal_VkDisplayEventInfoEXT(countingStream, (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1341 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1341); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1342; |
| countingStream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1342, 1); |
| countingStream->write((uint64_t*)&cgen_var_1342, 8); |
| } |
| uint32_t packetSize_vkRegisterDisplayEventEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkRegisterDisplayEventEXT = OP_vkRegisterDisplayEventEXT; |
| stream->write(&opcode_vkRegisterDisplayEventEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkRegisterDisplayEventEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1343; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1343, 1); |
| stream->write((uint64_t*)&cgen_var_1343, 1 * 8); |
| uint64_t cgen_var_1344; |
| stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1344, 1); |
| stream->write((uint64_t*)&cgen_var_1344, 1 * 8); |
| marshal_VkDisplayEventInfoEXT(stream, (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1345 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1345); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1346; |
| stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1346, 1); |
| stream->write((uint64_t*)&cgen_var_1346, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT readParams"); |
| uint64_t cgen_var_1347; |
| stream->read((uint64_t*)&cgen_var_1347, 8); |
| stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1347, (VkFence*)pFence, 1); |
| AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT returnUnmarshal"); |
| VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkRegisterDisplayEventEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkRegisterDisplayEventEXT");; |
| return vkRegisterDisplayEventEXT_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetSwapchainCounterEXT( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| VkSurfaceCounterFlagBitsEXT counter, |
| uint64_t* pCounterValue) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT encode"); |
| mImpl->log("start vkGetSwapchainCounterEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSwapchainKHR local_swapchain; |
| VkSurfaceCounterFlagBitsEXT local_counter; |
| local_device = device; |
| local_swapchain = swapchain; |
| local_counter = counter; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1348; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1348, 1); |
| countingStream->write((uint64_t*)&cgen_var_1348, 1 * 8); |
| uint64_t cgen_var_1349; |
| countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1349, 1); |
| countingStream->write((uint64_t*)&cgen_var_1349, 1 * 8); |
| countingStream->write((VkSurfaceCounterFlagBitsEXT*)&local_counter, sizeof(VkSurfaceCounterFlagBitsEXT)); |
| countingStream->write((uint64_t*)pCounterValue, sizeof(uint64_t)); |
| } |
| uint32_t packetSize_vkGetSwapchainCounterEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetSwapchainCounterEXT = OP_vkGetSwapchainCounterEXT; |
| stream->write(&opcode_vkGetSwapchainCounterEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetSwapchainCounterEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1350; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1350, 1); |
| stream->write((uint64_t*)&cgen_var_1350, 1 * 8); |
| uint64_t cgen_var_1351; |
| stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1351, 1); |
| stream->write((uint64_t*)&cgen_var_1351, 1 * 8); |
| stream->write((VkSurfaceCounterFlagBitsEXT*)&local_counter, sizeof(VkSurfaceCounterFlagBitsEXT)); |
| stream->write((uint64_t*)pCounterValue, sizeof(uint64_t)); |
| AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT readParams"); |
| stream->read((uint64_t*)pCounterValue, sizeof(uint64_t)); |
| AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT returnUnmarshal"); |
| VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkGetSwapchainCounterEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetSwapchainCounterEXT");; |
| return vkGetSwapchainCounterEXT_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_GOOGLE_display_timing |
| VkResult VkEncoder::vkGetRefreshCycleDurationGOOGLE( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE encode"); |
| mImpl->log("start vkGetRefreshCycleDurationGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSwapchainKHR local_swapchain; |
| local_device = device; |
| local_swapchain = swapchain; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1352; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1352, 1); |
| countingStream->write((uint64_t*)&cgen_var_1352, 1 * 8); |
| uint64_t cgen_var_1353; |
| countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1353, 1); |
| countingStream->write((uint64_t*)&cgen_var_1353, 1 * 8); |
| marshal_VkRefreshCycleDurationGOOGLE(countingStream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties)); |
| } |
| uint32_t packetSize_vkGetRefreshCycleDurationGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetRefreshCycleDurationGOOGLE = OP_vkGetRefreshCycleDurationGOOGLE; |
| stream->write(&opcode_vkGetRefreshCycleDurationGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetRefreshCycleDurationGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1354; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1354, 1); |
| stream->write((uint64_t*)&cgen_var_1354, 1 * 8); |
| uint64_t cgen_var_1355; |
| stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1355, 1); |
| stream->write((uint64_t*)&cgen_var_1355, 1 * 8); |
| marshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties)); |
| AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE readParams"); |
| unmarshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties)); |
| if (pDisplayTimingProperties) |
| { |
| transform_fromhost_VkRefreshCycleDurationGOOGLE(mImpl->resources(), (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE returnUnmarshal"); |
| VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0; |
| stream->read(&vkGetRefreshCycleDurationGOOGLE_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetRefreshCycleDurationGOOGLE");; |
| return vkGetRefreshCycleDurationGOOGLE_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetPastPresentationTimingGOOGLE( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint32_t* pPresentationTimingCount, |
| VkPastPresentationTimingGOOGLE* pPresentationTimings) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE encode"); |
| mImpl->log("start vkGetPastPresentationTimingGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkSwapchainKHR local_swapchain; |
| local_device = device; |
| local_swapchain = swapchain; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1356; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1356, 1); |
| countingStream->write((uint64_t*)&cgen_var_1356, 1 * 8); |
| uint64_t cgen_var_1357; |
| countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1357, 1); |
| countingStream->write((uint64_t*)&cgen_var_1357, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1358 = (uint64_t)(uintptr_t)pPresentationTimingCount; |
| countingStream->putBe64(cgen_var_1358); |
| if (pPresentationTimingCount) |
| { |
| countingStream->write((uint32_t*)pPresentationTimingCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1359 = (uint64_t)(uintptr_t)pPresentationTimings; |
| countingStream->putBe64(cgen_var_1359); |
| if (pPresentationTimings) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i) |
| { |
| marshal_VkPastPresentationTimingGOOGLE(countingStream, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetPastPresentationTimingGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPastPresentationTimingGOOGLE = OP_vkGetPastPresentationTimingGOOGLE; |
| stream->write(&opcode_vkGetPastPresentationTimingGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPastPresentationTimingGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1360; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1360, 1); |
| stream->write((uint64_t*)&cgen_var_1360, 1 * 8); |
| uint64_t cgen_var_1361; |
| stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1361, 1); |
| stream->write((uint64_t*)&cgen_var_1361, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1362 = (uint64_t)(uintptr_t)pPresentationTimingCount; |
| stream->putBe64(cgen_var_1362); |
| if (pPresentationTimingCount) |
| { |
| stream->write((uint32_t*)pPresentationTimingCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1363 = (uint64_t)(uintptr_t)pPresentationTimings; |
| stream->putBe64(cgen_var_1363); |
| if (pPresentationTimings) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i) |
| { |
| marshal_VkPastPresentationTimingGOOGLE(stream, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pPresentationTimingCount; |
| check_pPresentationTimingCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pPresentationTimingCount) |
| { |
| if (!(check_pPresentationTimingCount)) |
| { |
| fprintf(stderr, "fatal: pPresentationTimingCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pPresentationTimingCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkPastPresentationTimingGOOGLE* check_pPresentationTimings; |
| check_pPresentationTimings = (VkPastPresentationTimingGOOGLE*)(uintptr_t)stream->getBe64(); |
| if (pPresentationTimings) |
| { |
| if (!(check_pPresentationTimings)) |
| { |
| fprintf(stderr, "fatal: pPresentationTimings inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i) |
| { |
| unmarshal_VkPastPresentationTimingGOOGLE(stream, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i)); |
| } |
| } |
| if (pPresentationTimings) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i) |
| { |
| transform_fromhost_VkPastPresentationTimingGOOGLE(mImpl->resources(), (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE returnUnmarshal"); |
| VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0; |
| stream->read(&vkGetPastPresentationTimingGOOGLE_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetPastPresentationTimingGOOGLE");; |
| return vkGetPastPresentationTimingGOOGLE_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_NV_sample_mask_override_coverage |
| #endif |
| #ifdef VK_NV_geometry_shader_passthrough |
| #endif |
| #ifdef VK_NV_viewport_array2 |
| #endif |
| #ifdef VK_NVX_multiview_per_view_attributes |
| #endif |
| #ifdef VK_NV_viewport_swizzle |
| #endif |
| #ifdef VK_EXT_discard_rectangles |
| void VkEncoder::vkCmdSetDiscardRectangleEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstDiscardRectangle, |
| uint32_t discardRectangleCount, |
| const VkRect2D* pDiscardRectangles) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT encode"); |
| mImpl->log("start vkCmdSetDiscardRectangleEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_firstDiscardRectangle; |
| uint32_t local_discardRectangleCount; |
| VkRect2D* local_pDiscardRectangles; |
| local_commandBuffer = commandBuffer; |
| local_firstDiscardRectangle = firstDiscardRectangle; |
| local_discardRectangleCount = discardRectangleCount; |
| local_pDiscardRectangles = nullptr; |
| if (pDiscardRectangles) |
| { |
| local_pDiscardRectangles = (VkRect2D*)pool->alloc(((discardRectangleCount)) * sizeof(const VkRect2D)); |
| for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i) |
| { |
| deepcopy_VkRect2D(pool, pDiscardRectangles + i, (VkRect2D*)(local_pDiscardRectangles + i)); |
| } |
| } |
| if (local_pDiscardRectangles) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i) |
| { |
| transform_tohost_VkRect2D(mImpl->resources(), (VkRect2D*)(local_pDiscardRectangles + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1366; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1366, 1); |
| countingStream->write((uint64_t*)&cgen_var_1366, 1 * 8); |
| countingStream->write((uint32_t*)&local_firstDiscardRectangle, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_discardRectangleCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i) |
| { |
| marshal_VkRect2D(countingStream, (VkRect2D*)(local_pDiscardRectangles + i)); |
| } |
| } |
| uint32_t packetSize_vkCmdSetDiscardRectangleEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetDiscardRectangleEXT = OP_vkCmdSetDiscardRectangleEXT; |
| stream->write(&opcode_vkCmdSetDiscardRectangleEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetDiscardRectangleEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1367; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1367, 1); |
| stream->write((uint64_t*)&cgen_var_1367, 1 * 8); |
| stream->write((uint32_t*)&local_firstDiscardRectangle, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_discardRectangleCount, sizeof(uint32_t)); |
| for (uint32_t i = 0; i < (uint32_t)((discardRectangleCount)); ++i) |
| { |
| marshal_VkRect2D(stream, (VkRect2D*)(local_pDiscardRectangles + i)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT returnUnmarshal"); |
| mImpl->log("finish vkCmdSetDiscardRectangleEXT");; |
| } |
| |
| #endif |
| #ifdef VK_EXT_conservative_rasterization |
| #endif |
| #ifdef VK_EXT_swapchain_colorspace |
| #endif |
| #ifdef VK_EXT_hdr_metadata |
| void VkEncoder::vkSetHdrMetadataEXT( |
| VkDevice device, |
| uint32_t swapchainCount, |
| const VkSwapchainKHR* pSwapchains, |
| const VkHdrMetadataEXT* pMetadata) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT encode"); |
| mImpl->log("start vkSetHdrMetadataEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| uint32_t local_swapchainCount; |
| VkSwapchainKHR* local_pSwapchains; |
| VkHdrMetadataEXT* local_pMetadata; |
| local_device = device; |
| local_swapchainCount = swapchainCount; |
| local_pSwapchains = nullptr; |
| if (pSwapchains) |
| { |
| local_pSwapchains = (VkSwapchainKHR*)pool->dupArray(pSwapchains, ((swapchainCount)) * sizeof(const VkSwapchainKHR)); |
| } |
| local_pMetadata = nullptr; |
| if (pMetadata) |
| { |
| local_pMetadata = (VkHdrMetadataEXT*)pool->alloc(((swapchainCount)) * sizeof(const VkHdrMetadataEXT)); |
| for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i) |
| { |
| deepcopy_VkHdrMetadataEXT(pool, pMetadata + i, (VkHdrMetadataEXT*)(local_pMetadata + i)); |
| } |
| } |
| if (local_pMetadata) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i) |
| { |
| transform_tohost_VkHdrMetadataEXT(mImpl->resources(), (VkHdrMetadataEXT*)(local_pMetadata + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1368; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1368, 1); |
| countingStream->write((uint64_t*)&cgen_var_1368, 1 * 8); |
| countingStream->write((uint32_t*)&local_swapchainCount, sizeof(uint32_t)); |
| if (((swapchainCount))) |
| { |
| uint64_t* cgen_var_1369; |
| countingStream->alloc((void**)&cgen_var_1369, ((swapchainCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(local_pSwapchains, cgen_var_1369, ((swapchainCount))); |
| countingStream->write((uint64_t*)cgen_var_1369, ((swapchainCount)) * 8); |
| } |
| for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i) |
| { |
| marshal_VkHdrMetadataEXT(countingStream, (VkHdrMetadataEXT*)(local_pMetadata + i)); |
| } |
| } |
| uint32_t packetSize_vkSetHdrMetadataEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkSetHdrMetadataEXT = OP_vkSetHdrMetadataEXT; |
| stream->write(&opcode_vkSetHdrMetadataEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkSetHdrMetadataEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1370; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1370, 1); |
| stream->write((uint64_t*)&cgen_var_1370, 1 * 8); |
| stream->write((uint32_t*)&local_swapchainCount, sizeof(uint32_t)); |
| if (((swapchainCount))) |
| { |
| uint64_t* cgen_var_1371; |
| stream->alloc((void**)&cgen_var_1371, ((swapchainCount)) * 8); |
| stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(local_pSwapchains, cgen_var_1371, ((swapchainCount))); |
| stream->write((uint64_t*)cgen_var_1371, ((swapchainCount)) * 8); |
| } |
| for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i) |
| { |
| marshal_VkHdrMetadataEXT(stream, (VkHdrMetadataEXT*)(local_pMetadata + i)); |
| } |
| AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT readParams"); |
| AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT returnUnmarshal"); |
| mImpl->log("finish vkSetHdrMetadataEXT");; |
| } |
| |
| #endif |
| #ifdef VK_MVK_ios_surface |
| VkResult VkEncoder::vkCreateIOSSurfaceMVK( |
| VkInstance instance, |
| const VkIOSSurfaceCreateInfoMVK* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK encode"); |
| mImpl->log("start vkCreateIOSSurfaceMVK"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkIOSSurfaceCreateInfoMVK* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkIOSSurfaceCreateInfoMVK*)pool->alloc(sizeof(const VkIOSSurfaceCreateInfoMVK)); |
| deepcopy_VkIOSSurfaceCreateInfoMVK(pool, pCreateInfo, (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkIOSSurfaceCreateInfoMVK(mImpl->resources(), (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1372; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1372, 1); |
| countingStream->write((uint64_t*)&cgen_var_1372, 1 * 8); |
| marshal_VkIOSSurfaceCreateInfoMVK(countingStream, (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1373 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1373); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1374; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1374, 1); |
| countingStream->write((uint64_t*)&cgen_var_1374, 8); |
| } |
| uint32_t packetSize_vkCreateIOSSurfaceMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateIOSSurfaceMVK = OP_vkCreateIOSSurfaceMVK; |
| stream->write(&opcode_vkCreateIOSSurfaceMVK, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateIOSSurfaceMVK, sizeof(uint32_t)); |
| uint64_t cgen_var_1375; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1375, 1); |
| stream->write((uint64_t*)&cgen_var_1375, 1 * 8); |
| marshal_VkIOSSurfaceCreateInfoMVK(stream, (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1376 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1376); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1377; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1377, 1); |
| stream->write((uint64_t*)&cgen_var_1377, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK readParams"); |
| uint64_t cgen_var_1378; |
| stream->read((uint64_t*)&cgen_var_1378, 8); |
| stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1378, (VkSurfaceKHR*)pSurface, 1); |
| AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK returnUnmarshal"); |
| VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateIOSSurfaceMVK_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateIOSSurfaceMVK");; |
| return vkCreateIOSSurfaceMVK_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_MVK_macos_surface |
| VkResult VkEncoder::vkCreateMacOSSurfaceMVK( |
| VkInstance instance, |
| const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK encode"); |
| mImpl->log("start vkCreateMacOSSurfaceMVK"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkMacOSSurfaceCreateInfoMVK* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkMacOSSurfaceCreateInfoMVK*)pool->alloc(sizeof(const VkMacOSSurfaceCreateInfoMVK)); |
| deepcopy_VkMacOSSurfaceCreateInfoMVK(pool, pCreateInfo, (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkMacOSSurfaceCreateInfoMVK(mImpl->resources(), (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1379; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1379, 1); |
| countingStream->write((uint64_t*)&cgen_var_1379, 1 * 8); |
| marshal_VkMacOSSurfaceCreateInfoMVK(countingStream, (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1380 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1380); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1381; |
| countingStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1381, 1); |
| countingStream->write((uint64_t*)&cgen_var_1381, 8); |
| } |
| uint32_t packetSize_vkCreateMacOSSurfaceMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateMacOSSurfaceMVK = OP_vkCreateMacOSSurfaceMVK; |
| stream->write(&opcode_vkCreateMacOSSurfaceMVK, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateMacOSSurfaceMVK, sizeof(uint32_t)); |
| uint64_t cgen_var_1382; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1382, 1); |
| stream->write((uint64_t*)&cgen_var_1382, 1 * 8); |
| marshal_VkMacOSSurfaceCreateInfoMVK(stream, (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1383 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1383); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1384; |
| stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1384, 1); |
| stream->write((uint64_t*)&cgen_var_1384, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK readParams"); |
| uint64_t cgen_var_1385; |
| stream->read((uint64_t*)&cgen_var_1385, 8); |
| stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1385, (VkSurfaceKHR*)pSurface, 1); |
| AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK returnUnmarshal"); |
| VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateMacOSSurfaceMVK_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateMacOSSurfaceMVK");; |
| return vkCreateMacOSSurfaceMVK_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_EXT_external_memory_dma_buf |
| #endif |
| #ifdef VK_EXT_queue_family_foreign |
| #endif |
| #ifdef VK_EXT_debug_utils |
| VkResult VkEncoder::vkSetDebugUtilsObjectNameEXT( |
| VkDevice device, |
| const VkDebugUtilsObjectNameInfoEXT* pNameInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT encode"); |
| mImpl->log("start vkSetDebugUtilsObjectNameEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDebugUtilsObjectNameInfoEXT* local_pNameInfo; |
| local_device = device; |
| local_pNameInfo = nullptr; |
| if (pNameInfo) |
| { |
| local_pNameInfo = (VkDebugUtilsObjectNameInfoEXT*)pool->alloc(sizeof(const VkDebugUtilsObjectNameInfoEXT)); |
| deepcopy_VkDebugUtilsObjectNameInfoEXT(pool, pNameInfo, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo)); |
| } |
| if (local_pNameInfo) |
| { |
| transform_tohost_VkDebugUtilsObjectNameInfoEXT(mImpl->resources(), (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1386; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1386, 1); |
| countingStream->write((uint64_t*)&cgen_var_1386, 1 * 8); |
| marshal_VkDebugUtilsObjectNameInfoEXT(countingStream, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo)); |
| } |
| uint32_t packetSize_vkSetDebugUtilsObjectNameEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkSetDebugUtilsObjectNameEXT = OP_vkSetDebugUtilsObjectNameEXT; |
| stream->write(&opcode_vkSetDebugUtilsObjectNameEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkSetDebugUtilsObjectNameEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1387; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1387, 1); |
| stream->write((uint64_t*)&cgen_var_1387, 1 * 8); |
| marshal_VkDebugUtilsObjectNameInfoEXT(stream, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo)); |
| AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT readParams"); |
| AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT returnUnmarshal"); |
| VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkSetDebugUtilsObjectNameEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkSetDebugUtilsObjectNameEXT");; |
| return vkSetDebugUtilsObjectNameEXT_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkSetDebugUtilsObjectTagEXT( |
| VkDevice device, |
| const VkDebugUtilsObjectTagInfoEXT* pTagInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT encode"); |
| mImpl->log("start vkSetDebugUtilsObjectTagEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDebugUtilsObjectTagInfoEXT* local_pTagInfo; |
| local_device = device; |
| local_pTagInfo = nullptr; |
| if (pTagInfo) |
| { |
| local_pTagInfo = (VkDebugUtilsObjectTagInfoEXT*)pool->alloc(sizeof(const VkDebugUtilsObjectTagInfoEXT)); |
| deepcopy_VkDebugUtilsObjectTagInfoEXT(pool, pTagInfo, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo)); |
| } |
| if (local_pTagInfo) |
| { |
| transform_tohost_VkDebugUtilsObjectTagInfoEXT(mImpl->resources(), (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1388; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1388, 1); |
| countingStream->write((uint64_t*)&cgen_var_1388, 1 * 8); |
| marshal_VkDebugUtilsObjectTagInfoEXT(countingStream, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo)); |
| } |
| uint32_t packetSize_vkSetDebugUtilsObjectTagEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkSetDebugUtilsObjectTagEXT = OP_vkSetDebugUtilsObjectTagEXT; |
| stream->write(&opcode_vkSetDebugUtilsObjectTagEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkSetDebugUtilsObjectTagEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1389; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1389, 1); |
| stream->write((uint64_t*)&cgen_var_1389, 1 * 8); |
| marshal_VkDebugUtilsObjectTagInfoEXT(stream, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo)); |
| AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT readParams"); |
| AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT returnUnmarshal"); |
| VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkSetDebugUtilsObjectTagEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkSetDebugUtilsObjectTagEXT");; |
| return vkSetDebugUtilsObjectTagEXT_VkResult_return; |
| } |
| |
| void VkEncoder::vkQueueBeginDebugUtilsLabelEXT( |
| VkQueue queue, |
| const VkDebugUtilsLabelEXT* pLabelInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT encode"); |
| mImpl->log("start vkQueueBeginDebugUtilsLabelEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkQueue local_queue; |
| VkDebugUtilsLabelEXT* local_pLabelInfo; |
| local_queue = queue; |
| local_pLabelInfo = nullptr; |
| if (pLabelInfo) |
| { |
| local_pLabelInfo = (VkDebugUtilsLabelEXT*)pool->alloc(sizeof(const VkDebugUtilsLabelEXT)); |
| deepcopy_VkDebugUtilsLabelEXT(pool, pLabelInfo, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| if (local_pLabelInfo) |
| { |
| transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1390; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1390, 1); |
| countingStream->write((uint64_t*)&cgen_var_1390, 1 * 8); |
| marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| uint32_t packetSize_vkQueueBeginDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkQueueBeginDebugUtilsLabelEXT = OP_vkQueueBeginDebugUtilsLabelEXT; |
| stream->write(&opcode_vkQueueBeginDebugUtilsLabelEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkQueueBeginDebugUtilsLabelEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1391; |
| stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1391, 1); |
| stream->write((uint64_t*)&cgen_var_1391, 1 * 8); |
| marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT readParams"); |
| AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT returnUnmarshal"); |
| mImpl->log("finish vkQueueBeginDebugUtilsLabelEXT");; |
| } |
| |
| void VkEncoder::vkQueueEndDebugUtilsLabelEXT( |
| VkQueue queue) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT encode"); |
| mImpl->log("start vkQueueEndDebugUtilsLabelEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkQueue local_queue; |
| local_queue = queue; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1392; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1392, 1); |
| countingStream->write((uint64_t*)&cgen_var_1392, 1 * 8); |
| } |
| uint32_t packetSize_vkQueueEndDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkQueueEndDebugUtilsLabelEXT = OP_vkQueueEndDebugUtilsLabelEXT; |
| stream->write(&opcode_vkQueueEndDebugUtilsLabelEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkQueueEndDebugUtilsLabelEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1393; |
| stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1393, 1); |
| stream->write((uint64_t*)&cgen_var_1393, 1 * 8); |
| AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT readParams"); |
| AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT returnUnmarshal"); |
| mImpl->log("finish vkQueueEndDebugUtilsLabelEXT");; |
| } |
| |
| void VkEncoder::vkQueueInsertDebugUtilsLabelEXT( |
| VkQueue queue, |
| const VkDebugUtilsLabelEXT* pLabelInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT encode"); |
| mImpl->log("start vkQueueInsertDebugUtilsLabelEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkQueue local_queue; |
| VkDebugUtilsLabelEXT* local_pLabelInfo; |
| local_queue = queue; |
| local_pLabelInfo = nullptr; |
| if (pLabelInfo) |
| { |
| local_pLabelInfo = (VkDebugUtilsLabelEXT*)pool->alloc(sizeof(const VkDebugUtilsLabelEXT)); |
| deepcopy_VkDebugUtilsLabelEXT(pool, pLabelInfo, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| if (local_pLabelInfo) |
| { |
| transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1394; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1394, 1); |
| countingStream->write((uint64_t*)&cgen_var_1394, 1 * 8); |
| marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| uint32_t packetSize_vkQueueInsertDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkQueueInsertDebugUtilsLabelEXT = OP_vkQueueInsertDebugUtilsLabelEXT; |
| stream->write(&opcode_vkQueueInsertDebugUtilsLabelEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkQueueInsertDebugUtilsLabelEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1395; |
| stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1395, 1); |
| stream->write((uint64_t*)&cgen_var_1395, 1 * 8); |
| marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT readParams"); |
| AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT returnUnmarshal"); |
| mImpl->log("finish vkQueueInsertDebugUtilsLabelEXT");; |
| } |
| |
| void VkEncoder::vkCmdBeginDebugUtilsLabelEXT( |
| VkCommandBuffer commandBuffer, |
| const VkDebugUtilsLabelEXT* pLabelInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT encode"); |
| mImpl->log("start vkCmdBeginDebugUtilsLabelEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkDebugUtilsLabelEXT* local_pLabelInfo; |
| local_commandBuffer = commandBuffer; |
| local_pLabelInfo = nullptr; |
| if (pLabelInfo) |
| { |
| local_pLabelInfo = (VkDebugUtilsLabelEXT*)pool->alloc(sizeof(const VkDebugUtilsLabelEXT)); |
| deepcopy_VkDebugUtilsLabelEXT(pool, pLabelInfo, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| if (local_pLabelInfo) |
| { |
| transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1396; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1396, 1); |
| countingStream->write((uint64_t*)&cgen_var_1396, 1 * 8); |
| marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| uint32_t packetSize_vkCmdBeginDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdBeginDebugUtilsLabelEXT = OP_vkCmdBeginDebugUtilsLabelEXT; |
| stream->write(&opcode_vkCmdBeginDebugUtilsLabelEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdBeginDebugUtilsLabelEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1397; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1397, 1); |
| stream->write((uint64_t*)&cgen_var_1397, 1 * 8); |
| marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT readParams"); |
| AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT returnUnmarshal"); |
| mImpl->log("finish vkCmdBeginDebugUtilsLabelEXT");; |
| } |
| |
| void VkEncoder::vkCmdEndDebugUtilsLabelEXT( |
| VkCommandBuffer commandBuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT encode"); |
| mImpl->log("start vkCmdEndDebugUtilsLabelEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| local_commandBuffer = commandBuffer; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1398; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1398, 1); |
| countingStream->write((uint64_t*)&cgen_var_1398, 1 * 8); |
| } |
| uint32_t packetSize_vkCmdEndDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdEndDebugUtilsLabelEXT = OP_vkCmdEndDebugUtilsLabelEXT; |
| stream->write(&opcode_vkCmdEndDebugUtilsLabelEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdEndDebugUtilsLabelEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1399; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1399, 1); |
| stream->write((uint64_t*)&cgen_var_1399, 1 * 8); |
| AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT readParams"); |
| AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT returnUnmarshal"); |
| mImpl->log("finish vkCmdEndDebugUtilsLabelEXT");; |
| } |
| |
| void VkEncoder::vkCmdInsertDebugUtilsLabelEXT( |
| VkCommandBuffer commandBuffer, |
| const VkDebugUtilsLabelEXT* pLabelInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT encode"); |
| mImpl->log("start vkCmdInsertDebugUtilsLabelEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkDebugUtilsLabelEXT* local_pLabelInfo; |
| local_commandBuffer = commandBuffer; |
| local_pLabelInfo = nullptr; |
| if (pLabelInfo) |
| { |
| local_pLabelInfo = (VkDebugUtilsLabelEXT*)pool->alloc(sizeof(const VkDebugUtilsLabelEXT)); |
| deepcopy_VkDebugUtilsLabelEXT(pool, pLabelInfo, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| if (local_pLabelInfo) |
| { |
| transform_tohost_VkDebugUtilsLabelEXT(mImpl->resources(), (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1400; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1400, 1); |
| countingStream->write((uint64_t*)&cgen_var_1400, 1 * 8); |
| marshal_VkDebugUtilsLabelEXT(countingStream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| } |
| uint32_t packetSize_vkCmdInsertDebugUtilsLabelEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdInsertDebugUtilsLabelEXT = OP_vkCmdInsertDebugUtilsLabelEXT; |
| stream->write(&opcode_vkCmdInsertDebugUtilsLabelEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdInsertDebugUtilsLabelEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1401; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1401, 1); |
| stream->write((uint64_t*)&cgen_var_1401, 1 * 8); |
| marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); |
| AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT readParams"); |
| AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT returnUnmarshal"); |
| mImpl->log("finish vkCmdInsertDebugUtilsLabelEXT");; |
| } |
| |
| VkResult VkEncoder::vkCreateDebugUtilsMessengerEXT( |
| VkInstance instance, |
| const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDebugUtilsMessengerEXT* pMessenger) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT encode"); |
| mImpl->log("start vkCreateDebugUtilsMessengerEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkDebugUtilsMessengerCreateInfoEXT* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkDebugUtilsMessengerCreateInfoEXT*)pool->alloc(sizeof(const VkDebugUtilsMessengerCreateInfoEXT)); |
| deepcopy_VkDebugUtilsMessengerCreateInfoEXT(pool, pCreateInfo, (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkDebugUtilsMessengerCreateInfoEXT(mImpl->resources(), (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1402; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1402, 1); |
| countingStream->write((uint64_t*)&cgen_var_1402, 1 * 8); |
| marshal_VkDebugUtilsMessengerCreateInfoEXT(countingStream, (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1403 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1403); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1404; |
| countingStream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(pMessenger, &cgen_var_1404, 1); |
| countingStream->write((uint64_t*)&cgen_var_1404, 8); |
| } |
| uint32_t packetSize_vkCreateDebugUtilsMessengerEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateDebugUtilsMessengerEXT = OP_vkCreateDebugUtilsMessengerEXT; |
| stream->write(&opcode_vkCreateDebugUtilsMessengerEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateDebugUtilsMessengerEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1405; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1405, 1); |
| stream->write((uint64_t*)&cgen_var_1405, 1 * 8); |
| marshal_VkDebugUtilsMessengerCreateInfoEXT(stream, (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1406 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1406); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1407; |
| stream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(pMessenger, &cgen_var_1407, 1); |
| stream->write((uint64_t*)&cgen_var_1407, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_1408; |
| stream->read((uint64_t*)&cgen_var_1408, 8); |
| stream->handleMapping()->mapHandles_u64_VkDebugUtilsMessengerEXT(&cgen_var_1408, (VkDebugUtilsMessengerEXT*)pMessenger, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT returnUnmarshal"); |
| VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateDebugUtilsMessengerEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateDebugUtilsMessengerEXT");; |
| return vkCreateDebugUtilsMessengerEXT_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyDebugUtilsMessengerEXT( |
| VkInstance instance, |
| VkDebugUtilsMessengerEXT messenger, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT encode"); |
| mImpl->log("start vkDestroyDebugUtilsMessengerEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkDebugUtilsMessengerEXT local_messenger; |
| VkAllocationCallbacks* local_pAllocator; |
| local_instance = instance; |
| local_messenger = messenger; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1409; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1409, 1); |
| countingStream->write((uint64_t*)&cgen_var_1409, 1 * 8); |
| uint64_t cgen_var_1410; |
| countingStream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(&local_messenger, &cgen_var_1410, 1); |
| countingStream->write((uint64_t*)&cgen_var_1410, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1411 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1411); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyDebugUtilsMessengerEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyDebugUtilsMessengerEXT = OP_vkDestroyDebugUtilsMessengerEXT; |
| stream->write(&opcode_vkDestroyDebugUtilsMessengerEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyDebugUtilsMessengerEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1412; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1412, 1); |
| stream->write((uint64_t*)&cgen_var_1412, 1 * 8); |
| uint64_t cgen_var_1413; |
| stream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(&local_messenger, &cgen_var_1413, 1); |
| stream->write((uint64_t*)&cgen_var_1413, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1414 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1414); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkDebugUtilsMessengerEXT((VkDebugUtilsMessengerEXT*)&messenger); |
| mImpl->log("finish vkDestroyDebugUtilsMessengerEXT");; |
| } |
| |
| void VkEncoder::vkSubmitDebugUtilsMessageEXT( |
| VkInstance instance, |
| VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, |
| VkDebugUtilsMessageTypeFlagsEXT messageTypes, |
| const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT encode"); |
| mImpl->log("start vkSubmitDebugUtilsMessageEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkInstance local_instance; |
| VkDebugUtilsMessageSeverityFlagBitsEXT local_messageSeverity; |
| VkDebugUtilsMessageTypeFlagsEXT local_messageTypes; |
| VkDebugUtilsMessengerCallbackDataEXT* local_pCallbackData; |
| local_instance = instance; |
| local_messageSeverity = messageSeverity; |
| local_messageTypes = messageTypes; |
| local_pCallbackData = nullptr; |
| if (pCallbackData) |
| { |
| local_pCallbackData = (VkDebugUtilsMessengerCallbackDataEXT*)pool->alloc(sizeof(const VkDebugUtilsMessengerCallbackDataEXT)); |
| deepcopy_VkDebugUtilsMessengerCallbackDataEXT(pool, pCallbackData, (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData)); |
| } |
| if (local_pCallbackData) |
| { |
| transform_tohost_VkDebugUtilsMessengerCallbackDataEXT(mImpl->resources(), (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1415; |
| countingStream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1415, 1); |
| countingStream->write((uint64_t*)&cgen_var_1415, 1 * 8); |
| countingStream->write((VkDebugUtilsMessageSeverityFlagBitsEXT*)&local_messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagBitsEXT)); |
| countingStream->write((VkDebugUtilsMessageTypeFlagsEXT*)&local_messageTypes, sizeof(VkDebugUtilsMessageTypeFlagsEXT)); |
| marshal_VkDebugUtilsMessengerCallbackDataEXT(countingStream, (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData)); |
| } |
| uint32_t packetSize_vkSubmitDebugUtilsMessageEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkSubmitDebugUtilsMessageEXT = OP_vkSubmitDebugUtilsMessageEXT; |
| stream->write(&opcode_vkSubmitDebugUtilsMessageEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkSubmitDebugUtilsMessageEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1416; |
| stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_1416, 1); |
| stream->write((uint64_t*)&cgen_var_1416, 1 * 8); |
| stream->write((VkDebugUtilsMessageSeverityFlagBitsEXT*)&local_messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagBitsEXT)); |
| stream->write((VkDebugUtilsMessageTypeFlagsEXT*)&local_messageTypes, sizeof(VkDebugUtilsMessageTypeFlagsEXT)); |
| marshal_VkDebugUtilsMessengerCallbackDataEXT(stream, (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData)); |
| AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT readParams"); |
| AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT returnUnmarshal"); |
| mImpl->log("finish vkSubmitDebugUtilsMessageEXT");; |
| } |
| |
| #endif |
| #ifdef VK_ANDROID_external_memory_android_hardware_buffer |
| VkResult VkEncoder::vkGetAndroidHardwareBufferPropertiesANDROID( |
| VkDevice device, |
| const AHardwareBuffer* buffer, |
| VkAndroidHardwareBufferPropertiesANDROID* pProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID encode"); |
| mImpl->log("start vkGetAndroidHardwareBufferPropertiesANDROID"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| AHardwareBuffer* local_buffer; |
| local_device = device; |
| local_buffer = nullptr; |
| if (buffer) |
| { |
| local_buffer = (AHardwareBuffer*)pool->dupArray(buffer, sizeof(const AHardwareBuffer)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1417; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1417, 1); |
| countingStream->write((uint64_t*)&cgen_var_1417, 1 * 8); |
| countingStream->write((AHardwareBuffer*)local_buffer, sizeof(AHardwareBuffer)); |
| marshal_VkAndroidHardwareBufferPropertiesANDROID(countingStream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties)); |
| } |
| uint32_t packetSize_vkGetAndroidHardwareBufferPropertiesANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetAndroidHardwareBufferPropertiesANDROID = OP_vkGetAndroidHardwareBufferPropertiesANDROID; |
| stream->write(&opcode_vkGetAndroidHardwareBufferPropertiesANDROID, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetAndroidHardwareBufferPropertiesANDROID, sizeof(uint32_t)); |
| uint64_t cgen_var_1418; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1418, 1); |
| stream->write((uint64_t*)&cgen_var_1418, 1 * 8); |
| stream->write((AHardwareBuffer*)local_buffer, sizeof(AHardwareBuffer)); |
| marshal_VkAndroidHardwareBufferPropertiesANDROID(stream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties)); |
| AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID readParams"); |
| unmarshal_VkAndroidHardwareBufferPropertiesANDROID(stream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties)); |
| if (pProperties) |
| { |
| transform_fromhost_VkAndroidHardwareBufferPropertiesANDROID(mImpl->resources(), (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID returnUnmarshal"); |
| VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0; |
| stream->read(&vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetAndroidHardwareBufferPropertiesANDROID");; |
| return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetMemoryAndroidHardwareBufferANDROID( |
| VkDevice device, |
| const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, |
| AHardwareBuffer** pBuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID encode"); |
| mImpl->log("start vkGetMemoryAndroidHardwareBufferANDROID"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkMemoryGetAndroidHardwareBufferInfoANDROID* local_pInfo; |
| local_device = device; |
| local_pInfo = nullptr; |
| if (pInfo) |
| { |
| local_pInfo = (VkMemoryGetAndroidHardwareBufferInfoANDROID*)pool->alloc(sizeof(const VkMemoryGetAndroidHardwareBufferInfoANDROID)); |
| deepcopy_VkMemoryGetAndroidHardwareBufferInfoANDROID(pool, pInfo, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo)); |
| } |
| if (local_pInfo) |
| { |
| transform_tohost_VkMemoryGetAndroidHardwareBufferInfoANDROID(mImpl->resources(), (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1419; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1419, 1); |
| countingStream->write((uint64_t*)&cgen_var_1419, 1 * 8); |
| marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(countingStream, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo)); |
| countingStream->write((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*)); |
| } |
| uint32_t packetSize_vkGetMemoryAndroidHardwareBufferANDROID = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetMemoryAndroidHardwareBufferANDROID = OP_vkGetMemoryAndroidHardwareBufferANDROID; |
| stream->write(&opcode_vkGetMemoryAndroidHardwareBufferANDROID, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetMemoryAndroidHardwareBufferANDROID, sizeof(uint32_t)); |
| uint64_t cgen_var_1420; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1420, 1); |
| stream->write((uint64_t*)&cgen_var_1420, 1 * 8); |
| marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(stream, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo)); |
| stream->write((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*)); |
| AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID readParams"); |
| stream->read((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*)); |
| AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID returnUnmarshal"); |
| VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0; |
| stream->read(&vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetMemoryAndroidHardwareBufferANDROID");; |
| return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_EXT_sampler_filter_minmax |
| #endif |
| #ifdef VK_AMD_gpu_shader_int16 |
| #endif |
| #ifdef VK_AMD_mixed_attachment_samples |
| #endif |
| #ifdef VK_AMD_shader_fragment_mask |
| #endif |
| #ifdef VK_EXT_shader_stencil_export |
| #endif |
| #ifdef VK_EXT_sample_locations |
| void VkEncoder::vkCmdSetSampleLocationsEXT( |
| VkCommandBuffer commandBuffer, |
| const VkSampleLocationsInfoEXT* pSampleLocationsInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT encode"); |
| mImpl->log("start vkCmdSetSampleLocationsEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkSampleLocationsInfoEXT* local_pSampleLocationsInfo; |
| local_commandBuffer = commandBuffer; |
| local_pSampleLocationsInfo = nullptr; |
| if (pSampleLocationsInfo) |
| { |
| local_pSampleLocationsInfo = (VkSampleLocationsInfoEXT*)pool->alloc(sizeof(const VkSampleLocationsInfoEXT)); |
| deepcopy_VkSampleLocationsInfoEXT(pool, pSampleLocationsInfo, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo)); |
| } |
| if (local_pSampleLocationsInfo) |
| { |
| transform_tohost_VkSampleLocationsInfoEXT(mImpl->resources(), (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1421; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1421, 1); |
| countingStream->write((uint64_t*)&cgen_var_1421, 1 * 8); |
| marshal_VkSampleLocationsInfoEXT(countingStream, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo)); |
| } |
| uint32_t packetSize_vkCmdSetSampleLocationsEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetSampleLocationsEXT = OP_vkCmdSetSampleLocationsEXT; |
| stream->write(&opcode_vkCmdSetSampleLocationsEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetSampleLocationsEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1422; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1422, 1); |
| stream->write((uint64_t*)&cgen_var_1422, 1 * 8); |
| marshal_VkSampleLocationsInfoEXT(stream, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo)); |
| AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT returnUnmarshal"); |
| mImpl->log("finish vkCmdSetSampleLocationsEXT");; |
| } |
| |
| void VkEncoder::vkGetPhysicalDeviceMultisamplePropertiesEXT( |
| VkPhysicalDevice physicalDevice, |
| VkSampleCountFlagBits samples, |
| VkMultisamplePropertiesEXT* pMultisampleProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT encode"); |
| mImpl->log("start vkGetPhysicalDeviceMultisamplePropertiesEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkPhysicalDevice local_physicalDevice; |
| VkSampleCountFlagBits local_samples; |
| local_physicalDevice = physicalDevice; |
| local_samples = samples; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1423; |
| countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1423, 1); |
| countingStream->write((uint64_t*)&cgen_var_1423, 1 * 8); |
| countingStream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits)); |
| marshal_VkMultisamplePropertiesEXT(countingStream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties)); |
| } |
| uint32_t packetSize_vkGetPhysicalDeviceMultisamplePropertiesEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetPhysicalDeviceMultisamplePropertiesEXT = OP_vkGetPhysicalDeviceMultisamplePropertiesEXT; |
| stream->write(&opcode_vkGetPhysicalDeviceMultisamplePropertiesEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetPhysicalDeviceMultisamplePropertiesEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1424; |
| stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1424, 1); |
| stream->write((uint64_t*)&cgen_var_1424, 1 * 8); |
| stream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits)); |
| marshal_VkMultisamplePropertiesEXT(stream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties)); |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT readParams"); |
| unmarshal_VkMultisamplePropertiesEXT(stream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties)); |
| if (pMultisampleProperties) |
| { |
| transform_fromhost_VkMultisamplePropertiesEXT(mImpl->resources(), (VkMultisamplePropertiesEXT*)(pMultisampleProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT returnUnmarshal"); |
| mImpl->log("finish vkGetPhysicalDeviceMultisamplePropertiesEXT");; |
| } |
| |
| #endif |
| #ifdef VK_EXT_blend_operation_advanced |
| #endif |
| #ifdef VK_NV_fragment_coverage_to_color |
| #endif |
| #ifdef VK_NV_framebuffer_mixed_samples |
| #endif |
| #ifdef VK_NV_fill_rectangle |
| #endif |
| #ifdef VK_EXT_post_depth_coverage |
| #endif |
| #ifdef VK_EXT_validation_cache |
| VkResult VkEncoder::vkCreateValidationCacheEXT( |
| VkDevice device, |
| const VkValidationCacheCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkValidationCacheEXT* pValidationCache) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT encode"); |
| mImpl->log("start vkCreateValidationCacheEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkValidationCacheCreateInfoEXT* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkValidationCacheCreateInfoEXT*)pool->alloc(sizeof(const VkValidationCacheCreateInfoEXT)); |
| deepcopy_VkValidationCacheCreateInfoEXT(pool, pCreateInfo, (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkValidationCacheCreateInfoEXT(mImpl->resources(), (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1425; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1425, 1); |
| countingStream->write((uint64_t*)&cgen_var_1425, 1 * 8); |
| marshal_VkValidationCacheCreateInfoEXT(countingStream, (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1426 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1426); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1427; |
| countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(pValidationCache, &cgen_var_1427, 1); |
| countingStream->write((uint64_t*)&cgen_var_1427, 8); |
| } |
| uint32_t packetSize_vkCreateValidationCacheEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateValidationCacheEXT = OP_vkCreateValidationCacheEXT; |
| stream->write(&opcode_vkCreateValidationCacheEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateValidationCacheEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1428; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1428, 1); |
| stream->write((uint64_t*)&cgen_var_1428, 1 * 8); |
| marshal_VkValidationCacheCreateInfoEXT(stream, (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1429 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1429); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1430; |
| stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(pValidationCache, &cgen_var_1430, 1); |
| stream->write((uint64_t*)&cgen_var_1430, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_1431; |
| stream->read((uint64_t*)&cgen_var_1431, 8); |
| stream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_1431, (VkValidationCacheEXT*)pValidationCache, 1); |
| stream->unsetHandleMapping(); |
| AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT returnUnmarshal"); |
| VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateValidationCacheEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateValidationCacheEXT");; |
| return vkCreateValidationCacheEXT_VkResult_return; |
| } |
| |
| void VkEncoder::vkDestroyValidationCacheEXT( |
| VkDevice device, |
| VkValidationCacheEXT validationCache, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT encode"); |
| mImpl->log("start vkDestroyValidationCacheEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkValidationCacheEXT local_validationCache; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_validationCache = validationCache; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1432; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1432, 1); |
| countingStream->write((uint64_t*)&cgen_var_1432, 1 * 8); |
| uint64_t cgen_var_1433; |
| countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1433, 1); |
| countingStream->write((uint64_t*)&cgen_var_1433, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1434 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1434); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkDestroyValidationCacheEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkDestroyValidationCacheEXT = OP_vkDestroyValidationCacheEXT; |
| stream->write(&opcode_vkDestroyValidationCacheEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkDestroyValidationCacheEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1435; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1435, 1); |
| stream->write((uint64_t*)&cgen_var_1435, 1 * 8); |
| uint64_t cgen_var_1436; |
| stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1436, 1); |
| stream->write((uint64_t*)&cgen_var_1436, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1437 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1437); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT readParams"); |
| AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT returnUnmarshal"); |
| resources->destroyMapping()->mapHandles_VkValidationCacheEXT((VkValidationCacheEXT*)&validationCache); |
| mImpl->log("finish vkDestroyValidationCacheEXT");; |
| } |
| |
| VkResult VkEncoder::vkMergeValidationCachesEXT( |
| VkDevice device, |
| VkValidationCacheEXT dstCache, |
| uint32_t srcCacheCount, |
| const VkValidationCacheEXT* pSrcCaches) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT encode"); |
| mImpl->log("start vkMergeValidationCachesEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkValidationCacheEXT local_dstCache; |
| uint32_t local_srcCacheCount; |
| VkValidationCacheEXT* local_pSrcCaches; |
| local_device = device; |
| local_dstCache = dstCache; |
| local_srcCacheCount = srcCacheCount; |
| local_pSrcCaches = nullptr; |
| if (pSrcCaches) |
| { |
| local_pSrcCaches = (VkValidationCacheEXT*)pool->dupArray(pSrcCaches, ((srcCacheCount)) * sizeof(const VkValidationCacheEXT)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1438; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1438, 1); |
| countingStream->write((uint64_t*)&cgen_var_1438, 1 * 8); |
| uint64_t cgen_var_1439; |
| countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_dstCache, &cgen_var_1439, 1); |
| countingStream->write((uint64_t*)&cgen_var_1439, 1 * 8); |
| countingStream->write((uint32_t*)&local_srcCacheCount, sizeof(uint32_t)); |
| if (((srcCacheCount))) |
| { |
| uint64_t* cgen_var_1440; |
| countingStream->alloc((void**)&cgen_var_1440, ((srcCacheCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(local_pSrcCaches, cgen_var_1440, ((srcCacheCount))); |
| countingStream->write((uint64_t*)cgen_var_1440, ((srcCacheCount)) * 8); |
| } |
| } |
| uint32_t packetSize_vkMergeValidationCachesEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkMergeValidationCachesEXT = OP_vkMergeValidationCachesEXT; |
| stream->write(&opcode_vkMergeValidationCachesEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkMergeValidationCachesEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1441; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1441, 1); |
| stream->write((uint64_t*)&cgen_var_1441, 1 * 8); |
| uint64_t cgen_var_1442; |
| stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_dstCache, &cgen_var_1442, 1); |
| stream->write((uint64_t*)&cgen_var_1442, 1 * 8); |
| stream->write((uint32_t*)&local_srcCacheCount, sizeof(uint32_t)); |
| if (((srcCacheCount))) |
| { |
| uint64_t* cgen_var_1443; |
| stream->alloc((void**)&cgen_var_1443, ((srcCacheCount)) * 8); |
| stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(local_pSrcCaches, cgen_var_1443, ((srcCacheCount))); |
| stream->write((uint64_t*)cgen_var_1443, ((srcCacheCount)) * 8); |
| } |
| AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT readParams"); |
| AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT returnUnmarshal"); |
| VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkMergeValidationCachesEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkMergeValidationCachesEXT");; |
| return vkMergeValidationCachesEXT_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkGetValidationCacheDataEXT( |
| VkDevice device, |
| VkValidationCacheEXT validationCache, |
| size_t* pDataSize, |
| void* pData) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT encode"); |
| mImpl->log("start vkGetValidationCacheDataEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkValidationCacheEXT local_validationCache; |
| local_device = device; |
| local_validationCache = validationCache; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1444; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1444, 1); |
| countingStream->write((uint64_t*)&cgen_var_1444, 1 * 8); |
| uint64_t cgen_var_1445; |
| countingStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1445, 1); |
| countingStream->write((uint64_t*)&cgen_var_1445, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1446 = (uint64_t)(uintptr_t)pDataSize; |
| countingStream->putBe64(cgen_var_1446); |
| if (pDataSize) |
| { |
| uint64_t cgen_var_1447 = (uint64_t)(*pDataSize); |
| countingStream->putBe64(cgen_var_1447); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1448 = (uint64_t)(uintptr_t)pData; |
| countingStream->putBe64(cgen_var_1448); |
| if (pData) |
| { |
| countingStream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t)); |
| } |
| } |
| uint32_t packetSize_vkGetValidationCacheDataEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetValidationCacheDataEXT = OP_vkGetValidationCacheDataEXT; |
| stream->write(&opcode_vkGetValidationCacheDataEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetValidationCacheDataEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1449; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1449, 1); |
| stream->write((uint64_t*)&cgen_var_1449, 1 * 8); |
| uint64_t cgen_var_1450; |
| stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&local_validationCache, &cgen_var_1450, 1); |
| stream->write((uint64_t*)&cgen_var_1450, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1451 = (uint64_t)(uintptr_t)pDataSize; |
| stream->putBe64(cgen_var_1451); |
| if (pDataSize) |
| { |
| uint64_t cgen_var_1452 = (uint64_t)(*pDataSize); |
| stream->putBe64(cgen_var_1452); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1453 = (uint64_t)(uintptr_t)pData; |
| stream->putBe64(cgen_var_1453); |
| if (pData) |
| { |
| stream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t)); |
| } |
| AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT readParams"); |
| // WARNING PTR CHECK |
| size_t* check_pDataSize; |
| check_pDataSize = (size_t*)(uintptr_t)stream->getBe64(); |
| if (pDataSize) |
| { |
| if (!(check_pDataSize)) |
| { |
| fprintf(stderr, "fatal: pDataSize inconsistent between guest and host\n"); |
| } |
| (*pDataSize) = (size_t)stream->getBe64(); |
| } |
| // WARNING PTR CHECK |
| void* check_pData; |
| check_pData = (void*)(uintptr_t)stream->getBe64(); |
| if (pData) |
| { |
| if (!(check_pData)) |
| { |
| fprintf(stderr, "fatal: pData inconsistent between guest and host\n"); |
| } |
| stream->read((void*)pData, (*(pDataSize)) * sizeof(uint8_t)); |
| } |
| AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT returnUnmarshal"); |
| VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkGetValidationCacheDataEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetValidationCacheDataEXT");; |
| return vkGetValidationCacheDataEXT_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_EXT_descriptor_indexing |
| #endif |
| #ifdef VK_EXT_shader_viewport_index_layer |
| #endif |
| #ifdef VK_EXT_global_priority |
| #endif |
| #ifdef VK_EXT_external_memory_host |
| VkResult VkEncoder::vkGetMemoryHostPointerPropertiesEXT( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| const void* pHostPointer, |
| VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT encode"); |
| mImpl->log("start vkGetMemoryHostPointerPropertiesEXT"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkExternalMemoryHandleTypeFlagBits local_handleType; |
| void* local_pHostPointer; |
| local_device = device; |
| local_handleType = handleType; |
| local_pHostPointer = nullptr; |
| if (pHostPointer) |
| { |
| local_pHostPointer = (void*)pool->dupArray(pHostPointer, sizeof(const uint8_t)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1457; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1457, 1); |
| countingStream->write((uint64_t*)&cgen_var_1457, 1 * 8); |
| countingStream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1458 = (uint64_t)(uintptr_t)local_pHostPointer; |
| countingStream->putBe64(cgen_var_1458); |
| if (local_pHostPointer) |
| { |
| countingStream->write((void*)local_pHostPointer, sizeof(uint8_t)); |
| } |
| marshal_VkMemoryHostPointerPropertiesEXT(countingStream, (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties)); |
| } |
| uint32_t packetSize_vkGetMemoryHostPointerPropertiesEXT = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetMemoryHostPointerPropertiesEXT = OP_vkGetMemoryHostPointerPropertiesEXT; |
| stream->write(&opcode_vkGetMemoryHostPointerPropertiesEXT, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetMemoryHostPointerPropertiesEXT, sizeof(uint32_t)); |
| uint64_t cgen_var_1459; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1459, 1); |
| stream->write((uint64_t*)&cgen_var_1459, 1 * 8); |
| stream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1460 = (uint64_t)(uintptr_t)local_pHostPointer; |
| stream->putBe64(cgen_var_1460); |
| if (local_pHostPointer) |
| { |
| stream->write((void*)local_pHostPointer, sizeof(uint8_t)); |
| } |
| marshal_VkMemoryHostPointerPropertiesEXT(stream, (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties)); |
| AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT readParams"); |
| unmarshal_VkMemoryHostPointerPropertiesEXT(stream, (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties)); |
| if (pMemoryHostPointerProperties) |
| { |
| transform_fromhost_VkMemoryHostPointerPropertiesEXT(mImpl->resources(), (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties)); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT returnUnmarshal"); |
| VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0; |
| stream->read(&vkGetMemoryHostPointerPropertiesEXT_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetMemoryHostPointerPropertiesEXT");; |
| return vkGetMemoryHostPointerPropertiesEXT_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_AMD_buffer_marker |
| void VkEncoder::vkCmdWriteBufferMarkerAMD( |
| VkCommandBuffer commandBuffer, |
| VkPipelineStageFlagBits pipelineStage, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| uint32_t marker) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD encode"); |
| mImpl->log("start vkCmdWriteBufferMarkerAMD"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkPipelineStageFlagBits local_pipelineStage; |
| VkBuffer local_dstBuffer; |
| VkDeviceSize local_dstOffset; |
| uint32_t local_marker; |
| local_commandBuffer = commandBuffer; |
| local_pipelineStage = pipelineStage; |
| local_dstBuffer = dstBuffer; |
| local_dstOffset = dstOffset; |
| local_marker = marker; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1461; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1461, 1); |
| countingStream->write((uint64_t*)&cgen_var_1461, 1 * 8); |
| countingStream->write((VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits)); |
| uint64_t cgen_var_1462; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_1462, 1); |
| countingStream->write((uint64_t*)&cgen_var_1462, 1 * 8); |
| countingStream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize)); |
| countingStream->write((uint32_t*)&local_marker, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCmdWriteBufferMarkerAMD = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdWriteBufferMarkerAMD = OP_vkCmdWriteBufferMarkerAMD; |
| stream->write(&opcode_vkCmdWriteBufferMarkerAMD, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdWriteBufferMarkerAMD, sizeof(uint32_t)); |
| uint64_t cgen_var_1463; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1463, 1); |
| stream->write((uint64_t*)&cgen_var_1463, 1 * 8); |
| stream->write((VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits)); |
| uint64_t cgen_var_1464; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_dstBuffer, &cgen_var_1464, 1); |
| stream->write((uint64_t*)&cgen_var_1464, 1 * 8); |
| stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize)); |
| stream->write((uint32_t*)&local_marker, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD readParams"); |
| AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD returnUnmarshal"); |
| mImpl->log("finish vkCmdWriteBufferMarkerAMD");; |
| } |
| |
| #endif |
| #ifdef VK_AMD_shader_core_properties |
| #endif |
| #ifdef VK_EXT_vertex_attribute_divisor |
| #endif |
| #ifdef VK_NV_shader_subgroup_partitioned |
| #endif |
| #ifdef VK_NV_device_diagnostic_checkpoints |
| void VkEncoder::vkCmdSetCheckpointNV( |
| VkCommandBuffer commandBuffer, |
| const void* pCheckpointMarker) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV encode"); |
| mImpl->log("start vkCmdSetCheckpointNV"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| void* local_pCheckpointMarker; |
| local_commandBuffer = commandBuffer; |
| local_pCheckpointMarker = nullptr; |
| if (pCheckpointMarker) |
| { |
| local_pCheckpointMarker = (void*)pool->dupArray(pCheckpointMarker, sizeof(const uint8_t)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1465; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1465, 1); |
| countingStream->write((uint64_t*)&cgen_var_1465, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1466 = (uint64_t)(uintptr_t)local_pCheckpointMarker; |
| countingStream->putBe64(cgen_var_1466); |
| if (local_pCheckpointMarker) |
| { |
| countingStream->write((void*)local_pCheckpointMarker, sizeof(uint8_t)); |
| } |
| } |
| uint32_t packetSize_vkCmdSetCheckpointNV = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCmdSetCheckpointNV = OP_vkCmdSetCheckpointNV; |
| stream->write(&opcode_vkCmdSetCheckpointNV, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCmdSetCheckpointNV, sizeof(uint32_t)); |
| uint64_t cgen_var_1467; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1467, 1); |
| stream->write((uint64_t*)&cgen_var_1467, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1468 = (uint64_t)(uintptr_t)local_pCheckpointMarker; |
| stream->putBe64(cgen_var_1468); |
| if (local_pCheckpointMarker) |
| { |
| stream->write((void*)local_pCheckpointMarker, sizeof(uint8_t)); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV readParams"); |
| AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV returnUnmarshal"); |
| mImpl->log("finish vkCmdSetCheckpointNV");; |
| } |
| |
| void VkEncoder::vkGetQueueCheckpointDataNV( |
| VkQueue queue, |
| uint32_t* pCheckpointDataCount, |
| VkCheckpointDataNV* pCheckpointData) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV encode"); |
| mImpl->log("start vkGetQueueCheckpointDataNV"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkQueue local_queue; |
| local_queue = queue; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1469; |
| countingStream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1469, 1); |
| countingStream->write((uint64_t*)&cgen_var_1469, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1470 = (uint64_t)(uintptr_t)pCheckpointDataCount; |
| countingStream->putBe64(cgen_var_1470); |
| if (pCheckpointDataCount) |
| { |
| countingStream->write((uint32_t*)pCheckpointDataCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1471 = (uint64_t)(uintptr_t)pCheckpointData; |
| countingStream->putBe64(cgen_var_1471); |
| if (pCheckpointData) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i) |
| { |
| marshal_VkCheckpointDataNV(countingStream, (VkCheckpointDataNV*)(pCheckpointData + i)); |
| } |
| } |
| } |
| uint32_t packetSize_vkGetQueueCheckpointDataNV = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetQueueCheckpointDataNV = OP_vkGetQueueCheckpointDataNV; |
| stream->write(&opcode_vkGetQueueCheckpointDataNV, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetQueueCheckpointDataNV, sizeof(uint32_t)); |
| uint64_t cgen_var_1472; |
| stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1472, 1); |
| stream->write((uint64_t*)&cgen_var_1472, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1473 = (uint64_t)(uintptr_t)pCheckpointDataCount; |
| stream->putBe64(cgen_var_1473); |
| if (pCheckpointDataCount) |
| { |
| stream->write((uint32_t*)pCheckpointDataCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1474 = (uint64_t)(uintptr_t)pCheckpointData; |
| stream->putBe64(cgen_var_1474); |
| if (pCheckpointData) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i) |
| { |
| marshal_VkCheckpointDataNV(stream, (VkCheckpointDataNV*)(pCheckpointData + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV readParams"); |
| // WARNING PTR CHECK |
| uint32_t* check_pCheckpointDataCount; |
| check_pCheckpointDataCount = (uint32_t*)(uintptr_t)stream->getBe64(); |
| if (pCheckpointDataCount) |
| { |
| if (!(check_pCheckpointDataCount)) |
| { |
| fprintf(stderr, "fatal: pCheckpointDataCount inconsistent between guest and host\n"); |
| } |
| stream->read((uint32_t*)pCheckpointDataCount, sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| VkCheckpointDataNV* check_pCheckpointData; |
| check_pCheckpointData = (VkCheckpointDataNV*)(uintptr_t)stream->getBe64(); |
| if (pCheckpointData) |
| { |
| if (!(check_pCheckpointData)) |
| { |
| fprintf(stderr, "fatal: pCheckpointData inconsistent between guest and host\n"); |
| } |
| for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i) |
| { |
| unmarshal_VkCheckpointDataNV(stream, (VkCheckpointDataNV*)(pCheckpointData + i)); |
| } |
| } |
| if (pCheckpointData) |
| { |
| for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i) |
| { |
| transform_fromhost_VkCheckpointDataNV(mImpl->resources(), (VkCheckpointDataNV*)(pCheckpointData + i)); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV returnUnmarshal"); |
| mImpl->log("finish vkGetQueueCheckpointDataNV");; |
| } |
| |
| #endif |
| #ifdef VK_GOOGLE_address_space |
| VkResult VkEncoder::vkMapMemoryIntoAddressSpaceGOOGLE( |
| VkDevice device, |
| VkDeviceMemory memory, |
| uint64_t* pAddress) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE encode"); |
| mImpl->log("start vkMapMemoryIntoAddressSpaceGOOGLE"); |
| encoderLock.unlock(); |
| mImpl->resources()->on_vkMapMemoryIntoAddressSpaceGOOGLE_pre(this, VK_SUCCESS, device, memory, pAddress); |
| encoderLock.lock(); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDeviceMemory local_memory; |
| local_device = device; |
| local_memory = memory; |
| mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0); |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1477; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1477, 1); |
| countingStream->write((uint64_t*)&cgen_var_1477, 1 * 8); |
| uint64_t cgen_var_1478; |
| countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1478, 1); |
| countingStream->write((uint64_t*)&cgen_var_1478, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1479 = (uint64_t)(uintptr_t)pAddress; |
| countingStream->putBe64(cgen_var_1479); |
| if (pAddress) |
| { |
| countingStream->write((uint64_t*)pAddress, sizeof(uint64_t)); |
| } |
| } |
| uint32_t packetSize_vkMapMemoryIntoAddressSpaceGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkMapMemoryIntoAddressSpaceGOOGLE = OP_vkMapMemoryIntoAddressSpaceGOOGLE; |
| stream->write(&opcode_vkMapMemoryIntoAddressSpaceGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkMapMemoryIntoAddressSpaceGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1480; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1480, 1); |
| stream->write((uint64_t*)&cgen_var_1480, 1 * 8); |
| uint64_t cgen_var_1481; |
| stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1481, 1); |
| stream->write((uint64_t*)&cgen_var_1481, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1482 = (uint64_t)(uintptr_t)pAddress; |
| stream->putBe64(cgen_var_1482); |
| if (pAddress) |
| { |
| stream->write((uint64_t*)pAddress, sizeof(uint64_t)); |
| } |
| AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE readParams"); |
| // WARNING PTR CHECK |
| uint64_t* check_pAddress; |
| check_pAddress = (uint64_t*)(uintptr_t)stream->getBe64(); |
| if (pAddress) |
| { |
| if (!(check_pAddress)) |
| { |
| fprintf(stderr, "fatal: pAddress inconsistent between guest and host\n"); |
| } |
| stream->read((uint64_t*)pAddress, sizeof(uint64_t)); |
| } |
| AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE returnUnmarshal"); |
| VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0; |
| stream->read(&vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| encoderLock.unlock(); |
| mImpl->resources()->on_vkMapMemoryIntoAddressSpaceGOOGLE(this, vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, device, memory, pAddress); |
| encoderLock.lock(); |
| mImpl->log("finish vkMapMemoryIntoAddressSpaceGOOGLE");; |
| return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_GOOGLE_color_buffer |
| VkResult VkEncoder::vkRegisterImageColorBufferGOOGLE( |
| VkDevice device, |
| VkImage image, |
| uint32_t colorBuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE encode"); |
| mImpl->log("start vkRegisterImageColorBufferGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImage local_image; |
| uint32_t local_colorBuffer; |
| local_device = device; |
| local_image = image; |
| local_colorBuffer = colorBuffer; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1484; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1484, 1); |
| countingStream->write((uint64_t*)&cgen_var_1484, 1 * 8); |
| uint64_t cgen_var_1485; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1485, 1); |
| countingStream->write((uint64_t*)&cgen_var_1485, 1 * 8); |
| countingStream->write((uint32_t*)&local_colorBuffer, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkRegisterImageColorBufferGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkRegisterImageColorBufferGOOGLE = OP_vkRegisterImageColorBufferGOOGLE; |
| stream->write(&opcode_vkRegisterImageColorBufferGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkRegisterImageColorBufferGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1486; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1486, 1); |
| stream->write((uint64_t*)&cgen_var_1486, 1 * 8); |
| uint64_t cgen_var_1487; |
| stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1487, 1); |
| stream->write((uint64_t*)&cgen_var_1487, 1 * 8); |
| stream->write((uint32_t*)&local_colorBuffer, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE readParams"); |
| AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE returnUnmarshal"); |
| VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0; |
| stream->read(&vkRegisterImageColorBufferGOOGLE_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkRegisterImageColorBufferGOOGLE");; |
| return vkRegisterImageColorBufferGOOGLE_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkRegisterBufferColorBufferGOOGLE( |
| VkDevice device, |
| VkBuffer buffer, |
| uint32_t colorBuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE encode"); |
| mImpl->log("start vkRegisterBufferColorBufferGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkBuffer local_buffer; |
| uint32_t local_colorBuffer; |
| local_device = device; |
| local_buffer = buffer; |
| local_colorBuffer = colorBuffer; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1488; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1488, 1); |
| countingStream->write((uint64_t*)&cgen_var_1488, 1 * 8); |
| uint64_t cgen_var_1489; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1489, 1); |
| countingStream->write((uint64_t*)&cgen_var_1489, 1 * 8); |
| countingStream->write((uint32_t*)&local_colorBuffer, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkRegisterBufferColorBufferGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkRegisterBufferColorBufferGOOGLE = OP_vkRegisterBufferColorBufferGOOGLE; |
| stream->write(&opcode_vkRegisterBufferColorBufferGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkRegisterBufferColorBufferGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1490; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1490, 1); |
| stream->write((uint64_t*)&cgen_var_1490, 1 * 8); |
| uint64_t cgen_var_1491; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1491, 1); |
| stream->write((uint64_t*)&cgen_var_1491, 1 * 8); |
| stream->write((uint32_t*)&local_colorBuffer, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE readParams"); |
| AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE returnUnmarshal"); |
| VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0; |
| stream->read(&vkRegisterBufferColorBufferGOOGLE_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkRegisterBufferColorBufferGOOGLE");; |
| return vkRegisterBufferColorBufferGOOGLE_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_GOOGLE_sized_descriptor_update_template |
| void VkEncoder::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) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE encode"); |
| mImpl->log("start vkUpdateDescriptorSetWithTemplateSizedGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDescriptorSet local_descriptorSet; |
| VkDescriptorUpdateTemplate local_descriptorUpdateTemplate; |
| uint32_t local_imageInfoCount; |
| uint32_t local_bufferInfoCount; |
| uint32_t local_bufferViewCount; |
| uint32_t* local_pImageInfoEntryIndices; |
| uint32_t* local_pBufferInfoEntryIndices; |
| uint32_t* local_pBufferViewEntryIndices; |
| VkDescriptorImageInfo* local_pImageInfos; |
| VkDescriptorBufferInfo* local_pBufferInfos; |
| VkBufferView* local_pBufferViews; |
| local_device = device; |
| local_descriptorSet = descriptorSet; |
| local_descriptorUpdateTemplate = descriptorUpdateTemplate; |
| local_imageInfoCount = imageInfoCount; |
| local_bufferInfoCount = bufferInfoCount; |
| local_bufferViewCount = bufferViewCount; |
| local_pImageInfoEntryIndices = nullptr; |
| if (pImageInfoEntryIndices) |
| { |
| local_pImageInfoEntryIndices = (uint32_t*)pool->dupArray(pImageInfoEntryIndices, ((imageInfoCount)) * sizeof(const uint32_t)); |
| } |
| local_pBufferInfoEntryIndices = nullptr; |
| if (pBufferInfoEntryIndices) |
| { |
| local_pBufferInfoEntryIndices = (uint32_t*)pool->dupArray(pBufferInfoEntryIndices, ((bufferInfoCount)) * sizeof(const uint32_t)); |
| } |
| local_pBufferViewEntryIndices = nullptr; |
| if (pBufferViewEntryIndices) |
| { |
| local_pBufferViewEntryIndices = (uint32_t*)pool->dupArray(pBufferViewEntryIndices, ((bufferViewCount)) * sizeof(const uint32_t)); |
| } |
| local_pImageInfos = nullptr; |
| if (pImageInfos) |
| { |
| local_pImageInfos = (VkDescriptorImageInfo*)pool->alloc(((imageInfoCount)) * sizeof(const VkDescriptorImageInfo)); |
| for (uint32_t i = 0; i < (uint32_t)((imageInfoCount)); ++i) |
| { |
| deepcopy_VkDescriptorImageInfo(pool, pImageInfos + i, (VkDescriptorImageInfo*)(local_pImageInfos + i)); |
| } |
| } |
| local_pBufferInfos = nullptr; |
| if (pBufferInfos) |
| { |
| local_pBufferInfos = (VkDescriptorBufferInfo*)pool->alloc(((bufferInfoCount)) * sizeof(const VkDescriptorBufferInfo)); |
| for (uint32_t i = 0; i < (uint32_t)((bufferInfoCount)); ++i) |
| { |
| deepcopy_VkDescriptorBufferInfo(pool, pBufferInfos + i, (VkDescriptorBufferInfo*)(local_pBufferInfos + i)); |
| } |
| } |
| local_pBufferViews = nullptr; |
| if (pBufferViews) |
| { |
| local_pBufferViews = (VkBufferView*)pool->dupArray(pBufferViews, ((bufferViewCount)) * sizeof(const VkBufferView)); |
| } |
| if (local_pImageInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((imageInfoCount)); ++i) |
| { |
| transform_tohost_VkDescriptorImageInfo(mImpl->resources(), (VkDescriptorImageInfo*)(local_pImageInfos + i)); |
| } |
| } |
| if (local_pBufferInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((bufferInfoCount)); ++i) |
| { |
| transform_tohost_VkDescriptorBufferInfo(mImpl->resources(), (VkDescriptorBufferInfo*)(local_pBufferInfos + i)); |
| } |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1492; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1492, 1); |
| countingStream->write((uint64_t*)&cgen_var_1492, 1 * 8); |
| uint64_t cgen_var_1493; |
| countingStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_1493, 1); |
| countingStream->write((uint64_t*)&cgen_var_1493, 1 * 8); |
| uint64_t cgen_var_1494; |
| countingStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1494, 1); |
| countingStream->write((uint64_t*)&cgen_var_1494, 1 * 8); |
| countingStream->write((uint32_t*)&local_imageInfoCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_bufferInfoCount, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_bufferViewCount, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1495 = (uint64_t)(uintptr_t)local_pImageInfoEntryIndices; |
| countingStream->putBe64(cgen_var_1495); |
| if (local_pImageInfoEntryIndices) |
| { |
| countingStream->write((uint32_t*)local_pImageInfoEntryIndices, ((imageInfoCount)) * sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1496 = (uint64_t)(uintptr_t)local_pBufferInfoEntryIndices; |
| countingStream->putBe64(cgen_var_1496); |
| if (local_pBufferInfoEntryIndices) |
| { |
| countingStream->write((uint32_t*)local_pBufferInfoEntryIndices, ((bufferInfoCount)) * sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1497 = (uint64_t)(uintptr_t)local_pBufferViewEntryIndices; |
| countingStream->putBe64(cgen_var_1497); |
| if (local_pBufferViewEntryIndices) |
| { |
| countingStream->write((uint32_t*)local_pBufferViewEntryIndices, ((bufferViewCount)) * sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1498 = (uint64_t)(uintptr_t)local_pImageInfos; |
| countingStream->putBe64(cgen_var_1498); |
| if (local_pImageInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((imageInfoCount)); ++i) |
| { |
| marshal_VkDescriptorImageInfo(countingStream, (VkDescriptorImageInfo*)(local_pImageInfos + i)); |
| } |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1499 = (uint64_t)(uintptr_t)local_pBufferInfos; |
| countingStream->putBe64(cgen_var_1499); |
| if (local_pBufferInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((bufferInfoCount)); ++i) |
| { |
| marshal_VkDescriptorBufferInfo(countingStream, (VkDescriptorBufferInfo*)(local_pBufferInfos + i)); |
| } |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1500 = (uint64_t)(uintptr_t)local_pBufferViews; |
| countingStream->putBe64(cgen_var_1500); |
| if (local_pBufferViews) |
| { |
| if (((bufferViewCount))) |
| { |
| uint64_t* cgen_var_1501; |
| countingStream->alloc((void**)&cgen_var_1501, ((bufferViewCount)) * 8); |
| countingStream->handleMapping()->mapHandles_VkBufferView_u64(local_pBufferViews, cgen_var_1501, ((bufferViewCount))); |
| countingStream->write((uint64_t*)cgen_var_1501, ((bufferViewCount)) * 8); |
| } |
| } |
| } |
| uint32_t packetSize_vkUpdateDescriptorSetWithTemplateSizedGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkUpdateDescriptorSetWithTemplateSizedGOOGLE = OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE; |
| stream->write(&opcode_vkUpdateDescriptorSetWithTemplateSizedGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkUpdateDescriptorSetWithTemplateSizedGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1502; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1502, 1); |
| stream->write((uint64_t*)&cgen_var_1502, 1 * 8); |
| uint64_t cgen_var_1503; |
| stream->handleMapping()->mapHandles_VkDescriptorSet_u64(&local_descriptorSet, &cgen_var_1503, 1); |
| stream->write((uint64_t*)&cgen_var_1503, 1 * 8); |
| uint64_t cgen_var_1504; |
| stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(&local_descriptorUpdateTemplate, &cgen_var_1504, 1); |
| stream->write((uint64_t*)&cgen_var_1504, 1 * 8); |
| stream->write((uint32_t*)&local_imageInfoCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_bufferInfoCount, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_bufferViewCount, sizeof(uint32_t)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1505 = (uint64_t)(uintptr_t)local_pImageInfoEntryIndices; |
| stream->putBe64(cgen_var_1505); |
| if (local_pImageInfoEntryIndices) |
| { |
| stream->write((uint32_t*)local_pImageInfoEntryIndices, ((imageInfoCount)) * sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1506 = (uint64_t)(uintptr_t)local_pBufferInfoEntryIndices; |
| stream->putBe64(cgen_var_1506); |
| if (local_pBufferInfoEntryIndices) |
| { |
| stream->write((uint32_t*)local_pBufferInfoEntryIndices, ((bufferInfoCount)) * sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1507 = (uint64_t)(uintptr_t)local_pBufferViewEntryIndices; |
| stream->putBe64(cgen_var_1507); |
| if (local_pBufferViewEntryIndices) |
| { |
| stream->write((uint32_t*)local_pBufferViewEntryIndices, ((bufferViewCount)) * sizeof(uint32_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1508 = (uint64_t)(uintptr_t)local_pImageInfos; |
| stream->putBe64(cgen_var_1508); |
| if (local_pImageInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((imageInfoCount)); ++i) |
| { |
| marshal_VkDescriptorImageInfo(stream, (VkDescriptorImageInfo*)(local_pImageInfos + i)); |
| } |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1509 = (uint64_t)(uintptr_t)local_pBufferInfos; |
| stream->putBe64(cgen_var_1509); |
| if (local_pBufferInfos) |
| { |
| for (uint32_t i = 0; i < (uint32_t)((bufferInfoCount)); ++i) |
| { |
| marshal_VkDescriptorBufferInfo(stream, (VkDescriptorBufferInfo*)(local_pBufferInfos + i)); |
| } |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1510 = (uint64_t)(uintptr_t)local_pBufferViews; |
| stream->putBe64(cgen_var_1510); |
| if (local_pBufferViews) |
| { |
| if (((bufferViewCount))) |
| { |
| uint64_t* cgen_var_1511; |
| stream->alloc((void**)&cgen_var_1511, ((bufferViewCount)) * 8); |
| stream->handleMapping()->mapHandles_VkBufferView_u64(local_pBufferViews, cgen_var_1511, ((bufferViewCount))); |
| stream->write((uint64_t*)cgen_var_1511, ((bufferViewCount)) * 8); |
| } |
| } |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE readParams"); |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE returnUnmarshal"); |
| mImpl->log("finish vkUpdateDescriptorSetWithTemplateSizedGOOGLE");; |
| } |
| |
| #endif |
| #ifdef VK_GOOGLE_async_command_buffers |
| void VkEncoder::vkBeginCommandBufferAsyncGOOGLE( |
| VkCommandBuffer commandBuffer, |
| const VkCommandBufferBeginInfo* pBeginInfo) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE encode"); |
| mImpl->log("start vkBeginCommandBufferAsyncGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkCommandBufferBeginInfo* local_pBeginInfo; |
| local_commandBuffer = commandBuffer; |
| local_pBeginInfo = nullptr; |
| if (pBeginInfo) |
| { |
| local_pBeginInfo = (VkCommandBufferBeginInfo*)pool->alloc(sizeof(const VkCommandBufferBeginInfo)); |
| deepcopy_VkCommandBufferBeginInfo(pool, pBeginInfo, (VkCommandBufferBeginInfo*)(local_pBeginInfo)); |
| } |
| if (local_pBeginInfo) |
| { |
| transform_tohost_VkCommandBufferBeginInfo(mImpl->resources(), (VkCommandBufferBeginInfo*)(local_pBeginInfo)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1512; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1512, 1); |
| countingStream->write((uint64_t*)&cgen_var_1512, 1 * 8); |
| marshal_VkCommandBufferBeginInfo(countingStream, (VkCommandBufferBeginInfo*)(local_pBeginInfo)); |
| } |
| uint32_t packetSize_vkBeginCommandBufferAsyncGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkBeginCommandBufferAsyncGOOGLE = OP_vkBeginCommandBufferAsyncGOOGLE; |
| stream->write(&opcode_vkBeginCommandBufferAsyncGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkBeginCommandBufferAsyncGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1513; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1513, 1); |
| stream->write((uint64_t*)&cgen_var_1513, 1 * 8); |
| marshal_VkCommandBufferBeginInfo(stream, (VkCommandBufferBeginInfo*)(local_pBeginInfo)); |
| AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE readParams"); |
| AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE returnUnmarshal"); |
| mImpl->log("finish vkBeginCommandBufferAsyncGOOGLE");; |
| } |
| |
| void VkEncoder::vkEndCommandBufferAsyncGOOGLE( |
| VkCommandBuffer commandBuffer) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE encode"); |
| mImpl->log("start vkEndCommandBufferAsyncGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| local_commandBuffer = commandBuffer; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1514; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1514, 1); |
| countingStream->write((uint64_t*)&cgen_var_1514, 1 * 8); |
| } |
| uint32_t packetSize_vkEndCommandBufferAsyncGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkEndCommandBufferAsyncGOOGLE = OP_vkEndCommandBufferAsyncGOOGLE; |
| stream->write(&opcode_vkEndCommandBufferAsyncGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkEndCommandBufferAsyncGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1515; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1515, 1); |
| stream->write((uint64_t*)&cgen_var_1515, 1 * 8); |
| AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE readParams"); |
| AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE returnUnmarshal"); |
| mImpl->log("finish vkEndCommandBufferAsyncGOOGLE");; |
| } |
| |
| void VkEncoder::vkResetCommandBufferAsyncGOOGLE( |
| VkCommandBuffer commandBuffer, |
| VkCommandBufferResetFlags flags) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE encode"); |
| mImpl->log("start vkResetCommandBufferAsyncGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| VkCommandBufferResetFlags local_flags; |
| local_commandBuffer = commandBuffer; |
| local_flags = flags; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1516; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1516, 1); |
| countingStream->write((uint64_t*)&cgen_var_1516, 1 * 8); |
| countingStream->write((VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags)); |
| } |
| uint32_t packetSize_vkResetCommandBufferAsyncGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkResetCommandBufferAsyncGOOGLE = OP_vkResetCommandBufferAsyncGOOGLE; |
| stream->write(&opcode_vkResetCommandBufferAsyncGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkResetCommandBufferAsyncGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1517; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1517, 1); |
| stream->write((uint64_t*)&cgen_var_1517, 1 * 8); |
| stream->write((VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags)); |
| AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE readParams"); |
| AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE returnUnmarshal"); |
| mImpl->log("finish vkResetCommandBufferAsyncGOOGLE");; |
| } |
| |
| void VkEncoder::vkCommandBufferHostSyncGOOGLE( |
| VkCommandBuffer commandBuffer, |
| uint32_t needHostSync, |
| uint32_t sequenceNumber) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE encode"); |
| mImpl->log("start vkCommandBufferHostSyncGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkCommandBuffer local_commandBuffer; |
| uint32_t local_needHostSync; |
| uint32_t local_sequenceNumber; |
| local_commandBuffer = commandBuffer; |
| local_needHostSync = needHostSync; |
| local_sequenceNumber = sequenceNumber; |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1518; |
| countingStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1518, 1); |
| countingStream->write((uint64_t*)&cgen_var_1518, 1 * 8); |
| countingStream->write((uint32_t*)&local_needHostSync, sizeof(uint32_t)); |
| countingStream->write((uint32_t*)&local_sequenceNumber, sizeof(uint32_t)); |
| } |
| uint32_t packetSize_vkCommandBufferHostSyncGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCommandBufferHostSyncGOOGLE = OP_vkCommandBufferHostSyncGOOGLE; |
| stream->write(&opcode_vkCommandBufferHostSyncGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCommandBufferHostSyncGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1519; |
| stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1519, 1); |
| stream->write((uint64_t*)&cgen_var_1519, 1 * 8); |
| stream->write((uint32_t*)&local_needHostSync, sizeof(uint32_t)); |
| stream->write((uint32_t*)&local_sequenceNumber, sizeof(uint32_t)); |
| AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE readParams"); |
| AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE returnUnmarshal"); |
| mImpl->log("finish vkCommandBufferHostSyncGOOGLE");; |
| } |
| |
| #endif |
| #ifdef VK_GOOGLE_create_resources_with_requirements |
| VkResult VkEncoder::vkCreateImageWithRequirementsGOOGLE( |
| VkDevice device, |
| const VkImageCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkImage* pImage, |
| VkMemoryRequirements* pMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE encode"); |
| mImpl->log("start vkCreateImageWithRequirementsGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkImageCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkImageCreateInfo*)pool->alloc(sizeof(const VkImageCreateInfo)); |
| deepcopy_VkImageCreateInfo(pool, pCreateInfo, (VkImageCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| mImpl->resources()->unwrap_VkNativeBufferANDROID(pCreateInfo, local_pCreateInfo); |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkImageCreateInfo(mImpl->resources(), (VkImageCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1520; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1520, 1); |
| countingStream->write((uint64_t*)&cgen_var_1520, 1 * 8); |
| marshal_VkImageCreateInfo(countingStream, (VkImageCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1521 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1521); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1522; |
| countingStream->handleMapping()->mapHandles_VkImage_u64(pImage, &cgen_var_1522, 1); |
| countingStream->write((uint64_t*)&cgen_var_1522, 8); |
| marshal_VkMemoryRequirements(countingStream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| } |
| uint32_t packetSize_vkCreateImageWithRequirementsGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateImageWithRequirementsGOOGLE = OP_vkCreateImageWithRequirementsGOOGLE; |
| stream->write(&opcode_vkCreateImageWithRequirementsGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateImageWithRequirementsGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1523; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1523, 1); |
| stream->write((uint64_t*)&cgen_var_1523, 1 * 8); |
| marshal_VkImageCreateInfo(stream, (VkImageCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1524 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1524); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1525; |
| stream->handleMapping()->mapHandles_VkImage_u64(pImage, &cgen_var_1525, 1); |
| stream->write((uint64_t*)&cgen_var_1525, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_1526; |
| stream->read((uint64_t*)&cgen_var_1526, 8); |
| stream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1526, (VkImage*)pImage, 1); |
| stream->unsetHandleMapping(); |
| unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| if (pMemoryRequirements) |
| { |
| transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements)); |
| } |
| AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE returnUnmarshal"); |
| VkResult vkCreateImageWithRequirementsGOOGLE_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateImageWithRequirementsGOOGLE_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateImageWithRequirementsGOOGLE");; |
| return vkCreateImageWithRequirementsGOOGLE_VkResult_return; |
| } |
| |
| VkResult VkEncoder::vkCreateBufferWithRequirementsGOOGLE( |
| VkDevice device, |
| const VkBufferCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkBuffer* pBuffer, |
| VkMemoryRequirements* pMemoryRequirements) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE encode"); |
| mImpl->log("start vkCreateBufferWithRequirementsGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkBufferCreateInfo* local_pCreateInfo; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_pCreateInfo = nullptr; |
| if (pCreateInfo) |
| { |
| local_pCreateInfo = (VkBufferCreateInfo*)pool->alloc(sizeof(const VkBufferCreateInfo)); |
| deepcopy_VkBufferCreateInfo(pool, pCreateInfo, (VkBufferCreateInfo*)(local_pCreateInfo)); |
| } |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| if (local_pCreateInfo) |
| { |
| transform_tohost_VkBufferCreateInfo(mImpl->resources(), (VkBufferCreateInfo*)(local_pCreateInfo)); |
| } |
| if (local_pAllocator) |
| { |
| transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1527; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1527, 1); |
| countingStream->write((uint64_t*)&cgen_var_1527, 1 * 8); |
| marshal_VkBufferCreateInfo(countingStream, (VkBufferCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1528 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1528); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| uint64_t cgen_var_1529; |
| countingStream->handleMapping()->mapHandles_VkBuffer_u64(pBuffer, &cgen_var_1529, 1); |
| countingStream->write((uint64_t*)&cgen_var_1529, 8); |
| marshal_VkMemoryRequirements(countingStream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| } |
| uint32_t packetSize_vkCreateBufferWithRequirementsGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkCreateBufferWithRequirementsGOOGLE = OP_vkCreateBufferWithRequirementsGOOGLE; |
| stream->write(&opcode_vkCreateBufferWithRequirementsGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkCreateBufferWithRequirementsGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1530; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1530, 1); |
| stream->write((uint64_t*)&cgen_var_1530, 1 * 8); |
| marshal_VkBufferCreateInfo(stream, (VkBufferCreateInfo*)(local_pCreateInfo)); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1531 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1531); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */; |
| uint64_t cgen_var_1532; |
| stream->handleMapping()->mapHandles_VkBuffer_u64(pBuffer, &cgen_var_1532, 1); |
| stream->write((uint64_t*)&cgen_var_1532, 8); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE readParams"); |
| stream->setHandleMapping(resources->createMapping()); |
| uint64_t cgen_var_1533; |
| stream->read((uint64_t*)&cgen_var_1533, 8); |
| stream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1533, (VkBuffer*)pBuffer, 1); |
| stream->unsetHandleMapping(); |
| unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements)); |
| if (pMemoryRequirements) |
| { |
| transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements)); |
| } |
| AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE returnUnmarshal"); |
| VkResult vkCreateBufferWithRequirementsGOOGLE_VkResult_return = (VkResult)0; |
| stream->read(&vkCreateBufferWithRequirementsGOOGLE_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkCreateBufferWithRequirementsGOOGLE");; |
| return vkCreateBufferWithRequirementsGOOGLE_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_GOOGLE_address_space_info |
| VkResult VkEncoder::vkGetMemoryHostAddressInfoGOOGLE( |
| VkDevice device, |
| VkDeviceMemory memory, |
| uint64_t* pAddress, |
| uint64_t* pSize, |
| uint64_t* pHostmemId) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkGetMemoryHostAddressInfoGOOGLE encode"); |
| mImpl->log("start vkGetMemoryHostAddressInfoGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDeviceMemory local_memory; |
| local_device = device; |
| local_memory = memory; |
| mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0); |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1534; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1534, 1); |
| countingStream->write((uint64_t*)&cgen_var_1534, 1 * 8); |
| uint64_t cgen_var_1535; |
| countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1535, 1); |
| countingStream->write((uint64_t*)&cgen_var_1535, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1536 = (uint64_t)(uintptr_t)pAddress; |
| countingStream->putBe64(cgen_var_1536); |
| if (pAddress) |
| { |
| countingStream->write((uint64_t*)pAddress, sizeof(uint64_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1537 = (uint64_t)(uintptr_t)pSize; |
| countingStream->putBe64(cgen_var_1537); |
| if (pSize) |
| { |
| countingStream->write((uint64_t*)pSize, sizeof(uint64_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1538 = (uint64_t)(uintptr_t)pHostmemId; |
| countingStream->putBe64(cgen_var_1538); |
| if (pHostmemId) |
| { |
| countingStream->write((uint64_t*)pHostmemId, sizeof(uint64_t)); |
| } |
| } |
| uint32_t packetSize_vkGetMemoryHostAddressInfoGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkGetMemoryHostAddressInfoGOOGLE = OP_vkGetMemoryHostAddressInfoGOOGLE; |
| stream->write(&opcode_vkGetMemoryHostAddressInfoGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkGetMemoryHostAddressInfoGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1539; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1539, 1); |
| stream->write((uint64_t*)&cgen_var_1539, 1 * 8); |
| uint64_t cgen_var_1540; |
| stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1540, 1); |
| stream->write((uint64_t*)&cgen_var_1540, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1541 = (uint64_t)(uintptr_t)pAddress; |
| stream->putBe64(cgen_var_1541); |
| if (pAddress) |
| { |
| stream->write((uint64_t*)pAddress, sizeof(uint64_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1542 = (uint64_t)(uintptr_t)pSize; |
| stream->putBe64(cgen_var_1542); |
| if (pSize) |
| { |
| stream->write((uint64_t*)pSize, sizeof(uint64_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1543 = (uint64_t)(uintptr_t)pHostmemId; |
| stream->putBe64(cgen_var_1543); |
| if (pHostmemId) |
| { |
| stream->write((uint64_t*)pHostmemId, sizeof(uint64_t)); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryHostAddressInfoGOOGLE readParams"); |
| // WARNING PTR CHECK |
| uint64_t* check_pAddress; |
| check_pAddress = (uint64_t*)(uintptr_t)stream->getBe64(); |
| if (pAddress) |
| { |
| if (!(check_pAddress)) |
| { |
| fprintf(stderr, "fatal: pAddress inconsistent between guest and host\n"); |
| } |
| stream->read((uint64_t*)pAddress, sizeof(uint64_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t* check_pSize; |
| check_pSize = (uint64_t*)(uintptr_t)stream->getBe64(); |
| if (pSize) |
| { |
| if (!(check_pSize)) |
| { |
| fprintf(stderr, "fatal: pSize inconsistent between guest and host\n"); |
| } |
| stream->read((uint64_t*)pSize, sizeof(uint64_t)); |
| } |
| // WARNING PTR CHECK |
| uint64_t* check_pHostmemId; |
| check_pHostmemId = (uint64_t*)(uintptr_t)stream->getBe64(); |
| if (pHostmemId) |
| { |
| if (!(check_pHostmemId)) |
| { |
| fprintf(stderr, "fatal: pHostmemId inconsistent between guest and host\n"); |
| } |
| stream->read((uint64_t*)pHostmemId, sizeof(uint64_t)); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryHostAddressInfoGOOGLE returnUnmarshal"); |
| VkResult vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = (VkResult)0; |
| stream->read(&vkGetMemoryHostAddressInfoGOOGLE_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| mImpl->log("finish vkGetMemoryHostAddressInfoGOOGLE");; |
| return vkGetMemoryHostAddressInfoGOOGLE_VkResult_return; |
| } |
| |
| #endif |
| #ifdef VK_GOOGLE_free_memory_sync |
| VkResult VkEncoder::vkFreeMemorySyncGOOGLE( |
| VkDevice device, |
| VkDeviceMemory memory, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AutoLock encoderLock(mImpl->lock); |
| AEMU_SCOPED_TRACE("vkFreeMemorySyncGOOGLE encode"); |
| mImpl->log("start vkFreeMemorySyncGOOGLE"); |
| auto stream = mImpl->stream(); |
| auto countingStream = mImpl->countingStream(); |
| auto resources = mImpl->resources(); |
| auto pool = mImpl->pool(); |
| stream->setHandleMapping(resources->unwrapMapping()); |
| VkDevice local_device; |
| VkDeviceMemory local_memory; |
| VkAllocationCallbacks* local_pAllocator; |
| local_device = device; |
| local_memory = memory; |
| local_pAllocator = nullptr; |
| if (pAllocator) |
| { |
| local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks)); |
| deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| local_pAllocator = nullptr; |
| mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0); |
| countingStream->rewind(); |
| { |
| uint64_t cgen_var_1547; |
| countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1547, 1); |
| countingStream->write((uint64_t*)&cgen_var_1547, 1 * 8); |
| uint64_t cgen_var_1548; |
| countingStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1548, 1); |
| countingStream->write((uint64_t*)&cgen_var_1548, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1549 = (uint64_t)(uintptr_t)local_pAllocator; |
| countingStream->putBe64(cgen_var_1549); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| } |
| uint32_t packetSize_vkFreeMemorySyncGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten(); |
| countingStream->rewind(); |
| uint32_t opcode_vkFreeMemorySyncGOOGLE = OP_vkFreeMemorySyncGOOGLE; |
| stream->write(&opcode_vkFreeMemorySyncGOOGLE, sizeof(uint32_t)); |
| stream->write(&packetSize_vkFreeMemorySyncGOOGLE, sizeof(uint32_t)); |
| uint64_t cgen_var_1550; |
| stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1550, 1); |
| stream->write((uint64_t*)&cgen_var_1550, 1 * 8); |
| uint64_t cgen_var_1551; |
| stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_1551, 1); |
| stream->write((uint64_t*)&cgen_var_1551, 1 * 8); |
| // WARNING PTR CHECK |
| uint64_t cgen_var_1552 = (uint64_t)(uintptr_t)local_pAllocator; |
| stream->putBe64(cgen_var_1552); |
| if (local_pAllocator) |
| { |
| marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator)); |
| } |
| AEMU_SCOPED_TRACE("vkFreeMemorySyncGOOGLE readParams"); |
| AEMU_SCOPED_TRACE("vkFreeMemorySyncGOOGLE returnUnmarshal"); |
| VkResult vkFreeMemorySyncGOOGLE_VkResult_return = (VkResult)0; |
| stream->read(&vkFreeMemorySyncGOOGLE_VkResult_return, sizeof(VkResult)); |
| countingStream->clearPool(); |
| stream->clearPool(); |
| pool->freeAll(); |
| resources->destroyMapping()->mapHandles_VkDeviceMemory((VkDeviceMemory*)&memory); |
| mImpl->log("finish vkFreeMemorySyncGOOGLE");; |
| return vkFreeMemorySyncGOOGLE_VkResult_return; |
| } |
| |
| #endif |
| |
| } // namespace goldfish_vk |