diff options
author | Lingfeng Yang <lfy@google.com> | 2020-07-14 14:27:33 -0700 |
---|---|---|
committer | Lingfeng Yang <lfy@google.com> | 2020-07-16 01:05:27 -0700 |
commit | 256f9251d406ed4a3aca6936f92b5a6730425d95 (patch) | |
tree | bb3a9bd4dc71e57f6b0530fc29773cc64c4dcb4a | |
parent | f89f75d19633196b2341998fa212dbca771d65fa (diff) | |
download | device_generic_goldfish-opengl-256f9251d406ed4a3aca6936f92b5a6730425d95.tar.gz device_generic_goldfish-opengl-256f9251d406ed4a3aca6936f92b5a6730425d95.tar.bz2 device_generic_goldfish-opengl-256f9251d406ed4a3aca6936f92b5a6730425d95.zip |
remove encoder lock, change to atomic and thread local check
Test: Run
dEQP-VK.synchronization.internally_synchronized_objects.pipeline_cache_compute
20x, no failures/crashes/hangs
Change-Id: I5d4440149fc1d0780b935495a784500de7988756
-rw-r--r-- | android-emu/android/base/Pool.h | 4 | ||||
-rw-r--r-- | system/OpenglSystemCommon/HostConnection.cpp | 2 | ||||
-rw-r--r-- | system/vulkan_enc/ResourceTracker.cpp | 81 | ||||
-rw-r--r-- | system/vulkan_enc/ResourceTracker.h | 6 | ||||
-rw-r--r-- | system/vulkan_enc/VkEncoder.cpp | 1614 | ||||
-rw-r--r-- | system/vulkan_enc/VkEncoder.h | 7 |
6 files changed, 1143 insertions, 571 deletions
diff --git a/android-emu/android/base/Pool.h b/android-emu/android/base/Pool.h index bce2cc15..b5b1d1b9 100644 --- a/android-emu/android/base/Pool.h +++ b/android-emu/android/base/Pool.h @@ -36,9 +36,9 @@ public: // // Rough space cost formula: // O(chunksPerSize * log2(maxSize / minSize) * maxSize) - Pool(size_t minSize = 8, + Pool(size_t minSize = 4, size_t maxSize = 4096, - size_t chunksPerSize = 256); + size_t chunksPerSize = 1024); // All memory allocated by this pool // is automatically deleted when the pool diff --git a/system/OpenglSystemCommon/HostConnection.cpp b/system/OpenglSystemCommon/HostConnection.cpp index 9c6cce37..c371742e 100644 --- a/system/OpenglSystemCommon/HostConnection.cpp +++ b/system/OpenglSystemCommon/HostConnection.cpp @@ -639,7 +639,7 @@ ExtendedRCEncoderContext *HostConnection::rcEncoder() queryAndSetVulkanFreeMemorySync(rcEnc); queryAndSetVirtioGpuNativeSync(rcEnc); queryAndSetVulkanShaderFloat16Int8Support(rcEnc); - queryAndSetVulkanAsyncQueueSubmitSupport(m_rcEnc); + queryAndSetVulkanAsyncQueueSubmitSupport(rcEnc); if (m_processPipe) { m_processPipe->processPipeInit(m_connectionType, rcEnc); } diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp index 4fd2850f..2293df01 100644 --- a/system/vulkan_enc/ResourceTracker.cpp +++ b/system/vulkan_enc/ResourceTracker.cpp @@ -399,8 +399,8 @@ public: *(info.lastUsedEncoderPtr) : nullptr; if (lastUsedEncoder) { - lastUsedEncoder->unregisterCleanupCallback(commandBuffer); delete info.lastUsedEncoderPtr; + info.lastUsedEncoderPtr = nullptr; } info_VkCommandBuffer.erase(commandBuffer); @@ -417,8 +417,8 @@ public: *(info.lastUsedEncoderPtr) : nullptr; if (lastUsedEncoder) { - lastUsedEncoder->unregisterCleanupCallback(queue); delete info.lastUsedEncoderPtr; + info.lastUsedEncoderPtr = nullptr; } info_VkQueue.erase(queue); @@ -4630,6 +4630,31 @@ public: physicalDevice, pImageFormatInfo, pImageFormatProperties); } + void registerEncoderCleanupCallback(const VkEncoder* encoder, void* object, CleanupCallback callback) { + AutoLock lock(mLock); + auto& callbacks = mEncoderCleanupCallbacks[encoder]; + callbacks[object] = callback; + } + + void unregisterEncoderCleanupCallback(const VkEncoder* encoder, void* object) { + AutoLock lock(mLock); + mEncoderCleanupCallbacks[encoder].erase(object); + } + + void onEncoderDeleted(const VkEncoder* encoder) { + AutoLock lock(mLock); + if (mEncoderCleanupCallbacks.find(encoder) == mEncoderCleanupCallbacks.end()) return; + + std::unordered_map<void*, CleanupCallback> callbackCopies = mEncoderCleanupCallbacks[encoder]; + + mEncoderCleanupCallbacks.erase(encoder); + lock.unlock(); + + for (auto it : callbackCopies) { + it.second(); + } + } + uint32_t syncEncodersForCommandBuffer(VkCommandBuffer commandBuffer, VkEncoder* currentEncoder) { AutoLock lock(mLock); @@ -4663,11 +4688,19 @@ public: lastEncoder->flush(); currentEncoder->vkCommandBufferHostSyncGOOGLE(commandBuffer, true, oldSeq + 2); - lastEncoder->unregisterCleanupCallback(commandBuffer); + unregisterEncoderCleanupCallback(lastEncoder, commandBuffer); + + registerEncoderCleanupCallback(currentEncoder, commandBuffer, [this, currentEncoder, commandBuffer]() { + AutoLock lock(mLock); + auto it = info_VkCommandBuffer.find(commandBuffer); + if (it == info_VkCommandBuffer.end()) return; + + auto& info = it->second; + if (!info.lastUsedEncoderPtr) return; + if (!*(info.lastUsedEncoderPtr)) return; - currentEncoder->registerCleanupCallback(commandBuffer, [currentEncoder, lastUsedEncoderPtr]() { - if (*(lastUsedEncoderPtr) == currentEncoder) { - *(lastUsedEncoderPtr) = nullptr; + if (currentEncoder == *(info.lastUsedEncoderPtr)) { + *(info.lastUsedEncoderPtr) = nullptr; } }); @@ -4675,6 +4708,10 @@ public: } uint32_t syncEncodersForQueue(VkQueue queue, VkEncoder* currentEncoder) { + if (!supportsAsyncQueueSubmit()) { + return 0; + } + AutoLock lock(mLock); auto it = info_VkQueue.find(queue); @@ -4711,11 +4748,19 @@ public: lastEncoder->flush(); currentEncoder->vkQueueHostSyncGOOGLE(queue, true, oldSeq + 2); - lastEncoder->unregisterCleanupCallback(queue); + unregisterEncoderCleanupCallback(lastEncoder, queue); + + registerEncoderCleanupCallback(currentEncoder, queue, [this, currentEncoder, queue]() { + AutoLock lock(mLock); + auto it = info_VkQueue.find(queue); + if (it == info_VkQueue.end()) return; + + auto& info = it->second; + if (!info.lastUsedEncoderPtr) return; + if (!*(info.lastUsedEncoderPtr)) return; - currentEncoder->registerCleanupCallback(queue, [currentEncoder, lastUsedEncoderPtr]() { - if (*(lastUsedEncoderPtr) == currentEncoder) { - *(lastUsedEncoderPtr) = nullptr; + if (currentEncoder == *(info.lastUsedEncoderPtr)) { + *(info.lastUsedEncoderPtr) = nullptr; } }); @@ -4866,6 +4911,9 @@ private: WorkPool mWorkPool { 4 }; std::unordered_map<VkQueue, std::vector<WorkPool::WaitGroupHandle>> mQueueSensitiveWorkPoolItems; + + std::unordered_map<const VkEncoder*, std::unordered_map<void*, CleanupCallback>> mEncoderCleanupCallbacks; + }; ResourceTracker::ResourceTracker() : mImpl(new ResourceTracker::Impl()) { } @@ -5649,6 +5697,18 @@ VkResult ResourceTracker::on_vkGetPhysicalDeviceImageFormatProperties2KHR( pImageFormatProperties); } +void ResourceTracker::registerEncoderCleanupCallback(const VkEncoder* encoder, void* handle, ResourceTracker::CleanupCallback callback) { + mImpl->registerEncoderCleanupCallback(encoder, handle, callback); +} + +void ResourceTracker::unregisterEncoderCleanupCallback(const VkEncoder* encoder, void* handle) { + mImpl->unregisterEncoderCleanupCallback(encoder, handle); +} + +void ResourceTracker::onEncoderDeleted(const VkEncoder* encoder) { + mImpl->onEncoderDeleted(encoder); +} + uint32_t ResourceTracker::syncEncodersForCommandBuffer(VkCommandBuffer commandBuffer, VkEncoder* current) { return mImpl->syncEncodersForCommandBuffer(commandBuffer, current); } @@ -5657,6 +5717,7 @@ uint32_t ResourceTracker::syncEncodersForQueue(VkQueue queue, VkEncoder* current return mImpl->syncEncodersForQueue(queue, current); } + VkResult ResourceTracker::on_vkBeginCommandBuffer( void* context, VkResult input_result, VkCommandBuffer commandBuffer, diff --git a/system/vulkan_enc/ResourceTracker.h b/system/vulkan_enc/ResourceTracker.h index 9a5fae53..200150fa 100644 --- a/system/vulkan_enc/ResourceTracker.h +++ b/system/vulkan_enc/ResourceTracker.h @@ -20,6 +20,7 @@ #include "VulkanHandleMapping.h" #include "VulkanHandles.h" +#include <functional> #include <memory> #include "goldfish_vk_transform_guest.h" @@ -44,6 +45,7 @@ public: using HostConnectionGetFunc = HostConnection* (*)(); using VkEncoderGetFunc = VkEncoder* (*)(HostConnection*); + using CleanupCallback = std::function<void()>; struct ThreadingCallbacks { HostConnectionGetFunc hostConnectionGetFunc = 0; @@ -480,6 +482,10 @@ public: const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); + void registerEncoderCleanupCallback(const VkEncoder* encoder, void* handle, CleanupCallback callback); + void unregisterEncoderCleanupCallback(const VkEncoder* encoder, void* handle); + void onEncoderDeleted(const VkEncoder* encoder); + uint32_t syncEncodersForCommandBuffer(VkCommandBuffer commandBuffer, VkEncoder* current); uint32_t syncEncodersForQueue(VkQueue queue, VkEncoder* current); diff --git a/system/vulkan_enc/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp index 43130085..0eeba153 100644 --- a/system/vulkan_enc/VkEncoder.cpp +++ b/system/vulkan_enc/VkEncoder.cpp @@ -69,12 +69,7 @@ public: } } - ~Impl() { - for (auto it : mCleanupCallbacks) { - fprintf(stderr, "%s: run cleanup callback for %p\n", __func__, it.first); - it.second(); - } - } + ~Impl() { } VulkanCountingStream* countingStream() { return &m_countingStream; } VulkanStreamGuest* stream() { return &m_stream; } @@ -88,24 +83,34 @@ public: } void flush() { - AutoLock encoderLock(lock); + lock(); m_stream.flush(); + unlock(); } - // 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; + // can be recursive + void lock() { + if (this == sAcquiredEncoderThreadLocal) { + ++sAcquiredEncoderThreadLockLevels; + return; // recursive } + while (mLock.test_and_set(std::memory_order_acquire)); + sAcquiredEncoderThreadLocal = this; + sAcquiredEncoderThreadLockLevels = 1; } - void unregisterCleanupCallback(void* handle) { - mCleanupCallbacks.erase(handle); - } + void unlock() { + if (this != sAcquiredEncoderThreadLocal) { + // error, trying to unlock without having locked first + return; + } - Lock lock; + --sAcquiredEncoderThreadLockLevels; + if (0 == sAcquiredEncoderThreadLockLevels) { + mLock.clear(std::memory_order_release); + sAcquiredEncoderThreadLocal = nullptr; + } + } private: VulkanCountingStream m_countingStream; @@ -114,25 +119,44 @@ private: Validation m_validation; bool m_logEncodes; + std::atomic_flag mLock = ATOMIC_FLAG_INIT; + static thread_local Impl* sAcquiredEncoderThreadLocal; + static thread_local uint32_t sAcquiredEncoderThreadLockLevels; +}; + +VkEncoder::~VkEncoder() { + auto rt = ResourceTracker::get(); + if (!rt) return; + rt->onEncoderDeleted(this); +} - std::unordered_map<void*, VkEncoder::CleanupCallback> mCleanupCallbacks; +// static +thread_local VkEncoder::Impl* VkEncoder::Impl::sAcquiredEncoderThreadLocal = nullptr; +thread_local uint32_t VkEncoder::Impl::sAcquiredEncoderThreadLockLevels = 0; + +struct EncoderAutoLock { + EncoderAutoLock(VkEncoder* enc) : mEnc(enc) { + mEnc->lock(); + } + ~EncoderAutoLock() { + mEnc->unlock(); + } + VkEncoder* mEnc; }; VkEncoder::VkEncoder(IOStream *stream) : mImpl(new VkEncoder::Impl(stream)) { } -VkEncoder::~VkEncoder() = default; - void VkEncoder::flush() { mImpl->flush(); } -void VkEncoder::registerCleanupCallback(void* handle, VkEncoder::CleanupCallback cb) { - mImpl->registerCleanupCallback(handle, cb); +void VkEncoder::lock() { + mImpl->lock(); } -void VkEncoder::unregisterCleanupCallback(void* handle) { - mImpl->unregisterCleanupCallback(handle); +void VkEncoder::unlock() { + mImpl->unlock(); } #define VALIDATE_RET(retType, success, validate) \ @@ -149,7 +173,7 @@ VkResult VkEncoder::vkCreateInstance( const VkAllocationCallbacks* pAllocator, VkInstance* pInstance) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateInstance encode"); mImpl->log("start vkCreateInstance"); auto stream = mImpl->stream(); @@ -221,12 +245,10 @@ VkResult VkEncoder::vkCreateInstance( AEMU_SCOPED_TRACE("vkCreateInstance returnUnmarshal"); VkResult vkCreateInstance_VkResult_return = (VkResult)0; stream->read(&vkCreateInstance_VkResult_return, sizeof(VkResult)); + mImpl->resources()->on_vkCreateInstance(this, vkCreateInstance_VkResult_return, pCreateInfo, pAllocator, pInstance); + pool->freeAll(); 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; } @@ -235,7 +257,7 @@ void VkEncoder::vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyInstance encode"); mImpl->log("start vkDestroyInstance"); auto stream = mImpl->stream(); @@ -288,6 +310,9 @@ void VkEncoder::vkDestroyInstance( AEMU_SCOPED_TRACE("vkDestroyInstance readParams"); AEMU_SCOPED_TRACE("vkDestroyInstance returnUnmarshal"); resources->destroyMapping()->mapHandles_VkInstance((VkInstance*)&instance); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyInstance");; } @@ -296,7 +321,7 @@ VkResult VkEncoder::vkEnumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices encode"); mImpl->log("start vkEnumeratePhysicalDevices"); auto stream = mImpl->stream(); @@ -396,9 +421,9 @@ VkResult VkEncoder::vkEnumeratePhysicalDevices( AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices returnUnmarshal"); VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0; stream->read(&vkEnumeratePhysicalDevices_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkEnumeratePhysicalDevices");; return vkEnumeratePhysicalDevices_VkResult_return; } @@ -407,7 +432,7 @@ void VkEncoder::vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures encode"); mImpl->log("start vkGetPhysicalDeviceFeatures"); auto stream = mImpl->stream(); @@ -440,6 +465,9 @@ void VkEncoder::vkGetPhysicalDeviceFeatures( transform_fromhost_VkPhysicalDeviceFeatures(mImpl->resources(), (VkPhysicalDeviceFeatures*)(pFeatures)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceFeatures");; } @@ -448,7 +476,7 @@ void VkEncoder::vkGetPhysicalDeviceFormatProperties( VkFormat format, VkFormatProperties* pFormatProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties encode"); mImpl->log("start vkGetPhysicalDeviceFormatProperties"); auto stream = mImpl->stream(); @@ -485,6 +513,9 @@ void VkEncoder::vkGetPhysicalDeviceFormatProperties( transform_fromhost_VkFormatProperties(mImpl->resources(), (VkFormatProperties*)(pFormatProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceFormatProperties");; } @@ -497,7 +528,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties( VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties encode"); mImpl->log("start vkGetPhysicalDeviceImageFormatProperties"); auto stream = mImpl->stream(); @@ -552,9 +583,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties returnUnmarshal"); VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceImageFormatProperties_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceImageFormatProperties");; return vkGetPhysicalDeviceImageFormatProperties_VkResult_return; } @@ -563,7 +594,7 @@ void VkEncoder::vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties encode"); mImpl->log("start vkGetPhysicalDeviceProperties"); auto stream = mImpl->stream(); @@ -596,9 +627,10 @@ void VkEncoder::vkGetPhysicalDeviceProperties( transform_fromhost_VkPhysicalDeviceProperties(mImpl->resources(), (VkPhysicalDeviceProperties*)(pProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties returnUnmarshal"); - encoderLock.unlock(); mImpl->resources()->on_vkGetPhysicalDeviceProperties(this, physicalDevice, pProperties); - encoderLock.lock(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceProperties");; } @@ -607,7 +639,7 @@ void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties encode"); mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties"); auto stream = mImpl->stream(); @@ -699,6 +731,9 @@ void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties( } } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties");; } @@ -706,7 +741,7 @@ void VkEncoder::vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties encode"); mImpl->log("start vkGetPhysicalDeviceMemoryProperties"); auto stream = mImpl->stream(); @@ -739,9 +774,10 @@ void VkEncoder::vkGetPhysicalDeviceMemoryProperties( transform_fromhost_VkPhysicalDeviceMemoryProperties(mImpl->resources(), (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties returnUnmarshal"); - encoderLock.unlock(); mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties(this, physicalDevice, pMemoryProperties); - encoderLock.lock(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceMemoryProperties");; } @@ -749,7 +785,7 @@ PFN_vkVoidFunction VkEncoder::vkGetInstanceProcAddr( VkInstance instance, const char* pName) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetInstanceProcAddr encode"); mImpl->log("start vkGetInstanceProcAddr"); auto stream = mImpl->stream(); @@ -785,9 +821,9 @@ PFN_vkVoidFunction VkEncoder::vkGetInstanceProcAddr( AEMU_SCOPED_TRACE("vkGetInstanceProcAddr returnUnmarshal"); PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0; stream->read(&vkGetInstanceProcAddr_PFN_vkVoidFunction_return, sizeof(PFN_vkVoidFunction)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetInstanceProcAddr");; return vkGetInstanceProcAddr_PFN_vkVoidFunction_return; } @@ -796,7 +832,7 @@ PFN_vkVoidFunction VkEncoder::vkGetDeviceProcAddr( VkDevice device, const char* pName) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDeviceProcAddr encode"); mImpl->log("start vkGetDeviceProcAddr"); auto stream = mImpl->stream(); @@ -832,9 +868,9 @@ PFN_vkVoidFunction VkEncoder::vkGetDeviceProcAddr( AEMU_SCOPED_TRACE("vkGetDeviceProcAddr returnUnmarshal"); PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0; stream->read(&vkGetDeviceProcAddr_PFN_vkVoidFunction_return, sizeof(PFN_vkVoidFunction)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetDeviceProcAddr");; return vkGetDeviceProcAddr_PFN_vkVoidFunction_return; } @@ -845,7 +881,7 @@ VkResult VkEncoder::vkCreateDevice( const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateDevice encode"); mImpl->log("start vkCreateDevice"); auto stream = mImpl->stream(); @@ -925,12 +961,10 @@ VkResult VkEncoder::vkCreateDevice( AEMU_SCOPED_TRACE("vkCreateDevice returnUnmarshal"); VkResult vkCreateDevice_VkResult_return = (VkResult)0; stream->read(&vkCreateDevice_VkResult_return, sizeof(VkResult)); + mImpl->resources()->on_vkCreateDevice(this, vkCreateDevice_VkResult_return, physicalDevice, pCreateInfo, pAllocator, pDevice); + pool->freeAll(); 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; } @@ -939,12 +973,10 @@ void VkEncoder::vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); 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(); @@ -996,6 +1028,9 @@ void VkEncoder::vkDestroyDevice( AEMU_SCOPED_TRACE("vkDestroyDevice returnUnmarshal"); resources->destroyMapping()->mapHandles_VkDevice((VkDevice*)&device); stream->flush(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyDevice");; } @@ -1004,7 +1039,7 @@ VkResult VkEncoder::vkEnumerateInstanceExtensionProperties( uint32_t* pPropertyCount, VkExtensionProperties* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties encode"); mImpl->log("start vkEnumerateInstanceExtensionProperties"); auto stream = mImpl->stream(); @@ -1124,9 +1159,9 @@ VkResult VkEncoder::vkEnumerateInstanceExtensionProperties( AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties returnUnmarshal"); VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0; stream->read(&vkEnumerateInstanceExtensionProperties_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkEnumerateInstanceExtensionProperties");; return vkEnumerateInstanceExtensionProperties_VkResult_return; } @@ -1137,7 +1172,7 @@ VkResult VkEncoder::vkEnumerateDeviceExtensionProperties( uint32_t* pPropertyCount, VkExtensionProperties* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties encode"); mImpl->log("start vkEnumerateDeviceExtensionProperties"); auto stream = mImpl->stream(); @@ -1265,9 +1300,9 @@ VkResult VkEncoder::vkEnumerateDeviceExtensionProperties( AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties returnUnmarshal"); VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0; stream->read(&vkEnumerateDeviceExtensionProperties_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkEnumerateDeviceExtensionProperties");; return vkEnumerateDeviceExtensionProperties_VkResult_return; } @@ -1276,7 +1311,7 @@ VkResult VkEncoder::vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties encode"); mImpl->log("start vkEnumerateInstanceLayerProperties"); auto stream = mImpl->stream(); @@ -1362,9 +1397,9 @@ VkResult VkEncoder::vkEnumerateInstanceLayerProperties( AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties returnUnmarshal"); VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0; stream->read(&vkEnumerateInstanceLayerProperties_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkEnumerateInstanceLayerProperties");; return vkEnumerateInstanceLayerProperties_VkResult_return; } @@ -1374,7 +1409,7 @@ VkResult VkEncoder::vkEnumerateDeviceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties encode"); mImpl->log("start vkEnumerateDeviceLayerProperties"); auto stream = mImpl->stream(); @@ -1468,9 +1503,9 @@ VkResult VkEncoder::vkEnumerateDeviceLayerProperties( AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties returnUnmarshal"); VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0; stream->read(&vkEnumerateDeviceLayerProperties_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkEnumerateDeviceLayerProperties");; return vkEnumerateDeviceLayerProperties_VkResult_return; } @@ -1481,7 +1516,7 @@ void VkEncoder::vkGetDeviceQueue( uint32_t queueIndex, VkQueue* pQueue) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDeviceQueue encode"); mImpl->log("start vkGetDeviceQueue"); auto stream = mImpl->stream(); @@ -1528,6 +1563,9 @@ void VkEncoder::vkGetDeviceQueue( stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_89, (VkQueue*)pQueue, 1); stream->unsetHandleMapping(); AEMU_SCOPED_TRACE("vkGetDeviceQueue returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetDeviceQueue");; } @@ -1537,7 +1575,7 @@ VkResult VkEncoder::vkQueueSubmit( const VkSubmitInfo* pSubmits, VkFence fence) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueSubmit encode"); mImpl->log("start vkQueueSubmit"); auto stream = mImpl->stream(); @@ -1602,9 +1640,9 @@ VkResult VkEncoder::vkQueueSubmit( AEMU_SCOPED_TRACE("vkQueueSubmit returnUnmarshal"); VkResult vkQueueSubmit_VkResult_return = (VkResult)0; stream->read(&vkQueueSubmit_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkQueueSubmit");; return vkQueueSubmit_VkResult_return; } @@ -1612,7 +1650,7 @@ VkResult VkEncoder::vkQueueSubmit( VkResult VkEncoder::vkQueueWaitIdle( VkQueue queue) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueWaitIdle encode"); mImpl->log("start vkQueueWaitIdle"); auto stream = mImpl->stream(); @@ -1640,9 +1678,9 @@ VkResult VkEncoder::vkQueueWaitIdle( AEMU_SCOPED_TRACE("vkQueueWaitIdle returnUnmarshal"); VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0; stream->read(&vkQueueWaitIdle_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkQueueWaitIdle");; return vkQueueWaitIdle_VkResult_return; } @@ -1650,7 +1688,7 @@ VkResult VkEncoder::vkQueueWaitIdle( VkResult VkEncoder::vkDeviceWaitIdle( VkDevice device) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDeviceWaitIdle encode"); mImpl->log("start vkDeviceWaitIdle"); auto stream = mImpl->stream(); @@ -1678,9 +1716,9 @@ VkResult VkEncoder::vkDeviceWaitIdle( AEMU_SCOPED_TRACE("vkDeviceWaitIdle returnUnmarshal"); VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0; stream->read(&vkDeviceWaitIdle_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkDeviceWaitIdle");; return vkDeviceWaitIdle_VkResult_return; } @@ -1691,7 +1729,7 @@ VkResult VkEncoder::vkAllocateMemory( const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkAllocateMemory encode"); mImpl->log("start vkAllocateMemory"); auto stream = mImpl->stream(); @@ -1771,9 +1809,9 @@ VkResult VkEncoder::vkAllocateMemory( AEMU_SCOPED_TRACE("vkAllocateMemory returnUnmarshal"); VkResult vkAllocateMemory_VkResult_return = (VkResult)0; stream->read(&vkAllocateMemory_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkAllocateMemory");; return vkAllocateMemory_VkResult_return; } @@ -1783,7 +1821,7 @@ void VkEncoder::vkFreeMemory( VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkFreeMemory encode"); mImpl->log("start vkFreeMemory"); auto stream = mImpl->stream(); @@ -1841,6 +1879,9 @@ void VkEncoder::vkFreeMemory( AEMU_SCOPED_TRACE("vkFreeMemory readParams"); AEMU_SCOPED_TRACE("vkFreeMemory returnUnmarshal"); resources->destroyMapping()->mapHandles_VkDeviceMemory((VkDeviceMemory*)&memory); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkFreeMemory");; } @@ -1872,7 +1913,7 @@ VkResult VkEncoder::vkFlushMappedMemoryRanges( uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges encode"); mImpl->log("start vkFlushMappedMemoryRanges"); VALIDATE_RET(VkResult, VK_SUCCESS, mImpl->validation()->on_vkFlushMappedMemoryRanges(this, VK_SUCCESS, device, memoryRangeCount, pMemoryRanges)); @@ -1968,9 +2009,9 @@ VkResult VkEncoder::vkFlushMappedMemoryRanges( AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges returnUnmarshal"); VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0; stream->read(&vkFlushMappedMemoryRanges_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkFlushMappedMemoryRanges");; return vkFlushMappedMemoryRanges_VkResult_return; } @@ -1980,7 +2021,7 @@ VkResult VkEncoder::vkInvalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges encode"); mImpl->log("start vkInvalidateMappedMemoryRanges"); VALIDATE_RET(VkResult, VK_SUCCESS, mImpl->validation()->on_vkInvalidateMappedMemoryRanges(this, VK_SUCCESS, device, memoryRangeCount, pMemoryRanges)); @@ -2038,9 +2079,6 @@ VkResult VkEncoder::vkInvalidateMappedMemoryRanges( 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) @@ -2060,6 +2098,9 @@ VkResult VkEncoder::vkInvalidateMappedMemoryRanges( stream->read(targetRange, actualSize); } } + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkInvalidateMappedMemoryRanges");; return vkInvalidateMappedMemoryRanges_VkResult_return; } @@ -2069,7 +2110,7 @@ void VkEncoder::vkGetDeviceMemoryCommitment( VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment encode"); mImpl->log("start vkGetDeviceMemoryCommitment"); auto stream = mImpl->stream(); @@ -2107,6 +2148,9 @@ void VkEncoder::vkGetDeviceMemoryCommitment( AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment readParams"); stream->read((VkDeviceSize*)pCommittedMemoryInBytes, sizeof(VkDeviceSize)); AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetDeviceMemoryCommitment");; } @@ -2116,7 +2160,7 @@ VkResult VkEncoder::vkBindBufferMemory( VkDeviceMemory memory, VkDeviceSize memoryOffset) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkBindBufferMemory encode"); mImpl->log("start vkBindBufferMemory"); auto stream = mImpl->stream(); @@ -2165,9 +2209,9 @@ VkResult VkEncoder::vkBindBufferMemory( AEMU_SCOPED_TRACE("vkBindBufferMemory returnUnmarshal"); VkResult vkBindBufferMemory_VkResult_return = (VkResult)0; stream->read(&vkBindBufferMemory_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkBindBufferMemory");; return vkBindBufferMemory_VkResult_return; } @@ -2178,7 +2222,7 @@ VkResult VkEncoder::vkBindImageMemory( VkDeviceMemory memory, VkDeviceSize memoryOffset) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkBindImageMemory encode"); mImpl->log("start vkBindImageMemory"); auto stream = mImpl->stream(); @@ -2227,9 +2271,9 @@ VkResult VkEncoder::vkBindImageMemory( AEMU_SCOPED_TRACE("vkBindImageMemory returnUnmarshal"); VkResult vkBindImageMemory_VkResult_return = (VkResult)0; stream->read(&vkBindImageMemory_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkBindImageMemory");; return vkBindImageMemory_VkResult_return; } @@ -2239,7 +2283,7 @@ void VkEncoder::vkGetBufferMemoryRequirements( VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements encode"); mImpl->log("start vkGetBufferMemoryRequirements"); auto stream = mImpl->stream(); @@ -2280,6 +2324,9 @@ void VkEncoder::vkGetBufferMemoryRequirements( transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements)); } AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetBufferMemoryRequirements");; } @@ -2288,7 +2335,7 @@ void VkEncoder::vkGetImageMemoryRequirements( VkImage image, VkMemoryRequirements* pMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements encode"); mImpl->log("start vkGetImageMemoryRequirements"); auto stream = mImpl->stream(); @@ -2329,6 +2376,9 @@ void VkEncoder::vkGetImageMemoryRequirements( transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements)); } AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetImageMemoryRequirements");; } @@ -2338,7 +2388,7 @@ void VkEncoder::vkGetImageSparseMemoryRequirements( uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements encode"); mImpl->log("start vkGetImageSparseMemoryRequirements"); auto stream = mImpl->stream(); @@ -2438,6 +2488,9 @@ void VkEncoder::vkGetImageSparseMemoryRequirements( } } AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetImageSparseMemoryRequirements");; } @@ -2451,7 +2504,7 @@ void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties( uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties encode"); mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties"); auto stream = mImpl->stream(); @@ -2563,6 +2616,9 @@ void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties( } } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties");; } @@ -2572,7 +2628,7 @@ VkResult VkEncoder::vkQueueBindSparse( const VkBindSparseInfo* pBindInfo, VkFence fence) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueBindSparse encode"); mImpl->log("start vkQueueBindSparse"); auto stream = mImpl->stream(); @@ -2637,9 +2693,9 @@ VkResult VkEncoder::vkQueueBindSparse( AEMU_SCOPED_TRACE("vkQueueBindSparse returnUnmarshal"); VkResult vkQueueBindSparse_VkResult_return = (VkResult)0; stream->read(&vkQueueBindSparse_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkQueueBindSparse");; return vkQueueBindSparse_VkResult_return; } @@ -2650,7 +2706,7 @@ VkResult VkEncoder::vkCreateFence( const VkAllocationCallbacks* pAllocator, VkFence* pFence) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateFence encode"); mImpl->log("start vkCreateFence"); auto stream = mImpl->stream(); @@ -2730,9 +2786,9 @@ VkResult VkEncoder::vkCreateFence( AEMU_SCOPED_TRACE("vkCreateFence returnUnmarshal"); VkResult vkCreateFence_VkResult_return = (VkResult)0; stream->read(&vkCreateFence_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateFence");; return vkCreateFence_VkResult_return; } @@ -2742,7 +2798,7 @@ void VkEncoder::vkDestroyFence( VkFence fence, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyFence encode"); mImpl->log("start vkDestroyFence"); auto stream = mImpl->stream(); @@ -2803,6 +2859,9 @@ void VkEncoder::vkDestroyFence( AEMU_SCOPED_TRACE("vkDestroyFence readParams"); AEMU_SCOPED_TRACE("vkDestroyFence returnUnmarshal"); resources->destroyMapping()->mapHandles_VkFence((VkFence*)&fence); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyFence");; } @@ -2811,7 +2870,7 @@ VkResult VkEncoder::vkResetFences( uint32_t fenceCount, const VkFence* pFences) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkResetFences encode"); mImpl->log("start vkResetFences"); auto stream = mImpl->stream(); @@ -2863,9 +2922,9 @@ VkResult VkEncoder::vkResetFences( AEMU_SCOPED_TRACE("vkResetFences returnUnmarshal"); VkResult vkResetFences_VkResult_return = (VkResult)0; stream->read(&vkResetFences_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkResetFences");; return vkResetFences_VkResult_return; } @@ -2874,7 +2933,7 @@ VkResult VkEncoder::vkGetFenceStatus( VkDevice device, VkFence fence) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetFenceStatus encode"); mImpl->log("start vkGetFenceStatus"); auto stream = mImpl->stream(); @@ -2910,9 +2969,9 @@ VkResult VkEncoder::vkGetFenceStatus( AEMU_SCOPED_TRACE("vkGetFenceStatus returnUnmarshal"); VkResult vkGetFenceStatus_VkResult_return = (VkResult)0; stream->read(&vkGetFenceStatus_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetFenceStatus");; return vkGetFenceStatus_VkResult_return; } @@ -2924,7 +2983,7 @@ VkResult VkEncoder::vkWaitForFences( VkBool32 waitAll, uint64_t timeout) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkWaitForFences encode"); mImpl->log("start vkWaitForFences"); auto stream = mImpl->stream(); @@ -2984,9 +3043,9 @@ VkResult VkEncoder::vkWaitForFences( AEMU_SCOPED_TRACE("vkWaitForFences returnUnmarshal"); VkResult vkWaitForFences_VkResult_return = (VkResult)0; stream->read(&vkWaitForFences_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkWaitForFences");; return vkWaitForFences_VkResult_return; } @@ -2997,7 +3056,7 @@ VkResult VkEncoder::vkCreateSemaphore( const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateSemaphore encode"); mImpl->log("start vkCreateSemaphore"); auto stream = mImpl->stream(); @@ -3077,9 +3136,9 @@ VkResult VkEncoder::vkCreateSemaphore( AEMU_SCOPED_TRACE("vkCreateSemaphore returnUnmarshal"); VkResult vkCreateSemaphore_VkResult_return = (VkResult)0; stream->read(&vkCreateSemaphore_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateSemaphore");; return vkCreateSemaphore_VkResult_return; } @@ -3089,7 +3148,7 @@ void VkEncoder::vkDestroySemaphore( VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroySemaphore encode"); mImpl->log("start vkDestroySemaphore"); auto stream = mImpl->stream(); @@ -3150,6 +3209,9 @@ void VkEncoder::vkDestroySemaphore( AEMU_SCOPED_TRACE("vkDestroySemaphore readParams"); AEMU_SCOPED_TRACE("vkDestroySemaphore returnUnmarshal"); resources->destroyMapping()->mapHandles_VkSemaphore((VkSemaphore*)&semaphore); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroySemaphore");; } @@ -3159,7 +3221,7 @@ VkResult VkEncoder::vkCreateEvent( const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateEvent encode"); mImpl->log("start vkCreateEvent"); auto stream = mImpl->stream(); @@ -3239,9 +3301,9 @@ VkResult VkEncoder::vkCreateEvent( AEMU_SCOPED_TRACE("vkCreateEvent returnUnmarshal"); VkResult vkCreateEvent_VkResult_return = (VkResult)0; stream->read(&vkCreateEvent_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateEvent");; return vkCreateEvent_VkResult_return; } @@ -3251,7 +3313,7 @@ void VkEncoder::vkDestroyEvent( VkEvent event, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyEvent encode"); mImpl->log("start vkDestroyEvent"); auto stream = mImpl->stream(); @@ -3312,6 +3374,9 @@ void VkEncoder::vkDestroyEvent( AEMU_SCOPED_TRACE("vkDestroyEvent readParams"); AEMU_SCOPED_TRACE("vkDestroyEvent returnUnmarshal"); resources->destroyMapping()->mapHandles_VkEvent((VkEvent*)&event); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyEvent");; } @@ -3319,7 +3384,7 @@ VkResult VkEncoder::vkGetEventStatus( VkDevice device, VkEvent event) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetEventStatus encode"); mImpl->log("start vkGetEventStatus"); auto stream = mImpl->stream(); @@ -3355,9 +3420,9 @@ VkResult VkEncoder::vkGetEventStatus( AEMU_SCOPED_TRACE("vkGetEventStatus returnUnmarshal"); VkResult vkGetEventStatus_VkResult_return = (VkResult)0; stream->read(&vkGetEventStatus_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetEventStatus");; return vkGetEventStatus_VkResult_return; } @@ -3366,7 +3431,7 @@ VkResult VkEncoder::vkSetEvent( VkDevice device, VkEvent event) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkSetEvent encode"); mImpl->log("start vkSetEvent"); auto stream = mImpl->stream(); @@ -3402,9 +3467,9 @@ VkResult VkEncoder::vkSetEvent( AEMU_SCOPED_TRACE("vkSetEvent returnUnmarshal"); VkResult vkSetEvent_VkResult_return = (VkResult)0; stream->read(&vkSetEvent_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkSetEvent");; return vkSetEvent_VkResult_return; } @@ -3413,7 +3478,7 @@ VkResult VkEncoder::vkResetEvent( VkDevice device, VkEvent event) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkResetEvent encode"); mImpl->log("start vkResetEvent"); auto stream = mImpl->stream(); @@ -3449,9 +3514,9 @@ VkResult VkEncoder::vkResetEvent( AEMU_SCOPED_TRACE("vkResetEvent returnUnmarshal"); VkResult vkResetEvent_VkResult_return = (VkResult)0; stream->read(&vkResetEvent_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkResetEvent");; return vkResetEvent_VkResult_return; } @@ -3462,7 +3527,7 @@ VkResult VkEncoder::vkCreateQueryPool( const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateQueryPool encode"); mImpl->log("start vkCreateQueryPool"); auto stream = mImpl->stream(); @@ -3542,9 +3607,9 @@ VkResult VkEncoder::vkCreateQueryPool( AEMU_SCOPED_TRACE("vkCreateQueryPool returnUnmarshal"); VkResult vkCreateQueryPool_VkResult_return = (VkResult)0; stream->read(&vkCreateQueryPool_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateQueryPool");; return vkCreateQueryPool_VkResult_return; } @@ -3554,7 +3619,7 @@ void VkEncoder::vkDestroyQueryPool( VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyQueryPool encode"); mImpl->log("start vkDestroyQueryPool"); auto stream = mImpl->stream(); @@ -3615,6 +3680,9 @@ void VkEncoder::vkDestroyQueryPool( AEMU_SCOPED_TRACE("vkDestroyQueryPool readParams"); AEMU_SCOPED_TRACE("vkDestroyQueryPool returnUnmarshal"); resources->destroyMapping()->mapHandles_VkQueryPool((VkQueryPool*)&queryPool); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyQueryPool");; } @@ -3628,7 +3696,7 @@ VkResult VkEncoder::vkGetQueryPoolResults( VkDeviceSize stride, VkQueryResultFlags flags) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetQueryPoolResults encode"); mImpl->log("start vkGetQueryPoolResults"); auto stream = mImpl->stream(); @@ -3689,9 +3757,9 @@ VkResult VkEncoder::vkGetQueryPoolResults( AEMU_SCOPED_TRACE("vkGetQueryPoolResults returnUnmarshal"); VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0; stream->read(&vkGetQueryPoolResults_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetQueryPoolResults");; return vkGetQueryPoolResults_VkResult_return; } @@ -3702,7 +3770,7 @@ VkResult VkEncoder::vkCreateBuffer( const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateBuffer encode"); mImpl->log("start vkCreateBuffer"); auto stream = mImpl->stream(); @@ -3782,9 +3850,9 @@ VkResult VkEncoder::vkCreateBuffer( AEMU_SCOPED_TRACE("vkCreateBuffer returnUnmarshal"); VkResult vkCreateBuffer_VkResult_return = (VkResult)0; stream->read(&vkCreateBuffer_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateBuffer");; return vkCreateBuffer_VkResult_return; } @@ -3794,7 +3862,7 @@ void VkEncoder::vkDestroyBuffer( VkBuffer buffer, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyBuffer encode"); mImpl->log("start vkDestroyBuffer"); auto stream = mImpl->stream(); @@ -3855,6 +3923,9 @@ void VkEncoder::vkDestroyBuffer( AEMU_SCOPED_TRACE("vkDestroyBuffer readParams"); AEMU_SCOPED_TRACE("vkDestroyBuffer returnUnmarshal"); resources->destroyMapping()->mapHandles_VkBuffer((VkBuffer*)&buffer); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyBuffer");; } @@ -3864,7 +3935,7 @@ VkResult VkEncoder::vkCreateBufferView( const VkAllocationCallbacks* pAllocator, VkBufferView* pView) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateBufferView encode"); mImpl->log("start vkCreateBufferView"); auto stream = mImpl->stream(); @@ -3944,9 +4015,9 @@ VkResult VkEncoder::vkCreateBufferView( AEMU_SCOPED_TRACE("vkCreateBufferView returnUnmarshal"); VkResult vkCreateBufferView_VkResult_return = (VkResult)0; stream->read(&vkCreateBufferView_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateBufferView");; return vkCreateBufferView_VkResult_return; } @@ -3956,7 +4027,7 @@ void VkEncoder::vkDestroyBufferView( VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyBufferView encode"); mImpl->log("start vkDestroyBufferView"); auto stream = mImpl->stream(); @@ -4017,6 +4088,9 @@ void VkEncoder::vkDestroyBufferView( AEMU_SCOPED_TRACE("vkDestroyBufferView readParams"); AEMU_SCOPED_TRACE("vkDestroyBufferView returnUnmarshal"); resources->destroyMapping()->mapHandles_VkBufferView((VkBufferView*)&bufferView); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyBufferView");; } @@ -4026,7 +4100,7 @@ VkResult VkEncoder::vkCreateImage( const VkAllocationCallbacks* pAllocator, VkImage* pImage) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateImage encode"); mImpl->log("start vkCreateImage"); auto stream = mImpl->stream(); @@ -4107,9 +4181,9 @@ VkResult VkEncoder::vkCreateImage( AEMU_SCOPED_TRACE("vkCreateImage returnUnmarshal"); VkResult vkCreateImage_VkResult_return = (VkResult)0; stream->read(&vkCreateImage_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateImage");; return vkCreateImage_VkResult_return; } @@ -4119,7 +4193,7 @@ void VkEncoder::vkDestroyImage( VkImage image, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyImage encode"); mImpl->log("start vkDestroyImage"); auto stream = mImpl->stream(); @@ -4180,6 +4254,9 @@ void VkEncoder::vkDestroyImage( AEMU_SCOPED_TRACE("vkDestroyImage readParams"); AEMU_SCOPED_TRACE("vkDestroyImage returnUnmarshal"); resources->destroyMapping()->mapHandles_VkImage((VkImage*)&image); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyImage");; } @@ -4189,7 +4266,7 @@ void VkEncoder::vkGetImageSubresourceLayout( const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout encode"); mImpl->log("start vkGetImageSubresourceLayout"); auto stream = mImpl->stream(); @@ -4243,6 +4320,9 @@ void VkEncoder::vkGetImageSubresourceLayout( transform_fromhost_VkSubresourceLayout(mImpl->resources(), (VkSubresourceLayout*)(pLayout)); } AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetImageSubresourceLayout");; } @@ -4252,7 +4332,7 @@ VkResult VkEncoder::vkCreateImageView( const VkAllocationCallbacks* pAllocator, VkImageView* pView) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateImageView encode"); mImpl->log("start vkCreateImageView"); auto stream = mImpl->stream(); @@ -4332,9 +4412,9 @@ VkResult VkEncoder::vkCreateImageView( AEMU_SCOPED_TRACE("vkCreateImageView returnUnmarshal"); VkResult vkCreateImageView_VkResult_return = (VkResult)0; stream->read(&vkCreateImageView_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateImageView");; return vkCreateImageView_VkResult_return; } @@ -4344,7 +4424,7 @@ void VkEncoder::vkDestroyImageView( VkImageView imageView, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyImageView encode"); mImpl->log("start vkDestroyImageView"); auto stream = mImpl->stream(); @@ -4405,6 +4485,9 @@ void VkEncoder::vkDestroyImageView( AEMU_SCOPED_TRACE("vkDestroyImageView readParams"); AEMU_SCOPED_TRACE("vkDestroyImageView returnUnmarshal"); resources->destroyMapping()->mapHandles_VkImageView((VkImageView*)&imageView); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyImageView");; } @@ -4414,7 +4497,7 @@ VkResult VkEncoder::vkCreateShaderModule( const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateShaderModule encode"); mImpl->log("start vkCreateShaderModule"); auto stream = mImpl->stream(); @@ -4494,9 +4577,9 @@ VkResult VkEncoder::vkCreateShaderModule( AEMU_SCOPED_TRACE("vkCreateShaderModule returnUnmarshal"); VkResult vkCreateShaderModule_VkResult_return = (VkResult)0; stream->read(&vkCreateShaderModule_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateShaderModule");; return vkCreateShaderModule_VkResult_return; } @@ -4506,7 +4589,7 @@ void VkEncoder::vkDestroyShaderModule( VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyShaderModule encode"); mImpl->log("start vkDestroyShaderModule"); auto stream = mImpl->stream(); @@ -4567,6 +4650,9 @@ void VkEncoder::vkDestroyShaderModule( AEMU_SCOPED_TRACE("vkDestroyShaderModule readParams"); AEMU_SCOPED_TRACE("vkDestroyShaderModule returnUnmarshal"); resources->destroyMapping()->mapHandles_VkShaderModule((VkShaderModule*)&shaderModule); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyShaderModule");; } @@ -4576,7 +4662,7 @@ VkResult VkEncoder::vkCreatePipelineCache( const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreatePipelineCache encode"); mImpl->log("start vkCreatePipelineCache"); auto stream = mImpl->stream(); @@ -4656,9 +4742,9 @@ VkResult VkEncoder::vkCreatePipelineCache( AEMU_SCOPED_TRACE("vkCreatePipelineCache returnUnmarshal"); VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0; stream->read(&vkCreatePipelineCache_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreatePipelineCache");; return vkCreatePipelineCache_VkResult_return; } @@ -4668,7 +4754,7 @@ void VkEncoder::vkDestroyPipelineCache( VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyPipelineCache encode"); mImpl->log("start vkDestroyPipelineCache"); auto stream = mImpl->stream(); @@ -4729,6 +4815,9 @@ void VkEncoder::vkDestroyPipelineCache( AEMU_SCOPED_TRACE("vkDestroyPipelineCache readParams"); AEMU_SCOPED_TRACE("vkDestroyPipelineCache returnUnmarshal"); resources->destroyMapping()->mapHandles_VkPipelineCache((VkPipelineCache*)&pipelineCache); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyPipelineCache");; } @@ -4738,7 +4827,7 @@ VkResult VkEncoder::vkGetPipelineCacheData( size_t* pDataSize, void* pData) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPipelineCacheData encode"); mImpl->log("start vkGetPipelineCacheData"); auto stream = mImpl->stream(); @@ -4826,9 +4915,9 @@ VkResult VkEncoder::vkGetPipelineCacheData( AEMU_SCOPED_TRACE("vkGetPipelineCacheData returnUnmarshal"); VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0; stream->read(&vkGetPipelineCacheData_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPipelineCacheData");; return vkGetPipelineCacheData_VkResult_return; } @@ -4839,7 +4928,7 @@ VkResult VkEncoder::vkMergePipelineCaches( uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkMergePipelineCaches encode"); mImpl->log("start vkMergePipelineCaches"); auto stream = mImpl->stream(); @@ -4899,9 +4988,9 @@ VkResult VkEncoder::vkMergePipelineCaches( AEMU_SCOPED_TRACE("vkMergePipelineCaches returnUnmarshal"); VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0; stream->read(&vkMergePipelineCaches_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkMergePipelineCaches");; return vkMergePipelineCaches_VkResult_return; } @@ -4914,7 +5003,7 @@ VkResult VkEncoder::vkCreateGraphicsPipelines( const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines encode"); mImpl->log("start vkCreateGraphicsPipelines"); auto stream = mImpl->stream(); @@ -5030,9 +5119,9 @@ VkResult VkEncoder::vkCreateGraphicsPipelines( AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines returnUnmarshal"); VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0; stream->read(&vkCreateGraphicsPipelines_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateGraphicsPipelines");; return vkCreateGraphicsPipelines_VkResult_return; } @@ -5045,7 +5134,7 @@ VkResult VkEncoder::vkCreateComputePipelines( const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateComputePipelines encode"); mImpl->log("start vkCreateComputePipelines"); auto stream = mImpl->stream(); @@ -5161,9 +5250,9 @@ VkResult VkEncoder::vkCreateComputePipelines( AEMU_SCOPED_TRACE("vkCreateComputePipelines returnUnmarshal"); VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0; stream->read(&vkCreateComputePipelines_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateComputePipelines");; return vkCreateComputePipelines_VkResult_return; } @@ -5173,7 +5262,7 @@ void VkEncoder::vkDestroyPipeline( VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyPipeline encode"); mImpl->log("start vkDestroyPipeline"); auto stream = mImpl->stream(); @@ -5234,6 +5323,9 @@ void VkEncoder::vkDestroyPipeline( AEMU_SCOPED_TRACE("vkDestroyPipeline readParams"); AEMU_SCOPED_TRACE("vkDestroyPipeline returnUnmarshal"); resources->destroyMapping()->mapHandles_VkPipeline((VkPipeline*)&pipeline); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyPipeline");; } @@ -5243,7 +5335,7 @@ VkResult VkEncoder::vkCreatePipelineLayout( const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreatePipelineLayout encode"); mImpl->log("start vkCreatePipelineLayout"); auto stream = mImpl->stream(); @@ -5323,9 +5415,9 @@ VkResult VkEncoder::vkCreatePipelineLayout( AEMU_SCOPED_TRACE("vkCreatePipelineLayout returnUnmarshal"); VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0; stream->read(&vkCreatePipelineLayout_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreatePipelineLayout");; return vkCreatePipelineLayout_VkResult_return; } @@ -5335,7 +5427,7 @@ void VkEncoder::vkDestroyPipelineLayout( VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyPipelineLayout encode"); mImpl->log("start vkDestroyPipelineLayout"); auto stream = mImpl->stream(); @@ -5396,6 +5488,9 @@ void VkEncoder::vkDestroyPipelineLayout( AEMU_SCOPED_TRACE("vkDestroyPipelineLayout readParams"); AEMU_SCOPED_TRACE("vkDestroyPipelineLayout returnUnmarshal"); resources->destroyMapping()->mapHandles_VkPipelineLayout((VkPipelineLayout*)&pipelineLayout); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyPipelineLayout");; } @@ -5405,7 +5500,7 @@ VkResult VkEncoder::vkCreateSampler( const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateSampler encode"); mImpl->log("start vkCreateSampler"); auto stream = mImpl->stream(); @@ -5485,9 +5580,9 @@ VkResult VkEncoder::vkCreateSampler( AEMU_SCOPED_TRACE("vkCreateSampler returnUnmarshal"); VkResult vkCreateSampler_VkResult_return = (VkResult)0; stream->read(&vkCreateSampler_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateSampler");; return vkCreateSampler_VkResult_return; } @@ -5497,7 +5592,7 @@ void VkEncoder::vkDestroySampler( VkSampler sampler, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroySampler encode"); mImpl->log("start vkDestroySampler"); auto stream = mImpl->stream(); @@ -5558,6 +5653,9 @@ void VkEncoder::vkDestroySampler( AEMU_SCOPED_TRACE("vkDestroySampler readParams"); AEMU_SCOPED_TRACE("vkDestroySampler returnUnmarshal"); resources->destroyMapping()->mapHandles_VkSampler((VkSampler*)&sampler); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroySampler");; } @@ -5567,7 +5665,7 @@ VkResult VkEncoder::vkCreateDescriptorSetLayout( const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout encode"); mImpl->log("start vkCreateDescriptorSetLayout"); auto stream = mImpl->stream(); @@ -5647,9 +5745,9 @@ VkResult VkEncoder::vkCreateDescriptorSetLayout( AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout returnUnmarshal"); VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0; stream->read(&vkCreateDescriptorSetLayout_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateDescriptorSetLayout");; return vkCreateDescriptorSetLayout_VkResult_return; } @@ -5659,7 +5757,7 @@ void VkEncoder::vkDestroyDescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout encode"); mImpl->log("start vkDestroyDescriptorSetLayout"); auto stream = mImpl->stream(); @@ -5720,6 +5818,9 @@ void VkEncoder::vkDestroyDescriptorSetLayout( AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout readParams"); AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout returnUnmarshal"); resources->destroyMapping()->mapHandles_VkDescriptorSetLayout((VkDescriptorSetLayout*)&descriptorSetLayout); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyDescriptorSetLayout");; } @@ -5729,7 +5830,7 @@ VkResult VkEncoder::vkCreateDescriptorPool( const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateDescriptorPool encode"); mImpl->log("start vkCreateDescriptorPool"); auto stream = mImpl->stream(); @@ -5809,9 +5910,9 @@ VkResult VkEncoder::vkCreateDescriptorPool( AEMU_SCOPED_TRACE("vkCreateDescriptorPool returnUnmarshal"); VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0; stream->read(&vkCreateDescriptorPool_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateDescriptorPool");; return vkCreateDescriptorPool_VkResult_return; } @@ -5821,7 +5922,7 @@ void VkEncoder::vkDestroyDescriptorPool( VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyDescriptorPool encode"); mImpl->log("start vkDestroyDescriptorPool"); auto stream = mImpl->stream(); @@ -5882,6 +5983,9 @@ void VkEncoder::vkDestroyDescriptorPool( AEMU_SCOPED_TRACE("vkDestroyDescriptorPool readParams"); AEMU_SCOPED_TRACE("vkDestroyDescriptorPool returnUnmarshal"); resources->destroyMapping()->mapHandles_VkDescriptorPool((VkDescriptorPool*)&descriptorPool); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyDescriptorPool");; } @@ -5890,7 +5994,7 @@ VkResult VkEncoder::vkResetDescriptorPool( VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkResetDescriptorPool encode"); mImpl->log("start vkResetDescriptorPool"); auto stream = mImpl->stream(); @@ -5930,9 +6034,9 @@ VkResult VkEncoder::vkResetDescriptorPool( AEMU_SCOPED_TRACE("vkResetDescriptorPool returnUnmarshal"); VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0; stream->read(&vkResetDescriptorPool_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkResetDescriptorPool");; return vkResetDescriptorPool_VkResult_return; } @@ -5942,7 +6046,7 @@ VkResult VkEncoder::vkAllocateDescriptorSets( const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkAllocateDescriptorSets encode"); mImpl->log("start vkAllocateDescriptorSets"); auto stream = mImpl->stream(); @@ -6008,9 +6112,9 @@ VkResult VkEncoder::vkAllocateDescriptorSets( AEMU_SCOPED_TRACE("vkAllocateDescriptorSets returnUnmarshal"); VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0; stream->read(&vkAllocateDescriptorSets_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkAllocateDescriptorSets");; return vkAllocateDescriptorSets_VkResult_return; } @@ -6021,7 +6125,7 @@ VkResult VkEncoder::vkFreeDescriptorSets( uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkFreeDescriptorSets encode"); mImpl->log("start vkFreeDescriptorSets"); auto stream = mImpl->stream(); @@ -6093,13 +6197,13 @@ VkResult VkEncoder::vkFreeDescriptorSets( 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))); } + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkFreeDescriptorSets");; return vkFreeDescriptorSets_VkResult_return; } @@ -6111,7 +6215,7 @@ void VkEncoder::vkUpdateDescriptorSets( uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkUpdateDescriptorSets encode"); mImpl->log("start vkUpdateDescriptorSets"); auto stream = mImpl->stream(); @@ -6195,6 +6299,9 @@ void VkEncoder::vkUpdateDescriptorSets( } AEMU_SCOPED_TRACE("vkUpdateDescriptorSets readParams"); AEMU_SCOPED_TRACE("vkUpdateDescriptorSets returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkUpdateDescriptorSets");; } @@ -6204,7 +6311,7 @@ VkResult VkEncoder::vkCreateFramebuffer( const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateFramebuffer encode"); mImpl->log("start vkCreateFramebuffer"); auto stream = mImpl->stream(); @@ -6284,9 +6391,9 @@ VkResult VkEncoder::vkCreateFramebuffer( AEMU_SCOPED_TRACE("vkCreateFramebuffer returnUnmarshal"); VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0; stream->read(&vkCreateFramebuffer_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateFramebuffer");; return vkCreateFramebuffer_VkResult_return; } @@ -6296,7 +6403,7 @@ void VkEncoder::vkDestroyFramebuffer( VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyFramebuffer encode"); mImpl->log("start vkDestroyFramebuffer"); auto stream = mImpl->stream(); @@ -6357,6 +6464,9 @@ void VkEncoder::vkDestroyFramebuffer( AEMU_SCOPED_TRACE("vkDestroyFramebuffer readParams"); AEMU_SCOPED_TRACE("vkDestroyFramebuffer returnUnmarshal"); resources->destroyMapping()->mapHandles_VkFramebuffer((VkFramebuffer*)&framebuffer); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyFramebuffer");; } @@ -6366,7 +6476,7 @@ VkResult VkEncoder::vkCreateRenderPass( const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateRenderPass encode"); mImpl->log("start vkCreateRenderPass"); auto stream = mImpl->stream(); @@ -6446,9 +6556,9 @@ VkResult VkEncoder::vkCreateRenderPass( AEMU_SCOPED_TRACE("vkCreateRenderPass returnUnmarshal"); VkResult vkCreateRenderPass_VkResult_return = (VkResult)0; stream->read(&vkCreateRenderPass_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateRenderPass");; return vkCreateRenderPass_VkResult_return; } @@ -6458,7 +6568,7 @@ void VkEncoder::vkDestroyRenderPass( VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyRenderPass encode"); mImpl->log("start vkDestroyRenderPass"); auto stream = mImpl->stream(); @@ -6519,6 +6629,9 @@ void VkEncoder::vkDestroyRenderPass( AEMU_SCOPED_TRACE("vkDestroyRenderPass readParams"); AEMU_SCOPED_TRACE("vkDestroyRenderPass returnUnmarshal"); resources->destroyMapping()->mapHandles_VkRenderPass((VkRenderPass*)&renderPass); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyRenderPass");; } @@ -6527,7 +6640,7 @@ void VkEncoder::vkGetRenderAreaGranularity( VkRenderPass renderPass, VkExtent2D* pGranularity) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity encode"); mImpl->log("start vkGetRenderAreaGranularity"); auto stream = mImpl->stream(); @@ -6568,6 +6681,9 @@ void VkEncoder::vkGetRenderAreaGranularity( transform_fromhost_VkExtent2D(mImpl->resources(), (VkExtent2D*)(pGranularity)); } AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetRenderAreaGranularity");; } @@ -6577,7 +6693,7 @@ VkResult VkEncoder::vkCreateCommandPool( const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateCommandPool encode"); mImpl->log("start vkCreateCommandPool"); auto stream = mImpl->stream(); @@ -6657,9 +6773,9 @@ VkResult VkEncoder::vkCreateCommandPool( AEMU_SCOPED_TRACE("vkCreateCommandPool returnUnmarshal"); VkResult vkCreateCommandPool_VkResult_return = (VkResult)0; stream->read(&vkCreateCommandPool_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateCommandPool");; return vkCreateCommandPool_VkResult_return; } @@ -6669,7 +6785,7 @@ void VkEncoder::vkDestroyCommandPool( VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyCommandPool encode"); mImpl->log("start vkDestroyCommandPool"); auto stream = mImpl->stream(); @@ -6730,6 +6846,9 @@ void VkEncoder::vkDestroyCommandPool( AEMU_SCOPED_TRACE("vkDestroyCommandPool readParams"); AEMU_SCOPED_TRACE("vkDestroyCommandPool returnUnmarshal"); resources->destroyMapping()->mapHandles_VkCommandPool((VkCommandPool*)&commandPool); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyCommandPool");; } @@ -6738,7 +6857,7 @@ VkResult VkEncoder::vkResetCommandPool( VkCommandPool commandPool, VkCommandPoolResetFlags flags) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkResetCommandPool encode"); mImpl->log("start vkResetCommandPool"); auto stream = mImpl->stream(); @@ -6778,9 +6897,9 @@ VkResult VkEncoder::vkResetCommandPool( AEMU_SCOPED_TRACE("vkResetCommandPool returnUnmarshal"); VkResult vkResetCommandPool_VkResult_return = (VkResult)0; stream->read(&vkResetCommandPool_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkResetCommandPool");; return vkResetCommandPool_VkResult_return; } @@ -6790,7 +6909,7 @@ VkResult VkEncoder::vkAllocateCommandBuffers( const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkAllocateCommandBuffers encode"); mImpl->log("start vkAllocateCommandBuffers"); auto stream = mImpl->stream(); @@ -6856,9 +6975,9 @@ VkResult VkEncoder::vkAllocateCommandBuffers( AEMU_SCOPED_TRACE("vkAllocateCommandBuffers returnUnmarshal"); VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0; stream->read(&vkAllocateCommandBuffers_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkAllocateCommandBuffers");; return vkAllocateCommandBuffers_VkResult_return; } @@ -6869,7 +6988,7 @@ void VkEncoder::vkFreeCommandBuffers( uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkFreeCommandBuffers encode"); mImpl->log("start vkFreeCommandBuffers"); auto stream = mImpl->stream(); @@ -6943,6 +7062,9 @@ void VkEncoder::vkFreeCommandBuffers( { resources->destroyMapping()->mapHandles_VkCommandBuffer((VkCommandBuffer*)pCommandBuffers, ((commandBufferCount))); } + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkFreeCommandBuffers");; } @@ -6950,7 +7072,7 @@ VkResult VkEncoder::vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkBeginCommandBuffer encode"); mImpl->log("start vkBeginCommandBuffer"); auto stream = mImpl->stream(); @@ -6991,9 +7113,9 @@ VkResult VkEncoder::vkBeginCommandBuffer( AEMU_SCOPED_TRACE("vkBeginCommandBuffer returnUnmarshal"); VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0; stream->read(&vkBeginCommandBuffer_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkBeginCommandBuffer");; return vkBeginCommandBuffer_VkResult_return; } @@ -7001,7 +7123,7 @@ VkResult VkEncoder::vkBeginCommandBuffer( VkResult VkEncoder::vkEndCommandBuffer( VkCommandBuffer commandBuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkEndCommandBuffer encode"); mImpl->log("start vkEndCommandBuffer"); auto stream = mImpl->stream(); @@ -7029,9 +7151,9 @@ VkResult VkEncoder::vkEndCommandBuffer( AEMU_SCOPED_TRACE("vkEndCommandBuffer returnUnmarshal"); VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0; stream->read(&vkEndCommandBuffer_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkEndCommandBuffer");; return vkEndCommandBuffer_VkResult_return; } @@ -7040,7 +7162,7 @@ VkResult VkEncoder::vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkResetCommandBuffer encode"); mImpl->log("start vkResetCommandBuffer"); auto stream = mImpl->stream(); @@ -7072,9 +7194,9 @@ VkResult VkEncoder::vkResetCommandBuffer( AEMU_SCOPED_TRACE("vkResetCommandBuffer returnUnmarshal"); VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0; stream->read(&vkResetCommandBuffer_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkResetCommandBuffer");; return vkResetCommandBuffer_VkResult_return; } @@ -7084,7 +7206,7 @@ void VkEncoder::vkCmdBindPipeline( VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdBindPipeline encode"); mImpl->log("start vkCmdBindPipeline"); auto stream = mImpl->stream(); @@ -7122,6 +7244,9 @@ void VkEncoder::vkCmdBindPipeline( stream->write((uint64_t*)&cgen_var_508, 1 * 8); AEMU_SCOPED_TRACE("vkCmdBindPipeline readParams"); AEMU_SCOPED_TRACE("vkCmdBindPipeline returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdBindPipeline");; } @@ -7131,7 +7256,7 @@ void VkEncoder::vkCmdSetViewport( uint32_t viewportCount, const VkViewport* pViewports) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetViewport encode"); mImpl->log("start vkCmdSetViewport"); auto stream = mImpl->stream(); @@ -7190,6 +7315,9 @@ void VkEncoder::vkCmdSetViewport( } AEMU_SCOPED_TRACE("vkCmdSetViewport readParams"); AEMU_SCOPED_TRACE("vkCmdSetViewport returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetViewport");; } @@ -7199,7 +7327,7 @@ void VkEncoder::vkCmdSetScissor( uint32_t scissorCount, const VkRect2D* pScissors) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetScissor encode"); mImpl->log("start vkCmdSetScissor"); auto stream = mImpl->stream(); @@ -7258,6 +7386,9 @@ void VkEncoder::vkCmdSetScissor( } AEMU_SCOPED_TRACE("vkCmdSetScissor readParams"); AEMU_SCOPED_TRACE("vkCmdSetScissor returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetScissor");; } @@ -7265,7 +7396,7 @@ void VkEncoder::vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetLineWidth encode"); mImpl->log("start vkCmdSetLineWidth"); auto stream = mImpl->stream(); @@ -7295,6 +7426,9 @@ void VkEncoder::vkCmdSetLineWidth( stream->write((float*)&local_lineWidth, sizeof(float)); AEMU_SCOPED_TRACE("vkCmdSetLineWidth readParams"); AEMU_SCOPED_TRACE("vkCmdSetLineWidth returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetLineWidth");; } @@ -7304,7 +7438,7 @@ void VkEncoder::vkCmdSetDepthBias( float depthBiasClamp, float depthBiasSlopeFactor) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetDepthBias encode"); mImpl->log("start vkCmdSetDepthBias"); auto stream = mImpl->stream(); @@ -7342,6 +7476,9 @@ void VkEncoder::vkCmdSetDepthBias( stream->write((float*)&local_depthBiasSlopeFactor, sizeof(float)); AEMU_SCOPED_TRACE("vkCmdSetDepthBias readParams"); AEMU_SCOPED_TRACE("vkCmdSetDepthBias returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetDepthBias");; } @@ -7349,7 +7486,7 @@ void VkEncoder::vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4]) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetBlendConstants encode"); mImpl->log("start vkCmdSetBlendConstants"); auto stream = mImpl->stream(); @@ -7379,6 +7516,9 @@ void VkEncoder::vkCmdSetBlendConstants( stream->write((float*)local_blendConstants, 4 * sizeof(float)); AEMU_SCOPED_TRACE("vkCmdSetBlendConstants readParams"); AEMU_SCOPED_TRACE("vkCmdSetBlendConstants returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetBlendConstants");; } @@ -7387,7 +7527,7 @@ void VkEncoder::vkCmdSetDepthBounds( float minDepthBounds, float maxDepthBounds) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetDepthBounds encode"); mImpl->log("start vkCmdSetDepthBounds"); auto stream = mImpl->stream(); @@ -7421,6 +7561,9 @@ void VkEncoder::vkCmdSetDepthBounds( stream->write((float*)&local_maxDepthBounds, sizeof(float)); AEMU_SCOPED_TRACE("vkCmdSetDepthBounds readParams"); AEMU_SCOPED_TRACE("vkCmdSetDepthBounds returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetDepthBounds");; } @@ -7429,7 +7572,7 @@ void VkEncoder::vkCmdSetStencilCompareMask( VkStencilFaceFlags faceMask, uint32_t compareMask) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask encode"); mImpl->log("start vkCmdSetStencilCompareMask"); auto stream = mImpl->stream(); @@ -7463,6 +7606,9 @@ void VkEncoder::vkCmdSetStencilCompareMask( stream->write((uint32_t*)&local_compareMask, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask readParams"); AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetStencilCompareMask");; } @@ -7471,7 +7617,7 @@ void VkEncoder::vkCmdSetStencilWriteMask( VkStencilFaceFlags faceMask, uint32_t writeMask) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask encode"); mImpl->log("start vkCmdSetStencilWriteMask"); auto stream = mImpl->stream(); @@ -7505,6 +7651,9 @@ void VkEncoder::vkCmdSetStencilWriteMask( stream->write((uint32_t*)&local_writeMask, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask readParams"); AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetStencilWriteMask");; } @@ -7513,7 +7662,7 @@ void VkEncoder::vkCmdSetStencilReference( VkStencilFaceFlags faceMask, uint32_t reference) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetStencilReference encode"); mImpl->log("start vkCmdSetStencilReference"); auto stream = mImpl->stream(); @@ -7547,6 +7696,9 @@ void VkEncoder::vkCmdSetStencilReference( stream->write((uint32_t*)&local_reference, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdSetStencilReference readParams"); AEMU_SCOPED_TRACE("vkCmdSetStencilReference returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetStencilReference");; } @@ -7560,7 +7712,7 @@ void VkEncoder::vkCmdBindDescriptorSets( uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets encode"); mImpl->log("start vkCmdBindDescriptorSets"); auto stream = mImpl->stream(); @@ -7638,6 +7790,9 @@ void VkEncoder::vkCmdBindDescriptorSets( stream->write((uint32_t*)local_pDynamicOffsets, ((dynamicOffsetCount)) * sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets readParams"); AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdBindDescriptorSets");; } @@ -7647,7 +7802,7 @@ void VkEncoder::vkCmdBindIndexBuffer( VkDeviceSize offset, VkIndexType indexType) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer encode"); mImpl->log("start vkCmdBindIndexBuffer"); auto stream = mImpl->stream(); @@ -7689,6 +7844,9 @@ void VkEncoder::vkCmdBindIndexBuffer( stream->write((VkIndexType*)&local_indexType, sizeof(VkIndexType)); AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer readParams"); AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdBindIndexBuffer");; } @@ -7699,7 +7857,7 @@ void VkEncoder::vkCmdBindVertexBuffers( const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers encode"); mImpl->log("start vkCmdBindVertexBuffers"); auto stream = mImpl->stream(); @@ -7761,6 +7919,9 @@ void VkEncoder::vkCmdBindVertexBuffers( stream->write((VkDeviceSize*)local_pOffsets, ((bindingCount)) * sizeof(VkDeviceSize)); AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers readParams"); AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdBindVertexBuffers");; } @@ -7771,7 +7932,7 @@ void VkEncoder::vkCmdDraw( uint32_t firstVertex, uint32_t firstInstance) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDraw encode"); mImpl->log("start vkCmdDraw"); auto stream = mImpl->stream(); @@ -7813,6 +7974,9 @@ void VkEncoder::vkCmdDraw( stream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDraw readParams"); AEMU_SCOPED_TRACE("vkCmdDraw returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDraw");; } @@ -7824,7 +7988,7 @@ void VkEncoder::vkCmdDrawIndexed( int32_t vertexOffset, uint32_t firstInstance) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDrawIndexed encode"); mImpl->log("start vkCmdDrawIndexed"); auto stream = mImpl->stream(); @@ -7870,6 +8034,9 @@ void VkEncoder::vkCmdDrawIndexed( stream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDrawIndexed readParams"); AEMU_SCOPED_TRACE("vkCmdDrawIndexed returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDrawIndexed");; } @@ -7880,7 +8047,7 @@ void VkEncoder::vkCmdDrawIndirect( uint32_t drawCount, uint32_t stride) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDrawIndirect encode"); mImpl->log("start vkCmdDrawIndirect"); auto stream = mImpl->stream(); @@ -7926,6 +8093,9 @@ void VkEncoder::vkCmdDrawIndirect( stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDrawIndirect readParams"); AEMU_SCOPED_TRACE("vkCmdDrawIndirect returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDrawIndirect");; } @@ -7936,7 +8106,7 @@ void VkEncoder::vkCmdDrawIndexedIndirect( uint32_t drawCount, uint32_t stride) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect encode"); mImpl->log("start vkCmdDrawIndexedIndirect"); auto stream = mImpl->stream(); @@ -7982,6 +8152,9 @@ void VkEncoder::vkCmdDrawIndexedIndirect( stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect readParams"); AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDrawIndexedIndirect");; } @@ -7991,7 +8164,7 @@ void VkEncoder::vkCmdDispatch( uint32_t groupCountY, uint32_t groupCountZ) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDispatch encode"); mImpl->log("start vkCmdDispatch"); auto stream = mImpl->stream(); @@ -8029,6 +8202,9 @@ void VkEncoder::vkCmdDispatch( stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDispatch readParams"); AEMU_SCOPED_TRACE("vkCmdDispatch returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDispatch");; } @@ -8037,7 +8213,7 @@ void VkEncoder::vkCmdDispatchIndirect( VkBuffer buffer, VkDeviceSize offset) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDispatchIndirect encode"); mImpl->log("start vkCmdDispatchIndirect"); auto stream = mImpl->stream(); @@ -8075,6 +8251,9 @@ void VkEncoder::vkCmdDispatchIndirect( stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize)); AEMU_SCOPED_TRACE("vkCmdDispatchIndirect readParams"); AEMU_SCOPED_TRACE("vkCmdDispatchIndirect returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDispatchIndirect");; } @@ -8085,7 +8264,7 @@ void VkEncoder::vkCmdCopyBuffer( uint32_t regionCount, const VkBufferCopy* pRegions) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdCopyBuffer encode"); mImpl->log("start vkCmdCopyBuffer"); auto stream = mImpl->stream(); @@ -8156,6 +8335,9 @@ void VkEncoder::vkCmdCopyBuffer( } AEMU_SCOPED_TRACE("vkCmdCopyBuffer readParams"); AEMU_SCOPED_TRACE("vkCmdCopyBuffer returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdCopyBuffer");; } @@ -8168,7 +8350,7 @@ void VkEncoder::vkCmdCopyImage( uint32_t regionCount, const VkImageCopy* pRegions) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdCopyImage encode"); mImpl->log("start vkCmdCopyImage"); auto stream = mImpl->stream(); @@ -8247,6 +8429,9 @@ void VkEncoder::vkCmdCopyImage( } AEMU_SCOPED_TRACE("vkCmdCopyImage readParams"); AEMU_SCOPED_TRACE("vkCmdCopyImage returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdCopyImage");; } @@ -8260,7 +8445,7 @@ void VkEncoder::vkCmdBlitImage( const VkImageBlit* pRegions, VkFilter filter) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdBlitImage encode"); mImpl->log("start vkCmdBlitImage"); auto stream = mImpl->stream(); @@ -8343,6 +8528,9 @@ void VkEncoder::vkCmdBlitImage( stream->write((VkFilter*)&local_filter, sizeof(VkFilter)); AEMU_SCOPED_TRACE("vkCmdBlitImage readParams"); AEMU_SCOPED_TRACE("vkCmdBlitImage returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdBlitImage");; } @@ -8354,7 +8542,7 @@ void VkEncoder::vkCmdCopyBufferToImage( uint32_t regionCount, const VkBufferImageCopy* pRegions) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage encode"); mImpl->log("start vkCmdCopyBufferToImage"); auto stream = mImpl->stream(); @@ -8429,6 +8617,9 @@ void VkEncoder::vkCmdCopyBufferToImage( } AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage readParams"); AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdCopyBufferToImage");; } @@ -8440,7 +8631,7 @@ void VkEncoder::vkCmdCopyImageToBuffer( uint32_t regionCount, const VkBufferImageCopy* pRegions) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer encode"); mImpl->log("start vkCmdCopyImageToBuffer"); auto stream = mImpl->stream(); @@ -8515,6 +8706,9 @@ void VkEncoder::vkCmdCopyImageToBuffer( } AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer readParams"); AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdCopyImageToBuffer");; } @@ -8525,7 +8719,7 @@ void VkEncoder::vkCmdUpdateBuffer( VkDeviceSize dataSize, const void* pData) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdUpdateBuffer encode"); mImpl->log("start vkCmdUpdateBuffer"); auto stream = mImpl->stream(); @@ -8575,6 +8769,9 @@ void VkEncoder::vkCmdUpdateBuffer( stream->write((void*)local_pData, ((dataSize)) * sizeof(uint8_t)); AEMU_SCOPED_TRACE("vkCmdUpdateBuffer readParams"); AEMU_SCOPED_TRACE("vkCmdUpdateBuffer returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdUpdateBuffer");; } @@ -8585,7 +8782,7 @@ void VkEncoder::vkCmdFillBuffer( VkDeviceSize size, uint32_t data) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdFillBuffer encode"); mImpl->log("start vkCmdFillBuffer"); auto stream = mImpl->stream(); @@ -8631,6 +8828,9 @@ void VkEncoder::vkCmdFillBuffer( stream->write((uint32_t*)&local_data, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdFillBuffer readParams"); AEMU_SCOPED_TRACE("vkCmdFillBuffer returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdFillBuffer");; } @@ -8642,7 +8842,7 @@ void VkEncoder::vkCmdClearColorImage( uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdClearColorImage encode"); mImpl->log("start vkCmdClearColorImage"); auto stream = mImpl->stream(); @@ -8722,6 +8922,9 @@ void VkEncoder::vkCmdClearColorImage( } AEMU_SCOPED_TRACE("vkCmdClearColorImage readParams"); AEMU_SCOPED_TRACE("vkCmdClearColorImage returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdClearColorImage");; } @@ -8733,7 +8936,7 @@ void VkEncoder::vkCmdClearDepthStencilImage( uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage encode"); mImpl->log("start vkCmdClearDepthStencilImage"); auto stream = mImpl->stream(); @@ -8813,6 +9016,9 @@ void VkEncoder::vkCmdClearDepthStencilImage( } AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage readParams"); AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdClearDepthStencilImage");; } @@ -8823,7 +9029,7 @@ void VkEncoder::vkCmdClearAttachments( uint32_t rectCount, const VkClearRect* pRects) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdClearAttachments encode"); mImpl->log("start vkCmdClearAttachments"); auto stream = mImpl->stream(); @@ -8907,6 +9113,9 @@ void VkEncoder::vkCmdClearAttachments( } AEMU_SCOPED_TRACE("vkCmdClearAttachments readParams"); AEMU_SCOPED_TRACE("vkCmdClearAttachments returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdClearAttachments");; } @@ -8919,7 +9128,7 @@ void VkEncoder::vkCmdResolveImage( uint32_t regionCount, const VkImageResolve* pRegions) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdResolveImage encode"); mImpl->log("start vkCmdResolveImage"); auto stream = mImpl->stream(); @@ -8998,6 +9207,9 @@ void VkEncoder::vkCmdResolveImage( } AEMU_SCOPED_TRACE("vkCmdResolveImage readParams"); AEMU_SCOPED_TRACE("vkCmdResolveImage returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdResolveImage");; } @@ -9006,7 +9218,7 @@ void VkEncoder::vkCmdSetEvent( VkEvent event, VkPipelineStageFlags stageMask) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetEvent encode"); mImpl->log("start vkCmdSetEvent"); auto stream = mImpl->stream(); @@ -9044,6 +9256,9 @@ void VkEncoder::vkCmdSetEvent( stream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags)); AEMU_SCOPED_TRACE("vkCmdSetEvent readParams"); AEMU_SCOPED_TRACE("vkCmdSetEvent returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetEvent");; } @@ -9052,7 +9267,7 @@ void VkEncoder::vkCmdResetEvent( VkEvent event, VkPipelineStageFlags stageMask) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdResetEvent encode"); mImpl->log("start vkCmdResetEvent"); auto stream = mImpl->stream(); @@ -9090,6 +9305,9 @@ void VkEncoder::vkCmdResetEvent( stream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags)); AEMU_SCOPED_TRACE("vkCmdResetEvent readParams"); AEMU_SCOPED_TRACE("vkCmdResetEvent returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdResetEvent");; } @@ -9106,7 +9324,7 @@ void VkEncoder::vkCmdWaitEvents( uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdWaitEvents encode"); mImpl->log("start vkCmdWaitEvents"); auto stream = mImpl->stream(); @@ -9251,6 +9469,9 @@ void VkEncoder::vkCmdWaitEvents( } AEMU_SCOPED_TRACE("vkCmdWaitEvents readParams"); AEMU_SCOPED_TRACE("vkCmdWaitEvents returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdWaitEvents");; } @@ -9266,7 +9487,7 @@ void VkEncoder::vkCmdPipelineBarrier( uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdPipelineBarrier encode"); mImpl->log("start vkCmdPipelineBarrier"); auto stream = mImpl->stream(); @@ -9391,6 +9612,9 @@ void VkEncoder::vkCmdPipelineBarrier( } AEMU_SCOPED_TRACE("vkCmdPipelineBarrier readParams"); AEMU_SCOPED_TRACE("vkCmdPipelineBarrier returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdPipelineBarrier");; } @@ -9400,7 +9624,7 @@ void VkEncoder::vkCmdBeginQuery( uint32_t query, VkQueryControlFlags flags) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdBeginQuery encode"); mImpl->log("start vkCmdBeginQuery"); auto stream = mImpl->stream(); @@ -9442,6 +9666,9 @@ void VkEncoder::vkCmdBeginQuery( stream->write((VkQueryControlFlags*)&local_flags, sizeof(VkQueryControlFlags)); AEMU_SCOPED_TRACE("vkCmdBeginQuery readParams"); AEMU_SCOPED_TRACE("vkCmdBeginQuery returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdBeginQuery");; } @@ -9450,7 +9677,7 @@ void VkEncoder::vkCmdEndQuery( VkQueryPool queryPool, uint32_t query) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdEndQuery encode"); mImpl->log("start vkCmdEndQuery"); auto stream = mImpl->stream(); @@ -9488,6 +9715,9 @@ void VkEncoder::vkCmdEndQuery( stream->write((uint32_t*)&local_query, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdEndQuery readParams"); AEMU_SCOPED_TRACE("vkCmdEndQuery returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdEndQuery");; } @@ -9497,7 +9727,7 @@ void VkEncoder::vkCmdResetQueryPool( uint32_t firstQuery, uint32_t queryCount) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdResetQueryPool encode"); mImpl->log("start vkCmdResetQueryPool"); auto stream = mImpl->stream(); @@ -9539,6 +9769,9 @@ void VkEncoder::vkCmdResetQueryPool( stream->write((uint32_t*)&local_queryCount, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdResetQueryPool readParams"); AEMU_SCOPED_TRACE("vkCmdResetQueryPool returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdResetQueryPool");; } @@ -9548,7 +9781,7 @@ void VkEncoder::vkCmdWriteTimestamp( VkQueryPool queryPool, uint32_t query) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdWriteTimestamp encode"); mImpl->log("start vkCmdWriteTimestamp"); auto stream = mImpl->stream(); @@ -9590,6 +9823,9 @@ void VkEncoder::vkCmdWriteTimestamp( stream->write((uint32_t*)&local_query, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdWriteTimestamp readParams"); AEMU_SCOPED_TRACE("vkCmdWriteTimestamp returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdWriteTimestamp");; } @@ -9603,7 +9839,7 @@ void VkEncoder::vkCmdCopyQueryPoolResults( VkDeviceSize stride, VkQueryResultFlags flags) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults encode"); mImpl->log("start vkCmdCopyQueryPoolResults"); auto stream = mImpl->stream(); @@ -9665,6 +9901,9 @@ void VkEncoder::vkCmdCopyQueryPoolResults( stream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags)); AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults readParams"); AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdCopyQueryPoolResults");; } @@ -9676,7 +9915,7 @@ void VkEncoder::vkCmdPushConstants( uint32_t size, const void* pValues) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdPushConstants encode"); mImpl->log("start vkCmdPushConstants"); auto stream = mImpl->stream(); @@ -9730,6 +9969,9 @@ void VkEncoder::vkCmdPushConstants( stream->write((void*)local_pValues, ((size)) * sizeof(uint8_t)); AEMU_SCOPED_TRACE("vkCmdPushConstants readParams"); AEMU_SCOPED_TRACE("vkCmdPushConstants returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdPushConstants");; } @@ -9738,7 +9980,7 @@ void VkEncoder::vkCmdBeginRenderPass( const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdBeginRenderPass encode"); mImpl->log("start vkCmdBeginRenderPass"); auto stream = mImpl->stream(); @@ -9781,6 +10023,9 @@ void VkEncoder::vkCmdBeginRenderPass( stream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents)); AEMU_SCOPED_TRACE("vkCmdBeginRenderPass readParams"); AEMU_SCOPED_TRACE("vkCmdBeginRenderPass returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdBeginRenderPass");; } @@ -9788,7 +10033,7 @@ void VkEncoder::vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdNextSubpass encode"); mImpl->log("start vkCmdNextSubpass"); auto stream = mImpl->stream(); @@ -9818,13 +10063,16 @@ void VkEncoder::vkCmdNextSubpass( stream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents)); AEMU_SCOPED_TRACE("vkCmdNextSubpass readParams"); AEMU_SCOPED_TRACE("vkCmdNextSubpass returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdNextSubpass");; } void VkEncoder::vkCmdEndRenderPass( VkCommandBuffer commandBuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdEndRenderPass encode"); mImpl->log("start vkCmdEndRenderPass"); auto stream = mImpl->stream(); @@ -9850,6 +10098,9 @@ void VkEncoder::vkCmdEndRenderPass( stream->write((uint64_t*)&cgen_var_658, 1 * 8); AEMU_SCOPED_TRACE("vkCmdEndRenderPass readParams"); AEMU_SCOPED_TRACE("vkCmdEndRenderPass returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdEndRenderPass");; } @@ -9858,7 +10109,7 @@ void VkEncoder::vkCmdExecuteCommands( uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdExecuteCommands encode"); mImpl->log("start vkCmdExecuteCommands"); auto stream = mImpl->stream(); @@ -9908,6 +10159,9 @@ void VkEncoder::vkCmdExecuteCommands( } AEMU_SCOPED_TRACE("vkCmdExecuteCommands readParams"); AEMU_SCOPED_TRACE("vkCmdExecuteCommands returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdExecuteCommands");; } @@ -9916,7 +10170,7 @@ void VkEncoder::vkCmdExecuteCommands( VkResult VkEncoder::vkEnumerateInstanceVersion( uint32_t* pApiVersion) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion encode"); mImpl->log("start vkEnumerateInstanceVersion"); auto stream = mImpl->stream(); @@ -9939,9 +10193,9 @@ VkResult VkEncoder::vkEnumerateInstanceVersion( AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion returnUnmarshal"); VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0; stream->read(&vkEnumerateInstanceVersion_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkEnumerateInstanceVersion");; return vkEnumerateInstanceVersion_VkResult_return; } @@ -9951,7 +10205,7 @@ VkResult VkEncoder::vkBindBufferMemory2( uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkBindBufferMemory2 encode"); mImpl->log("start vkBindBufferMemory2"); auto stream = mImpl->stream(); @@ -10008,9 +10262,9 @@ VkResult VkEncoder::vkBindBufferMemory2( AEMU_SCOPED_TRACE("vkBindBufferMemory2 returnUnmarshal"); VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0; stream->read(&vkBindBufferMemory2_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkBindBufferMemory2");; return vkBindBufferMemory2_VkResult_return; } @@ -10020,7 +10274,7 @@ VkResult VkEncoder::vkBindImageMemory2( uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkBindImageMemory2 encode"); mImpl->log("start vkBindImageMemory2"); auto stream = mImpl->stream(); @@ -10077,9 +10331,9 @@ VkResult VkEncoder::vkBindImageMemory2( AEMU_SCOPED_TRACE("vkBindImageMemory2 returnUnmarshal"); VkResult vkBindImageMemory2_VkResult_return = (VkResult)0; stream->read(&vkBindImageMemory2_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkBindImageMemory2");; return vkBindImageMemory2_VkResult_return; } @@ -10091,7 +10345,7 @@ void VkEncoder::vkGetDeviceGroupPeerMemoryFeatures( uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures encode"); mImpl->log("start vkGetDeviceGroupPeerMemoryFeatures"); auto stream = mImpl->stream(); @@ -10132,6 +10386,9 @@ void VkEncoder::vkGetDeviceGroupPeerMemoryFeatures( AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures readParams"); stream->read((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags)); AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetDeviceGroupPeerMemoryFeatures");; } @@ -10139,7 +10396,7 @@ void VkEncoder::vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetDeviceMask encode"); mImpl->log("start vkCmdSetDeviceMask"); auto stream = mImpl->stream(); @@ -10169,6 +10426,9 @@ void VkEncoder::vkCmdSetDeviceMask( stream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdSetDeviceMask readParams"); AEMU_SCOPED_TRACE("vkCmdSetDeviceMask returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetDeviceMask");; } @@ -10181,7 +10441,7 @@ void VkEncoder::vkCmdDispatchBase( uint32_t groupCountY, uint32_t groupCountZ) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDispatchBase encode"); mImpl->log("start vkCmdDispatchBase"); auto stream = mImpl->stream(); @@ -10231,6 +10491,9 @@ void VkEncoder::vkCmdDispatchBase( stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDispatchBase readParams"); AEMU_SCOPED_TRACE("vkCmdDispatchBase returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDispatchBase");; } @@ -10239,7 +10502,7 @@ VkResult VkEncoder::vkEnumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups encode"); mImpl->log("start vkEnumeratePhysicalDeviceGroups"); auto stream = mImpl->stream(); @@ -10333,9 +10596,9 @@ VkResult VkEncoder::vkEnumeratePhysicalDeviceGroups( AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups returnUnmarshal"); VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0; stream->read(&vkEnumeratePhysicalDeviceGroups_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkEnumeratePhysicalDeviceGroups");; return vkEnumeratePhysicalDeviceGroups_VkResult_return; } @@ -10345,7 +10608,7 @@ void VkEncoder::vkGetImageMemoryRequirements2( const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 encode"); mImpl->log("start vkGetImageMemoryRequirements2"); auto stream = mImpl->stream(); @@ -10391,6 +10654,9 @@ void VkEncoder::vkGetImageMemoryRequirements2( transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements)); } AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetImageMemoryRequirements2");; } @@ -10399,7 +10665,7 @@ void VkEncoder::vkGetBufferMemoryRequirements2( const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 encode"); mImpl->log("start vkGetBufferMemoryRequirements2"); auto stream = mImpl->stream(); @@ -10445,6 +10711,9 @@ void VkEncoder::vkGetBufferMemoryRequirements2( transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements)); } AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetBufferMemoryRequirements2");; } @@ -10454,7 +10723,7 @@ void VkEncoder::vkGetImageSparseMemoryRequirements2( uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 encode"); mImpl->log("start vkGetImageSparseMemoryRequirements2"); auto stream = mImpl->stream(); @@ -10559,6 +10828,9 @@ void VkEncoder::vkGetImageSparseMemoryRequirements2( } } AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetImageSparseMemoryRequirements2");; } @@ -10566,7 +10838,7 @@ void VkEncoder::vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 encode"); mImpl->log("start vkGetPhysicalDeviceFeatures2"); auto stream = mImpl->stream(); @@ -10599,6 +10871,9 @@ void VkEncoder::vkGetPhysicalDeviceFeatures2( transform_fromhost_VkPhysicalDeviceFeatures2(mImpl->resources(), (VkPhysicalDeviceFeatures2*)(pFeatures)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceFeatures2");; } @@ -10606,7 +10881,7 @@ void VkEncoder::vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 encode"); mImpl->log("start vkGetPhysicalDeviceProperties2"); auto stream = mImpl->stream(); @@ -10639,9 +10914,10 @@ void VkEncoder::vkGetPhysicalDeviceProperties2( transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 returnUnmarshal"); - encoderLock.unlock(); mImpl->resources()->on_vkGetPhysicalDeviceProperties2(this, physicalDevice, pProperties); - encoderLock.lock(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceProperties2");; } @@ -10650,7 +10926,7 @@ void VkEncoder::vkGetPhysicalDeviceFormatProperties2( VkFormat format, VkFormatProperties2* pFormatProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 encode"); mImpl->log("start vkGetPhysicalDeviceFormatProperties2"); auto stream = mImpl->stream(); @@ -10687,6 +10963,9 @@ void VkEncoder::vkGetPhysicalDeviceFormatProperties2( transform_fromhost_VkFormatProperties2(mImpl->resources(), (VkFormatProperties2*)(pFormatProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceFormatProperties2");; } @@ -10695,7 +10974,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties2( const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 encode"); mImpl->log("start vkGetPhysicalDeviceImageFormatProperties2"); auto stream = mImpl->stream(); @@ -10743,9 +11022,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties2( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 returnUnmarshal"); VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceImageFormatProperties2_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceImageFormatProperties2");; return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return; } @@ -10755,7 +11034,7 @@ void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 encode"); mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties2"); auto stream = mImpl->stream(); @@ -10847,6 +11126,9 @@ void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties2( } } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties2");; } @@ -10854,7 +11136,7 @@ void VkEncoder::vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 encode"); mImpl->log("start vkGetPhysicalDeviceMemoryProperties2"); auto stream = mImpl->stream(); @@ -10887,9 +11169,10 @@ void VkEncoder::vkGetPhysicalDeviceMemoryProperties2( transform_fromhost_VkPhysicalDeviceMemoryProperties2(mImpl->resources(), (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 returnUnmarshal"); - encoderLock.unlock(); mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties2(this, physicalDevice, pMemoryProperties); - encoderLock.lock(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceMemoryProperties2");; } @@ -10899,7 +11182,7 @@ void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties2( uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 encode"); mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties2"); auto stream = mImpl->stream(); @@ -11004,6 +11287,9 @@ void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties2( } } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties2");; } @@ -11012,7 +11298,7 @@ void VkEncoder::vkTrimCommandPool( VkCommandPool commandPool, VkCommandPoolTrimFlags flags) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkTrimCommandPool encode"); mImpl->log("start vkTrimCommandPool"); auto stream = mImpl->stream(); @@ -11050,6 +11336,9 @@ void VkEncoder::vkTrimCommandPool( stream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags)); AEMU_SCOPED_TRACE("vkTrimCommandPool readParams"); AEMU_SCOPED_TRACE("vkTrimCommandPool returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkTrimCommandPool");; } @@ -11058,7 +11347,7 @@ void VkEncoder::vkGetDeviceQueue2( const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDeviceQueue2 encode"); mImpl->log("start vkGetDeviceQueue2"); auto stream = mImpl->stream(); @@ -11108,6 +11397,9 @@ void VkEncoder::vkGetDeviceQueue2( stream->read((uint64_t*)&cgen_var_727, 8); stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_727, (VkQueue*)pQueue, 1); AEMU_SCOPED_TRACE("vkGetDeviceQueue2 returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetDeviceQueue2");; } @@ -11117,7 +11409,7 @@ VkResult VkEncoder::vkCreateSamplerYcbcrConversion( const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion encode"); mImpl->log("start vkCreateSamplerYcbcrConversion"); auto stream = mImpl->stream(); @@ -11197,9 +11489,9 @@ VkResult VkEncoder::vkCreateSamplerYcbcrConversion( AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion returnUnmarshal"); VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0; stream->read(&vkCreateSamplerYcbcrConversion_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateSamplerYcbcrConversion");; return vkCreateSamplerYcbcrConversion_VkResult_return; } @@ -11209,7 +11501,7 @@ void VkEncoder::vkDestroySamplerYcbcrConversion( VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion encode"); mImpl->log("start vkDestroySamplerYcbcrConversion"); auto stream = mImpl->stream(); @@ -11270,6 +11562,9 @@ void VkEncoder::vkDestroySamplerYcbcrConversion( AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion readParams"); AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion returnUnmarshal"); resources->destroyMapping()->mapHandles_VkSamplerYcbcrConversion((VkSamplerYcbcrConversion*)&ycbcrConversion); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroySamplerYcbcrConversion");; } @@ -11279,7 +11574,7 @@ VkResult VkEncoder::vkCreateDescriptorUpdateTemplate( const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate encode"); mImpl->log("start vkCreateDescriptorUpdateTemplate"); auto stream = mImpl->stream(); @@ -11359,12 +11654,10 @@ VkResult VkEncoder::vkCreateDescriptorUpdateTemplate( AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate returnUnmarshal"); VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0; stream->read(&vkCreateDescriptorUpdateTemplate_VkResult_return, sizeof(VkResult)); + mImpl->resources()->on_vkCreateDescriptorUpdateTemplate(this, vkCreateDescriptorUpdateTemplate_VkResult_return, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); + pool->freeAll(); 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; } @@ -11374,7 +11667,7 @@ void VkEncoder::vkDestroyDescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate encode"); mImpl->log("start vkDestroyDescriptorUpdateTemplate"); auto stream = mImpl->stream(); @@ -11435,6 +11728,9 @@ void VkEncoder::vkDestroyDescriptorUpdateTemplate( AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate readParams"); AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate returnUnmarshal"); resources->destroyMapping()->mapHandles_VkDescriptorUpdateTemplate((VkDescriptorUpdateTemplate*)&descriptorUpdateTemplate); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyDescriptorUpdateTemplate");; } @@ -11444,7 +11740,7 @@ void VkEncoder::vkUpdateDescriptorSetWithTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate encode"); mImpl->log("start vkUpdateDescriptorSetWithTemplate"); auto stream = mImpl->stream(); @@ -11506,6 +11802,9 @@ void VkEncoder::vkUpdateDescriptorSetWithTemplate( } AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate readParams"); AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkUpdateDescriptorSetWithTemplate");; } @@ -11514,7 +11813,7 @@ void VkEncoder::vkGetPhysicalDeviceExternalBufferProperties( const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties encode"); mImpl->log("start vkGetPhysicalDeviceExternalBufferProperties"); auto stream = mImpl->stream(); @@ -11562,6 +11861,9 @@ void VkEncoder::vkGetPhysicalDeviceExternalBufferProperties( transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceExternalBufferProperties");; } @@ -11570,7 +11872,7 @@ void VkEncoder::vkGetPhysicalDeviceExternalFenceProperties( const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties encode"); mImpl->log("start vkGetPhysicalDeviceExternalFenceProperties"); auto stream = mImpl->stream(); @@ -11616,6 +11918,9 @@ void VkEncoder::vkGetPhysicalDeviceExternalFenceProperties( transform_fromhost_VkExternalFenceProperties(mImpl->resources(), (VkExternalFenceProperties*)(pExternalFenceProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceExternalFenceProperties");; } @@ -11624,7 +11929,7 @@ void VkEncoder::vkGetPhysicalDeviceExternalSemaphoreProperties( const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties encode"); mImpl->log("start vkGetPhysicalDeviceExternalSemaphoreProperties"); auto stream = mImpl->stream(); @@ -11670,6 +11975,9 @@ void VkEncoder::vkGetPhysicalDeviceExternalSemaphoreProperties( transform_fromhost_VkExternalSemaphoreProperties(mImpl->resources(), (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceExternalSemaphoreProperties");; } @@ -11678,7 +11986,7 @@ void VkEncoder::vkGetDescriptorSetLayoutSupport( const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport encode"); mImpl->log("start vkGetDescriptorSetLayoutSupport"); auto stream = mImpl->stream(); @@ -11724,6 +12032,9 @@ void VkEncoder::vkGetDescriptorSetLayoutSupport( transform_fromhost_VkDescriptorSetLayoutSupport(mImpl->resources(), (VkDescriptorSetLayoutSupport*)(pSupport)); } AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetDescriptorSetLayoutSupport");; } @@ -11734,7 +12045,7 @@ void VkEncoder::vkDestroySurfaceKHR( VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroySurfaceKHR encode"); mImpl->log("start vkDestroySurfaceKHR"); auto stream = mImpl->stream(); @@ -11795,6 +12106,9 @@ void VkEncoder::vkDestroySurfaceKHR( AEMU_SCOPED_TRACE("vkDestroySurfaceKHR readParams"); AEMU_SCOPED_TRACE("vkDestroySurfaceKHR returnUnmarshal"); resources->destroyMapping()->mapHandles_VkSurfaceKHR((VkSurfaceKHR*)&surface); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroySurfaceKHR");; } @@ -11804,7 +12118,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceSupportKHR( VkSurfaceKHR surface, VkBool32* pSupported) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR encode"); mImpl->log("start vkGetPhysicalDeviceSurfaceSupportKHR"); auto stream = mImpl->stream(); @@ -11847,9 +12161,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceSupportKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR returnUnmarshal"); VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceSurfaceSupportKHR");; return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return; } @@ -11859,7 +12173,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR encode"); mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilitiesKHR"); auto stream = mImpl->stream(); @@ -11902,9 +12216,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR returnUnmarshal"); VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceSurfaceCapabilitiesKHR");; return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return; } @@ -11915,7 +12229,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceFormatsKHR( uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR encode"); mImpl->log("start vkGetPhysicalDeviceSurfaceFormatsKHR"); auto stream = mImpl->stream(); @@ -12017,9 +12331,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceFormatsKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR returnUnmarshal"); VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceSurfaceFormatsKHR");; return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return; } @@ -12030,7 +12344,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfacePresentModesKHR( uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR encode"); mImpl->log("start vkGetPhysicalDeviceSurfacePresentModesKHR"); auto stream = mImpl->stream(); @@ -12116,9 +12430,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfacePresentModesKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR returnUnmarshal"); VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceSurfacePresentModesKHR");; return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return; } @@ -12131,7 +12445,7 @@ VkResult VkEncoder::vkCreateSwapchainKHR( const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateSwapchainKHR encode"); mImpl->log("start vkCreateSwapchainKHR"); auto stream = mImpl->stream(); @@ -12211,9 +12525,9 @@ VkResult VkEncoder::vkCreateSwapchainKHR( AEMU_SCOPED_TRACE("vkCreateSwapchainKHR returnUnmarshal"); VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateSwapchainKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateSwapchainKHR");; return vkCreateSwapchainKHR_VkResult_return; } @@ -12223,7 +12537,7 @@ void VkEncoder::vkDestroySwapchainKHR( VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroySwapchainKHR encode"); mImpl->log("start vkDestroySwapchainKHR"); auto stream = mImpl->stream(); @@ -12284,6 +12598,9 @@ void VkEncoder::vkDestroySwapchainKHR( AEMU_SCOPED_TRACE("vkDestroySwapchainKHR readParams"); AEMU_SCOPED_TRACE("vkDestroySwapchainKHR returnUnmarshal"); resources->destroyMapping()->mapHandles_VkSwapchainKHR((VkSwapchainKHR*)&swapchain); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroySwapchainKHR");; } @@ -12293,7 +12610,7 @@ VkResult VkEncoder::vkGetSwapchainImagesKHR( uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR encode"); mImpl->log("start vkGetSwapchainImagesKHR"); auto stream = mImpl->stream(); @@ -12399,9 +12716,9 @@ VkResult VkEncoder::vkGetSwapchainImagesKHR( AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR returnUnmarshal"); VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetSwapchainImagesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetSwapchainImagesKHR");; return vkGetSwapchainImagesKHR_VkResult_return; } @@ -12414,7 +12731,7 @@ VkResult VkEncoder::vkAcquireNextImageKHR( VkFence fence, uint32_t* pImageIndex) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkAcquireNextImageKHR encode"); mImpl->log("start vkAcquireNextImageKHR"); auto stream = mImpl->stream(); @@ -12473,9 +12790,9 @@ VkResult VkEncoder::vkAcquireNextImageKHR( AEMU_SCOPED_TRACE("vkAcquireNextImageKHR returnUnmarshal"); VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0; stream->read(&vkAcquireNextImageKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkAcquireNextImageKHR");; return vkAcquireNextImageKHR_VkResult_return; } @@ -12484,7 +12801,7 @@ VkResult VkEncoder::vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueuePresentKHR encode"); mImpl->log("start vkQueuePresentKHR"); auto stream = mImpl->stream(); @@ -12525,9 +12842,9 @@ VkResult VkEncoder::vkQueuePresentKHR( AEMU_SCOPED_TRACE("vkQueuePresentKHR returnUnmarshal"); VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0; stream->read(&vkQueuePresentKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkQueuePresentKHR");; return vkQueuePresentKHR_VkResult_return; } @@ -12536,7 +12853,7 @@ VkResult VkEncoder::vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR encode"); mImpl->log("start vkGetDeviceGroupPresentCapabilitiesKHR"); auto stream = mImpl->stream(); @@ -12571,9 +12888,9 @@ VkResult VkEncoder::vkGetDeviceGroupPresentCapabilitiesKHR( AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR returnUnmarshal"); VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetDeviceGroupPresentCapabilitiesKHR");; return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return; } @@ -12583,7 +12900,7 @@ VkResult VkEncoder::vkGetDeviceGroupSurfacePresentModesKHR( VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR encode"); mImpl->log("start vkGetDeviceGroupSurfacePresentModesKHR"); auto stream = mImpl->stream(); @@ -12644,9 +12961,9 @@ VkResult VkEncoder::vkGetDeviceGroupSurfacePresentModesKHR( AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR returnUnmarshal"); VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetDeviceGroupSurfacePresentModesKHR");; return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return; } @@ -12657,7 +12974,7 @@ VkResult VkEncoder::vkGetPhysicalDevicePresentRectanglesKHR( uint32_t* pRectCount, VkRect2D* pRects) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR encode"); mImpl->log("start vkGetPhysicalDevicePresentRectanglesKHR"); auto stream = mImpl->stream(); @@ -12759,9 +13076,9 @@ VkResult VkEncoder::vkGetPhysicalDevicePresentRectanglesKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR returnUnmarshal"); VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDevicePresentRectanglesKHR");; return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return; } @@ -12771,7 +13088,7 @@ VkResult VkEncoder::vkAcquireNextImage2KHR( const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR encode"); mImpl->log("start vkAcquireNextImage2KHR"); auto stream = mImpl->stream(); @@ -12815,9 +13132,9 @@ VkResult VkEncoder::vkAcquireNextImage2KHR( AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR returnUnmarshal"); VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0; stream->read(&vkAcquireNextImage2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkAcquireNextImage2KHR");; return vkAcquireNextImage2KHR_VkResult_return; } @@ -12829,7 +13146,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceDisplayPropertiesKHR( uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR encode"); mImpl->log("start vkGetPhysicalDeviceDisplayPropertiesKHR"); auto stream = mImpl->stream(); @@ -12923,9 +13240,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceDisplayPropertiesKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR returnUnmarshal"); VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceDisplayPropertiesKHR");; return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return; } @@ -12935,7 +13252,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR encode"); mImpl->log("start vkGetPhysicalDeviceDisplayPlanePropertiesKHR"); auto stream = mImpl->stream(); @@ -13029,9 +13346,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR returnUnmarshal"); VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceDisplayPlanePropertiesKHR");; return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return; } @@ -13042,7 +13359,7 @@ VkResult VkEncoder::vkGetDisplayPlaneSupportedDisplaysKHR( uint32_t* pDisplayCount, VkDisplayKHR* pDisplays) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR encode"); mImpl->log("start vkGetDisplayPlaneSupportedDisplaysKHR"); auto stream = mImpl->stream(); @@ -13144,9 +13461,9 @@ VkResult VkEncoder::vkGetDisplayPlaneSupportedDisplaysKHR( AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR returnUnmarshal"); VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0; stream->read(&vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetDisplayPlaneSupportedDisplaysKHR");; return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return; } @@ -13157,7 +13474,7 @@ VkResult VkEncoder::vkGetDisplayModePropertiesKHR( uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR encode"); mImpl->log("start vkGetDisplayModePropertiesKHR"); auto stream = mImpl->stream(); @@ -13259,9 +13576,9 @@ VkResult VkEncoder::vkGetDisplayModePropertiesKHR( AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR returnUnmarshal"); VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetDisplayModePropertiesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetDisplayModePropertiesKHR");; return vkGetDisplayModePropertiesKHR_VkResult_return; } @@ -13273,7 +13590,7 @@ VkResult VkEncoder::vkCreateDisplayModeKHR( const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR encode"); mImpl->log("start vkCreateDisplayModeKHR"); auto stream = mImpl->stream(); @@ -13361,9 +13678,9 @@ VkResult VkEncoder::vkCreateDisplayModeKHR( AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR returnUnmarshal"); VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateDisplayModeKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateDisplayModeKHR");; return vkCreateDisplayModeKHR_VkResult_return; } @@ -13374,7 +13691,7 @@ VkResult VkEncoder::vkGetDisplayPlaneCapabilitiesKHR( uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR encode"); mImpl->log("start vkGetDisplayPlaneCapabilitiesKHR"); auto stream = mImpl->stream(); @@ -13421,9 +13738,9 @@ VkResult VkEncoder::vkGetDisplayPlaneCapabilitiesKHR( AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR returnUnmarshal"); VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetDisplayPlaneCapabilitiesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetDisplayPlaneCapabilitiesKHR");; return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return; } @@ -13434,7 +13751,7 @@ VkResult VkEncoder::vkCreateDisplayPlaneSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR encode"); mImpl->log("start vkCreateDisplayPlaneSurfaceKHR"); auto stream = mImpl->stream(); @@ -13512,9 +13829,9 @@ VkResult VkEncoder::vkCreateDisplayPlaneSurfaceKHR( AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR returnUnmarshal"); VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateDisplayPlaneSurfaceKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateDisplayPlaneSurfaceKHR");; return vkCreateDisplayPlaneSurfaceKHR_VkResult_return; } @@ -13528,7 +13845,7 @@ VkResult VkEncoder::vkCreateSharedSwapchainsKHR( const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR encode"); mImpl->log("start vkCreateSharedSwapchainsKHR"); auto stream = mImpl->stream(); @@ -13634,9 +13951,9 @@ VkResult VkEncoder::vkCreateSharedSwapchainsKHR( AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR returnUnmarshal"); VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateSharedSwapchainsKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateSharedSwapchainsKHR");; return vkCreateSharedSwapchainsKHR_VkResult_return; } @@ -13649,7 +13966,7 @@ VkResult VkEncoder::vkCreateXlibSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR encode"); mImpl->log("start vkCreateXlibSurfaceKHR"); auto stream = mImpl->stream(); @@ -13727,9 +14044,9 @@ VkResult VkEncoder::vkCreateXlibSurfaceKHR( AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR returnUnmarshal"); VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateXlibSurfaceKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateXlibSurfaceKHR");; return vkCreateXlibSurfaceKHR_VkResult_return; } @@ -13740,7 +14057,7 @@ VkBool32 VkEncoder::vkGetPhysicalDeviceXlibPresentationSupportKHR( Display* dpy, VisualID visualID) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR encode"); mImpl->log("start vkGetPhysicalDeviceXlibPresentationSupportKHR"); auto stream = mImpl->stream(); @@ -13779,9 +14096,9 @@ VkBool32 VkEncoder::vkGetPhysicalDeviceXlibPresentationSupportKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR returnUnmarshal"); VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0; stream->read(&vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return, sizeof(VkBool32)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceXlibPresentationSupportKHR");; return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return; } @@ -13794,7 +14111,7 @@ VkResult VkEncoder::vkCreateXcbSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR encode"); mImpl->log("start vkCreateXcbSurfaceKHR"); auto stream = mImpl->stream(); @@ -13872,9 +14189,9 @@ VkResult VkEncoder::vkCreateXcbSurfaceKHR( AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR returnUnmarshal"); VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateXcbSurfaceKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateXcbSurfaceKHR");; return vkCreateXcbSurfaceKHR_VkResult_return; } @@ -13885,7 +14202,7 @@ VkBool32 VkEncoder::vkGetPhysicalDeviceXcbPresentationSupportKHR( xcb_connection_t* connection, xcb_visualid_t visual_id) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR encode"); mImpl->log("start vkGetPhysicalDeviceXcbPresentationSupportKHR"); auto stream = mImpl->stream(); @@ -13924,9 +14241,9 @@ VkBool32 VkEncoder::vkGetPhysicalDeviceXcbPresentationSupportKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR returnUnmarshal"); VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0; stream->read(&vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return, sizeof(VkBool32)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceXcbPresentationSupportKHR");; return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return; } @@ -13939,7 +14256,7 @@ VkResult VkEncoder::vkCreateWaylandSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR encode"); mImpl->log("start vkCreateWaylandSurfaceKHR"); auto stream = mImpl->stream(); @@ -14017,9 +14334,9 @@ VkResult VkEncoder::vkCreateWaylandSurfaceKHR( AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR returnUnmarshal"); VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateWaylandSurfaceKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateWaylandSurfaceKHR");; return vkCreateWaylandSurfaceKHR_VkResult_return; } @@ -14029,7 +14346,7 @@ VkBool32 VkEncoder::vkGetPhysicalDeviceWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, wl_display* display) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR encode"); mImpl->log("start vkGetPhysicalDeviceWaylandPresentationSupportKHR"); auto stream = mImpl->stream(); @@ -14064,9 +14381,9 @@ VkBool32 VkEncoder::vkGetPhysicalDeviceWaylandPresentationSupportKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR returnUnmarshal"); VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0; stream->read(&vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return, sizeof(VkBool32)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceWaylandPresentationSupportKHR");; return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return; } @@ -14079,7 +14396,7 @@ VkResult VkEncoder::vkCreateMirSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR encode"); mImpl->log("start vkCreateMirSurfaceKHR"); auto stream = mImpl->stream(); @@ -14157,9 +14474,9 @@ VkResult VkEncoder::vkCreateMirSurfaceKHR( AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR returnUnmarshal"); VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateMirSurfaceKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateMirSurfaceKHR");; return vkCreateMirSurfaceKHR_VkResult_return; } @@ -14169,7 +14486,7 @@ VkBool32 VkEncoder::vkGetPhysicalDeviceMirPresentationSupportKHR( uint32_t queueFamilyIndex, MirConnection* connection) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR encode"); mImpl->log("start vkGetPhysicalDeviceMirPresentationSupportKHR"); auto stream = mImpl->stream(); @@ -14204,9 +14521,9 @@ VkBool32 VkEncoder::vkGetPhysicalDeviceMirPresentationSupportKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR returnUnmarshal"); VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0; stream->read(&vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return, sizeof(VkBool32)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceMirPresentationSupportKHR");; return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return; } @@ -14219,7 +14536,7 @@ VkResult VkEncoder::vkCreateAndroidSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR encode"); mImpl->log("start vkCreateAndroidSurfaceKHR"); auto stream = mImpl->stream(); @@ -14297,9 +14614,9 @@ VkResult VkEncoder::vkCreateAndroidSurfaceKHR( AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR returnUnmarshal"); VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateAndroidSurfaceKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateAndroidSurfaceKHR");; return vkCreateAndroidSurfaceKHR_VkResult_return; } @@ -14312,7 +14629,7 @@ VkResult VkEncoder::vkCreateWin32SurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR encode"); mImpl->log("start vkCreateWin32SurfaceKHR"); auto stream = mImpl->stream(); @@ -14390,9 +14707,9 @@ VkResult VkEncoder::vkCreateWin32SurfaceKHR( AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR returnUnmarshal"); VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateWin32SurfaceKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateWin32SurfaceKHR");; return vkCreateWin32SurfaceKHR_VkResult_return; } @@ -14401,7 +14718,7 @@ VkBool32 VkEncoder::vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR encode"); mImpl->log("start vkGetPhysicalDeviceWin32PresentationSupportKHR"); auto stream = mImpl->stream(); @@ -14433,9 +14750,9 @@ VkBool32 VkEncoder::vkGetPhysicalDeviceWin32PresentationSupportKHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR returnUnmarshal"); VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0; stream->read(&vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return, sizeof(VkBool32)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceWin32PresentationSupportKHR");; return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return; } @@ -14450,7 +14767,7 @@ void VkEncoder::vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR encode"); mImpl->log("start vkGetPhysicalDeviceFeatures2KHR"); auto stream = mImpl->stream(); @@ -14483,6 +14800,9 @@ void VkEncoder::vkGetPhysicalDeviceFeatures2KHR( transform_fromhost_VkPhysicalDeviceFeatures2(mImpl->resources(), (VkPhysicalDeviceFeatures2*)(pFeatures)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceFeatures2KHR");; } @@ -14490,7 +14810,7 @@ void VkEncoder::vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR encode"); mImpl->log("start vkGetPhysicalDeviceProperties2KHR"); auto stream = mImpl->stream(); @@ -14523,9 +14843,10 @@ void VkEncoder::vkGetPhysicalDeviceProperties2KHR( transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR returnUnmarshal"); - encoderLock.unlock(); mImpl->resources()->on_vkGetPhysicalDeviceProperties2KHR(this, physicalDevice, pProperties); - encoderLock.lock(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceProperties2KHR");; } @@ -14534,7 +14855,7 @@ void VkEncoder::vkGetPhysicalDeviceFormatProperties2KHR( VkFormat format, VkFormatProperties2* pFormatProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR encode"); mImpl->log("start vkGetPhysicalDeviceFormatProperties2KHR"); auto stream = mImpl->stream(); @@ -14571,6 +14892,9 @@ void VkEncoder::vkGetPhysicalDeviceFormatProperties2KHR( transform_fromhost_VkFormatProperties2(mImpl->resources(), (VkFormatProperties2*)(pFormatProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceFormatProperties2KHR");; } @@ -14579,7 +14903,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties2KHR( const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR encode"); mImpl->log("start vkGetPhysicalDeviceImageFormatProperties2KHR"); auto stream = mImpl->stream(); @@ -14627,9 +14951,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceImageFormatProperties2KHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR returnUnmarshal"); VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceImageFormatProperties2KHR");; return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return; } @@ -14639,7 +14963,7 @@ void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR encode"); mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties2KHR"); auto stream = mImpl->stream(); @@ -14731,6 +15055,9 @@ void VkEncoder::vkGetPhysicalDeviceQueueFamilyProperties2KHR( } } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties2KHR");; } @@ -14738,7 +15065,7 @@ void VkEncoder::vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR encode"); mImpl->log("start vkGetPhysicalDeviceMemoryProperties2KHR"); auto stream = mImpl->stream(); @@ -14771,9 +15098,10 @@ void VkEncoder::vkGetPhysicalDeviceMemoryProperties2KHR( transform_fromhost_VkPhysicalDeviceMemoryProperties2(mImpl->resources(), (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR returnUnmarshal"); - encoderLock.unlock(); mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties2KHR(this, physicalDevice, pMemoryProperties); - encoderLock.lock(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceMemoryProperties2KHR");; } @@ -14783,7 +15111,7 @@ void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR encode"); mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); auto stream = mImpl->stream(); @@ -14888,6 +15216,9 @@ void VkEncoder::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( } } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties2KHR");; } @@ -14900,7 +15231,7 @@ void VkEncoder::vkGetDeviceGroupPeerMemoryFeaturesKHR( uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR encode"); mImpl->log("start vkGetDeviceGroupPeerMemoryFeaturesKHR"); auto stream = mImpl->stream(); @@ -14941,6 +15272,9 @@ void VkEncoder::vkGetDeviceGroupPeerMemoryFeaturesKHR( AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR readParams"); stream->read((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags)); AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetDeviceGroupPeerMemoryFeaturesKHR");; } @@ -14948,7 +15282,7 @@ void VkEncoder::vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR encode"); mImpl->log("start vkCmdSetDeviceMaskKHR"); auto stream = mImpl->stream(); @@ -14978,6 +15312,9 @@ void VkEncoder::vkCmdSetDeviceMaskKHR( stream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR readParams"); AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetDeviceMaskKHR");; } @@ -14990,7 +15327,7 @@ void VkEncoder::vkCmdDispatchBaseKHR( uint32_t groupCountY, uint32_t groupCountZ) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR encode"); mImpl->log("start vkCmdDispatchBaseKHR"); auto stream = mImpl->stream(); @@ -15040,6 +15377,9 @@ void VkEncoder::vkCmdDispatchBaseKHR( stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR readParams"); AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDispatchBaseKHR");; } @@ -15052,7 +15392,7 @@ void VkEncoder::vkTrimCommandPoolKHR( VkCommandPool commandPool, VkCommandPoolTrimFlags flags) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR encode"); mImpl->log("start vkTrimCommandPoolKHR"); auto stream = mImpl->stream(); @@ -15090,6 +15430,9 @@ void VkEncoder::vkTrimCommandPoolKHR( stream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags)); AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR readParams"); AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkTrimCommandPoolKHR");; } @@ -15100,7 +15443,7 @@ VkResult VkEncoder::vkEnumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR encode"); mImpl->log("start vkEnumeratePhysicalDeviceGroupsKHR"); auto stream = mImpl->stream(); @@ -15194,9 +15537,9 @@ VkResult VkEncoder::vkEnumeratePhysicalDeviceGroupsKHR( AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR returnUnmarshal"); VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0; stream->read(&vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkEnumeratePhysicalDeviceGroupsKHR");; return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return; } @@ -15208,7 +15551,7 @@ void VkEncoder::vkGetPhysicalDeviceExternalBufferPropertiesKHR( const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR encode"); mImpl->log("start vkGetPhysicalDeviceExternalBufferPropertiesKHR"); auto stream = mImpl->stream(); @@ -15256,6 +15599,9 @@ void VkEncoder::vkGetPhysicalDeviceExternalBufferPropertiesKHR( transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceExternalBufferPropertiesKHR");; } @@ -15268,7 +15614,7 @@ VkResult VkEncoder::vkGetMemoryWin32HandleKHR( const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR encode"); mImpl->log("start vkGetMemoryWin32HandleKHR"); auto stream = mImpl->stream(); @@ -15312,9 +15658,9 @@ VkResult VkEncoder::vkGetMemoryWin32HandleKHR( AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR returnUnmarshal"); VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0; stream->read(&vkGetMemoryWin32HandleKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetMemoryWin32HandleKHR");; return vkGetMemoryWin32HandleKHR_VkResult_return; } @@ -15325,7 +15671,7 @@ VkResult VkEncoder::vkGetMemoryWin32HandlePropertiesKHR( HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR encode"); mImpl->log("start vkGetMemoryWin32HandlePropertiesKHR"); auto stream = mImpl->stream(); @@ -15368,9 +15714,9 @@ VkResult VkEncoder::vkGetMemoryWin32HandlePropertiesKHR( AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR returnUnmarshal"); VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetMemoryWin32HandlePropertiesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetMemoryWin32HandlePropertiesKHR");; return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return; } @@ -15382,7 +15728,7 @@ VkResult VkEncoder::vkGetMemoryFdKHR( const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetMemoryFdKHR encode"); mImpl->log("start vkGetMemoryFdKHR"); auto stream = mImpl->stream(); @@ -15426,9 +15772,9 @@ VkResult VkEncoder::vkGetMemoryFdKHR( AEMU_SCOPED_TRACE("vkGetMemoryFdKHR returnUnmarshal"); VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0; stream->read(&vkGetMemoryFdKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetMemoryFdKHR");; return vkGetMemoryFdKHR_VkResult_return; } @@ -15439,7 +15785,7 @@ VkResult VkEncoder::vkGetMemoryFdPropertiesKHR( int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR encode"); mImpl->log("start vkGetMemoryFdPropertiesKHR"); auto stream = mImpl->stream(); @@ -15482,9 +15828,9 @@ VkResult VkEncoder::vkGetMemoryFdPropertiesKHR( AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR returnUnmarshal"); VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0; stream->read(&vkGetMemoryFdPropertiesKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetMemoryFdPropertiesKHR");; return vkGetMemoryFdPropertiesKHR_VkResult_return; } @@ -15498,7 +15844,7 @@ void VkEncoder::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR encode"); mImpl->log("start vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); auto stream = mImpl->stream(); @@ -15544,6 +15890,9 @@ void VkEncoder::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( transform_fromhost_VkExternalSemaphoreProperties(mImpl->resources(), (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");; } @@ -15555,7 +15904,7 @@ VkResult VkEncoder::vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR encode"); mImpl->log("start vkImportSemaphoreWin32HandleKHR"); auto stream = mImpl->stream(); @@ -15596,9 +15945,9 @@ VkResult VkEncoder::vkImportSemaphoreWin32HandleKHR( AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR returnUnmarshal"); VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0; stream->read(&vkImportSemaphoreWin32HandleKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkImportSemaphoreWin32HandleKHR");; return vkImportSemaphoreWin32HandleKHR_VkResult_return; } @@ -15608,7 +15957,7 @@ VkResult VkEncoder::vkGetSemaphoreWin32HandleKHR( const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR encode"); mImpl->log("start vkGetSemaphoreWin32HandleKHR"); auto stream = mImpl->stream(); @@ -15652,9 +16001,9 @@ VkResult VkEncoder::vkGetSemaphoreWin32HandleKHR( AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR returnUnmarshal"); VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0; stream->read(&vkGetSemaphoreWin32HandleKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetSemaphoreWin32HandleKHR");; return vkGetSemaphoreWin32HandleKHR_VkResult_return; } @@ -15665,7 +16014,7 @@ VkResult VkEncoder::vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR encode"); mImpl->log("start vkImportSemaphoreFdKHR"); auto stream = mImpl->stream(); @@ -15706,9 +16055,9 @@ VkResult VkEncoder::vkImportSemaphoreFdKHR( AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR returnUnmarshal"); VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0; stream->read(&vkImportSemaphoreFdKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkImportSemaphoreFdKHR");; return vkImportSemaphoreFdKHR_VkResult_return; } @@ -15718,7 +16067,7 @@ VkResult VkEncoder::vkGetSemaphoreFdKHR( const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR encode"); mImpl->log("start vkGetSemaphoreFdKHR"); auto stream = mImpl->stream(); @@ -15762,9 +16111,9 @@ VkResult VkEncoder::vkGetSemaphoreFdKHR( AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR returnUnmarshal"); VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0; stream->read(&vkGetSemaphoreFdKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetSemaphoreFdKHR");; return vkGetSemaphoreFdKHR_VkResult_return; } @@ -15779,7 +16128,7 @@ void VkEncoder::vkCmdPushDescriptorSetKHR( uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR encode"); mImpl->log("start vkCmdPushDescriptorSetKHR"); auto stream = mImpl->stream(); @@ -15850,6 +16199,9 @@ void VkEncoder::vkCmdPushDescriptorSetKHR( } AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR readParams"); AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdPushDescriptorSetKHR");; } @@ -15860,7 +16212,7 @@ void VkEncoder::vkCmdPushDescriptorSetWithTemplateKHR( uint32_t set, const void* pData) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR encode"); mImpl->log("start vkCmdPushDescriptorSetWithTemplateKHR"); auto stream = mImpl->stream(); @@ -15926,6 +16278,9 @@ void VkEncoder::vkCmdPushDescriptorSetWithTemplateKHR( } AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR readParams"); AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdPushDescriptorSetWithTemplateKHR");; } @@ -15941,7 +16296,7 @@ VkResult VkEncoder::vkCreateDescriptorUpdateTemplateKHR( const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR encode"); mImpl->log("start vkCreateDescriptorUpdateTemplateKHR"); auto stream = mImpl->stream(); @@ -16021,12 +16376,10 @@ VkResult VkEncoder::vkCreateDescriptorUpdateTemplateKHR( AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR returnUnmarshal"); VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateDescriptorUpdateTemplateKHR_VkResult_return, sizeof(VkResult)); + mImpl->resources()->on_vkCreateDescriptorUpdateTemplateKHR(this, vkCreateDescriptorUpdateTemplateKHR_VkResult_return, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); + pool->freeAll(); 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; } @@ -16036,7 +16389,7 @@ void VkEncoder::vkDestroyDescriptorUpdateTemplateKHR( VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR encode"); mImpl->log("start vkDestroyDescriptorUpdateTemplateKHR"); auto stream = mImpl->stream(); @@ -16097,6 +16450,9 @@ void VkEncoder::vkDestroyDescriptorUpdateTemplateKHR( AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR readParams"); AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR returnUnmarshal"); resources->destroyMapping()->mapHandles_VkDescriptorUpdateTemplate((VkDescriptorUpdateTemplate*)&descriptorUpdateTemplate); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyDescriptorUpdateTemplateKHR");; } @@ -16106,7 +16462,7 @@ void VkEncoder::vkUpdateDescriptorSetWithTemplateKHR( VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR encode"); mImpl->log("start vkUpdateDescriptorSetWithTemplateKHR"); auto stream = mImpl->stream(); @@ -16168,6 +16524,9 @@ void VkEncoder::vkUpdateDescriptorSetWithTemplateKHR( } AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR readParams"); AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkUpdateDescriptorSetWithTemplateKHR");; } @@ -16179,7 +16538,7 @@ VkResult VkEncoder::vkCreateRenderPass2KHR( const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR encode"); mImpl->log("start vkCreateRenderPass2KHR"); auto stream = mImpl->stream(); @@ -16257,9 +16616,9 @@ VkResult VkEncoder::vkCreateRenderPass2KHR( AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR returnUnmarshal"); VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0; stream->read(&vkCreateRenderPass2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateRenderPass2KHR");; return vkCreateRenderPass2KHR_VkResult_return; } @@ -16269,7 +16628,7 @@ void VkEncoder::vkCmdBeginRenderPass2KHR( const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR encode"); mImpl->log("start vkCmdBeginRenderPass2KHR"); auto stream = mImpl->stream(); @@ -16321,6 +16680,9 @@ void VkEncoder::vkCmdBeginRenderPass2KHR( marshal_VkSubpassBeginInfoKHR(stream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo)); AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR readParams"); AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdBeginRenderPass2KHR");; } @@ -16329,7 +16691,7 @@ void VkEncoder::vkCmdNextSubpass2KHR( const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR encode"); mImpl->log("start vkCmdNextSubpass2KHR"); auto stream = mImpl->stream(); @@ -16381,6 +16743,9 @@ void VkEncoder::vkCmdNextSubpass2KHR( marshal_VkSubpassEndInfoKHR(stream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo)); AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR readParams"); AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdNextSubpass2KHR");; } @@ -16388,7 +16753,7 @@ void VkEncoder::vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR encode"); mImpl->log("start vkCmdEndRenderPass2KHR"); auto stream = mImpl->stream(); @@ -16427,6 +16792,9 @@ void VkEncoder::vkCmdEndRenderPass2KHR( marshal_VkSubpassEndInfoKHR(stream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo)); AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR readParams"); AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdEndRenderPass2KHR");; } @@ -16436,7 +16804,7 @@ VkResult VkEncoder::vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR encode"); mImpl->log("start vkGetSwapchainStatusKHR"); auto stream = mImpl->stream(); @@ -16472,9 +16840,9 @@ VkResult VkEncoder::vkGetSwapchainStatusKHR( AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR returnUnmarshal"); VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0; stream->read(&vkGetSwapchainStatusKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetSwapchainStatusKHR");; return vkGetSwapchainStatusKHR_VkResult_return; } @@ -16486,7 +16854,7 @@ void VkEncoder::vkGetPhysicalDeviceExternalFencePropertiesKHR( const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR encode"); mImpl->log("start vkGetPhysicalDeviceExternalFencePropertiesKHR"); auto stream = mImpl->stream(); @@ -16532,6 +16900,9 @@ void VkEncoder::vkGetPhysicalDeviceExternalFencePropertiesKHR( transform_fromhost_VkExternalFenceProperties(mImpl->resources(), (VkExternalFenceProperties*)(pExternalFenceProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceExternalFencePropertiesKHR");; } @@ -16543,7 +16914,7 @@ VkResult VkEncoder::vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR encode"); mImpl->log("start vkImportFenceWin32HandleKHR"); auto stream = mImpl->stream(); @@ -16584,9 +16955,9 @@ VkResult VkEncoder::vkImportFenceWin32HandleKHR( AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR returnUnmarshal"); VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0; stream->read(&vkImportFenceWin32HandleKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkImportFenceWin32HandleKHR");; return vkImportFenceWin32HandleKHR_VkResult_return; } @@ -16596,7 +16967,7 @@ VkResult VkEncoder::vkGetFenceWin32HandleKHR( const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR encode"); mImpl->log("start vkGetFenceWin32HandleKHR"); auto stream = mImpl->stream(); @@ -16640,9 +17011,9 @@ VkResult VkEncoder::vkGetFenceWin32HandleKHR( AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR returnUnmarshal"); VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0; stream->read(&vkGetFenceWin32HandleKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetFenceWin32HandleKHR");; return vkGetFenceWin32HandleKHR_VkResult_return; } @@ -16653,7 +17024,7 @@ VkResult VkEncoder::vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkImportFenceFdKHR encode"); mImpl->log("start vkImportFenceFdKHR"); auto stream = mImpl->stream(); @@ -16694,9 +17065,9 @@ VkResult VkEncoder::vkImportFenceFdKHR( AEMU_SCOPED_TRACE("vkImportFenceFdKHR returnUnmarshal"); VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0; stream->read(&vkImportFenceFdKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkImportFenceFdKHR");; return vkImportFenceFdKHR_VkResult_return; } @@ -16706,7 +17077,7 @@ VkResult VkEncoder::vkGetFenceFdKHR( const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetFenceFdKHR encode"); mImpl->log("start vkGetFenceFdKHR"); auto stream = mImpl->stream(); @@ -16750,9 +17121,9 @@ VkResult VkEncoder::vkGetFenceFdKHR( AEMU_SCOPED_TRACE("vkGetFenceFdKHR returnUnmarshal"); VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0; stream->read(&vkGetFenceFdKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetFenceFdKHR");; return vkGetFenceFdKHR_VkResult_return; } @@ -16766,7 +17137,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilities2KHR( const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR encode"); mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilities2KHR"); auto stream = mImpl->stream(); @@ -16814,9 +17185,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilities2KHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR returnUnmarshal"); VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceSurfaceCapabilities2KHR");; return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return; } @@ -16827,7 +17198,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceFormats2KHR( uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR encode"); mImpl->log("start vkGetPhysicalDeviceSurfaceFormats2KHR"); auto stream = mImpl->stream(); @@ -16934,9 +17305,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceFormats2KHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR returnUnmarshal"); VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceSurfaceFormats2KHR");; return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return; } @@ -16950,7 +17321,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceDisplayProperties2KHR( uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR encode"); mImpl->log("start vkGetPhysicalDeviceDisplayProperties2KHR"); auto stream = mImpl->stream(); @@ -17044,9 +17415,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceDisplayProperties2KHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR returnUnmarshal"); VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceDisplayProperties2KHR");; return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return; } @@ -17056,7 +17427,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR encode"); mImpl->log("start vkGetPhysicalDeviceDisplayPlaneProperties2KHR"); auto stream = mImpl->stream(); @@ -17150,9 +17521,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR returnUnmarshal"); VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceDisplayPlaneProperties2KHR");; return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return; } @@ -17163,7 +17534,7 @@ VkResult VkEncoder::vkGetDisplayModeProperties2KHR( uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR encode"); mImpl->log("start vkGetDisplayModeProperties2KHR"); auto stream = mImpl->stream(); @@ -17265,9 +17636,9 @@ VkResult VkEncoder::vkGetDisplayModeProperties2KHR( AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR returnUnmarshal"); VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0; stream->read(&vkGetDisplayModeProperties2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetDisplayModeProperties2KHR");; return vkGetDisplayModeProperties2KHR_VkResult_return; } @@ -17277,7 +17648,7 @@ VkResult VkEncoder::vkGetDisplayPlaneCapabilities2KHR( const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR encode"); mImpl->log("start vkGetDisplayPlaneCapabilities2KHR"); auto stream = mImpl->stream(); @@ -17325,9 +17696,9 @@ VkResult VkEncoder::vkGetDisplayPlaneCapabilities2KHR( AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR returnUnmarshal"); VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0; stream->read(&vkGetDisplayPlaneCapabilities2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetDisplayPlaneCapabilities2KHR");; return vkGetDisplayPlaneCapabilities2KHR_VkResult_return; } @@ -17345,7 +17716,7 @@ void VkEncoder::vkGetImageMemoryRequirements2KHR( const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR encode"); mImpl->log("start vkGetImageMemoryRequirements2KHR"); auto stream = mImpl->stream(); @@ -17391,6 +17762,9 @@ void VkEncoder::vkGetImageMemoryRequirements2KHR( transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements)); } AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetImageMemoryRequirements2KHR");; } @@ -17399,7 +17773,7 @@ void VkEncoder::vkGetBufferMemoryRequirements2KHR( const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR encode"); mImpl->log("start vkGetBufferMemoryRequirements2KHR"); auto stream = mImpl->stream(); @@ -17445,6 +17819,9 @@ void VkEncoder::vkGetBufferMemoryRequirements2KHR( transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements)); } AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetBufferMemoryRequirements2KHR");; } @@ -17454,7 +17831,7 @@ void VkEncoder::vkGetImageSparseMemoryRequirements2KHR( uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR encode"); mImpl->log("start vkGetImageSparseMemoryRequirements2KHR"); auto stream = mImpl->stream(); @@ -17559,6 +17936,9 @@ void VkEncoder::vkGetImageSparseMemoryRequirements2KHR( } } AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetImageSparseMemoryRequirements2KHR");; } @@ -17572,7 +17952,7 @@ VkResult VkEncoder::vkCreateSamplerYcbcrConversionKHR( const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR encode"); mImpl->log("start vkCreateSamplerYcbcrConversionKHR"); auto stream = mImpl->stream(); @@ -17652,9 +18032,9 @@ VkResult VkEncoder::vkCreateSamplerYcbcrConversionKHR( AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR returnUnmarshal"); VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0; stream->read(&vkCreateSamplerYcbcrConversionKHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateSamplerYcbcrConversionKHR");; return vkCreateSamplerYcbcrConversionKHR_VkResult_return; } @@ -17664,7 +18044,7 @@ void VkEncoder::vkDestroySamplerYcbcrConversionKHR( VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR encode"); mImpl->log("start vkDestroySamplerYcbcrConversionKHR"); auto stream = mImpl->stream(); @@ -17725,6 +18105,9 @@ void VkEncoder::vkDestroySamplerYcbcrConversionKHR( AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR readParams"); AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR returnUnmarshal"); resources->destroyMapping()->mapHandles_VkSamplerYcbcrConversion((VkSamplerYcbcrConversion*)&ycbcrConversion); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroySamplerYcbcrConversionKHR");; } @@ -17735,7 +18118,7 @@ VkResult VkEncoder::vkBindBufferMemory2KHR( uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR encode"); mImpl->log("start vkBindBufferMemory2KHR"); auto stream = mImpl->stream(); @@ -17792,9 +18175,9 @@ VkResult VkEncoder::vkBindBufferMemory2KHR( AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR returnUnmarshal"); VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0; stream->read(&vkBindBufferMemory2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkBindBufferMemory2KHR");; return vkBindBufferMemory2KHR_VkResult_return; } @@ -17804,7 +18187,7 @@ VkResult VkEncoder::vkBindImageMemory2KHR( uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkBindImageMemory2KHR encode"); mImpl->log("start vkBindImageMemory2KHR"); auto stream = mImpl->stream(); @@ -17861,9 +18244,9 @@ VkResult VkEncoder::vkBindImageMemory2KHR( AEMU_SCOPED_TRACE("vkBindImageMemory2KHR returnUnmarshal"); VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0; stream->read(&vkBindImageMemory2KHR_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkBindImageMemory2KHR");; return vkBindImageMemory2KHR_VkResult_return; } @@ -17875,7 +18258,7 @@ void VkEncoder::vkGetDescriptorSetLayoutSupportKHR( const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR encode"); mImpl->log("start vkGetDescriptorSetLayoutSupportKHR"); auto stream = mImpl->stream(); @@ -17921,6 +18304,9 @@ void VkEncoder::vkGetDescriptorSetLayoutSupportKHR( transform_fromhost_VkDescriptorSetLayoutSupport(mImpl->resources(), (VkDescriptorSetLayoutSupport*)(pSupport)); } AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetDescriptorSetLayoutSupportKHR");; } @@ -17935,7 +18321,7 @@ void VkEncoder::vkCmdDrawIndirectCountKHR( uint32_t maxDrawCount, uint32_t stride) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR encode"); mImpl->log("start vkCmdDrawIndirectCountKHR"); auto stream = mImpl->stream(); @@ -17993,6 +18379,9 @@ void VkEncoder::vkCmdDrawIndirectCountKHR( stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR readParams"); AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDrawIndirectCountKHR");; } @@ -18005,7 +18394,7 @@ void VkEncoder::vkCmdDrawIndexedIndirectCountKHR( uint32_t maxDrawCount, uint32_t stride) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR encode"); mImpl->log("start vkCmdDrawIndexedIndirectCountKHR"); auto stream = mImpl->stream(); @@ -18063,6 +18452,9 @@ void VkEncoder::vkCmdDrawIndexedIndirectCountKHR( stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR readParams"); AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDrawIndexedIndirectCountKHR");; } @@ -18078,7 +18470,7 @@ VkResult VkEncoder::vkGetSwapchainGrallocUsageANDROID( VkImageUsageFlags imageUsage, int* grallocUsage) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID encode"); mImpl->log("start vkGetSwapchainGrallocUsageANDROID"); auto stream = mImpl->stream(); @@ -18117,9 +18509,9 @@ VkResult VkEncoder::vkGetSwapchainGrallocUsageANDROID( AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID returnUnmarshal"); VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0; stream->read(&vkGetSwapchainGrallocUsageANDROID_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetSwapchainGrallocUsageANDROID");; return vkGetSwapchainGrallocUsageANDROID_VkResult_return; } @@ -18131,7 +18523,7 @@ VkResult VkEncoder::vkAcquireImageANDROID( VkSemaphore semaphore, VkFence fence) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkAcquireImageANDROID encode"); mImpl->log("start vkAcquireImageANDROID"); auto stream = mImpl->stream(); @@ -18188,9 +18580,9 @@ VkResult VkEncoder::vkAcquireImageANDROID( AEMU_SCOPED_TRACE("vkAcquireImageANDROID returnUnmarshal"); VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0; stream->read(&vkAcquireImageANDROID_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkAcquireImageANDROID");; return vkAcquireImageANDROID_VkResult_return; } @@ -18202,7 +18594,7 @@ VkResult VkEncoder::vkQueueSignalReleaseImageANDROID( VkImage image, int* pNativeFenceFd) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID encode"); mImpl->log("start vkQueueSignalReleaseImageANDROID"); auto stream = mImpl->stream(); @@ -18277,10 +18669,10 @@ VkResult VkEncoder::vkQueueSignalReleaseImageANDROID( AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID returnUnmarshal"); VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0; stream->read(&vkQueueSignalReleaseImageANDROID_VkResult_return, sizeof(VkResult)); + stream->flush(); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); - stream->flush(); mImpl->log("finish vkQueueSignalReleaseImageANDROID");; return vkQueueSignalReleaseImageANDROID_VkResult_return; } @@ -18293,7 +18685,7 @@ VkResult VkEncoder::vkCreateDebugReportCallbackEXT( const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT encode"); mImpl->log("start vkCreateDebugReportCallbackEXT"); auto stream = mImpl->stream(); @@ -18373,9 +18765,9 @@ VkResult VkEncoder::vkCreateDebugReportCallbackEXT( AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT returnUnmarshal"); VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0; stream->read(&vkCreateDebugReportCallbackEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateDebugReportCallbackEXT");; return vkCreateDebugReportCallbackEXT_VkResult_return; } @@ -18385,7 +18777,7 @@ void VkEncoder::vkDestroyDebugReportCallbackEXT( VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT encode"); mImpl->log("start vkDestroyDebugReportCallbackEXT"); auto stream = mImpl->stream(); @@ -18446,6 +18838,9 @@ void VkEncoder::vkDestroyDebugReportCallbackEXT( AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT readParams"); AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT returnUnmarshal"); resources->destroyMapping()->mapHandles_VkDebugReportCallbackEXT((VkDebugReportCallbackEXT*)&callback); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyDebugReportCallbackEXT");; } @@ -18459,7 +18854,7 @@ void VkEncoder::vkDebugReportMessageEXT( const char* pLayerPrefix, const char* pMessage) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDebugReportMessageEXT encode"); mImpl->log("start vkDebugReportMessageEXT"); auto stream = mImpl->stream(); @@ -18523,6 +18918,9 @@ void VkEncoder::vkDebugReportMessageEXT( stream->putString(local_pMessage); AEMU_SCOPED_TRACE("vkDebugReportMessageEXT readParams"); AEMU_SCOPED_TRACE("vkDebugReportMessageEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDebugReportMessageEXT");; } @@ -18544,7 +18942,7 @@ VkResult VkEncoder::vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT encode"); mImpl->log("start vkDebugMarkerSetObjectTagEXT"); auto stream = mImpl->stream(); @@ -18585,9 +18983,9 @@ VkResult VkEncoder::vkDebugMarkerSetObjectTagEXT( AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT returnUnmarshal"); VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0; stream->read(&vkDebugMarkerSetObjectTagEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkDebugMarkerSetObjectTagEXT");; return vkDebugMarkerSetObjectTagEXT_VkResult_return; } @@ -18596,7 +18994,7 @@ VkResult VkEncoder::vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT encode"); mImpl->log("start vkDebugMarkerSetObjectNameEXT"); auto stream = mImpl->stream(); @@ -18637,9 +19035,9 @@ VkResult VkEncoder::vkDebugMarkerSetObjectNameEXT( AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT returnUnmarshal"); VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0; stream->read(&vkDebugMarkerSetObjectNameEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkDebugMarkerSetObjectNameEXT");; return vkDebugMarkerSetObjectNameEXT_VkResult_return; } @@ -18648,7 +19046,7 @@ void VkEncoder::vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT encode"); mImpl->log("start vkCmdDebugMarkerBeginEXT"); auto stream = mImpl->stream(); @@ -18687,13 +19085,16 @@ void VkEncoder::vkCmdDebugMarkerBeginEXT( marshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo)); AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT readParams"); AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDebugMarkerBeginEXT");; } void VkEncoder::vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT encode"); mImpl->log("start vkCmdDebugMarkerEndEXT"); auto stream = mImpl->stream(); @@ -18719,6 +19120,9 @@ void VkEncoder::vkCmdDebugMarkerEndEXT( stream->write((uint64_t*)&cgen_var_1224, 1 * 8); AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT readParams"); AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDebugMarkerEndEXT");; } @@ -18726,7 +19130,7 @@ void VkEncoder::vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT encode"); mImpl->log("start vkCmdDebugMarkerInsertEXT"); auto stream = mImpl->stream(); @@ -18765,6 +19169,9 @@ void VkEncoder::vkCmdDebugMarkerInsertEXT( marshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo)); AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT readParams"); AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDebugMarkerInsertEXT");; } @@ -18783,7 +19190,7 @@ void VkEncoder::vkCmdDrawIndirectCountAMD( uint32_t maxDrawCount, uint32_t stride) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD encode"); mImpl->log("start vkCmdDrawIndirectCountAMD"); auto stream = mImpl->stream(); @@ -18841,6 +19248,9 @@ void VkEncoder::vkCmdDrawIndirectCountAMD( stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD readParams"); AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDrawIndirectCountAMD");; } @@ -18853,7 +19263,7 @@ void VkEncoder::vkCmdDrawIndexedIndirectCountAMD( uint32_t maxDrawCount, uint32_t stride) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD encode"); mImpl->log("start vkCmdDrawIndexedIndirectCountAMD"); auto stream = mImpl->stream(); @@ -18911,6 +19321,9 @@ void VkEncoder::vkCmdDrawIndexedIndirectCountAMD( stream->write((uint32_t*)&local_stride, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD readParams"); AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdDrawIndexedIndirectCountAMD");; } @@ -18932,7 +19345,7 @@ VkResult VkEncoder::vkGetShaderInfoAMD( size_t* pInfoSize, void* pInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetShaderInfoAMD encode"); mImpl->log("start vkGetShaderInfoAMD"); auto stream = mImpl->stream(); @@ -19028,9 +19441,9 @@ VkResult VkEncoder::vkGetShaderInfoAMD( AEMU_SCOPED_TRACE("vkGetShaderInfoAMD returnUnmarshal"); VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0; stream->read(&vkGetShaderInfoAMD_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetShaderInfoAMD");; return vkGetShaderInfoAMD_VkResult_return; } @@ -19051,7 +19464,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV encode"); mImpl->log("start vkGetPhysicalDeviceExternalImageFormatPropertiesNV"); auto stream = mImpl->stream(); @@ -19110,9 +19523,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV returnUnmarshal"); VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceExternalImageFormatPropertiesNV");; return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return; } @@ -19127,7 +19540,7 @@ VkResult VkEncoder::vkGetMemoryWin32HandleNV( VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV encode"); mImpl->log("start vkGetMemoryWin32HandleNV"); auto stream = mImpl->stream(); @@ -19171,9 +19584,9 @@ VkResult VkEncoder::vkGetMemoryWin32HandleNV( AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV returnUnmarshal"); VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0; stream->read(&vkGetMemoryWin32HandleNV_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetMemoryWin32HandleNV");; return vkGetMemoryWin32HandleNV_VkResult_return; } @@ -19190,7 +19603,7 @@ VkResult VkEncoder::vkCreateViSurfaceNN( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateViSurfaceNN encode"); mImpl->log("start vkCreateViSurfaceNN"); auto stream = mImpl->stream(); @@ -19268,9 +19681,9 @@ VkResult VkEncoder::vkCreateViSurfaceNN( AEMU_SCOPED_TRACE("vkCreateViSurfaceNN returnUnmarshal"); VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0; stream->read(&vkCreateViSurfaceNN_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateViSurfaceNN");; return vkCreateViSurfaceNN_VkResult_return; } @@ -19285,7 +19698,7 @@ void VkEncoder::vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT encode"); mImpl->log("start vkCmdBeginConditionalRenderingEXT"); auto stream = mImpl->stream(); @@ -19324,13 +19737,16 @@ void VkEncoder::vkCmdBeginConditionalRenderingEXT( marshal_VkConditionalRenderingBeginInfoEXT(stream, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin)); AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT readParams"); AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdBeginConditionalRenderingEXT");; } void VkEncoder::vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT encode"); mImpl->log("start vkCmdEndConditionalRenderingEXT"); auto stream = mImpl->stream(); @@ -19356,6 +19772,9 @@ void VkEncoder::vkCmdEndConditionalRenderingEXT( stream->write((uint64_t*)&cgen_var_1268, 1 * 8); AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT readParams"); AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdEndConditionalRenderingEXT");; } @@ -19365,7 +19784,7 @@ void VkEncoder::vkCmdProcessCommandsNVX( VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX encode"); mImpl->log("start vkCmdProcessCommandsNVX"); auto stream = mImpl->stream(); @@ -19404,6 +19823,9 @@ void VkEncoder::vkCmdProcessCommandsNVX( marshal_VkCmdProcessCommandsInfoNVX(stream, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo)); AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX readParams"); AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdProcessCommandsNVX");; } @@ -19411,7 +19833,7 @@ void VkEncoder::vkCmdReserveSpaceForCommandsNVX( VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX encode"); mImpl->log("start vkCmdReserveSpaceForCommandsNVX"); auto stream = mImpl->stream(); @@ -19450,6 +19872,9 @@ void VkEncoder::vkCmdReserveSpaceForCommandsNVX( marshal_VkCmdReserveSpaceForCommandsInfoNVX(stream, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo)); AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX readParams"); AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdReserveSpaceForCommandsNVX");; } @@ -19459,7 +19884,7 @@ VkResult VkEncoder::vkCreateIndirectCommandsLayoutNVX( const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX encode"); mImpl->log("start vkCreateIndirectCommandsLayoutNVX"); auto stream = mImpl->stream(); @@ -19539,9 +19964,9 @@ VkResult VkEncoder::vkCreateIndirectCommandsLayoutNVX( AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX returnUnmarshal"); VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0; stream->read(&vkCreateIndirectCommandsLayoutNVX_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateIndirectCommandsLayoutNVX");; return vkCreateIndirectCommandsLayoutNVX_VkResult_return; } @@ -19551,7 +19976,7 @@ void VkEncoder::vkDestroyIndirectCommandsLayoutNVX( VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX encode"); mImpl->log("start vkDestroyIndirectCommandsLayoutNVX"); auto stream = mImpl->stream(); @@ -19612,6 +20037,9 @@ void VkEncoder::vkDestroyIndirectCommandsLayoutNVX( AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX readParams"); AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX returnUnmarshal"); resources->destroyMapping()->mapHandles_VkIndirectCommandsLayoutNVX((VkIndirectCommandsLayoutNVX*)&indirectCommandsLayout); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyIndirectCommandsLayoutNVX");; } @@ -19621,7 +20049,7 @@ VkResult VkEncoder::vkCreateObjectTableNVX( const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateObjectTableNVX encode"); mImpl->log("start vkCreateObjectTableNVX"); auto stream = mImpl->stream(); @@ -19701,9 +20129,9 @@ VkResult VkEncoder::vkCreateObjectTableNVX( AEMU_SCOPED_TRACE("vkCreateObjectTableNVX returnUnmarshal"); VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0; stream->read(&vkCreateObjectTableNVX_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateObjectTableNVX");; return vkCreateObjectTableNVX_VkResult_return; } @@ -19713,7 +20141,7 @@ void VkEncoder::vkDestroyObjectTableNVX( VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX encode"); mImpl->log("start vkDestroyObjectTableNVX"); auto stream = mImpl->stream(); @@ -19774,6 +20202,9 @@ void VkEncoder::vkDestroyObjectTableNVX( AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX readParams"); AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX returnUnmarshal"); resources->destroyMapping()->mapHandles_VkObjectTableNVX((VkObjectTableNVX*)&objectTable); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyObjectTableNVX");; } @@ -19784,7 +20215,7 @@ VkResult VkEncoder::vkRegisterObjectsNVX( const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkRegisterObjectsNVX encode"); mImpl->log("start vkRegisterObjectsNVX"); auto stream = mImpl->stream(); @@ -19837,9 +20268,9 @@ VkResult VkEncoder::vkRegisterObjectsNVX( AEMU_SCOPED_TRACE("vkRegisterObjectsNVX returnUnmarshal"); VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0; stream->read(&vkRegisterObjectsNVX_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkRegisterObjectsNVX");; return vkRegisterObjectsNVX_VkResult_return; } @@ -19851,7 +20282,7 @@ VkResult VkEncoder::vkUnregisterObjectsNVX( const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX encode"); mImpl->log("start vkUnregisterObjectsNVX"); auto stream = mImpl->stream(); @@ -19907,9 +20338,9 @@ VkResult VkEncoder::vkUnregisterObjectsNVX( AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX returnUnmarshal"); VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0; stream->read(&vkUnregisterObjectsNVX_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkUnregisterObjectsNVX");; return vkUnregisterObjectsNVX_VkResult_return; } @@ -19919,7 +20350,7 @@ void VkEncoder::vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX encode"); mImpl->log("start vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"); auto stream = mImpl->stream(); @@ -19959,6 +20390,9 @@ void VkEncoder::vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( transform_fromhost_VkDeviceGeneratedCommandsLimitsNVX(mImpl->resources(), (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");; } @@ -19970,7 +20404,7 @@ void VkEncoder::vkCmdSetViewportWScalingNV( uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV encode"); mImpl->log("start vkCmdSetViewportWScalingNV"); auto stream = mImpl->stream(); @@ -20029,6 +20463,9 @@ void VkEncoder::vkCmdSetViewportWScalingNV( } AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV readParams"); AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetViewportWScalingNV");; } @@ -20038,7 +20475,7 @@ VkResult VkEncoder::vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkReleaseDisplayEXT encode"); mImpl->log("start vkReleaseDisplayEXT"); auto stream = mImpl->stream(); @@ -20074,9 +20511,9 @@ VkResult VkEncoder::vkReleaseDisplayEXT( AEMU_SCOPED_TRACE("vkReleaseDisplayEXT returnUnmarshal"); VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0; stream->read(&vkReleaseDisplayEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkReleaseDisplayEXT");; return vkReleaseDisplayEXT_VkResult_return; } @@ -20088,7 +20525,7 @@ VkResult VkEncoder::vkAcquireXlibDisplayEXT( Display* dpy, VkDisplayKHR display) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT encode"); mImpl->log("start vkAcquireXlibDisplayEXT"); auto stream = mImpl->stream(); @@ -20127,9 +20564,9 @@ VkResult VkEncoder::vkAcquireXlibDisplayEXT( AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT returnUnmarshal"); VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0; stream->read(&vkAcquireXlibDisplayEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkAcquireXlibDisplayEXT");; return vkAcquireXlibDisplayEXT_VkResult_return; } @@ -20140,7 +20577,7 @@ VkResult VkEncoder::vkGetRandROutputDisplayEXT( RROutput rrOutput, VkDisplayKHR* pDisplay) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT encode"); mImpl->log("start vkGetRandROutputDisplayEXT"); auto stream = mImpl->stream(); @@ -20186,9 +20623,9 @@ VkResult VkEncoder::vkGetRandROutputDisplayEXT( AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT returnUnmarshal"); VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0; stream->read(&vkGetRandROutputDisplayEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetRandROutputDisplayEXT");; return vkGetRandROutputDisplayEXT_VkResult_return; } @@ -20200,7 +20637,7 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT encode"); mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilities2EXT"); auto stream = mImpl->stream(); @@ -20243,9 +20680,9 @@ VkResult VkEncoder::vkGetPhysicalDeviceSurfaceCapabilities2EXT( AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT returnUnmarshal"); VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0; stream->read(&vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPhysicalDeviceSurfaceCapabilities2EXT");; return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return; } @@ -20257,7 +20694,7 @@ VkResult VkEncoder::vkDisplayPowerControlEXT( VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT encode"); mImpl->log("start vkDisplayPowerControlEXT"); auto stream = mImpl->stream(); @@ -20306,9 +20743,9 @@ VkResult VkEncoder::vkDisplayPowerControlEXT( AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT returnUnmarshal"); VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0; stream->read(&vkDisplayPowerControlEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkDisplayPowerControlEXT");; return vkDisplayPowerControlEXT_VkResult_return; } @@ -20319,7 +20756,7 @@ VkResult VkEncoder::vkRegisterDeviceEventEXT( const VkAllocationCallbacks* pAllocator, VkFence* pFence) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT encode"); mImpl->log("start vkRegisterDeviceEventEXT"); auto stream = mImpl->stream(); @@ -20397,9 +20834,9 @@ VkResult VkEncoder::vkRegisterDeviceEventEXT( AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT returnUnmarshal"); VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0; stream->read(&vkRegisterDeviceEventEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkRegisterDeviceEventEXT");; return vkRegisterDeviceEventEXT_VkResult_return; } @@ -20411,7 +20848,7 @@ VkResult VkEncoder::vkRegisterDisplayEventEXT( const VkAllocationCallbacks* pAllocator, VkFence* pFence) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT encode"); mImpl->log("start vkRegisterDisplayEventEXT"); auto stream = mImpl->stream(); @@ -20497,9 +20934,9 @@ VkResult VkEncoder::vkRegisterDisplayEventEXT( AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT returnUnmarshal"); VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0; stream->read(&vkRegisterDisplayEventEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkRegisterDisplayEventEXT");; return vkRegisterDisplayEventEXT_VkResult_return; } @@ -20510,7 +20947,7 @@ VkResult VkEncoder::vkGetSwapchainCounterEXT( VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT encode"); mImpl->log("start vkGetSwapchainCounterEXT"); auto stream = mImpl->stream(); @@ -20553,9 +20990,9 @@ VkResult VkEncoder::vkGetSwapchainCounterEXT( AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT returnUnmarshal"); VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0; stream->read(&vkGetSwapchainCounterEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetSwapchainCounterEXT");; return vkGetSwapchainCounterEXT_VkResult_return; } @@ -20567,7 +21004,7 @@ VkResult VkEncoder::vkGetRefreshCycleDurationGOOGLE( VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE encode"); mImpl->log("start vkGetRefreshCycleDurationGOOGLE"); auto stream = mImpl->stream(); @@ -20610,9 +21047,9 @@ VkResult VkEncoder::vkGetRefreshCycleDurationGOOGLE( AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE returnUnmarshal"); VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0; stream->read(&vkGetRefreshCycleDurationGOOGLE_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetRefreshCycleDurationGOOGLE");; return vkGetRefreshCycleDurationGOOGLE_VkResult_return; } @@ -20623,7 +21060,7 @@ VkResult VkEncoder::vkGetPastPresentationTimingGOOGLE( uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE encode"); mImpl->log("start vkGetPastPresentationTimingGOOGLE"); auto stream = mImpl->stream(); @@ -20725,9 +21162,9 @@ VkResult VkEncoder::vkGetPastPresentationTimingGOOGLE( AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE returnUnmarshal"); VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0; stream->read(&vkGetPastPresentationTimingGOOGLE_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetPastPresentationTimingGOOGLE");; return vkGetPastPresentationTimingGOOGLE_VkResult_return; } @@ -20750,7 +21187,7 @@ void VkEncoder::vkCmdSetDiscardRectangleEXT( uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT encode"); mImpl->log("start vkCmdSetDiscardRectangleEXT"); auto stream = mImpl->stream(); @@ -20809,6 +21246,9 @@ void VkEncoder::vkCmdSetDiscardRectangleEXT( } AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT readParams"); AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetDiscardRectangleEXT");; } @@ -20824,7 +21264,7 @@ void VkEncoder::vkSetHdrMetadataEXT( const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT encode"); mImpl->log("start vkSetHdrMetadataEXT"); auto stream = mImpl->stream(); @@ -20899,6 +21339,9 @@ void VkEncoder::vkSetHdrMetadataEXT( } AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT readParams"); AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkSetHdrMetadataEXT");; } @@ -20910,7 +21353,7 @@ VkResult VkEncoder::vkCreateIOSSurfaceMVK( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK encode"); mImpl->log("start vkCreateIOSSurfaceMVK"); auto stream = mImpl->stream(); @@ -20988,9 +21431,9 @@ VkResult VkEncoder::vkCreateIOSSurfaceMVK( AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK returnUnmarshal"); VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0; stream->read(&vkCreateIOSSurfaceMVK_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateIOSSurfaceMVK");; return vkCreateIOSSurfaceMVK_VkResult_return; } @@ -21003,7 +21446,7 @@ VkResult VkEncoder::vkCreateMacOSSurfaceMVK( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK encode"); mImpl->log("start vkCreateMacOSSurfaceMVK"); auto stream = mImpl->stream(); @@ -21081,9 +21524,9 @@ VkResult VkEncoder::vkCreateMacOSSurfaceMVK( AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK returnUnmarshal"); VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0; stream->read(&vkCreateMacOSSurfaceMVK_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateMacOSSurfaceMVK");; return vkCreateMacOSSurfaceMVK_VkResult_return; } @@ -21098,7 +21541,7 @@ VkResult VkEncoder::vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT encode"); mImpl->log("start vkSetDebugUtilsObjectNameEXT"); auto stream = mImpl->stream(); @@ -21139,9 +21582,9 @@ VkResult VkEncoder::vkSetDebugUtilsObjectNameEXT( AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT returnUnmarshal"); VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0; stream->read(&vkSetDebugUtilsObjectNameEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkSetDebugUtilsObjectNameEXT");; return vkSetDebugUtilsObjectNameEXT_VkResult_return; } @@ -21150,7 +21593,7 @@ VkResult VkEncoder::vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT encode"); mImpl->log("start vkSetDebugUtilsObjectTagEXT"); auto stream = mImpl->stream(); @@ -21191,9 +21634,9 @@ VkResult VkEncoder::vkSetDebugUtilsObjectTagEXT( AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT returnUnmarshal"); VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0; stream->read(&vkSetDebugUtilsObjectTagEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkSetDebugUtilsObjectTagEXT");; return vkSetDebugUtilsObjectTagEXT_VkResult_return; } @@ -21202,7 +21645,7 @@ void VkEncoder::vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT encode"); mImpl->log("start vkQueueBeginDebugUtilsLabelEXT"); auto stream = mImpl->stream(); @@ -21241,13 +21684,16 @@ void VkEncoder::vkQueueBeginDebugUtilsLabelEXT( marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT readParams"); AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkQueueBeginDebugUtilsLabelEXT");; } void VkEncoder::vkQueueEndDebugUtilsLabelEXT( VkQueue queue) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT encode"); mImpl->log("start vkQueueEndDebugUtilsLabelEXT"); auto stream = mImpl->stream(); @@ -21273,6 +21719,9 @@ void VkEncoder::vkQueueEndDebugUtilsLabelEXT( stream->write((uint64_t*)&cgen_var_1393, 1 * 8); AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT readParams"); AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkQueueEndDebugUtilsLabelEXT");; } @@ -21280,7 +21729,7 @@ void VkEncoder::vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT encode"); mImpl->log("start vkQueueInsertDebugUtilsLabelEXT"); auto stream = mImpl->stream(); @@ -21319,6 +21768,9 @@ void VkEncoder::vkQueueInsertDebugUtilsLabelEXT( marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT readParams"); AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkQueueInsertDebugUtilsLabelEXT");; } @@ -21326,7 +21778,7 @@ void VkEncoder::vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT encode"); mImpl->log("start vkCmdBeginDebugUtilsLabelEXT"); auto stream = mImpl->stream(); @@ -21365,13 +21817,16 @@ void VkEncoder::vkCmdBeginDebugUtilsLabelEXT( marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT readParams"); AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdBeginDebugUtilsLabelEXT");; } void VkEncoder::vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT encode"); mImpl->log("start vkCmdEndDebugUtilsLabelEXT"); auto stream = mImpl->stream(); @@ -21397,6 +21852,9 @@ void VkEncoder::vkCmdEndDebugUtilsLabelEXT( stream->write((uint64_t*)&cgen_var_1399, 1 * 8); AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT readParams"); AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdEndDebugUtilsLabelEXT");; } @@ -21404,7 +21862,7 @@ void VkEncoder::vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT encode"); mImpl->log("start vkCmdInsertDebugUtilsLabelEXT"); auto stream = mImpl->stream(); @@ -21443,6 +21901,9 @@ void VkEncoder::vkCmdInsertDebugUtilsLabelEXT( marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo)); AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT readParams"); AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdInsertDebugUtilsLabelEXT");; } @@ -21452,7 +21913,7 @@ VkResult VkEncoder::vkCreateDebugUtilsMessengerEXT( const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT encode"); mImpl->log("start vkCreateDebugUtilsMessengerEXT"); auto stream = mImpl->stream(); @@ -21532,9 +21993,9 @@ VkResult VkEncoder::vkCreateDebugUtilsMessengerEXT( AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT returnUnmarshal"); VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0; stream->read(&vkCreateDebugUtilsMessengerEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateDebugUtilsMessengerEXT");; return vkCreateDebugUtilsMessengerEXT_VkResult_return; } @@ -21544,7 +22005,7 @@ void VkEncoder::vkDestroyDebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT encode"); mImpl->log("start vkDestroyDebugUtilsMessengerEXT"); auto stream = mImpl->stream(); @@ -21605,6 +22066,9 @@ void VkEncoder::vkDestroyDebugUtilsMessengerEXT( AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT readParams"); AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT returnUnmarshal"); resources->destroyMapping()->mapHandles_VkDebugUtilsMessengerEXT((VkDebugUtilsMessengerEXT*)&messenger); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyDebugUtilsMessengerEXT");; } @@ -21614,7 +22078,7 @@ void VkEncoder::vkSubmitDebugUtilsMessageEXT( VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT encode"); mImpl->log("start vkSubmitDebugUtilsMessageEXT"); auto stream = mImpl->stream(); @@ -21661,6 +22125,9 @@ void VkEncoder::vkSubmitDebugUtilsMessageEXT( marshal_VkDebugUtilsMessengerCallbackDataEXT(stream, (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData)); AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT readParams"); AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkSubmitDebugUtilsMessageEXT");; } @@ -21671,7 +22138,7 @@ VkResult VkEncoder::vkGetAndroidHardwareBufferPropertiesANDROID( const AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID encode"); mImpl->log("start vkGetAndroidHardwareBufferPropertiesANDROID"); auto stream = mImpl->stream(); @@ -21714,9 +22181,9 @@ VkResult VkEncoder::vkGetAndroidHardwareBufferPropertiesANDROID( AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID returnUnmarshal"); VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0; stream->read(&vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetAndroidHardwareBufferPropertiesANDROID");; return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return; } @@ -21726,7 +22193,7 @@ VkResult VkEncoder::vkGetMemoryAndroidHardwareBufferANDROID( const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, AHardwareBuffer** pBuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID encode"); mImpl->log("start vkGetMemoryAndroidHardwareBufferANDROID"); auto stream = mImpl->stream(); @@ -21770,9 +22237,9 @@ VkResult VkEncoder::vkGetMemoryAndroidHardwareBufferANDROID( AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID returnUnmarshal"); VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0; stream->read(&vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetMemoryAndroidHardwareBufferANDROID");; return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return; } @@ -21793,7 +22260,7 @@ void VkEncoder::vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT encode"); mImpl->log("start vkCmdSetSampleLocationsEXT"); auto stream = mImpl->stream(); @@ -21832,6 +22299,9 @@ void VkEncoder::vkCmdSetSampleLocationsEXT( marshal_VkSampleLocationsInfoEXT(stream, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo)); AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT readParams"); AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetSampleLocationsEXT");; } @@ -21840,7 +22310,7 @@ void VkEncoder::vkGetPhysicalDeviceMultisamplePropertiesEXT( VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT encode"); mImpl->log("start vkGetPhysicalDeviceMultisamplePropertiesEXT"); auto stream = mImpl->stream(); @@ -21877,6 +22347,9 @@ void VkEncoder::vkGetPhysicalDeviceMultisamplePropertiesEXT( transform_fromhost_VkMultisamplePropertiesEXT(mImpl->resources(), (VkMultisamplePropertiesEXT*)(pMultisampleProperties)); } AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetPhysicalDeviceMultisamplePropertiesEXT");; } @@ -21898,7 +22371,7 @@ VkResult VkEncoder::vkCreateValidationCacheEXT( const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT encode"); mImpl->log("start vkCreateValidationCacheEXT"); auto stream = mImpl->stream(); @@ -21978,9 +22451,9 @@ VkResult VkEncoder::vkCreateValidationCacheEXT( AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT returnUnmarshal"); VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0; stream->read(&vkCreateValidationCacheEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateValidationCacheEXT");; return vkCreateValidationCacheEXT_VkResult_return; } @@ -21990,7 +22463,7 @@ void VkEncoder::vkDestroyValidationCacheEXT( VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT encode"); mImpl->log("start vkDestroyValidationCacheEXT"); auto stream = mImpl->stream(); @@ -22051,6 +22524,9 @@ void VkEncoder::vkDestroyValidationCacheEXT( AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT readParams"); AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT returnUnmarshal"); resources->destroyMapping()->mapHandles_VkValidationCacheEXT((VkValidationCacheEXT*)&validationCache); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkDestroyValidationCacheEXT");; } @@ -22060,7 +22536,7 @@ VkResult VkEncoder::vkMergeValidationCachesEXT( uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT encode"); mImpl->log("start vkMergeValidationCachesEXT"); auto stream = mImpl->stream(); @@ -22120,9 +22596,9 @@ VkResult VkEncoder::vkMergeValidationCachesEXT( AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT returnUnmarshal"); VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0; stream->read(&vkMergeValidationCachesEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkMergeValidationCachesEXT");; return vkMergeValidationCachesEXT_VkResult_return; } @@ -22133,7 +22609,7 @@ VkResult VkEncoder::vkGetValidationCacheDataEXT( size_t* pDataSize, void* pData) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT encode"); mImpl->log("start vkGetValidationCacheDataEXT"); auto stream = mImpl->stream(); @@ -22221,9 +22697,9 @@ VkResult VkEncoder::vkGetValidationCacheDataEXT( AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT returnUnmarshal"); VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0; stream->read(&vkGetValidationCacheDataEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetValidationCacheDataEXT");; return vkGetValidationCacheDataEXT_VkResult_return; } @@ -22242,7 +22718,7 @@ VkResult VkEncoder::vkGetMemoryHostPointerPropertiesEXT( const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT encode"); mImpl->log("start vkGetMemoryHostPointerPropertiesEXT"); auto stream = mImpl->stream(); @@ -22301,9 +22777,9 @@ VkResult VkEncoder::vkGetMemoryHostPointerPropertiesEXT( AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT returnUnmarshal"); VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0; stream->read(&vkGetMemoryHostPointerPropertiesEXT_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetMemoryHostPointerPropertiesEXT");; return vkGetMemoryHostPointerPropertiesEXT_VkResult_return; } @@ -22317,7 +22793,7 @@ void VkEncoder::vkCmdWriteBufferMarkerAMD( VkDeviceSize dstOffset, uint32_t marker) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD encode"); mImpl->log("start vkCmdWriteBufferMarkerAMD"); auto stream = mImpl->stream(); @@ -22363,6 +22839,9 @@ void VkEncoder::vkCmdWriteBufferMarkerAMD( stream->write((uint32_t*)&local_marker, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD readParams"); AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdWriteBufferMarkerAMD");; } @@ -22378,7 +22857,7 @@ void VkEncoder::vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV encode"); mImpl->log("start vkCmdSetCheckpointNV"); auto stream = mImpl->stream(); @@ -22424,6 +22903,9 @@ void VkEncoder::vkCmdSetCheckpointNV( } AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV readParams"); AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCmdSetCheckpointNV");; } @@ -22432,7 +22914,7 @@ void VkEncoder::vkGetQueueCheckpointDataNV( uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV encode"); mImpl->log("start vkGetQueueCheckpointDataNV"); auto stream = mImpl->stream(); @@ -22524,6 +23006,9 @@ void VkEncoder::vkGetQueueCheckpointDataNV( } } AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkGetQueueCheckpointDataNV");; } @@ -22534,12 +23019,10 @@ VkResult VkEncoder::vkMapMemoryIntoAddressSpaceGOOGLE( VkDeviceMemory memory, uint64_t* pAddress) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); 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(); @@ -22599,12 +23082,10 @@ VkResult VkEncoder::vkMapMemoryIntoAddressSpaceGOOGLE( AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE returnUnmarshal"); VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0; stream->read(&vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, sizeof(VkResult)); + mImpl->resources()->on_vkMapMemoryIntoAddressSpaceGOOGLE(this, vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, device, memory, pAddress); + pool->freeAll(); 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; } @@ -22616,7 +23097,7 @@ VkResult VkEncoder::vkRegisterImageColorBufferGOOGLE( VkImage image, uint32_t colorBuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE encode"); mImpl->log("start vkRegisterImageColorBufferGOOGLE"); auto stream = mImpl->stream(); @@ -22656,9 +23137,9 @@ VkResult VkEncoder::vkRegisterImageColorBufferGOOGLE( AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE returnUnmarshal"); VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0; stream->read(&vkRegisterImageColorBufferGOOGLE_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkRegisterImageColorBufferGOOGLE");; return vkRegisterImageColorBufferGOOGLE_VkResult_return; } @@ -22668,7 +23149,7 @@ VkResult VkEncoder::vkRegisterBufferColorBufferGOOGLE( VkBuffer buffer, uint32_t colorBuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE encode"); mImpl->log("start vkRegisterBufferColorBufferGOOGLE"); auto stream = mImpl->stream(); @@ -22708,9 +23189,9 @@ VkResult VkEncoder::vkRegisterBufferColorBufferGOOGLE( AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE returnUnmarshal"); VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0; stream->read(&vkRegisterBufferColorBufferGOOGLE_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkRegisterBufferColorBufferGOOGLE");; return vkRegisterBufferColorBufferGOOGLE_VkResult_return; } @@ -22731,7 +23212,7 @@ void VkEncoder::vkUpdateDescriptorSetWithTemplateSizedGOOGLE( const VkDescriptorBufferInfo* pBufferInfos, const VkBufferView* pBufferViews) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE encode"); mImpl->log("start vkUpdateDescriptorSetWithTemplateSizedGOOGLE"); auto stream = mImpl->stream(); @@ -22951,6 +23432,9 @@ void VkEncoder::vkUpdateDescriptorSetWithTemplateSizedGOOGLE( } AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE readParams"); AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkUpdateDescriptorSetWithTemplateSizedGOOGLE");; } @@ -22960,7 +23444,7 @@ void VkEncoder::vkBeginCommandBufferAsyncGOOGLE( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE encode"); mImpl->log("start vkBeginCommandBufferAsyncGOOGLE"); auto stream = mImpl->stream(); @@ -22999,13 +23483,16 @@ void VkEncoder::vkBeginCommandBufferAsyncGOOGLE( marshal_VkCommandBufferBeginInfo(stream, (VkCommandBufferBeginInfo*)(local_pBeginInfo)); AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE readParams"); AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkBeginCommandBufferAsyncGOOGLE");; } void VkEncoder::vkEndCommandBufferAsyncGOOGLE( VkCommandBuffer commandBuffer) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE encode"); mImpl->log("start vkEndCommandBufferAsyncGOOGLE"); auto stream = mImpl->stream(); @@ -23032,6 +23519,9 @@ void VkEncoder::vkEndCommandBufferAsyncGOOGLE( AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE readParams"); AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE returnUnmarshal"); stream->flush(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkEndCommandBufferAsyncGOOGLE");; } @@ -23039,7 +23529,7 @@ void VkEncoder::vkResetCommandBufferAsyncGOOGLE( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE encode"); mImpl->log("start vkResetCommandBufferAsyncGOOGLE"); auto stream = mImpl->stream(); @@ -23069,6 +23559,9 @@ void VkEncoder::vkResetCommandBufferAsyncGOOGLE( stream->write((VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags)); AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE readParams"); AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkResetCommandBufferAsyncGOOGLE");; } @@ -23077,7 +23570,7 @@ void VkEncoder::vkCommandBufferHostSyncGOOGLE( uint32_t needHostSync, uint32_t sequenceNumber) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE encode"); mImpl->log("start vkCommandBufferHostSyncGOOGLE"); auto stream = mImpl->stream(); @@ -23111,6 +23604,9 @@ void VkEncoder::vkCommandBufferHostSyncGOOGLE( stream->write((uint32_t*)&local_sequenceNumber, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE readParams"); AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkCommandBufferHostSyncGOOGLE");; } @@ -23123,7 +23619,7 @@ VkResult VkEncoder::vkCreateImageWithRequirementsGOOGLE( VkImage* pImage, VkMemoryRequirements* pMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE encode"); mImpl->log("start vkCreateImageWithRequirementsGOOGLE"); auto stream = mImpl->stream(); @@ -23211,9 +23707,9 @@ VkResult VkEncoder::vkCreateImageWithRequirementsGOOGLE( AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE returnUnmarshal"); VkResult vkCreateImageWithRequirementsGOOGLE_VkResult_return = (VkResult)0; stream->read(&vkCreateImageWithRequirementsGOOGLE_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateImageWithRequirementsGOOGLE");; return vkCreateImageWithRequirementsGOOGLE_VkResult_return; } @@ -23225,7 +23721,7 @@ VkResult VkEncoder::vkCreateBufferWithRequirementsGOOGLE( VkBuffer* pBuffer, VkMemoryRequirements* pMemoryRequirements) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE encode"); mImpl->log("start vkCreateBufferWithRequirementsGOOGLE"); auto stream = mImpl->stream(); @@ -23312,9 +23808,9 @@ VkResult VkEncoder::vkCreateBufferWithRequirementsGOOGLE( AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE returnUnmarshal"); VkResult vkCreateBufferWithRequirementsGOOGLE_VkResult_return = (VkResult)0; stream->read(&vkCreateBufferWithRequirementsGOOGLE_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkCreateBufferWithRequirementsGOOGLE");; return vkCreateBufferWithRequirementsGOOGLE_VkResult_return; } @@ -23328,7 +23824,7 @@ VkResult VkEncoder::vkGetMemoryHostAddressInfoGOOGLE( uint64_t* pSize, uint64_t* pHostmemId) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkGetMemoryHostAddressInfoGOOGLE encode"); mImpl->log("start vkGetMemoryHostAddressInfoGOOGLE"); auto stream = mImpl->stream(); @@ -23440,9 +23936,9 @@ VkResult VkEncoder::vkGetMemoryHostAddressInfoGOOGLE( AEMU_SCOPED_TRACE("vkGetMemoryHostAddressInfoGOOGLE returnUnmarshal"); VkResult vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = (VkResult)0; stream->read(&vkGetMemoryHostAddressInfoGOOGLE_VkResult_return, sizeof(VkResult)); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); mImpl->log("finish vkGetMemoryHostAddressInfoGOOGLE");; return vkGetMemoryHostAddressInfoGOOGLE_VkResult_return; } @@ -23454,7 +23950,7 @@ VkResult VkEncoder::vkFreeMemorySyncGOOGLE( VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkFreeMemorySyncGOOGLE encode"); mImpl->log("start vkFreeMemorySyncGOOGLE"); auto stream = mImpl->stream(); @@ -23513,10 +24009,10 @@ VkResult VkEncoder::vkFreeMemorySyncGOOGLE( AEMU_SCOPED_TRACE("vkFreeMemorySyncGOOGLE returnUnmarshal"); VkResult vkFreeMemorySyncGOOGLE_VkResult_return = (VkResult)0; stream->read(&vkFreeMemorySyncGOOGLE_VkResult_return, sizeof(VkResult)); + resources->destroyMapping()->mapHandles_VkDeviceMemory((VkDeviceMemory*)&memory); + pool->freeAll(); countingStream->clearPool(); stream->clearPool(); - pool->freeAll(); - resources->destroyMapping()->mapHandles_VkDeviceMemory((VkDeviceMemory*)&memory); mImpl->log("finish vkFreeMemorySyncGOOGLE");; return vkFreeMemorySyncGOOGLE_VkResult_return; } @@ -23528,7 +24024,7 @@ void VkEncoder::vkQueueHostSyncGOOGLE( uint32_t needHostSync, uint32_t sequenceNumber) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueHostSyncGOOGLE encode"); mImpl->log("start vkQueueHostSyncGOOGLE"); auto stream = mImpl->stream(); @@ -23562,6 +24058,9 @@ void VkEncoder::vkQueueHostSyncGOOGLE( stream->write((uint32_t*)&local_sequenceNumber, sizeof(uint32_t)); AEMU_SCOPED_TRACE("vkQueueHostSyncGOOGLE readParams"); AEMU_SCOPED_TRACE("vkQueueHostSyncGOOGLE returnUnmarshal"); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkQueueHostSyncGOOGLE");; } @@ -23571,7 +24070,7 @@ void VkEncoder::vkQueueSubmitAsyncGOOGLE( const VkSubmitInfo* pSubmits, VkFence fence) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueSubmitAsyncGOOGLE encode"); mImpl->log("start vkQueueSubmitAsyncGOOGLE"); auto stream = mImpl->stream(); @@ -23635,13 +24134,16 @@ void VkEncoder::vkQueueSubmitAsyncGOOGLE( AEMU_SCOPED_TRACE("vkQueueSubmitAsyncGOOGLE readParams"); AEMU_SCOPED_TRACE("vkQueueSubmitAsyncGOOGLE returnUnmarshal"); stream->flush(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkQueueSubmitAsyncGOOGLE");; } void VkEncoder::vkQueueWaitIdleAsyncGOOGLE( VkQueue queue) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueWaitIdleAsyncGOOGLE encode"); mImpl->log("start vkQueueWaitIdleAsyncGOOGLE"); auto stream = mImpl->stream(); @@ -23668,6 +24170,9 @@ void VkEncoder::vkQueueWaitIdleAsyncGOOGLE( AEMU_SCOPED_TRACE("vkQueueWaitIdleAsyncGOOGLE readParams"); AEMU_SCOPED_TRACE("vkQueueWaitIdleAsyncGOOGLE returnUnmarshal"); stream->flush(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkQueueWaitIdleAsyncGOOGLE");; } @@ -23677,7 +24182,7 @@ void VkEncoder::vkQueueBindSparseAsyncGOOGLE( const VkBindSparseInfo* pBindInfo, VkFence fence) { - AutoLock encoderLock(mImpl->lock); + EncoderAutoLock encoderLock(this); AEMU_SCOPED_TRACE("vkQueueBindSparseAsyncGOOGLE encode"); mImpl->log("start vkQueueBindSparseAsyncGOOGLE"); auto stream = mImpl->stream(); @@ -23741,6 +24246,9 @@ void VkEncoder::vkQueueBindSparseAsyncGOOGLE( AEMU_SCOPED_TRACE("vkQueueBindSparseAsyncGOOGLE readParams"); AEMU_SCOPED_TRACE("vkQueueBindSparseAsyncGOOGLE returnUnmarshal"); stream->flush(); + pool->freeAll(); + countingStream->clearPool(); + stream->clearPool(); mImpl->log("finish vkQueueBindSparseAsyncGOOGLE");; } diff --git a/system/vulkan_enc/VkEncoder.h b/system/vulkan_enc/VkEncoder.h index 0dec1b66..bde9ab8a 100644 --- a/system/vulkan_enc/VkEncoder.h +++ b/system/vulkan_enc/VkEncoder.h @@ -28,7 +28,6 @@ #include "goldfish_vk_private_defs.h" -#include <functional> #include <memory> class IOStream; @@ -42,10 +41,8 @@ public: ~VkEncoder(); void flush(); - - using CleanupCallback = std::function<void()>; - void registerCleanupCallback(void* handle, CleanupCallback cb); - void unregisterCleanupCallback(void* handle); + void lock(); + void unlock(); #ifdef VK_VERSION_1_0 VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, |