diff --git a/framework/generated/generated_vulkan_api_call_encoders.cpp b/framework/generated/generated_vulkan_api_call_encoders.cpp index 17542fe28d..2457c8bcc9 100644 --- a/framework/generated/generated_vulkan_api_call_encoders.cpp +++ b/framework/generated/generated_vulkan_api_call_encoders.cpp @@ -88,7 +88,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -100,19 +102,19 @@ VKAPI_ATTR void VKAPI_CALL DestroyInstance( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pAllocator); + CustomEncoderPreCall::Dispatch(manager, instance, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyInstance); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyInstance); if (encoder) { encoder->EncodeHandleValue(instance); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(instance); + manager->EndDestroyApiCallCapture(instance); } GetInstanceTable(instance)->DestroyInstance(instance, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), instance, pAllocator); + CustomEncoderPostCall::Dispatch(manager, instance, pAllocator); DestroyWrappedHandle(instance); } @@ -122,7 +124,9 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -136,7 +140,7 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDevices( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pPhysicalDeviceCount, pPhysicalDevices); + CustomEncoderPreCall::Dispatch(manager, instance, pPhysicalDeviceCount, pPhysicalDevices); VkResult result = GetInstanceTable(instance)->EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices); @@ -149,17 +153,17 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDevices( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkEnumeratePhysicalDevices); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkEnumeratePhysicalDevices); if (encoder) { encoder->EncodeHandleValue(instance); encoder->EncodeUInt32Ptr(pPhysicalDeviceCount, omit_output_data); encoder->EncodeHandleArray(pPhysicalDevices, (pPhysicalDeviceCount != nullptr) ? (*pPhysicalDeviceCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndGroupCreateApiCallCapture(result, instance, nullptr, (pPhysicalDeviceCount != nullptr) ? (*pPhysicalDeviceCount) : 0, pPhysicalDevices, nullptr); + manager->EndGroupCreateApiCallCapture(result, instance, nullptr, (pPhysicalDeviceCount != nullptr) ? (*pPhysicalDeviceCount) : 0, pPhysicalDevices, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pPhysicalDeviceCount, pPhysicalDevices); + CustomEncoderPostCall::Dispatch(manager, result, instance, pPhysicalDeviceCount, pPhysicalDevices); return result; } @@ -168,7 +172,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -180,19 +186,19 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFeatures( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFeatures); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pFeatures); GetInstanceTable(physicalDevice)->GetPhysicalDeviceFeatures(physicalDevice, pFeatures); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFeatures); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFeatures); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pFeatures); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFeatures); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pFeatures); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties( @@ -200,7 +206,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties( VkFormat format, VkFormatProperties* pFormatProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -212,20 +220,20 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, format, pFormatProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, format, pFormatProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFormatProperties); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFormatProperties); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeEnumValue(format); EncodeStructPtr(encoder, pFormatProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, format, pFormatProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, format, pFormatProperties); } VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties( @@ -237,7 +245,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties( VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -251,7 +261,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties); if (result < 0) @@ -259,7 +269,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceImageFormatProperties); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceImageFormatProperties); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -270,10 +280,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties( encoder->EncodeFlagsValue(flags); EncodeStructPtr(encoder, pImageFormatProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties); return result; } @@ -282,7 +292,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -294,19 +306,19 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceProperties( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceProperties(physicalDevice, pProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceProperties); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceProperties); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pProperties); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyProperties( @@ -314,7 +326,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -326,27 +340,29 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyProperties( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); - VulkanCaptureManager::Get()->OverrideGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); + manager->OverrideGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceQueueFamilyProperties); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceQueueFamilyProperties); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pQueueFamilyPropertyCount); EncodeStructArray(encoder, pQueueFamilyProperties, (pQueueFamilyPropertyCount != nullptr) ? (*pQueueFamilyPropertyCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -358,19 +374,19 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMemoryProperties( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pMemoryProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pMemoryProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceMemoryProperties); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceMemoryProperties); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pMemoryProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pMemoryProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pMemoryProperties); } VKAPI_ATTR VkResult VKAPI_CALL CreateDevice( @@ -379,7 +395,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDevice( const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -393,15 +411,15 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDevice( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pCreateInfo, pAllocator, pDevice); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pCreateInfo, pAllocator, pDevice); - VkResult result = VulkanCaptureManager::Get()->OverrideCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice); + VkResult result = manager->OverrideCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice); if (result < 0) { omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDevice); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDevice); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -409,10 +427,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDevice( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pDevice, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, physicalDevice, pDevice, pCreateInfo); + manager->EndCreateApiCallCapture(result, physicalDevice, pDevice, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pCreateInfo, pAllocator, pDevice); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pCreateInfo, pAllocator, pDevice); return result; } @@ -421,7 +439,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -433,19 +453,19 @@ VKAPI_ATTR void VKAPI_CALL DestroyDevice( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDevice); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDevice); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(device); + manager->EndDestroyApiCallCapture(device); } GetDeviceTable(device)->DestroyDevice(device, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, pAllocator); DestroyWrappedHandle(device); } @@ -456,7 +476,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceQueue( uint32_t queueIndex, VkQueue* pQueue) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -468,23 +490,23 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceQueue( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, queueFamilyIndex, queueIndex, pQueue); + CustomEncoderPreCall::Dispatch(manager, device, queueFamilyIndex, queueIndex, pQueue); GetDeviceTable(device)->GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue); CreateWrappedHandle(device, NoParentWrapper::kHandleValue, pQueue, VulkanCaptureManager::GetUniqueId); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceQueue); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceQueue); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(queueFamilyIndex); encoder->EncodeUInt32Value(queueIndex); encoder->EncodeHandlePtr(pQueue); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(VK_SUCCESS, device, pQueue, nullptr); + manager->EndCreateApiCallCapture(VK_SUCCESS, device, pQueue, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, queueFamilyIndex, queueIndex, pQueue); + CustomEncoderPostCall::Dispatch(manager, device, queueFamilyIndex, queueIndex, pQueue); } VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit( @@ -493,7 +515,9 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit( const VkSubmitInfo* pSubmits, VkFence fence) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -505,14 +529,14 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue, submitCount, pSubmits, fence); + CustomEncoderPreCall::Dispatch(manager, queue, submitCount, pSubmits, fence); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSubmitInfo* pSubmits_unwrapped = UnwrapStructArrayHandles(pSubmits, submitCount, handle_unwrap_memory); VkResult result = GetDeviceTable(queue)->QueueSubmit(queue, submitCount, pSubmits_unwrapped, fence); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueSubmit); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueSubmit); if (encoder) { encoder->EncodeHandleValue(queue); @@ -520,10 +544,10 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit( EncodeStructArray(encoder, pSubmits, submitCount); encoder->EncodeHandleValue(fence); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, queue, submitCount, pSubmits, fence); + CustomEncoderPostCall::Dispatch(manager, result, queue, submitCount, pSubmits, fence); return result; } @@ -531,7 +555,9 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit( VKAPI_ATTR VkResult VKAPI_CALL QueueWaitIdle( VkQueue queue) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -543,19 +569,19 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueWaitIdle( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue); + CustomEncoderPreCall::Dispatch(manager, queue); VkResult result = GetDeviceTable(queue)->QueueWaitIdle(queue); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueWaitIdle); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueWaitIdle); if (encoder) { encoder->EncodeHandleValue(queue); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, queue); + CustomEncoderPostCall::Dispatch(manager, result, queue); return result; } @@ -563,7 +589,9 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueWaitIdle( VKAPI_ATTR VkResult VKAPI_CALL DeviceWaitIdle( VkDevice device) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -575,19 +603,19 @@ VKAPI_ATTR VkResult VKAPI_CALL DeviceWaitIdle( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device); + CustomEncoderPreCall::Dispatch(manager, device); VkResult result = GetDeviceTable(device)->DeviceWaitIdle(device); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDeviceWaitIdle); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDeviceWaitIdle); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device); + CustomEncoderPostCall::Dispatch(manager, result, device); return result; } @@ -598,7 +626,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AllocateMemory( const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -612,15 +642,15 @@ VKAPI_ATTR VkResult VKAPI_CALL AllocateMemory( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pAllocateInfo, pAllocator, pMemory); + CustomEncoderPreCall::Dispatch(manager, device, pAllocateInfo, pAllocator, pMemory); - VkResult result = VulkanCaptureManager::Get()->OverrideAllocateMemory(device, pAllocateInfo, pAllocator, pMemory); + VkResult result = manager->OverrideAllocateMemory(device, pAllocateInfo, pAllocator, pMemory); if (result < 0) { omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkAllocateMemory); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkAllocateMemory); if (encoder) { encoder->EncodeHandleValue(device); @@ -628,10 +658,10 @@ VKAPI_ATTR VkResult VKAPI_CALL AllocateMemory( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pMemory, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pMemory, pAllocateInfo); + manager->EndCreateApiCallCapture(result, device, pMemory, pAllocateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pAllocateInfo, pAllocator, pMemory); + CustomEncoderPostCall::Dispatch(manager, result, device, pAllocateInfo, pAllocator, pMemory); return result; } @@ -641,7 +671,9 @@ VKAPI_ATTR void VKAPI_CALL FreeMemory( VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -653,20 +685,20 @@ VKAPI_ATTR void VKAPI_CALL FreeMemory( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, memory, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, memory, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkFreeMemory); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkFreeMemory); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(memory); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(memory); + manager->EndDestroyApiCallCapture(memory); } GetDeviceTable(device)->FreeMemory(device, memory, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, memory, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, memory, pAllocator); DestroyWrappedHandle(memory); } @@ -679,7 +711,9 @@ VKAPI_ATTR VkResult VKAPI_CALL MapMemory( VkMemoryMapFlags flags, void** ppData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -693,7 +727,7 @@ VKAPI_ATTR VkResult VKAPI_CALL MapMemory( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, memory, offset, size, flags, ppData); + CustomEncoderPreCall::Dispatch(manager, device, memory, offset, size, flags, ppData); VkResult result = GetDeviceTable(device)->MapMemory(device, memory, offset, size, flags, ppData); if (result < 0) @@ -701,7 +735,7 @@ VKAPI_ATTR VkResult VKAPI_CALL MapMemory( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkMapMemory); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkMapMemory); if (encoder) { encoder->EncodeHandleValue(device); @@ -711,10 +745,10 @@ VKAPI_ATTR VkResult VKAPI_CALL MapMemory( encoder->EncodeFlagsValue(flags); encoder->EncodeVoidPtrPtr(ppData, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, memory, offset, size, flags, ppData); + CustomEncoderPostCall::Dispatch(manager, result, device, memory, offset, size, flags, ppData); return result; } @@ -723,7 +757,9 @@ VKAPI_ATTR void VKAPI_CALL UnmapMemory( VkDevice device, VkDeviceMemory memory) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -735,19 +771,19 @@ VKAPI_ATTR void VKAPI_CALL UnmapMemory( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, memory); + CustomEncoderPreCall::Dispatch(manager, device, memory); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkUnmapMemory); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkUnmapMemory); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(memory); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->UnmapMemory(device, memory); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, memory); + CustomEncoderPostCall::Dispatch(manager, device, memory); } VKAPI_ATTR VkResult VKAPI_CALL FlushMappedMemoryRanges( @@ -755,7 +791,9 @@ VKAPI_ATTR VkResult VKAPI_CALL FlushMappedMemoryRanges( uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -767,24 +805,24 @@ VKAPI_ATTR VkResult VKAPI_CALL FlushMappedMemoryRanges( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, memoryRangeCount, pMemoryRanges); + CustomEncoderPreCall::Dispatch(manager, device, memoryRangeCount, pMemoryRanges); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMappedMemoryRange* pMemoryRanges_unwrapped = UnwrapStructArrayHandles(pMemoryRanges, memoryRangeCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkFlushMappedMemoryRanges); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkFlushMappedMemoryRanges); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(memoryRangeCount); EncodeStructArray(encoder, pMemoryRanges, memoryRangeCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, memoryRangeCount, pMemoryRanges); + CustomEncoderPostCall::Dispatch(manager, result, device, memoryRangeCount, pMemoryRanges); return result; } @@ -794,7 +832,9 @@ VKAPI_ATTR VkResult VKAPI_CALL InvalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -806,24 +846,24 @@ VKAPI_ATTR VkResult VKAPI_CALL InvalidateMappedMemoryRanges( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, memoryRangeCount, pMemoryRanges); + CustomEncoderPreCall::Dispatch(manager, device, memoryRangeCount, pMemoryRanges); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMappedMemoryRange* pMemoryRanges_unwrapped = UnwrapStructArrayHandles(pMemoryRanges, memoryRangeCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkInvalidateMappedMemoryRanges); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkInvalidateMappedMemoryRanges); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(memoryRangeCount); EncodeStructArray(encoder, pMemoryRanges, memoryRangeCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, memoryRangeCount, pMemoryRanges); + CustomEncoderPostCall::Dispatch(manager, result, device, memoryRangeCount, pMemoryRanges); return result; } @@ -833,7 +873,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceMemoryCommitment( VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -845,20 +887,20 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceMemoryCommitment( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, memory, pCommittedMemoryInBytes); + CustomEncoderPreCall::Dispatch(manager, device, memory, pCommittedMemoryInBytes); GetDeviceTable(device)->GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceMemoryCommitment); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceMemoryCommitment); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(memory); encoder->EncodeVkDeviceSizePtr(pCommittedMemoryInBytes); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, memory, pCommittedMemoryInBytes); + CustomEncoderPostCall::Dispatch(manager, device, memory, pCommittedMemoryInBytes); } VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory( @@ -867,7 +909,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory( VkDeviceMemory memory, VkDeviceSize memoryOffset) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -879,11 +923,11 @@ VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, buffer, memory, memoryOffset); + CustomEncoderPreCall::Dispatch(manager, device, buffer, memory, memoryOffset); VkResult result = GetDeviceTable(device)->BindBufferMemory(device, buffer, memory, memoryOffset); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindBufferMemory); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindBufferMemory); if (encoder) { encoder->EncodeHandleValue(device); @@ -891,10 +935,10 @@ VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory( encoder->EncodeHandleValue(memory); encoder->EncodeVkDeviceSizeValue(memoryOffset); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, buffer, memory, memoryOffset); + CustomEncoderPostCall::Dispatch(manager, result, device, buffer, memory, memoryOffset); return result; } @@ -905,7 +949,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory( VkDeviceMemory memory, VkDeviceSize memoryOffset) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -917,11 +963,11 @@ VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, image, memory, memoryOffset); + CustomEncoderPreCall::Dispatch(manager, device, image, memory, memoryOffset); VkResult result = GetDeviceTable(device)->BindImageMemory(device, image, memory, memoryOffset); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindImageMemory); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindImageMemory); if (encoder) { encoder->EncodeHandleValue(device); @@ -929,10 +975,10 @@ VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory( encoder->EncodeHandleValue(memory); encoder->EncodeVkDeviceSizeValue(memoryOffset); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, image, memory, memoryOffset); + CustomEncoderPostCall::Dispatch(manager, result, device, image, memory, memoryOffset); return result; } @@ -942,7 +988,9 @@ VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements( VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -954,20 +1002,20 @@ VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, buffer, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, buffer, pMemoryRequirements); GetDeviceTable(device)->GetBufferMemoryRequirements(device, buffer, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferMemoryRequirements); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferMemoryRequirements); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(buffer); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, buffer, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, buffer, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements( @@ -975,7 +1023,9 @@ VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements( VkImage image, VkMemoryRequirements* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -987,20 +1037,20 @@ VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, image, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, image, pMemoryRequirements); GetDeviceTable(device)->GetImageMemoryRequirements(device, image, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageMemoryRequirements); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageMemoryRequirements); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(image); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, image, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, image, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements( @@ -1009,7 +1059,9 @@ VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements( uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1021,21 +1073,21 @@ VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements); GetDeviceTable(device)->GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSparseMemoryRequirements); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSparseMemoryRequirements); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(image); encoder->EncodeUInt32Ptr(pSparseMemoryRequirementCount); EncodeStructArray(encoder, pSparseMemoryRequirements, (pSparseMemoryRequirementCount != nullptr) ? (*pSparseMemoryRequirementCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties( @@ -1048,7 +1100,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties( uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1060,11 +1114,11 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSparseImageFormatProperties); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSparseImageFormatProperties); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -1075,10 +1129,10 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties( encoder->EncodeEnumValue(tiling); encoder->EncodeUInt32Ptr(pPropertyCount); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties); } VKAPI_ATTR VkResult VKAPI_CALL QueueBindSparse( @@ -1087,7 +1141,9 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueBindSparse( const VkBindSparseInfo* pBindInfo, VkFence fence) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1099,14 +1155,14 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueBindSparse( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue, bindInfoCount, pBindInfo, fence); + CustomEncoderPreCall::Dispatch(manager, queue, bindInfoCount, pBindInfo, fence); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBindSparseInfo* pBindInfo_unwrapped = UnwrapStructArrayHandles(pBindInfo, bindInfoCount, handle_unwrap_memory); VkResult result = GetDeviceTable(queue)->QueueBindSparse(queue, bindInfoCount, pBindInfo_unwrapped, fence); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueBindSparse); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueBindSparse); if (encoder) { encoder->EncodeHandleValue(queue); @@ -1114,10 +1170,10 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueBindSparse( EncodeStructArray(encoder, pBindInfo, bindInfoCount); encoder->EncodeHandleValue(fence); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, queue, bindInfoCount, pBindInfo, fence); + CustomEncoderPostCall::Dispatch(manager, result, queue, bindInfoCount, pBindInfo, fence); return result; } @@ -1128,7 +1184,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateFence( const VkAllocationCallbacks* pAllocator, VkFence* pFence) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1142,7 +1200,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateFence( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pFence); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pFence); VkResult result = GetDeviceTable(device)->CreateFence(device, pCreateInfo, pAllocator, pFence); @@ -1155,7 +1213,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateFence( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateFence); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateFence); if (encoder) { encoder->EncodeHandleValue(device); @@ -1163,10 +1221,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateFence( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pFence, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pFence, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pFence, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pFence); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pFence); return result; } @@ -1176,7 +1234,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyFence( VkFence fence, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1188,20 +1248,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyFence( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, fence, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, fence, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyFence); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyFence); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(fence); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(fence); + manager->EndDestroyApiCallCapture(fence); } GetDeviceTable(device)->DestroyFence(device, fence, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, fence, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, fence, pAllocator); DestroyWrappedHandle(fence); } @@ -1211,7 +1271,9 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetFences( uint32_t fenceCount, const VkFence* pFences) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1223,21 +1285,21 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetFences( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, fenceCount, pFences); + CustomEncoderPreCall::Dispatch(manager, device, fenceCount, pFences); VkResult result = GetDeviceTable(device)->ResetFences(device, fenceCount, pFences); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetFences); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetFences); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(fenceCount); encoder->EncodeHandleArray(pFences, fenceCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, fenceCount, pFences); + CustomEncoderPostCall::Dispatch(manager, result, device, fenceCount, pFences); return result; } @@ -1246,7 +1308,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceStatus( VkDevice device, VkFence fence) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1258,20 +1322,20 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceStatus( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, fence); + CustomEncoderPreCall::Dispatch(manager, device, fence); VkResult result = GetDeviceTable(device)->GetFenceStatus(device, fence); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetFenceStatus); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetFenceStatus); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(fence); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, fence); + CustomEncoderPostCall::Dispatch(manager, result, device, fence); return result; } @@ -1283,7 +1347,9 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitForFences( VkBool32 waitAll, uint64_t timeout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1295,11 +1361,11 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitForFences( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, fenceCount, pFences, waitAll, timeout); + CustomEncoderPreCall::Dispatch(manager, device, fenceCount, pFences, waitAll, timeout); VkResult result = GetDeviceTable(device)->WaitForFences(device, fenceCount, pFences, waitAll, timeout); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWaitForFences); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWaitForFences); if (encoder) { encoder->EncodeHandleValue(device); @@ -1308,10 +1374,10 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitForFences( encoder->EncodeVkBool32Value(waitAll); encoder->EncodeUInt64Value(timeout); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, fenceCount, pFences, waitAll, timeout); + CustomEncoderPostCall::Dispatch(manager, result, device, fenceCount, pFences, waitAll, timeout); return result; } @@ -1322,7 +1388,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSemaphore( const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1336,7 +1404,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSemaphore( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pSemaphore); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pSemaphore); VkResult result = GetDeviceTable(device)->CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore); @@ -1349,7 +1417,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSemaphore( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSemaphore); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSemaphore); if (encoder) { encoder->EncodeHandleValue(device); @@ -1357,10 +1425,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSemaphore( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSemaphore, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pSemaphore, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pSemaphore, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pSemaphore); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pSemaphore); return result; } @@ -1370,7 +1438,9 @@ VKAPI_ATTR void VKAPI_CALL DestroySemaphore( VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1382,20 +1452,20 @@ VKAPI_ATTR void VKAPI_CALL DestroySemaphore( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, semaphore, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, semaphore, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySemaphore); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySemaphore); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(semaphore); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(semaphore); + manager->EndDestroyApiCallCapture(semaphore); } GetDeviceTable(device)->DestroySemaphore(device, semaphore, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, semaphore, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, semaphore, pAllocator); DestroyWrappedHandle(semaphore); } @@ -1406,7 +1476,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateEvent( const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1420,7 +1492,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateEvent( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pEvent); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pEvent); VkResult result = GetDeviceTable(device)->CreateEvent(device, pCreateInfo, pAllocator, pEvent); @@ -1433,7 +1505,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateEvent( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateEvent); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateEvent); if (encoder) { encoder->EncodeHandleValue(device); @@ -1441,10 +1513,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateEvent( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pEvent, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pEvent, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pEvent, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pEvent); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pEvent); return result; } @@ -1454,7 +1526,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyEvent( VkEvent event, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1466,20 +1540,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyEvent( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, event, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, event, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyEvent); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyEvent); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(event); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(event); + manager->EndDestroyApiCallCapture(event); } GetDeviceTable(device)->DestroyEvent(device, event, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, event, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, event, pAllocator); DestroyWrappedHandle(event); } @@ -1488,7 +1562,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetEventStatus( VkDevice device, VkEvent event) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1500,20 +1576,20 @@ VKAPI_ATTR VkResult VKAPI_CALL GetEventStatus( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, event); + CustomEncoderPreCall::Dispatch(manager, device, event); VkResult result = GetDeviceTable(device)->GetEventStatus(device, event); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetEventStatus); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetEventStatus); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(event); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, event); + CustomEncoderPostCall::Dispatch(manager, result, device, event); return result; } @@ -1522,7 +1598,9 @@ VKAPI_ATTR VkResult VKAPI_CALL SetEvent( VkDevice device, VkEvent event) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1534,20 +1612,20 @@ VKAPI_ATTR VkResult VKAPI_CALL SetEvent( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, event); + CustomEncoderPreCall::Dispatch(manager, device, event); VkResult result = GetDeviceTable(device)->SetEvent(device, event); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetEvent); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetEvent); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(event); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, event); + CustomEncoderPostCall::Dispatch(manager, result, device, event); return result; } @@ -1556,7 +1634,9 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetEvent( VkDevice device, VkEvent event) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1568,20 +1648,20 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetEvent( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, event); + CustomEncoderPreCall::Dispatch(manager, device, event); VkResult result = GetDeviceTable(device)->ResetEvent(device, event); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetEvent); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetEvent); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(event); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, event); + CustomEncoderPostCall::Dispatch(manager, result, device, event); return result; } @@ -1592,7 +1672,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateQueryPool( const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1606,7 +1688,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateQueryPool( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pQueryPool); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pQueryPool); VkResult result = GetDeviceTable(device)->CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool); @@ -1619,7 +1701,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateQueryPool( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateQueryPool); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateQueryPool); if (encoder) { encoder->EncodeHandleValue(device); @@ -1627,10 +1709,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateQueryPool( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pQueryPool, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pQueryPool, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pQueryPool, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pQueryPool); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pQueryPool); return result; } @@ -1640,7 +1722,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyQueryPool( VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1652,20 +1736,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyQueryPool( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, queryPool, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, queryPool, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyQueryPool); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyQueryPool); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(queryPool); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(queryPool); + manager->EndDestroyApiCallCapture(queryPool); } GetDeviceTable(device)->DestroyQueryPool(device, queryPool, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, queryPool, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, queryPool, pAllocator); DestroyWrappedHandle(queryPool); } @@ -1680,7 +1764,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetQueryPoolResults( VkDeviceSize stride, VkQueryResultFlags flags) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1694,7 +1780,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetQueryPoolResults( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags); + CustomEncoderPreCall::Dispatch(manager, device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags); VkResult result = GetDeviceTable(device)->GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags); if (result < 0) @@ -1702,7 +1788,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetQueryPoolResults( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetQueryPoolResults); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetQueryPoolResults); if (encoder) { encoder->EncodeHandleValue(device); @@ -1714,10 +1800,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetQueryPoolResults( encoder->EncodeVkDeviceSizeValue(stride); encoder->EncodeFlagsValue(flags); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags); + CustomEncoderPostCall::Dispatch(manager, result, device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags); return result; } @@ -1728,7 +1814,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateBuffer( const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1742,15 +1830,15 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateBuffer( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pBuffer); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pBuffer); - VkResult result = VulkanCaptureManager::Get()->OverrideCreateBuffer(device, pCreateInfo, pAllocator, pBuffer); + VkResult result = manager->OverrideCreateBuffer(device, pCreateInfo, pAllocator, pBuffer); if (result < 0) { omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateBuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateBuffer); if (encoder) { encoder->EncodeHandleValue(device); @@ -1758,10 +1846,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateBuffer( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pBuffer, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pBuffer, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pBuffer, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pBuffer); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pBuffer); return result; } @@ -1771,7 +1859,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyBuffer( VkBuffer buffer, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1783,20 +1873,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyBuffer( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, buffer, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, buffer, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyBuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyBuffer); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(buffer); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(buffer); + manager->EndDestroyApiCallCapture(buffer); } GetDeviceTable(device)->DestroyBuffer(device, buffer, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, buffer, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, buffer, pAllocator); DestroyWrappedHandle(buffer); } @@ -1807,7 +1897,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateBufferView( const VkAllocationCallbacks* pAllocator, VkBufferView* pView) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1821,9 +1913,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateBufferView( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pView); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pView); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBufferViewCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateBufferView(device, pCreateInfo_unwrapped, pAllocator, pView); @@ -1837,7 +1929,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateBufferView( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateBufferView); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateBufferView); if (encoder) { encoder->EncodeHandleValue(device); @@ -1845,10 +1937,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateBufferView( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pView, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pView, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pView, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pView); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pView); return result; } @@ -1858,7 +1950,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyBufferView( VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1870,20 +1964,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyBufferView( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, bufferView, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, bufferView, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyBufferView); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyBufferView); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(bufferView); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(bufferView); + manager->EndDestroyApiCallCapture(bufferView); } GetDeviceTable(device)->DestroyBufferView(device, bufferView, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, bufferView, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, bufferView, pAllocator); DestroyWrappedHandle(bufferView); } @@ -1894,7 +1988,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImage( const VkAllocationCallbacks* pAllocator, VkImage* pImage) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1908,15 +2004,15 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImage( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pImage); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pImage); - VkResult result = VulkanCaptureManager::Get()->OverrideCreateImage(device, pCreateInfo, pAllocator, pImage); + VkResult result = manager->OverrideCreateImage(device, pCreateInfo, pAllocator, pImage); if (result < 0) { omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateImage); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateImage); if (encoder) { encoder->EncodeHandleValue(device); @@ -1924,10 +2020,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImage( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pImage, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pImage, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pImage, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pImage); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pImage); return result; } @@ -1937,7 +2033,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyImage( VkImage image, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1949,20 +2047,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyImage( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, image, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, image, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyImage); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyImage); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(image); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(image); + manager->EndDestroyApiCallCapture(image); } GetDeviceTable(device)->DestroyImage(device, image, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, image, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, image, pAllocator); DestroyWrappedHandle(image); } @@ -1973,7 +2071,9 @@ VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout( const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -1985,21 +2085,21 @@ VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, image, pSubresource, pLayout); + CustomEncoderPreCall::Dispatch(manager, device, image, pSubresource, pLayout); GetDeviceTable(device)->GetImageSubresourceLayout(device, image, pSubresource, pLayout); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSubresourceLayout); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSubresourceLayout); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(image); EncodeStructPtr(encoder, pSubresource); EncodeStructPtr(encoder, pLayout); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, image, pSubresource, pLayout); + CustomEncoderPostCall::Dispatch(manager, device, image, pSubresource, pLayout); } VKAPI_ATTR VkResult VKAPI_CALL CreateImageView( @@ -2008,7 +2108,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImageView( const VkAllocationCallbacks* pAllocator, VkImageView* pView) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2022,9 +2124,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImageView( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pView); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pView); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImageViewCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateImageView(device, pCreateInfo_unwrapped, pAllocator, pView); @@ -2038,7 +2140,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImageView( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateImageView); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateImageView); if (encoder) { encoder->EncodeHandleValue(device); @@ -2046,10 +2148,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImageView( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pView, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pView, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pView, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pView); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pView); return result; } @@ -2059,7 +2161,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyImageView( VkImageView imageView, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2071,20 +2175,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyImageView( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, imageView, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, imageView, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyImageView); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyImageView); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(imageView); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(imageView); + manager->EndDestroyApiCallCapture(imageView); } GetDeviceTable(device)->DestroyImageView(device, imageView, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, imageView, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, imageView, pAllocator); DestroyWrappedHandle(imageView); } @@ -2095,7 +2199,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateShaderModule( const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2109,9 +2215,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateShaderModule( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pShaderModule); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pShaderModule); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkShaderModuleCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateShaderModule(device, pCreateInfo_unwrapped, pAllocator, pShaderModule); @@ -2125,7 +2231,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateShaderModule( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateShaderModule); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateShaderModule); if (encoder) { encoder->EncodeHandleValue(device); @@ -2133,10 +2239,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateShaderModule( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pShaderModule, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pShaderModule, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pShaderModule, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pShaderModule); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pShaderModule); return result; } @@ -2146,7 +2252,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyShaderModule( VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2158,20 +2266,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyShaderModule( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, shaderModule, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, shaderModule, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyShaderModule); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyShaderModule); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(shaderModule); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(shaderModule); + manager->EndDestroyApiCallCapture(shaderModule); } GetDeviceTable(device)->DestroyShaderModule(device, shaderModule, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, shaderModule, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, shaderModule, pAllocator); DestroyWrappedHandle(shaderModule); } @@ -2182,7 +2290,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineCache( const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2196,7 +2306,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineCache( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pPipelineCache); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pPipelineCache); VkResult result = GetDeviceTable(device)->CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache); @@ -2209,7 +2319,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineCache( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreatePipelineCache); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreatePipelineCache); if (encoder) { encoder->EncodeHandleValue(device); @@ -2217,10 +2327,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineCache( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pPipelineCache, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pPipelineCache, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pPipelineCache, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pPipelineCache); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pPipelineCache); return result; } @@ -2230,7 +2340,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyPipelineCache( VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2242,20 +2354,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyPipelineCache( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pipelineCache, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, pipelineCache, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyPipelineCache); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyPipelineCache); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(pipelineCache); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(pipelineCache); + manager->EndDestroyApiCallCapture(pipelineCache); } GetDeviceTable(device)->DestroyPipelineCache(device, pipelineCache, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pipelineCache, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, pipelineCache, pAllocator); DestroyWrappedHandle(pipelineCache); } @@ -2266,7 +2378,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineCacheData( size_t* pDataSize, void* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2280,7 +2394,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineCacheData( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pipelineCache, pDataSize, pData); + CustomEncoderPreCall::Dispatch(manager, device, pipelineCache, pDataSize, pData); VkResult result = GetDeviceTable(device)->GetPipelineCacheData(device, pipelineCache, pDataSize, pData); if (result < 0) @@ -2288,7 +2402,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineCacheData( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineCacheData); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineCacheData); if (encoder) { encoder->EncodeHandleValue(device); @@ -2296,10 +2410,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineCacheData( encoder->EncodeSizeTPtr(pDataSize, omit_output_data); encoder->EncodeVoidArray(pData, (pDataSize != nullptr) ? (*pDataSize) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pipelineCache, pDataSize, pData); + CustomEncoderPostCall::Dispatch(manager, result, device, pipelineCache, pDataSize, pData); return result; } @@ -2310,7 +2424,9 @@ VKAPI_ATTR VkResult VKAPI_CALL MergePipelineCaches( uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2322,11 +2438,11 @@ VKAPI_ATTR VkResult VKAPI_CALL MergePipelineCaches( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, dstCache, srcCacheCount, pSrcCaches); + CustomEncoderPreCall::Dispatch(manager, device, dstCache, srcCacheCount, pSrcCaches); VkResult result = GetDeviceTable(device)->MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkMergePipelineCaches); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkMergePipelineCaches); if (encoder) { encoder->EncodeHandleValue(device); @@ -2334,10 +2450,10 @@ VKAPI_ATTR VkResult VKAPI_CALL MergePipelineCaches( encoder->EncodeUInt32Value(srcCacheCount); encoder->EncodeHandleArray(pSrcCaches, srcCacheCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, dstCache, srcCacheCount, pSrcCaches); + CustomEncoderPostCall::Dispatch(manager, result, device, dstCache, srcCacheCount, pSrcCaches); return result; } @@ -2347,7 +2463,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyPipeline( VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2359,20 +2477,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyPipeline( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pipeline, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, pipeline, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyPipeline); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyPipeline); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(pipeline); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(pipeline); + manager->EndDestroyApiCallCapture(pipeline); } GetDeviceTable(device)->DestroyPipeline(device, pipeline, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pipeline, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, pipeline, pAllocator); DestroyWrappedHandle(pipeline); } @@ -2383,7 +2501,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineLayout( const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2397,9 +2517,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineLayout( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pPipelineLayout); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pPipelineLayout); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkPipelineLayoutCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreatePipelineLayout(device, pCreateInfo_unwrapped, pAllocator, pPipelineLayout); @@ -2413,7 +2533,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineLayout( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreatePipelineLayout); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreatePipelineLayout); if (encoder) { encoder->EncodeHandleValue(device); @@ -2421,10 +2541,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineLayout( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pPipelineLayout, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pPipelineLayout, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pPipelineLayout, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pPipelineLayout); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pPipelineLayout); return result; } @@ -2434,7 +2554,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyPipelineLayout( VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2446,20 +2568,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyPipelineLayout( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pipelineLayout, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, pipelineLayout, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyPipelineLayout); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyPipelineLayout); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(pipelineLayout); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(pipelineLayout); + manager->EndDestroyApiCallCapture(pipelineLayout); } GetDeviceTable(device)->DestroyPipelineLayout(device, pipelineLayout, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pipelineLayout, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, pipelineLayout, pAllocator); DestroyWrappedHandle(pipelineLayout); } @@ -2470,7 +2592,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSampler( const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2484,9 +2608,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSampler( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pSampler); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pSampler); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSamplerCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateSampler(device, pCreateInfo_unwrapped, pAllocator, pSampler); @@ -2500,7 +2624,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSampler( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSampler); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSampler); if (encoder) { encoder->EncodeHandleValue(device); @@ -2508,10 +2632,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSampler( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSampler, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pSampler, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pSampler, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pSampler); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pSampler); return result; } @@ -2521,7 +2645,9 @@ VKAPI_ATTR void VKAPI_CALL DestroySampler( VkSampler sampler, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2533,20 +2659,20 @@ VKAPI_ATTR void VKAPI_CALL DestroySampler( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, sampler, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, sampler, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySampler); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySampler); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(sampler); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(sampler); + manager->EndDestroyApiCallCapture(sampler); } GetDeviceTable(device)->DestroySampler(device, sampler, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, sampler, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, sampler, pAllocator); DestroyWrappedHandle(sampler); } @@ -2557,7 +2683,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorSetLayout( const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2571,9 +2699,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorSetLayout( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pSetLayout); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pSetLayout); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDescriptorSetLayoutCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateDescriptorSetLayout(device, pCreateInfo_unwrapped, pAllocator, pSetLayout); @@ -2587,7 +2715,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorSetLayout( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDescriptorSetLayout); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDescriptorSetLayout); if (encoder) { encoder->EncodeHandleValue(device); @@ -2595,10 +2723,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorSetLayout( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSetLayout, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pSetLayout, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pSetLayout, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pSetLayout); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pSetLayout); return result; } @@ -2608,7 +2736,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2620,20 +2750,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorSetLayout( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorSetLayout, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, descriptorSetLayout, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDescriptorSetLayout); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDescriptorSetLayout); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(descriptorSetLayout); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(descriptorSetLayout); + manager->EndDestroyApiCallCapture(descriptorSetLayout); } GetDeviceTable(device)->DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorSetLayout, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, descriptorSetLayout, pAllocator); DestroyWrappedHandle(descriptorSetLayout); } @@ -2644,7 +2774,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorPool( const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2658,7 +2790,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorPool( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pDescriptorPool); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pDescriptorPool); VkResult result = GetDeviceTable(device)->CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool); @@ -2671,7 +2803,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorPool( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDescriptorPool); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDescriptorPool); if (encoder) { encoder->EncodeHandleValue(device); @@ -2679,10 +2811,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorPool( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pDescriptorPool, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pDescriptorPool, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pDescriptorPool, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pDescriptorPool); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pDescriptorPool); return result; } @@ -2692,7 +2824,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorPool( VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2704,20 +2838,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorPool( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorPool, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, descriptorPool, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDescriptorPool); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDescriptorPool); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(descriptorPool); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(descriptorPool); + manager->EndDestroyApiCallCapture(descriptorPool); } GetDeviceTable(device)->DestroyDescriptorPool(device, descriptorPool, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorPool, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, descriptorPool, pAllocator); DestroyWrappedHandle(descriptorPool); } @@ -2727,7 +2861,9 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetDescriptorPool( VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2739,21 +2875,21 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetDescriptorPool( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorPool, flags); + CustomEncoderPreCall::Dispatch(manager, device, descriptorPool, flags); VkResult result = GetDeviceTable(device)->ResetDescriptorPool(device, descriptorPool, flags); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetDescriptorPool); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetDescriptorPool); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(descriptorPool); encoder->EncodeFlagsValue(flags); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, descriptorPool, flags); + CustomEncoderPostCall::Dispatch(manager, result, device, descriptorPool, flags); return result; } @@ -2763,7 +2899,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AllocateDescriptorSets( const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2777,9 +2915,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AllocateDescriptorSets( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pAllocateInfo, pDescriptorSets); + CustomEncoderPreCall::Dispatch(manager, device, pAllocateInfo, pDescriptorSets); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDescriptorSetAllocateInfo* pAllocateInfo_unwrapped = UnwrapStructPtrHandles(pAllocateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->AllocateDescriptorSets(device, pAllocateInfo_unwrapped, pDescriptorSets); @@ -2793,17 +2931,17 @@ VKAPI_ATTR VkResult VKAPI_CALL AllocateDescriptorSets( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkAllocateDescriptorSets); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkAllocateDescriptorSets); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pAllocateInfo); encoder->EncodeHandleArray(pDescriptorSets, (pAllocateInfo != nullptr) ? (pAllocateInfo->descriptorSetCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndPoolCreateApiCallCapture(result, device, (pAllocateInfo != nullptr) ? (pAllocateInfo->descriptorSetCount) : 0, pDescriptorSets, pAllocateInfo); + manager->EndPoolCreateApiCallCapture(result, device, (pAllocateInfo != nullptr) ? (pAllocateInfo->descriptorSetCount) : 0, pDescriptorSets, pAllocateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pAllocateInfo, pDescriptorSets); + CustomEncoderPostCall::Dispatch(manager, result, device, pAllocateInfo, pDescriptorSets); return result; } @@ -2814,7 +2952,9 @@ VKAPI_ATTR VkResult VKAPI_CALL FreeDescriptorSets( uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2826,11 +2966,11 @@ VKAPI_ATTR VkResult VKAPI_CALL FreeDescriptorSets( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorPool, descriptorSetCount, pDescriptorSets); + CustomEncoderPreCall::Dispatch(manager, device, descriptorPool, descriptorSetCount, pDescriptorSets); VkResult result = GetDeviceTable(device)->FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkFreeDescriptorSets); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkFreeDescriptorSets); if (encoder) { encoder->EncodeHandleValue(device); @@ -2838,10 +2978,10 @@ VKAPI_ATTR VkResult VKAPI_CALL FreeDescriptorSets( encoder->EncodeUInt32Value(descriptorSetCount); encoder->EncodeHandleArray(pDescriptorSets, descriptorSetCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(descriptorSetCount, pDescriptorSets); + manager->EndDestroyApiCallCapture(descriptorSetCount, pDescriptorSets); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, descriptorPool, descriptorSetCount, pDescriptorSets); + CustomEncoderPostCall::Dispatch(manager, result, device, descriptorPool, descriptorSetCount, pDescriptorSets); DestroyWrappedHandles(pDescriptorSets, descriptorSetCount); @@ -2855,7 +2995,9 @@ VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSets( uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2867,9 +3009,9 @@ VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSets( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies); + CustomEncoderPreCall::Dispatch(manager, device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkUpdateDescriptorSets); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkUpdateDescriptorSets); if (encoder) { encoder->EncodeHandleValue(device); @@ -2877,16 +3019,16 @@ VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSets( EncodeStructArray(encoder, pDescriptorWrites, descriptorWriteCount); encoder->EncodeUInt32Value(descriptorCopyCount); EncodeStructArray(encoder, pDescriptorCopies, descriptorCopyCount); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkWriteDescriptorSet* pDescriptorWrites_unwrapped = UnwrapStructArrayHandles(pDescriptorWrites, descriptorWriteCount, handle_unwrap_memory); const VkCopyDescriptorSet* pDescriptorCopies_unwrapped = UnwrapStructArrayHandles(pDescriptorCopies, descriptorCopyCount, handle_unwrap_memory); GetDeviceTable(device)->UpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites_unwrapped, descriptorCopyCount, pDescriptorCopies_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies); + CustomEncoderPostCall::Dispatch(manager, device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies); } VKAPI_ATTR VkResult VKAPI_CALL CreateFramebuffer( @@ -2895,7 +3037,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateFramebuffer( const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2909,9 +3053,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateFramebuffer( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pFramebuffer); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pFramebuffer); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkFramebufferCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateFramebuffer(device, pCreateInfo_unwrapped, pAllocator, pFramebuffer); @@ -2925,7 +3069,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateFramebuffer( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateFramebuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateFramebuffer); if (encoder) { encoder->EncodeHandleValue(device); @@ -2933,10 +3077,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateFramebuffer( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pFramebuffer, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pFramebuffer, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pFramebuffer, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pFramebuffer); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pFramebuffer); return result; } @@ -2946,7 +3090,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyFramebuffer( VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2958,20 +3104,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyFramebuffer( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, framebuffer, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, framebuffer, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyFramebuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyFramebuffer); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(framebuffer); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(framebuffer); + manager->EndDestroyApiCallCapture(framebuffer); } GetDeviceTable(device)->DestroyFramebuffer(device, framebuffer, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, framebuffer, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, framebuffer, pAllocator); DestroyWrappedHandle(framebuffer); } @@ -2982,7 +3128,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass( const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -2996,7 +3144,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pRenderPass); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pRenderPass); VkResult result = GetDeviceTable(device)->CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass); @@ -3009,7 +3157,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateRenderPass); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateRenderPass); if (encoder) { encoder->EncodeHandleValue(device); @@ -3017,10 +3165,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pRenderPass, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pRenderPass, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pRenderPass, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pRenderPass); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pRenderPass); return result; } @@ -3030,7 +3178,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyRenderPass( VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3042,20 +3192,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyRenderPass( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, renderPass, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, renderPass, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyRenderPass); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyRenderPass); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(renderPass); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(renderPass); + manager->EndDestroyApiCallCapture(renderPass); } GetDeviceTable(device)->DestroyRenderPass(device, renderPass, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, renderPass, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, renderPass, pAllocator); DestroyWrappedHandle(renderPass); } @@ -3065,7 +3215,9 @@ VKAPI_ATTR void VKAPI_CALL GetRenderAreaGranularity( VkRenderPass renderPass, VkExtent2D* pGranularity) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3077,20 +3229,20 @@ VKAPI_ATTR void VKAPI_CALL GetRenderAreaGranularity( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, renderPass, pGranularity); + CustomEncoderPreCall::Dispatch(manager, device, renderPass, pGranularity); GetDeviceTable(device)->GetRenderAreaGranularity(device, renderPass, pGranularity); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRenderAreaGranularity); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRenderAreaGranularity); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(renderPass); EncodeStructPtr(encoder, pGranularity); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, renderPass, pGranularity); + CustomEncoderPostCall::Dispatch(manager, device, renderPass, pGranularity); } VKAPI_ATTR VkResult VKAPI_CALL CreateCommandPool( @@ -3099,7 +3251,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateCommandPool( const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3113,7 +3267,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateCommandPool( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pCommandPool); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pCommandPool); VkResult result = GetDeviceTable(device)->CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool); @@ -3126,7 +3280,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateCommandPool( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateCommandPool); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateCommandPool); if (encoder) { encoder->EncodeHandleValue(device); @@ -3134,10 +3288,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateCommandPool( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pCommandPool, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pCommandPool, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pCommandPool, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pCommandPool); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pCommandPool); return result; } @@ -3147,7 +3301,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyCommandPool( VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3159,20 +3315,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyCommandPool( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, commandPool, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, commandPool, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyCommandPool); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyCommandPool); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(commandPool); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(commandPool); + manager->EndDestroyApiCallCapture(commandPool); } GetDeviceTable(device)->DestroyCommandPool(device, commandPool, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, commandPool, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, commandPool, pAllocator); DestroyWrappedHandle(commandPool); } @@ -3182,7 +3338,9 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetCommandPool( VkCommandPool commandPool, VkCommandPoolResetFlags flags) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3194,21 +3352,21 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetCommandPool( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, commandPool, flags); + CustomEncoderPreCall::Dispatch(manager, device, commandPool, flags); VkResult result = GetDeviceTable(device)->ResetCommandPool(device, commandPool, flags); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetCommandPool); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetCommandPool); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(commandPool); encoder->EncodeFlagsValue(flags); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, commandPool, flags); + CustomEncoderPostCall::Dispatch(manager, result, device, commandPool, flags); return result; } @@ -3218,7 +3376,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AllocateCommandBuffers( const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3232,9 +3392,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AllocateCommandBuffers( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pAllocateInfo, pCommandBuffers); + CustomEncoderPreCall::Dispatch(manager, device, pAllocateInfo, pCommandBuffers); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCommandBufferAllocateInfo* pAllocateInfo_unwrapped = UnwrapStructPtrHandles(pAllocateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->AllocateCommandBuffers(device, pAllocateInfo_unwrapped, pCommandBuffers); @@ -3248,17 +3408,17 @@ VKAPI_ATTR VkResult VKAPI_CALL AllocateCommandBuffers( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkAllocateCommandBuffers); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkAllocateCommandBuffers); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pAllocateInfo); encoder->EncodeHandleArray(pCommandBuffers, (pAllocateInfo != nullptr) ? (pAllocateInfo->commandBufferCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndPoolCreateApiCallCapture(result, device, (pAllocateInfo != nullptr) ? (pAllocateInfo->commandBufferCount) : 0, pCommandBuffers, pAllocateInfo); + manager->EndPoolCreateApiCallCapture(result, device, (pAllocateInfo != nullptr) ? (pAllocateInfo->commandBufferCount) : 0, pCommandBuffers, pAllocateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pAllocateInfo, pCommandBuffers); + CustomEncoderPostCall::Dispatch(manager, result, device, pAllocateInfo, pCommandBuffers); return result; } @@ -3269,7 +3429,9 @@ VKAPI_ATTR void VKAPI_CALL FreeCommandBuffers( uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3281,21 +3443,21 @@ VKAPI_ATTR void VKAPI_CALL FreeCommandBuffers( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, commandPool, commandBufferCount, pCommandBuffers); + CustomEncoderPreCall::Dispatch(manager, device, commandPool, commandBufferCount, pCommandBuffers); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkFreeCommandBuffers); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkFreeCommandBuffers); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(commandPool); encoder->EncodeUInt32Value(commandBufferCount); encoder->EncodeHandleArray(pCommandBuffers, commandBufferCount); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(commandBufferCount, pCommandBuffers); + manager->EndDestroyApiCallCapture(commandBufferCount, pCommandBuffers); } GetDeviceTable(device)->FreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, commandPool, commandBufferCount, pCommandBuffers); + CustomEncoderPostCall::Dispatch(manager, device, commandPool, commandBufferCount, pCommandBuffers); DestroyWrappedHandles(pCommandBuffers, commandBufferCount); } @@ -3304,7 +3466,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3316,23 +3480,23 @@ VKAPI_ATTR VkResult VKAPI_CALL BeginCommandBuffer( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pBeginInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pBeginInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCommandBufferBeginInfo* pBeginInfo_unwrapped = UnwrapStructPtrHandles(pBeginInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(commandBuffer)->BeginCommandBuffer(commandBuffer, pBeginInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkBeginCommandBuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkBeginCommandBuffer); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pBeginInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackBeginCommandBufferHandles, pBeginInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackBeginCommandBufferHandles, pBeginInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, commandBuffer, pBeginInfo); + CustomEncoderPostCall::Dispatch(manager, result, commandBuffer, pBeginInfo); return result; } @@ -3340,7 +3504,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BeginCommandBuffer( VKAPI_ATTR VkResult VKAPI_CALL EndCommandBuffer( VkCommandBuffer commandBuffer) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3352,19 +3518,19 @@ VKAPI_ATTR VkResult VKAPI_CALL EndCommandBuffer( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPreCall::Dispatch(manager, commandBuffer); VkResult result = GetDeviceTable(commandBuffer)->EndCommandBuffer(commandBuffer); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkEndCommandBuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkEndCommandBuffer); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, commandBuffer); + CustomEncoderPostCall::Dispatch(manager, result, commandBuffer); return result; } @@ -3373,7 +3539,9 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3385,20 +3553,20 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetCommandBuffer( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, flags); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, flags); VkResult result = GetDeviceTable(commandBuffer)->ResetCommandBuffer(commandBuffer, flags); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkResetCommandBuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkResetCommandBuffer); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFlagsValue(flags); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, commandBuffer, flags); + CustomEncoderPostCall::Dispatch(manager, result, commandBuffer, flags); return result; } @@ -3408,7 +3576,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindPipeline( VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3420,20 +3590,20 @@ VKAPI_ATTR void VKAPI_CALL CmdBindPipeline( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineBindPoint, pipeline); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pipelineBindPoint, pipeline); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindPipeline); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindPipeline); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(pipelineBindPoint); encoder->EncodeHandleValue(pipeline); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindPipelineHandles, pipeline); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindPipelineHandles, pipeline); } GetDeviceTable(commandBuffer)->CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineBindPoint, pipeline); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pipelineBindPoint, pipeline); } VKAPI_ATTR void VKAPI_CALL CmdSetViewport( @@ -3442,7 +3612,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewport( uint32_t viewportCount, const VkViewport* pViewports) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3454,21 +3626,21 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewport( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstViewport, viewportCount, pViewports); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstViewport, viewportCount, pViewports); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewport); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewport); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstViewport); encoder->EncodeUInt32Value(viewportCount); EncodeStructArray(encoder, pViewports, viewportCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstViewport, viewportCount, pViewports); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstViewport, viewportCount, pViewports); } VKAPI_ATTR void VKAPI_CALL CmdSetScissor( @@ -3477,7 +3649,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetScissor( uint32_t scissorCount, const VkRect2D* pScissors) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3489,28 +3663,30 @@ VKAPI_ATTR void VKAPI_CALL CmdSetScissor( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstScissor, scissorCount, pScissors); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstScissor, scissorCount, pScissors); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetScissor); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetScissor); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstScissor); encoder->EncodeUInt32Value(scissorCount); EncodeStructArray(encoder, pScissors, scissorCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstScissor, scissorCount, pScissors); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstScissor, scissorCount, pScissors); } VKAPI_ATTR void VKAPI_CALL CmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3522,19 +3698,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetLineWidth( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, lineWidth); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, lineWidth); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLineWidth); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLineWidth); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFloatValue(lineWidth); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetLineWidth(commandBuffer, lineWidth); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, lineWidth); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, lineWidth); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias( @@ -3543,7 +3719,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias( float depthBiasClamp, float depthBiasSlopeFactor) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3555,28 +3733,30 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBias); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBias); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFloatValue(depthBiasConstantFactor); encoder->EncodeFloatValue(depthBiasClamp); encoder->EncodeFloatValue(depthBiasSlopeFactor); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); } VKAPI_ATTR void VKAPI_CALL CmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4]) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3588,19 +3768,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetBlendConstants( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, blendConstants); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, blendConstants); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetBlendConstants); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetBlendConstants); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFloatArray(blendConstants, 4); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetBlendConstants(commandBuffer, blendConstants); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, blendConstants); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, blendConstants); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthBounds( @@ -3608,7 +3788,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBounds( float minDepthBounds, float maxDepthBounds) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3620,20 +3802,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBounds( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, minDepthBounds, maxDepthBounds); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, minDepthBounds, maxDepthBounds); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBounds); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBounds); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFloatValue(minDepthBounds); encoder->EncodeFloatValue(maxDepthBounds); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, minDepthBounds, maxDepthBounds); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, minDepthBounds, maxDepthBounds); } VKAPI_ATTR void VKAPI_CALL CmdSetStencilCompareMask( @@ -3641,7 +3823,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilCompareMask( VkStencilFaceFlags faceMask, uint32_t compareMask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3653,20 +3837,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilCompareMask( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, faceMask, compareMask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, faceMask, compareMask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilCompareMask); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilCompareMask); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFlagsValue(faceMask); encoder->EncodeUInt32Value(compareMask); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, faceMask, compareMask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, faceMask, compareMask); } VKAPI_ATTR void VKAPI_CALL CmdSetStencilWriteMask( @@ -3674,7 +3858,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilWriteMask( VkStencilFaceFlags faceMask, uint32_t writeMask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3686,20 +3872,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilWriteMask( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, faceMask, writeMask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, faceMask, writeMask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilWriteMask); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilWriteMask); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFlagsValue(faceMask); encoder->EncodeUInt32Value(writeMask); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, faceMask, writeMask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, faceMask, writeMask); } VKAPI_ATTR void VKAPI_CALL CmdSetStencilReference( @@ -3707,7 +3893,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilReference( VkStencilFaceFlags faceMask, uint32_t reference) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3719,20 +3907,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilReference( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, faceMask, reference); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, faceMask, reference); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilReference); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilReference); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFlagsValue(faceMask); encoder->EncodeUInt32Value(reference); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetStencilReference(commandBuffer, faceMask, reference); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, faceMask, reference); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, faceMask, reference); } VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets( @@ -3745,7 +3933,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets( uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3757,9 +3947,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindDescriptorSets); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindDescriptorSets); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -3770,12 +3960,12 @@ VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets( encoder->EncodeHandleArray(pDescriptorSets, descriptorSetCount); encoder->EncodeUInt32Value(dynamicOffsetCount); encoder->EncodeUInt32Array(pDynamicOffsets, dynamicOffsetCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindDescriptorSetsHandles, layout, descriptorSetCount, pDescriptorSets); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindDescriptorSetsHandles, layout, descriptorSetCount, pDescriptorSets); } GetDeviceTable(commandBuffer)->CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); } VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer( @@ -3784,7 +3974,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer( VkDeviceSize offset, VkIndexType indexType) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3796,21 +3988,21 @@ VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, indexType); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, indexType); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindIndexBuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindIndexBuffer); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(buffer); encoder->EncodeVkDeviceSizeValue(offset); encoder->EncodeEnumValue(indexType); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindIndexBufferHandles, buffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindIndexBufferHandles, buffer); } GetDeviceTable(commandBuffer)->CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, indexType); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, indexType); } VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers( @@ -3820,7 +4012,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers( const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3832,9 +4026,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindVertexBuffers); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindVertexBuffers); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -3842,12 +4036,12 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers( encoder->EncodeUInt32Value(bindingCount); encoder->EncodeHandleArray(pBuffers, bindingCount); encoder->EncodeVkDeviceSizeArray(pOffsets, bindingCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindVertexBuffersHandles, bindingCount, pBuffers); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindVertexBuffersHandles, bindingCount, pBuffers); } GetDeviceTable(commandBuffer)->CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); } VKAPI_ATTR void VKAPI_CALL CmdDraw( @@ -3857,7 +4051,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDraw( uint32_t firstVertex, uint32_t firstInstance) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3869,9 +4065,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDraw( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDraw); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDraw); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -3879,12 +4075,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDraw( encoder->EncodeUInt32Value(instanceCount); encoder->EncodeUInt32Value(firstVertex); encoder->EncodeUInt32Value(firstInstance); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); } VKAPI_ATTR void VKAPI_CALL CmdDrawIndexed( @@ -3895,7 +4091,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexed( int32_t vertexOffset, uint32_t firstInstance) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3907,9 +4105,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexed( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndexed); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndexed); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -3918,12 +4116,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexed( encoder->EncodeUInt32Value(firstIndex); encoder->EncodeInt32Value(vertexOffset); encoder->EncodeUInt32Value(firstInstance); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); } VKAPI_ATTR void VKAPI_CALL CmdDrawIndirect( @@ -3933,7 +4131,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirect( uint32_t drawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3945,9 +4145,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirect( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, drawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, drawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndirect); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndirect); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -3955,12 +4155,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirect( encoder->EncodeVkDeviceSizeValue(offset); encoder->EncodeUInt32Value(drawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndirectHandles, buffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndirectHandles, buffer); } GetDeviceTable(commandBuffer)->CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, drawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, drawCount, stride); } VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirect( @@ -3970,7 +4170,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirect( uint32_t drawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -3982,9 +4184,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirect( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, drawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, drawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndexedIndirect); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndexedIndirect); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -3992,12 +4194,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirect( encoder->EncodeVkDeviceSizeValue(offset); encoder->EncodeUInt32Value(drawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndexedIndirectHandles, buffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndexedIndirectHandles, buffer); } GetDeviceTable(commandBuffer)->CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, drawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, drawCount, stride); } VKAPI_ATTR void VKAPI_CALL CmdDispatch( @@ -4006,7 +4208,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatch( uint32_t groupCountY, uint32_t groupCountZ) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4018,21 +4222,21 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatch( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, groupCountX, groupCountY, groupCountZ); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, groupCountX, groupCountY, groupCountZ); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDispatch); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDispatch); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(groupCountX); encoder->EncodeUInt32Value(groupCountY); encoder->EncodeUInt32Value(groupCountZ); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, groupCountX, groupCountY, groupCountZ); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, groupCountX, groupCountY, groupCountZ); } VKAPI_ATTR void VKAPI_CALL CmdDispatchIndirect( @@ -4040,7 +4244,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatchIndirect( VkBuffer buffer, VkDeviceSize offset) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4052,20 +4258,20 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatchIndirect( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDispatchIndirect); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDispatchIndirect); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(buffer); encoder->EncodeVkDeviceSizeValue(offset); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDispatchIndirectHandles, buffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDispatchIndirectHandles, buffer); } GetDeviceTable(commandBuffer)->CmdDispatchIndirect(commandBuffer, buffer, offset); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset); } VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer( @@ -4075,7 +4281,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer( uint32_t regionCount, const VkBufferCopy* pRegions) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4087,9 +4295,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBuffer); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4097,12 +4305,12 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer( encoder->EncodeHandleValue(dstBuffer); encoder->EncodeUInt32Value(regionCount); EncodeStructArray(encoder, pRegions, regionCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBufferHandles, srcBuffer, dstBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBufferHandles, srcBuffer, dstBuffer); } GetDeviceTable(commandBuffer)->CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); } VKAPI_ATTR void VKAPI_CALL CmdCopyImage( @@ -4114,7 +4322,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyImage( uint32_t regionCount, const VkImageCopy* pRegions) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4126,9 +4336,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyImage( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImage); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImage); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4138,12 +4348,12 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyImage( encoder->EncodeEnumValue(dstImageLayout); encoder->EncodeUInt32Value(regionCount); EncodeStructArray(encoder, pRegions, regionCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImageHandles, srcImage, dstImage); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImageHandles, srcImage, dstImage); } GetDeviceTable(commandBuffer)->CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); } VKAPI_ATTR void VKAPI_CALL CmdBlitImage( @@ -4156,7 +4366,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBlitImage( const VkImageBlit* pRegions, VkFilter filter) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4168,9 +4380,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBlitImage( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBlitImage); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBlitImage); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4181,12 +4393,12 @@ VKAPI_ATTR void VKAPI_CALL CmdBlitImage( encoder->EncodeUInt32Value(regionCount); EncodeStructArray(encoder, pRegions, regionCount); encoder->EncodeEnumValue(filter); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBlitImageHandles, srcImage, dstImage); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBlitImageHandles, srcImage, dstImage); } GetDeviceTable(commandBuffer)->CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); } VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage( @@ -4197,7 +4409,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage( uint32_t regionCount, const VkBufferImageCopy* pRegions) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4209,9 +4423,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBufferToImage); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBufferToImage); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4220,12 +4434,12 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage( encoder->EncodeEnumValue(dstImageLayout); encoder->EncodeUInt32Value(regionCount); EncodeStructArray(encoder, pRegions, regionCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBufferToImageHandles, srcBuffer, dstImage); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBufferToImageHandles, srcBuffer, dstImage); } GetDeviceTable(commandBuffer)->CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); } VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer( @@ -4236,7 +4450,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer( uint32_t regionCount, const VkBufferImageCopy* pRegions) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4248,9 +4464,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImageToBuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImageToBuffer); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4259,12 +4475,12 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer( encoder->EncodeHandleValue(dstBuffer); encoder->EncodeUInt32Value(regionCount); EncodeStructArray(encoder, pRegions, regionCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImageToBufferHandles, srcImage, dstBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImageToBufferHandles, srcImage, dstBuffer); } GetDeviceTable(commandBuffer)->CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); } VKAPI_ATTR void VKAPI_CALL CmdUpdateBuffer( @@ -4274,7 +4490,9 @@ VKAPI_ATTR void VKAPI_CALL CmdUpdateBuffer( VkDeviceSize dataSize, const void* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4286,9 +4504,9 @@ VKAPI_ATTR void VKAPI_CALL CmdUpdateBuffer( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, dstBuffer, dstOffset, dataSize, pData); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, dstBuffer, dstOffset, dataSize, pData); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdUpdateBuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdUpdateBuffer); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4296,12 +4514,12 @@ VKAPI_ATTR void VKAPI_CALL CmdUpdateBuffer( encoder->EncodeVkDeviceSizeValue(dstOffset); encoder->EncodeVkDeviceSizeValue(dataSize); encoder->EncodeVoidArray(pData, static_cast(dataSize)); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdUpdateBufferHandles, dstBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdUpdateBufferHandles, dstBuffer); } GetDeviceTable(commandBuffer)->CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, dstBuffer, dstOffset, dataSize, pData); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, dstBuffer, dstOffset, dataSize, pData); } VKAPI_ATTR void VKAPI_CALL CmdFillBuffer( @@ -4311,7 +4529,9 @@ VKAPI_ATTR void VKAPI_CALL CmdFillBuffer( VkDeviceSize size, uint32_t data) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4323,9 +4543,9 @@ VKAPI_ATTR void VKAPI_CALL CmdFillBuffer( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, dstBuffer, dstOffset, size, data); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, dstBuffer, dstOffset, size, data); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdFillBuffer); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdFillBuffer); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4333,12 +4553,12 @@ VKAPI_ATTR void VKAPI_CALL CmdFillBuffer( encoder->EncodeVkDeviceSizeValue(dstOffset); encoder->EncodeVkDeviceSizeValue(size); encoder->EncodeUInt32Value(data); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdFillBufferHandles, dstBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdFillBufferHandles, dstBuffer); } GetDeviceTable(commandBuffer)->CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, dstBuffer, dstOffset, size, data); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, dstBuffer, dstOffset, size, data); } VKAPI_ATTR void VKAPI_CALL CmdClearColorImage( @@ -4349,7 +4569,9 @@ VKAPI_ATTR void VKAPI_CALL CmdClearColorImage( uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4361,9 +4583,9 @@ VKAPI_ATTR void VKAPI_CALL CmdClearColorImage( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdClearColorImage); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdClearColorImage); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4372,12 +4594,12 @@ VKAPI_ATTR void VKAPI_CALL CmdClearColorImage( EncodeStructPtr(encoder, pColor); encoder->EncodeUInt32Value(rangeCount); EncodeStructArray(encoder, pRanges, rangeCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdClearColorImageHandles, image); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdClearColorImageHandles, image); } GetDeviceTable(commandBuffer)->CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); } VKAPI_ATTR void VKAPI_CALL CmdClearDepthStencilImage( @@ -4388,7 +4610,9 @@ VKAPI_ATTR void VKAPI_CALL CmdClearDepthStencilImage( uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4400,9 +4624,9 @@ VKAPI_ATTR void VKAPI_CALL CmdClearDepthStencilImage( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdClearDepthStencilImage); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdClearDepthStencilImage); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4411,12 +4635,12 @@ VKAPI_ATTR void VKAPI_CALL CmdClearDepthStencilImage( EncodeStructPtr(encoder, pDepthStencil); encoder->EncodeUInt32Value(rangeCount); EncodeStructArray(encoder, pRanges, rangeCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdClearDepthStencilImageHandles, image); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdClearDepthStencilImageHandles, image); } GetDeviceTable(commandBuffer)->CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); } VKAPI_ATTR void VKAPI_CALL CmdClearAttachments( @@ -4426,7 +4650,9 @@ VKAPI_ATTR void VKAPI_CALL CmdClearAttachments( uint32_t rectCount, const VkClearRect* pRects) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4438,9 +4664,9 @@ VKAPI_ATTR void VKAPI_CALL CmdClearAttachments( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, attachmentCount, pAttachments, rectCount, pRects); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, attachmentCount, pAttachments, rectCount, pRects); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdClearAttachments); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdClearAttachments); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4448,12 +4674,12 @@ VKAPI_ATTR void VKAPI_CALL CmdClearAttachments( EncodeStructArray(encoder, pAttachments, attachmentCount); encoder->EncodeUInt32Value(rectCount); EncodeStructArray(encoder, pRects, rectCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, attachmentCount, pAttachments, rectCount, pRects); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, attachmentCount, pAttachments, rectCount, pRects); } VKAPI_ATTR void VKAPI_CALL CmdResolveImage( @@ -4465,7 +4691,9 @@ VKAPI_ATTR void VKAPI_CALL CmdResolveImage( uint32_t regionCount, const VkImageResolve* pRegions) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4477,9 +4705,9 @@ VKAPI_ATTR void VKAPI_CALL CmdResolveImage( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResolveImage); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResolveImage); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4489,12 +4717,12 @@ VKAPI_ATTR void VKAPI_CALL CmdResolveImage( encoder->EncodeEnumValue(dstImageLayout); encoder->EncodeUInt32Value(regionCount); EncodeStructArray(encoder, pRegions, regionCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdResolveImageHandles, srcImage, dstImage); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdResolveImageHandles, srcImage, dstImage); } GetDeviceTable(commandBuffer)->CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); } VKAPI_ATTR void VKAPI_CALL CmdSetEvent( @@ -4502,7 +4730,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetEvent( VkEvent event, VkPipelineStageFlags stageMask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4514,20 +4744,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetEvent( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, stageMask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, event, stageMask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetEvent); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetEvent); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(event); encoder->EncodeFlagsValue(stageMask); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdSetEventHandles, event); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdSetEventHandles, event); } GetDeviceTable(commandBuffer)->CmdSetEvent(commandBuffer, event, stageMask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, stageMask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, event, stageMask); } VKAPI_ATTR void VKAPI_CALL CmdResetEvent( @@ -4535,7 +4765,9 @@ VKAPI_ATTR void VKAPI_CALL CmdResetEvent( VkEvent event, VkPipelineStageFlags stageMask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4547,20 +4779,20 @@ VKAPI_ATTR void VKAPI_CALL CmdResetEvent( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, stageMask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, event, stageMask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResetEvent); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResetEvent); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(event); encoder->EncodeFlagsValue(stageMask); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdResetEventHandles, event); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdResetEventHandles, event); } GetDeviceTable(commandBuffer)->CmdResetEvent(commandBuffer, event, stageMask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, stageMask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, event, stageMask); } VKAPI_ATTR void VKAPI_CALL CmdWaitEvents( @@ -4576,7 +4808,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents( uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4588,9 +4822,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWaitEvents); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWaitEvents); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4604,16 +4838,16 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents( EncodeStructArray(encoder, pBufferMemoryBarriers, bufferMemoryBarrierCount); encoder->EncodeUInt32Value(imageMemoryBarrierCount); EncodeStructArray(encoder, pImageMemoryBarriers, imageMemoryBarrierCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWaitEventsHandles, eventCount, pEvents, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWaitEventsHandles, eventCount, pEvents, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBufferMemoryBarrier* pBufferMemoryBarriers_unwrapped = UnwrapStructArrayHandles(pBufferMemoryBarriers, bufferMemoryBarrierCount, handle_unwrap_memory); const VkImageMemoryBarrier* pImageMemoryBarriers_unwrapped = UnwrapStructArrayHandles(pImageMemoryBarriers, imageMemoryBarrierCount, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers_unwrapped, imageMemoryBarrierCount, pImageMemoryBarriers_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); } VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier( @@ -4628,7 +4862,9 @@ VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier( uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4640,9 +4876,9 @@ VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPipelineBarrier); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPipelineBarrier); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4655,16 +4891,16 @@ VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier( EncodeStructArray(encoder, pBufferMemoryBarriers, bufferMemoryBarrierCount); encoder->EncodeUInt32Value(imageMemoryBarrierCount); EncodeStructArray(encoder, pImageMemoryBarriers, imageMemoryBarrierCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdPipelineBarrierHandles, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdPipelineBarrierHandles, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBufferMemoryBarrier* pBufferMemoryBarriers_unwrapped = UnwrapStructArrayHandles(pBufferMemoryBarriers, bufferMemoryBarrierCount, handle_unwrap_memory); const VkImageMemoryBarrier* pImageMemoryBarriers_unwrapped = UnwrapStructArrayHandles(pImageMemoryBarriers, imageMemoryBarrierCount, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers_unwrapped, imageMemoryBarrierCount, pImageMemoryBarriers_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); } VKAPI_ATTR void VKAPI_CALL CmdBeginQuery( @@ -4673,7 +4909,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginQuery( uint32_t query, VkQueryControlFlags flags) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4685,21 +4923,21 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginQuery( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, query, flags); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, queryPool, query, flags); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginQuery); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginQuery); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(query); encoder->EncodeFlagsValue(flags); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginQueryHandles, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginQueryHandles, queryPool); } GetDeviceTable(commandBuffer)->CmdBeginQuery(commandBuffer, queryPool, query, flags); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, query, flags); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, queryPool, query, flags); } VKAPI_ATTR void VKAPI_CALL CmdEndQuery( @@ -4707,7 +4945,9 @@ VKAPI_ATTR void VKAPI_CALL CmdEndQuery( VkQueryPool queryPool, uint32_t query) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4719,20 +4959,20 @@ VKAPI_ATTR void VKAPI_CALL CmdEndQuery( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, query); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, queryPool, query); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndQuery); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndQuery); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(query); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdEndQueryHandles, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdEndQueryHandles, queryPool); } GetDeviceTable(commandBuffer)->CmdEndQuery(commandBuffer, queryPool, query); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, query); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, queryPool, query); } VKAPI_ATTR void VKAPI_CALL CmdResetQueryPool( @@ -4741,7 +4981,9 @@ VKAPI_ATTR void VKAPI_CALL CmdResetQueryPool( uint32_t firstQuery, uint32_t queryCount) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4753,21 +4995,21 @@ VKAPI_ATTR void VKAPI_CALL CmdResetQueryPool( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, firstQuery, queryCount); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, queryPool, firstQuery, queryCount); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResetQueryPool); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResetQueryPool); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(firstQuery); encoder->EncodeUInt32Value(queryCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdResetQueryPoolHandles, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdResetQueryPoolHandles, queryPool); } GetDeviceTable(commandBuffer)->CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, firstQuery, queryCount); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, queryPool, firstQuery, queryCount); } VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp( @@ -4776,7 +5018,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp( VkQueryPool queryPool, uint32_t query) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4788,21 +5032,21 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineStage, queryPool, query); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pipelineStage, queryPool, query); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteTimestamp); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteTimestamp); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(pipelineStage); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(query); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteTimestampHandles, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteTimestampHandles, queryPool); } GetDeviceTable(commandBuffer)->CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineStage, queryPool, query); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pipelineStage, queryPool, query); } VKAPI_ATTR void VKAPI_CALL CmdCopyQueryPoolResults( @@ -4815,7 +5059,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyQueryPoolResults( VkDeviceSize stride, VkQueryResultFlags flags) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4827,9 +5073,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyQueryPoolResults( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyQueryPoolResults); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyQueryPoolResults); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4840,12 +5086,12 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyQueryPoolResults( encoder->EncodeVkDeviceSizeValue(dstOffset); encoder->EncodeVkDeviceSizeValue(stride); encoder->EncodeFlagsValue(flags); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyQueryPoolResultsHandles, queryPool, dstBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyQueryPoolResultsHandles, queryPool, dstBuffer); } GetDeviceTable(commandBuffer)->CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); } VKAPI_ATTR void VKAPI_CALL CmdPushConstants( @@ -4856,7 +5102,9 @@ VKAPI_ATTR void VKAPI_CALL CmdPushConstants( uint32_t size, const void* pValues) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4868,9 +5116,9 @@ VKAPI_ATTR void VKAPI_CALL CmdPushConstants( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, layout, stageFlags, offset, size, pValues); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, layout, stageFlags, offset, size, pValues); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPushConstants); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPushConstants); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -4879,12 +5127,12 @@ VKAPI_ATTR void VKAPI_CALL CmdPushConstants( encoder->EncodeUInt32Value(offset); encoder->EncodeUInt32Value(size); encoder->EncodeVoidArray(pValues, size); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdPushConstantsHandles, layout); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdPushConstantsHandles, layout); } GetDeviceTable(commandBuffer)->CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, layout, stageFlags, offset, size, pValues); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, layout, stageFlags, offset, size, pValues); } VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass( @@ -4892,7 +5140,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass( const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4904,30 +5154,32 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRenderPassBegin, contents); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pRenderPassBegin, contents); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginRenderPass); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginRenderPass); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pRenderPassBegin); encoder->EncodeEnumValue(contents); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginRenderPassHandles, pRenderPassBegin); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginRenderPassHandles, pRenderPassBegin); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkRenderPassBeginInfo* pRenderPassBegin_unwrapped = UnwrapStructPtrHandles(pRenderPassBegin, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBeginRenderPass(commandBuffer, pRenderPassBegin_unwrapped, contents); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRenderPassBegin, contents); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pRenderPassBegin, contents); } VKAPI_ATTR void VKAPI_CALL CmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4939,25 +5191,27 @@ VKAPI_ATTR void VKAPI_CALL CmdNextSubpass( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, contents); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, contents); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdNextSubpass); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdNextSubpass); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(contents); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdNextSubpass(commandBuffer, contents); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, contents); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, contents); } VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass( VkCommandBuffer commandBuffer) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -4969,18 +5223,18 @@ VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPreCall::Dispatch(manager, commandBuffer); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndRenderPass); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndRenderPass); if (encoder) { encoder->EncodeHandleValue(commandBuffer); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdEndRenderPass(commandBuffer); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPostCall::Dispatch(manager, commandBuffer); } VKAPI_ATTR void VKAPI_CALL CmdExecuteCommands( @@ -4988,7 +5242,9 @@ VKAPI_ATTR void VKAPI_CALL CmdExecuteCommands( uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5000,20 +5256,20 @@ VKAPI_ATTR void VKAPI_CALL CmdExecuteCommands( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, commandBufferCount, pCommandBuffers); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, commandBufferCount, pCommandBuffers); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdExecuteCommands); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdExecuteCommands); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(commandBufferCount); encoder->EncodeHandleArray(pCommandBuffers, commandBufferCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdExecuteCommandsHandles, commandBufferCount, pCommandBuffers); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdExecuteCommandsHandles, commandBufferCount, pCommandBuffers); } GetDeviceTable(commandBuffer)->CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, commandBufferCount, pCommandBuffers); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, commandBufferCount, pCommandBuffers); } VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2( @@ -5021,7 +5277,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2( uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5033,24 +5291,24 @@ VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, bindInfoCount, pBindInfos); + CustomEncoderPreCall::Dispatch(manager, device, bindInfoCount, pBindInfos); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBindBufferMemoryInfo* pBindInfos_unwrapped = UnwrapStructArrayHandles(pBindInfos, bindInfoCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->BindBufferMemory2(device, bindInfoCount, pBindInfos_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindBufferMemory2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindBufferMemory2); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(bindInfoCount); EncodeStructArray(encoder, pBindInfos, bindInfoCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, bindInfoCount, pBindInfos); + CustomEncoderPostCall::Dispatch(manager, result, device, bindInfoCount, pBindInfos); return result; } @@ -5060,7 +5318,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2( uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5072,24 +5332,24 @@ VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, bindInfoCount, pBindInfos); + CustomEncoderPreCall::Dispatch(manager, device, bindInfoCount, pBindInfos); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBindImageMemoryInfo* pBindInfos_unwrapped = UnwrapStructArrayHandles(pBindInfos, bindInfoCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->BindImageMemory2(device, bindInfoCount, pBindInfos_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindImageMemory2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindImageMemory2); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(bindInfoCount); EncodeStructArray(encoder, pBindInfos, bindInfoCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, bindInfoCount, pBindInfos); + CustomEncoderPostCall::Dispatch(manager, result, device, bindInfoCount, pBindInfos); return result; } @@ -5101,7 +5361,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeatures( uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5113,11 +5375,11 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeatures( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); + CustomEncoderPreCall::Dispatch(manager, device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); GetDeviceTable(device)->GetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceGroupPeerMemoryFeatures); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceGroupPeerMemoryFeatures); if (encoder) { encoder->EncodeHandleValue(device); @@ -5125,17 +5387,19 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeatures( encoder->EncodeUInt32Value(localDeviceIndex); encoder->EncodeUInt32Value(remoteDeviceIndex); encoder->EncodeFlagsPtr(pPeerMemoryFeatures); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); + CustomEncoderPostCall::Dispatch(manager, device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); } VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5147,19 +5411,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMask( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, deviceMask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, deviceMask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDeviceMask); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDeviceMask); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(deviceMask); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDeviceMask(commandBuffer, deviceMask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, deviceMask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, deviceMask); } VKAPI_ATTR void VKAPI_CALL CmdDispatchBase( @@ -5171,7 +5435,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatchBase( uint32_t groupCountY, uint32_t groupCountZ) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5183,9 +5449,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatchBase( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDispatchBase); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDispatchBase); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -5195,12 +5461,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatchBase( encoder->EncodeUInt32Value(groupCountX); encoder->EncodeUInt32Value(groupCountY); encoder->EncodeUInt32Value(groupCountZ); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); } VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceGroups( @@ -5208,7 +5474,9 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5222,7 +5490,7 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceGroups( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); + CustomEncoderPreCall::Dispatch(manager, instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); VkResult result = GetInstanceTable(instance)->EnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); @@ -5235,17 +5503,17 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceGroups( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkEnumeratePhysicalDeviceGroups); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkEnumeratePhysicalDeviceGroups); if (encoder) { encoder->EncodeHandleValue(instance); encoder->EncodeUInt32Ptr(pPhysicalDeviceGroupCount, omit_output_data); EncodeStructArray(encoder, pPhysicalDeviceGroupProperties, (pPhysicalDeviceGroupCount != nullptr) ? (*pPhysicalDeviceGroupCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndStructGroupCreateApiCallCapture(result, instance, (pPhysicalDeviceGroupCount != nullptr) ? (*pPhysicalDeviceGroupCount) : 0, pPhysicalDeviceGroupProperties, nullptr); + manager->EndStructGroupCreateApiCallCapture(result, instance, (pPhysicalDeviceGroupCount != nullptr) ? (*pPhysicalDeviceGroupCount) : 0, pPhysicalDeviceGroupProperties, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); + CustomEncoderPostCall::Dispatch(manager, result, instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); return result; } @@ -5255,7 +5523,9 @@ VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2( const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5267,23 +5537,23 @@ VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImageMemoryRequirementsInfo2* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetImageMemoryRequirements2(device, pInfo_unwrapped, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageMemoryRequirements2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageMemoryRequirements2); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2( @@ -5291,7 +5561,9 @@ VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2( const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5303,23 +5575,23 @@ VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBufferMemoryRequirementsInfo2* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetBufferMemoryRequirements2(device, pInfo_unwrapped, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferMemoryRequirements2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferMemoryRequirements2); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2( @@ -5328,7 +5600,9 @@ VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2( uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5340,31 +5614,33 @@ VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImageSparseMemoryRequirementsInfo2* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetImageSparseMemoryRequirements2(device, pInfo_unwrapped, pSparseMemoryRequirementCount, pSparseMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSparseMemoryRequirements2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSparseMemoryRequirements2); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeUInt32Ptr(pSparseMemoryRequirementCount); EncodeStructArray(encoder, pSparseMemoryRequirements, (pSparseMemoryRequirementCount != nullptr) ? (*pSparseMemoryRequirementCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5376,26 +5652,28 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFeatures2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFeatures); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pFeatures); GetInstanceTable(physicalDevice)->GetPhysicalDeviceFeatures2(physicalDevice, pFeatures); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFeatures2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFeatures2); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pFeatures); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFeatures); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pFeatures); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5407,19 +5685,19 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceProperties2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceProperties2(physicalDevice, pProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceProperties2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceProperties2); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pProperties); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties2( @@ -5427,7 +5705,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties2( VkFormat format, VkFormatProperties2* pFormatProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5439,20 +5719,20 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, format, pFormatProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, format, pFormatProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFormatProperties2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFormatProperties2); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeEnumValue(format); EncodeStructPtr(encoder, pFormatProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, format, pFormatProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, format, pFormatProperties); } VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2( @@ -5460,7 +5740,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2( const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5474,7 +5756,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pImageFormatInfo, pImageFormatProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pImageFormatInfo, pImageFormatProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceImageFormatProperties2(physicalDevice, pImageFormatInfo, pImageFormatProperties); if (result < 0) @@ -5482,17 +5764,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceImageFormatProperties2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceImageFormatProperties2); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pImageFormatInfo); EncodeStructPtr(encoder, pImageFormatProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pImageFormatInfo, pImageFormatProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pImageFormatInfo, pImageFormatProperties); return result; } @@ -5502,7 +5784,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5514,27 +5798,29 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyProperties2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); - VulkanCaptureManager::Get()->OverrideGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); + manager->OverrideGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceQueueFamilyProperties2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceQueueFamilyProperties2); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pQueueFamilyPropertyCount); EncodeStructArray(encoder, pQueueFamilyProperties, (pQueueFamilyPropertyCount != nullptr) ? (*pQueueFamilyPropertyCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5546,19 +5832,19 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMemoryProperties2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pMemoryProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pMemoryProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceMemoryProperties2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceMemoryProperties2); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pMemoryProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pMemoryProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pMemoryProperties); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties2( @@ -5567,7 +5853,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties2( uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5579,21 +5867,21 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFormatInfo, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pFormatInfo, pPropertyCount, pProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSparseImageFormatProperties2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSparseImageFormatProperties2); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pFormatInfo); encoder->EncodeUInt32Ptr(pPropertyCount); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFormatInfo, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pFormatInfo, pPropertyCount, pProperties); } VKAPI_ATTR void VKAPI_CALL TrimCommandPool( @@ -5601,7 +5889,9 @@ VKAPI_ATTR void VKAPI_CALL TrimCommandPool( VkCommandPool commandPool, VkCommandPoolTrimFlags flags) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5613,20 +5903,20 @@ VKAPI_ATTR void VKAPI_CALL TrimCommandPool( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, commandPool, flags); + CustomEncoderPreCall::Dispatch(manager, device, commandPool, flags); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkTrimCommandPool); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkTrimCommandPool); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(commandPool); encoder->EncodeFlagsValue(flags); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->TrimCommandPool(device, commandPool, flags); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, commandPool, flags); + CustomEncoderPostCall::Dispatch(manager, device, commandPool, flags); } VKAPI_ATTR void VKAPI_CALL GetDeviceQueue2( @@ -5634,7 +5924,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceQueue2( const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5646,22 +5938,22 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceQueue2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pQueueInfo, pQueue); + CustomEncoderPreCall::Dispatch(manager, device, pQueueInfo, pQueue); GetDeviceTable(device)->GetDeviceQueue2(device, pQueueInfo, pQueue); CreateWrappedHandle(device, NoParentWrapper::kHandleValue, pQueue, VulkanCaptureManager::GetUniqueId); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceQueue2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceQueue2); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pQueueInfo); encoder->EncodeHandlePtr(pQueue); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(VK_SUCCESS, device, pQueue, nullptr); + manager->EndCreateApiCallCapture(VK_SUCCESS, device, pQueue, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pQueueInfo, pQueue); + CustomEncoderPostCall::Dispatch(manager, device, pQueueInfo, pQueue); } VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversion( @@ -5670,7 +5962,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversion( const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5684,7 +5978,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversion( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pYcbcrConversion); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pYcbcrConversion); VkResult result = GetDeviceTable(device)->CreateSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion); @@ -5697,7 +5991,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversion( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSamplerYcbcrConversion); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSamplerYcbcrConversion); if (encoder) { encoder->EncodeHandleValue(device); @@ -5705,10 +5999,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversion( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pYcbcrConversion, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pYcbcrConversion, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pYcbcrConversion, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pYcbcrConversion); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pYcbcrConversion); return result; } @@ -5718,7 +6012,9 @@ VKAPI_ATTR void VKAPI_CALL DestroySamplerYcbcrConversion( VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5730,20 +6026,20 @@ VKAPI_ATTR void VKAPI_CALL DestroySamplerYcbcrConversion( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, ycbcrConversion, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, ycbcrConversion, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySamplerYcbcrConversion); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySamplerYcbcrConversion); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(ycbcrConversion); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(ycbcrConversion); + manager->EndDestroyApiCallCapture(ycbcrConversion); } GetDeviceTable(device)->DestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, ycbcrConversion, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, ycbcrConversion, pAllocator); DestroyWrappedHandle(ycbcrConversion); } @@ -5754,7 +6050,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplate( const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5768,9 +6066,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplate( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateDescriptorUpdateTemplate(device, pCreateInfo_unwrapped, pAllocator, pDescriptorUpdateTemplate); @@ -5784,7 +6082,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplate( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDescriptorUpdateTemplate); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDescriptorUpdateTemplate); if (encoder) { encoder->EncodeHandleValue(device); @@ -5792,10 +6090,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplate( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pDescriptorUpdateTemplate, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pDescriptorUpdateTemplate, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pDescriptorUpdateTemplate, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); return result; } @@ -5805,7 +6103,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5817,20 +6117,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplate( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorUpdateTemplate, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, descriptorUpdateTemplate, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDescriptorUpdateTemplate); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDescriptorUpdateTemplate); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(descriptorUpdateTemplate); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(descriptorUpdateTemplate); + manager->EndDestroyApiCallCapture(descriptorUpdateTemplate); } GetDeviceTable(device)->DestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorUpdateTemplate, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, descriptorUpdateTemplate, pAllocator); DestroyWrappedHandle(descriptorUpdateTemplate); } @@ -5840,7 +6140,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalBufferProperties( const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5852,20 +6154,20 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalBufferProperties( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalBufferInfo, pExternalBufferProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pExternalBufferInfo, pExternalBufferProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalBufferProperties); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalBufferProperties); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pExternalBufferInfo); EncodeStructPtr(encoder, pExternalBufferProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalBufferInfo, pExternalBufferProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pExternalBufferInfo, pExternalBufferProperties); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalFenceProperties( @@ -5873,7 +6175,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalFenceProperties( const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5885,20 +6189,20 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalFenceProperties( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalFenceInfo, pExternalFenceProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pExternalFenceInfo, pExternalFenceProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalFenceProperties); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalFenceProperties); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pExternalFenceInfo); EncodeStructPtr(encoder, pExternalFenceProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalFenceInfo, pExternalFenceProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pExternalFenceInfo, pExternalFenceProperties); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalSemaphoreProperties( @@ -5906,7 +6210,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalSemaphoreProperties( const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5918,20 +6224,20 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalSemaphoreProperties( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalSemaphoreProperties); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalSemaphoreProperties); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pExternalSemaphoreInfo); EncodeStructPtr(encoder, pExternalSemaphoreProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties); } VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupport( @@ -5939,7 +6245,9 @@ VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupport( const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5951,23 +6259,23 @@ VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupport( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pSupport); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pSupport); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDescriptorSetLayoutCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); GetDeviceTable(device)->GetDescriptorSetLayoutSupport(device, pCreateInfo_unwrapped, pSupport); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDescriptorSetLayoutSupport); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDescriptorSetLayoutSupport); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pCreateInfo); EncodeStructPtr(encoder, pSupport); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pSupport); + CustomEncoderPostCall::Dispatch(manager, device, pCreateInfo, pSupport); } VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCount( @@ -5979,7 +6287,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCount( uint32_t maxDrawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -5991,9 +6301,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCount( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndirectCount); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndirectCount); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -6003,12 +6313,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCount( encoder->EncodeVkDeviceSizeValue(countBufferOffset); encoder->EncodeUInt32Value(maxDrawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndirectCountHandles, buffer, countBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndirectCountHandles, buffer, countBuffer); } GetDeviceTable(commandBuffer)->CmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); } VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCount( @@ -6020,7 +6330,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCount( uint32_t maxDrawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6032,9 +6344,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCount( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndexedIndirectCount); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndexedIndirectCount); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -6044,12 +6356,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCount( encoder->EncodeVkDeviceSizeValue(countBufferOffset); encoder->EncodeUInt32Value(maxDrawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndexedIndirectCountHandles, buffer, countBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndexedIndirectCountHandles, buffer, countBuffer); } GetDeviceTable(commandBuffer)->CmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); } VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2( @@ -6058,7 +6370,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2( const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6072,7 +6386,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pRenderPass); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pRenderPass); VkResult result = GetDeviceTable(device)->CreateRenderPass2(device, pCreateInfo, pAllocator, pRenderPass); @@ -6085,7 +6399,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateRenderPass2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateRenderPass2); if (encoder) { encoder->EncodeHandleValue(device); @@ -6093,10 +6407,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pRenderPass, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pRenderPass, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pRenderPass, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pRenderPass); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pRenderPass); return result; } @@ -6106,7 +6420,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2( const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6118,23 +6434,23 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRenderPassBegin, pSubpassBeginInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pRenderPassBegin, pSubpassBeginInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginRenderPass2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginRenderPass2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pRenderPassBegin); EncodeStructPtr(encoder, pSubpassBeginInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginRenderPass2Handles, pRenderPassBegin); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginRenderPass2Handles, pRenderPassBegin); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkRenderPassBeginInfo* pRenderPassBegin_unwrapped = UnwrapStructPtrHandles(pRenderPassBegin, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBeginRenderPass2(commandBuffer, pRenderPassBegin_unwrapped, pSubpassBeginInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRenderPassBegin, pSubpassBeginInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pRenderPassBegin, pSubpassBeginInfo); } VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2( @@ -6142,7 +6458,9 @@ VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2( const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6154,27 +6472,29 @@ VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdNextSubpass2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdNextSubpass2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pSubpassBeginInfo); EncodeStructPtr(encoder, pSubpassEndInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); } VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6186,19 +6506,19 @@ VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pSubpassEndInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pSubpassEndInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndRenderPass2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndRenderPass2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pSubpassEndInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdEndRenderPass2(commandBuffer, pSubpassEndInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pSubpassEndInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pSubpassEndInfo); } VKAPI_ATTR void VKAPI_CALL ResetQueryPool( @@ -6207,7 +6527,9 @@ VKAPI_ATTR void VKAPI_CALL ResetQueryPool( uint32_t firstQuery, uint32_t queryCount) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6219,21 +6541,21 @@ VKAPI_ATTR void VKAPI_CALL ResetQueryPool( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, queryPool, firstQuery, queryCount); + CustomEncoderPreCall::Dispatch(manager, device, queryPool, firstQuery, queryCount); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetQueryPool); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetQueryPool); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(firstQuery); encoder->EncodeUInt32Value(queryCount); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->ResetQueryPool(device, queryPool, firstQuery, queryCount); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, queryPool, firstQuery, queryCount); + CustomEncoderPostCall::Dispatch(manager, device, queryPool, firstQuery, queryCount); } VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValue( @@ -6241,7 +6563,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValue( VkSemaphore semaphore, uint64_t* pValue) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6255,7 +6579,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValue( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, semaphore, pValue); + CustomEncoderPreCall::Dispatch(manager, device, semaphore, pValue); VkResult result = GetDeviceTable(device)->GetSemaphoreCounterValue(device, semaphore, pValue); if (result < 0) @@ -6263,17 +6587,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValue( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSemaphoreCounterValue); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSemaphoreCounterValue); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(semaphore); encoder->EncodeUInt64Ptr(pValue, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, semaphore, pValue); + CustomEncoderPostCall::Dispatch(manager, result, device, semaphore, pValue); return result; } @@ -6283,7 +6607,9 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphores( const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6295,24 +6621,24 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphores( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pWaitInfo, timeout); + CustomEncoderPreCall::Dispatch(manager, device, pWaitInfo, timeout); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSemaphoreWaitInfo* pWaitInfo_unwrapped = UnwrapStructPtrHandles(pWaitInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->WaitSemaphores(device, pWaitInfo_unwrapped, timeout); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWaitSemaphores); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWaitSemaphores); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pWaitInfo); encoder->EncodeUInt64Value(timeout); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pWaitInfo, timeout); + CustomEncoderPostCall::Dispatch(manager, result, device, pWaitInfo, timeout); return result; } @@ -6321,7 +6647,9 @@ VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6333,23 +6661,23 @@ VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphore( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pSignalInfo); + CustomEncoderPreCall::Dispatch(manager, device, pSignalInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSemaphoreSignalInfo* pSignalInfo_unwrapped = UnwrapStructPtrHandles(pSignalInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->SignalSemaphore(device, pSignalInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSignalSemaphore); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSignalSemaphore); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pSignalInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pSignalInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pSignalInfo); return result; } @@ -6358,7 +6686,9 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6370,23 +6700,23 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddress( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBufferDeviceAddressInfo* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkDeviceAddress result = GetDeviceTable(device)->GetBufferDeviceAddress(device, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferDeviceAddress); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferDeviceAddress); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeVkDeviceAddressValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -6395,7 +6725,9 @@ VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6407,23 +6739,23 @@ VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddress( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBufferDeviceAddressInfo* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); uint64_t result = GetDeviceTable(device)->GetBufferOpaqueCaptureAddress(device, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferOpaqueCaptureAddress); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferOpaqueCaptureAddress); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeUInt64Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -6432,7 +6764,9 @@ VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6444,23 +6778,23 @@ VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddress( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); uint64_t result = GetDeviceTable(device)->GetDeviceMemoryOpaqueCaptureAddress(device, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceMemoryOpaqueCaptureAddress); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceMemoryOpaqueCaptureAddress); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeUInt64Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -6470,7 +6804,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolProperties( uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6484,7 +6820,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolProperties( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pToolCount, pToolProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pToolCount, pToolProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceToolProperties(physicalDevice, pToolCount, pToolProperties); if (result < 0) @@ -6492,17 +6828,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolProperties( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceToolProperties); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceToolProperties); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pToolCount, omit_output_data); EncodeStructArray(encoder, pToolProperties, (pToolCount != nullptr) ? (*pToolCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pToolCount, pToolProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pToolCount, pToolProperties); return result; } @@ -6513,7 +6849,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlot( const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6527,7 +6865,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlot( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pPrivateDataSlot); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pPrivateDataSlot); VkResult result = GetDeviceTable(device)->CreatePrivateDataSlot(device, pCreateInfo, pAllocator, pPrivateDataSlot); @@ -6540,7 +6878,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlot( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreatePrivateDataSlot); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreatePrivateDataSlot); if (encoder) { encoder->EncodeHandleValue(device); @@ -6548,10 +6886,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlot( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pPrivateDataSlot, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pPrivateDataSlot, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pPrivateDataSlot, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pPrivateDataSlot); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pPrivateDataSlot); return result; } @@ -6561,7 +6899,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyPrivateDataSlot( VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6573,20 +6913,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyPrivateDataSlot( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, privateDataSlot, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, privateDataSlot, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyPrivateDataSlot); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyPrivateDataSlot); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(privateDataSlot); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(privateDataSlot); + manager->EndDestroyApiCallCapture(privateDataSlot); } GetDeviceTable(device)->DestroyPrivateDataSlot(device, privateDataSlot, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, privateDataSlot, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, privateDataSlot, pAllocator); DestroyWrappedHandle(privateDataSlot); } @@ -6598,7 +6938,9 @@ VKAPI_ATTR VkResult VKAPI_CALL SetPrivateData( VkPrivateDataSlot privateDataSlot, uint64_t data) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6610,11 +6952,11 @@ VKAPI_ATTR VkResult VKAPI_CALL SetPrivateData( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, objectType, objectHandle, privateDataSlot, data); + CustomEncoderPreCall::Dispatch(manager, device, objectType, objectHandle, privateDataSlot, data); VkResult result = GetDeviceTable(device)->SetPrivateData(device, objectType, objectHandle, privateDataSlot, data); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetPrivateData); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetPrivateData); if (encoder) { encoder->EncodeHandleValue(device); @@ -6623,10 +6965,10 @@ VKAPI_ATTR VkResult VKAPI_CALL SetPrivateData( encoder->EncodeHandleValue(privateDataSlot); encoder->EncodeUInt64Value(data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, objectType, objectHandle, privateDataSlot, data); + CustomEncoderPostCall::Dispatch(manager, result, device, objectType, objectHandle, privateDataSlot, data); return result; } @@ -6638,7 +6980,9 @@ VKAPI_ATTR void VKAPI_CALL GetPrivateData( VkPrivateDataSlot privateDataSlot, uint64_t* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6650,11 +6994,11 @@ VKAPI_ATTR void VKAPI_CALL GetPrivateData( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, objectType, objectHandle, privateDataSlot, pData); + CustomEncoderPreCall::Dispatch(manager, device, objectType, objectHandle, privateDataSlot, pData); GetDeviceTable(device)->GetPrivateData(device, objectType, objectHandle, privateDataSlot, pData); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPrivateData); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPrivateData); if (encoder) { encoder->EncodeHandleValue(device); @@ -6662,10 +7006,10 @@ VKAPI_ATTR void VKAPI_CALL GetPrivateData( encoder->EncodeUInt64Value(GetWrappedId(objectHandle, objectType)); encoder->EncodeHandleValue(privateDataSlot); encoder->EncodeUInt64Ptr(pData); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, objectType, objectHandle, privateDataSlot, pData); + CustomEncoderPostCall::Dispatch(manager, device, objectType, objectHandle, privateDataSlot, pData); } VKAPI_ATTR void VKAPI_CALL CmdSetEvent2( @@ -6673,7 +7017,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetEvent2( VkEvent event, const VkDependencyInfo* pDependencyInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6685,23 +7031,23 @@ VKAPI_ATTR void VKAPI_CALL CmdSetEvent2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, pDependencyInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, event, pDependencyInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetEvent2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetEvent2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(event); EncodeStructPtr(encoder, pDependencyInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdSetEvent2Handles, event, pDependencyInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdSetEvent2Handles, event, pDependencyInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDependencyInfo* pDependencyInfo_unwrapped = UnwrapStructPtrHandles(pDependencyInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdSetEvent2(commandBuffer, event, pDependencyInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, pDependencyInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, event, pDependencyInfo); } VKAPI_ATTR void VKAPI_CALL CmdResetEvent2( @@ -6709,7 +7055,9 @@ VKAPI_ATTR void VKAPI_CALL CmdResetEvent2( VkEvent event, VkPipelineStageFlags2 stageMask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6721,20 +7069,20 @@ VKAPI_ATTR void VKAPI_CALL CmdResetEvent2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, stageMask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, event, stageMask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResetEvent2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResetEvent2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(event); encoder->EncodeFlags64Value(stageMask); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdResetEvent2Handles, event); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdResetEvent2Handles, event); } GetDeviceTable(commandBuffer)->CmdResetEvent2(commandBuffer, event, stageMask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, stageMask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, event, stageMask); } VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2( @@ -6743,7 +7091,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2( const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6755,31 +7105,33 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, eventCount, pEvents, pDependencyInfos); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, eventCount, pEvents, pDependencyInfos); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWaitEvents2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWaitEvents2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(eventCount); encoder->EncodeHandleArray(pEvents, eventCount); EncodeStructArray(encoder, pDependencyInfos, eventCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWaitEvents2Handles, eventCount, pEvents, pDependencyInfos); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWaitEvents2Handles, eventCount, pEvents, pDependencyInfos); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDependencyInfo* pDependencyInfos_unwrapped = UnwrapStructArrayHandles(pDependencyInfos, eventCount, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdWaitEvents2(commandBuffer, eventCount, pEvents, pDependencyInfos_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, eventCount, pEvents, pDependencyInfos); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, eventCount, pEvents, pDependencyInfos); } VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier2( VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6791,22 +7143,22 @@ VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pDependencyInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pDependencyInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPipelineBarrier2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPipelineBarrier2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pDependencyInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdPipelineBarrier2Handles, pDependencyInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdPipelineBarrier2Handles, pDependencyInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDependencyInfo* pDependencyInfo_unwrapped = UnwrapStructPtrHandles(pDependencyInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdPipelineBarrier2(commandBuffer, pDependencyInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pDependencyInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pDependencyInfo); } VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2( @@ -6815,7 +7167,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2( VkQueryPool queryPool, uint32_t query) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6827,21 +7181,21 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stage, queryPool, query); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, stage, queryPool, query); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteTimestamp2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteTimestamp2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFlags64Value(stage); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(query); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteTimestamp2Handles, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteTimestamp2Handles, queryPool); } GetDeviceTable(commandBuffer)->CmdWriteTimestamp2(commandBuffer, stage, queryPool, query); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stage, queryPool, query); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, stage, queryPool, query); } VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2( @@ -6850,7 +7204,9 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2( const VkSubmitInfo2* pSubmits, VkFence fence) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6862,14 +7218,14 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue, submitCount, pSubmits, fence); + CustomEncoderPreCall::Dispatch(manager, queue, submitCount, pSubmits, fence); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSubmitInfo2* pSubmits_unwrapped = UnwrapStructArrayHandles(pSubmits, submitCount, handle_unwrap_memory); VkResult result = GetDeviceTable(queue)->QueueSubmit2(queue, submitCount, pSubmits_unwrapped, fence); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueSubmit2); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueSubmit2); if (encoder) { encoder->EncodeHandleValue(queue); @@ -6877,10 +7233,10 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2( EncodeStructArray(encoder, pSubmits, submitCount); encoder->EncodeHandleValue(fence); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, queue, submitCount, pSubmits, fence); + CustomEncoderPostCall::Dispatch(manager, result, queue, submitCount, pSubmits, fence); return result; } @@ -6889,7 +7245,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6901,29 +7259,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyBufferInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pCopyBufferInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBuffer2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBuffer2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pCopyBufferInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBuffer2Handles, pCopyBufferInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBuffer2Handles, pCopyBufferInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyBufferInfo2* pCopyBufferInfo_unwrapped = UnwrapStructPtrHandles(pCopyBufferInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyBuffer2(commandBuffer, pCopyBufferInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyBufferInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pCopyBufferInfo); } VKAPI_ATTR void VKAPI_CALL CmdCopyImage2( VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6935,29 +7295,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyImage2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyImageInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pCopyImageInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImage2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImage2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pCopyImageInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImage2Handles, pCopyImageInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImage2Handles, pCopyImageInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyImageInfo2* pCopyImageInfo_unwrapped = UnwrapStructPtrHandles(pCopyImageInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyImage2(commandBuffer, pCopyImageInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyImageInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pCopyImageInfo); } VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage2( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -6969,29 +7331,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyBufferToImageInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pCopyBufferToImageInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBufferToImage2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBufferToImage2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pCopyBufferToImageInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBufferToImage2Handles, pCopyBufferToImageInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBufferToImage2Handles, pCopyBufferToImageInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo_unwrapped = UnwrapStructPtrHandles(pCopyBufferToImageInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyBufferToImage2(commandBuffer, pCopyBufferToImageInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyBufferToImageInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pCopyBufferToImageInfo); } VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer2( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7003,29 +7367,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyImageToBufferInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pCopyImageToBufferInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImageToBuffer2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImageToBuffer2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pCopyImageToBufferInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImageToBuffer2Handles, pCopyImageToBufferInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImageToBuffer2Handles, pCopyImageToBufferInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo_unwrapped = UnwrapStructPtrHandles(pCopyImageToBufferInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyImageToBuffer2(commandBuffer, pCopyImageToBufferInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyImageToBufferInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pCopyImageToBufferInfo); } VKAPI_ATTR void VKAPI_CALL CmdBlitImage2( VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7037,29 +7403,31 @@ VKAPI_ATTR void VKAPI_CALL CmdBlitImage2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pBlitImageInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pBlitImageInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBlitImage2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBlitImage2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pBlitImageInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBlitImage2Handles, pBlitImageInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBlitImage2Handles, pBlitImageInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBlitImageInfo2* pBlitImageInfo_unwrapped = UnwrapStructPtrHandles(pBlitImageInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBlitImage2(commandBuffer, pBlitImageInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pBlitImageInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pBlitImageInfo); } VKAPI_ATTR void VKAPI_CALL CmdResolveImage2( VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7071,29 +7439,31 @@ VKAPI_ATTR void VKAPI_CALL CmdResolveImage2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pResolveImageInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pResolveImageInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResolveImage2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResolveImage2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pResolveImageInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdResolveImage2Handles, pResolveImageInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdResolveImage2Handles, pResolveImageInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkResolveImageInfo2* pResolveImageInfo_unwrapped = UnwrapStructPtrHandles(pResolveImageInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdResolveImage2(commandBuffer, pResolveImageInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pResolveImageInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pResolveImageInfo); } VKAPI_ATTR void VKAPI_CALL CmdBeginRendering( VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7105,28 +7475,30 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRendering( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRenderingInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pRenderingInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginRendering); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginRendering); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pRenderingInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginRenderingHandles, pRenderingInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginRenderingHandles, pRenderingInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkRenderingInfo* pRenderingInfo_unwrapped = UnwrapStructPtrHandles(pRenderingInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBeginRendering(commandBuffer, pRenderingInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRenderingInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pRenderingInfo); } VKAPI_ATTR void VKAPI_CALL CmdEndRendering( VkCommandBuffer commandBuffer) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7138,25 +7510,27 @@ VKAPI_ATTR void VKAPI_CALL CmdEndRendering( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPreCall::Dispatch(manager, commandBuffer); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndRendering); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndRendering); if (encoder) { encoder->EncodeHandleValue(commandBuffer); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdEndRendering(commandBuffer); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPostCall::Dispatch(manager, commandBuffer); } VKAPI_ATTR void VKAPI_CALL CmdSetCullMode( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7168,26 +7542,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCullMode( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, cullMode); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, cullMode); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCullMode); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCullMode); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFlagsValue(cullMode); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetCullMode(commandBuffer, cullMode); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, cullMode); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, cullMode); } VKAPI_ATTR void VKAPI_CALL CmdSetFrontFace( VkCommandBuffer commandBuffer, VkFrontFace frontFace) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7199,26 +7575,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetFrontFace( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, frontFace); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, frontFace); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetFrontFace); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetFrontFace); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(frontFace); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetFrontFace(commandBuffer, frontFace); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, frontFace); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, frontFace); } VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveTopology( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7230,19 +7608,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveTopology( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, primitiveTopology); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, primitiveTopology); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPrimitiveTopology); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPrimitiveTopology); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(primitiveTopology); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetPrimitiveTopology(commandBuffer, primitiveTopology); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, primitiveTopology); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, primitiveTopology); } VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCount( @@ -7250,7 +7628,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCount( uint32_t viewportCount, const VkViewport* pViewports) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7262,20 +7642,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCount( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, viewportCount, pViewports); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, viewportCount, pViewports); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportWithCount); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportWithCount); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(viewportCount); EncodeStructArray(encoder, pViewports, viewportCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetViewportWithCount(commandBuffer, viewportCount, pViewports); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, viewportCount, pViewports); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, viewportCount, pViewports); } VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCount( @@ -7283,7 +7663,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCount( uint32_t scissorCount, const VkRect2D* pScissors) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7295,20 +7677,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCount( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, scissorCount, pScissors); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, scissorCount, pScissors); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetScissorWithCount); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetScissorWithCount); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(scissorCount); EncodeStructArray(encoder, pScissors, scissorCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetScissorWithCount(commandBuffer, scissorCount, pScissors); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, scissorCount, pScissors); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, scissorCount, pScissors); } VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2( @@ -7320,7 +7702,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2( const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7332,9 +7716,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindVertexBuffers2); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindVertexBuffers2); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -7344,19 +7728,21 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2( encoder->EncodeVkDeviceSizeArray(pOffsets, bindingCount); encoder->EncodeVkDeviceSizeArray(pSizes, bindingCount); encoder->EncodeVkDeviceSizeArray(pStrides, bindingCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindVertexBuffers2Handles, bindingCount, pBuffers); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindVertexBuffers2Handles, bindingCount, pBuffers); } GetDeviceTable(commandBuffer)->CmdBindVertexBuffers2(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthTestEnable( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7368,26 +7754,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthTestEnable( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthTestEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthTestEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthTestEnable); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthTestEnable); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(depthTestEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthTestEnable(commandBuffer, depthTestEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthTestEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthTestEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthWriteEnable( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7399,26 +7787,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthWriteEnable( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthWriteEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthWriteEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthWriteEnable); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthWriteEnable); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(depthWriteEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthWriteEnable(commandBuffer, depthWriteEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthWriteEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthWriteEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthCompareOp( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7430,26 +7820,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthCompareOp( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthCompareOp); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthCompareOp); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthCompareOp); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthCompareOp); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(depthCompareOp); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthCompareOp(commandBuffer, depthCompareOp); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthCompareOp); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthCompareOp); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthBoundsTestEnable( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7461,26 +7853,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBoundsTestEnable( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthBoundsTestEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthBoundsTestEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBoundsTestEnable); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBoundsTestEnable); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(depthBoundsTestEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthBoundsTestEnable(commandBuffer, depthBoundsTestEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthBoundsTestEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthBoundsTestEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetStencilTestEnable( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7492,19 +7886,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilTestEnable( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stencilTestEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, stencilTestEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilTestEnable); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilTestEnable); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(stencilTestEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetStencilTestEnable(commandBuffer, stencilTestEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stencilTestEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, stencilTestEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetStencilOp( @@ -7515,7 +7909,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilOp( VkStencilOp depthFailOp, VkCompareOp compareOp) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7527,9 +7923,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilOp( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilOp); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilOp); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -7538,19 +7934,21 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilOp( encoder->EncodeEnumValue(passOp); encoder->EncodeEnumValue(depthFailOp); encoder->EncodeEnumValue(compareOp); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetStencilOp(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); } VKAPI_ATTR void VKAPI_CALL CmdSetRasterizerDiscardEnable( VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7562,26 +7960,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetRasterizerDiscardEnable( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, rasterizerDiscardEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, rasterizerDiscardEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRasterizerDiscardEnable); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRasterizerDiscardEnable); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(rasterizerDiscardEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetRasterizerDiscardEnable(commandBuffer, rasterizerDiscardEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, rasterizerDiscardEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, rasterizerDiscardEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthBiasEnable( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7593,26 +7993,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBiasEnable( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthBiasEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthBiasEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBiasEnable); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBiasEnable); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(depthBiasEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthBiasEnable(commandBuffer, depthBiasEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthBiasEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthBiasEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveRestartEnable( VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7624,19 +8026,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveRestartEnable( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, primitiveRestartEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, primitiveRestartEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPrimitiveRestartEnable); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPrimitiveRestartEnable); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(primitiveRestartEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetPrimitiveRestartEnable(commandBuffer, primitiveRestartEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, primitiveRestartEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, primitiveRestartEnable); } VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirements( @@ -7644,7 +8046,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirements( const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7656,20 +8060,20 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirements( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pMemoryRequirements); GetDeviceTable(device)->GetDeviceBufferMemoryRequirements(device, pInfo, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceBufferMemoryRequirements); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceBufferMemoryRequirements); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirements( @@ -7677,7 +8081,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirements( const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7689,23 +8095,23 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirements( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDeviceImageMemoryRequirements* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetDeviceImageMemoryRequirements(device, pInfo_unwrapped, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceImageMemoryRequirements); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceImageMemoryRequirements); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirements( @@ -7714,7 +8120,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirements( uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7726,24 +8134,24 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirements( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDeviceImageMemoryRequirements* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetDeviceImageSparseMemoryRequirements(device, pInfo_unwrapped, pSparseMemoryRequirementCount, pSparseMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceImageSparseMemoryRequirements); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceImageSparseMemoryRequirements); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeUInt32Ptr(pSparseMemoryRequirementCount); EncodeStructArray(encoder, pSparseMemoryRequirements, (pSparseMemoryRequirementCount != nullptr) ? (*pSparseMemoryRequirementCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL DestroySurfaceKHR( @@ -7751,7 +8159,9 @@ VKAPI_ATTR void VKAPI_CALL DestroySurfaceKHR( VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7763,20 +8173,20 @@ VKAPI_ATTR void VKAPI_CALL DestroySurfaceKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, surface, pAllocator); + CustomEncoderPreCall::Dispatch(manager, instance, surface, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySurfaceKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySurfaceKHR); if (encoder) { encoder->EncodeHandleValue(instance); encoder->EncodeHandleValue(surface); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(surface); + manager->EndDestroyApiCallCapture(surface); } GetInstanceTable(instance)->DestroySurfaceKHR(instance, surface, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), instance, surface, pAllocator); + CustomEncoderPostCall::Dispatch(manager, instance, surface, pAllocator); DestroyWrappedHandle(surface); } @@ -7787,7 +8197,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceSupportKHR( VkSurfaceKHR surface, VkBool32* pSupported) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7801,7 +8213,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceSupportKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, queueFamilyIndex, surface, pSupported); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, queueFamilyIndex, surface, pSupported); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported); if (result < 0) @@ -7809,7 +8221,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceSupportKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceSupportKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceSupportKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -7817,10 +8229,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceSupportKHR( encoder->EncodeHandleValue(surface); encoder->EncodeVkBool32Ptr(pSupported, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, queueFamilyIndex, surface, pSupported); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, queueFamilyIndex, surface, pSupported); return result; } @@ -7830,7 +8242,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilitiesKHR( VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7844,7 +8258,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilitiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, surface, pSurfaceCapabilities); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, surface, pSurfaceCapabilities); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities); if (result < 0) @@ -7852,17 +8266,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilitiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceCapabilitiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceCapabilitiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeHandleValue(surface); EncodeStructPtr(encoder, pSurfaceCapabilities, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, surface, pSurfaceCapabilities); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, surface, pSurfaceCapabilities); return result; } @@ -7873,7 +8287,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormatsKHR( uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7887,7 +8303,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormatsKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats); if (result < 0) @@ -7895,7 +8311,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormatsKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceFormatsKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceFormatsKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -7903,10 +8319,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormatsKHR( encoder->EncodeUInt32Ptr(pSurfaceFormatCount, omit_output_data); EncodeStructArray(encoder, pSurfaceFormats, (pSurfaceFormatCount != nullptr) ? (*pSurfaceFormatCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats); return result; } @@ -7917,7 +8333,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModesKHR( uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7931,7 +8349,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, surface, pPresentModeCount, pPresentModes); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, surface, pPresentModeCount, pPresentModes); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes); if (result < 0) @@ -7939,7 +8357,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfacePresentModesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfacePresentModesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -7947,10 +8365,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModesKHR( encoder->EncodeUInt32Ptr(pPresentModeCount, omit_output_data); encoder->EncodeEnumArray(pPresentModes, (pPresentModeCount != nullptr) ? (*pPresentModeCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, surface, pPresentModeCount, pPresentModes); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, surface, pPresentModeCount, pPresentModes); return result; } @@ -7961,7 +8379,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSwapchainKHR( const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -7975,9 +8395,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSwapchainKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pSwapchain); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pSwapchain); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSwapchainCreateInfoKHR* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateSwapchainKHR(device, pCreateInfo_unwrapped, pAllocator, pSwapchain); @@ -7991,7 +8411,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSwapchainKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSwapchainKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSwapchainKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -7999,10 +8419,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSwapchainKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSwapchain, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pSwapchain, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pSwapchain, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pSwapchain); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pSwapchain); return result; } @@ -8012,7 +8432,9 @@ VKAPI_ATTR void VKAPI_CALL DestroySwapchainKHR( VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8024,20 +8446,20 @@ VKAPI_ATTR void VKAPI_CALL DestroySwapchainKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, swapchain, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySwapchainKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySwapchainKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(swapchain); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(swapchain); + manager->EndDestroyApiCallCapture(swapchain); } GetDeviceTable(device)->DestroySwapchainKHR(device, swapchain, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, swapchain, pAllocator); DestroyWrappedHandle(swapchain); } @@ -8048,7 +8470,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainImagesKHR( uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8062,7 +8486,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainImagesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain, pSwapchainImageCount, pSwapchainImages); + CustomEncoderPreCall::Dispatch(manager, device, swapchain, pSwapchainImageCount, pSwapchainImages); VkResult result = GetDeviceTable(device)->GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages); @@ -8075,7 +8499,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainImagesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetSwapchainImagesKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetSwapchainImagesKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -8083,10 +8507,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainImagesKHR( encoder->EncodeUInt32Ptr(pSwapchainImageCount, omit_output_data); encoder->EncodeHandleArray(pSwapchainImages, (pSwapchainImageCount != nullptr) ? (*pSwapchainImageCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndGroupCreateApiCallCapture(result, device, swapchain, (pSwapchainImageCount != nullptr) ? (*pSwapchainImageCount) : 0, pSwapchainImages, nullptr); + manager->EndGroupCreateApiCallCapture(result, device, swapchain, (pSwapchainImageCount != nullptr) ? (*pSwapchainImageCount) : 0, pSwapchainImages, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, swapchain, pSwapchainImageCount, pSwapchainImages); + CustomEncoderPostCall::Dispatch(manager, result, device, swapchain, pSwapchainImageCount, pSwapchainImages); return result; } @@ -8099,7 +8523,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImageKHR( VkFence fence, uint32_t* pImageIndex) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8113,7 +8539,7 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImageKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain, timeout, semaphore, fence, pImageIndex); + CustomEncoderPreCall::Dispatch(manager, device, swapchain, timeout, semaphore, fence, pImageIndex); VkResult result = GetDeviceTable(device)->AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex); if (result < 0) @@ -8121,7 +8547,7 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImageKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireNextImageKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireNextImageKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -8131,10 +8557,10 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImageKHR( encoder->EncodeHandleValue(fence); encoder->EncodeUInt32Ptr(pImageIndex, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, swapchain, timeout, semaphore, fence, pImageIndex); + CustomEncoderPostCall::Dispatch(manager, result, device, swapchain, timeout, semaphore, fence, pImageIndex); return result; } @@ -8143,25 +8569,27 @@ VKAPI_ATTR VkResult VKAPI_CALL QueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo) { + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); auto api_call_lock = VulkanCaptureManager::AcquireExclusiveApiCallLock(); - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue, pPresentInfo); + CustomEncoderPreCall::Dispatch(manager, queue, pPresentInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkPresentInfoKHR* pPresentInfo_unwrapped = UnwrapStructPtrHandles(pPresentInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(queue)->QueuePresentKHR(queue, pPresentInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueuePresentKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueuePresentKHR); if (encoder) { encoder->EncodeHandleValue(queue); EncodeStructPtr(encoder, pPresentInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, queue, pPresentInfo); + CustomEncoderPostCall::Dispatch(manager, result, queue, pPresentInfo); return result; } @@ -8170,7 +8598,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8184,7 +8614,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupPresentCapabilitiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pDeviceGroupPresentCapabilities); + CustomEncoderPreCall::Dispatch(manager, device, pDeviceGroupPresentCapabilities); VkResult result = GetDeviceTable(device)->GetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities); if (result < 0) @@ -8192,16 +8622,16 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupPresentCapabilitiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceGroupPresentCapabilitiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceGroupPresentCapabilitiesKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pDeviceGroupPresentCapabilities, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pDeviceGroupPresentCapabilities); + CustomEncoderPostCall::Dispatch(manager, result, device, pDeviceGroupPresentCapabilities); return result; } @@ -8211,7 +8641,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupSurfacePresentModesKHR( VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8225,7 +8657,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupSurfacePresentModesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, surface, pModes); + CustomEncoderPreCall::Dispatch(manager, device, surface, pModes); VkResult result = GetDeviceTable(device)->GetDeviceGroupSurfacePresentModesKHR(device, surface, pModes); if (result < 0) @@ -8233,17 +8665,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupSurfacePresentModesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceGroupSurfacePresentModesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceGroupSurfacePresentModesKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(surface); encoder->EncodeFlagsPtr(pModes, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, surface, pModes); + CustomEncoderPostCall::Dispatch(manager, result, device, surface, pModes); return result; } @@ -8254,7 +8686,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDevicePresentRectanglesKHR( uint32_t* pRectCount, VkRect2D* pRects) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8268,7 +8702,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDevicePresentRectanglesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, surface, pRectCount, pRects); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, surface, pRectCount, pRects); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects); if (result < 0) @@ -8276,7 +8710,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDevicePresentRectanglesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDevicePresentRectanglesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDevicePresentRectanglesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -8284,10 +8718,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDevicePresentRectanglesKHR( encoder->EncodeUInt32Ptr(pRectCount, omit_output_data); EncodeStructArray(encoder, pRects, (pRectCount != nullptr) ? (*pRectCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, surface, pRectCount, pRects); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, surface, pRectCount, pRects); return result; } @@ -8297,7 +8731,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImage2KHR( const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8311,9 +8747,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImage2KHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pAcquireInfo, pImageIndex); + CustomEncoderPreCall::Dispatch(manager, device, pAcquireInfo, pImageIndex); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkAcquireNextImageInfoKHR* pAcquireInfo_unwrapped = UnwrapStructPtrHandles(pAcquireInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->AcquireNextImage2KHR(device, pAcquireInfo_unwrapped, pImageIndex); @@ -8322,17 +8758,17 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireNextImage2KHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireNextImage2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireNextImage2KHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pAcquireInfo); encoder->EncodeUInt32Ptr(pImageIndex, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pAcquireInfo, pImageIndex); + CustomEncoderPostCall::Dispatch(manager, result, device, pAcquireInfo, pImageIndex); return result; } @@ -8342,7 +8778,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPropertiesKHR( uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8356,7 +8794,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPropertiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pPropertyCount, pProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties); @@ -8369,17 +8807,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPropertiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceDisplayPropertiesKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceDisplayPropertiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pPropertyCount, omit_output_data); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayPropertiesKHR* handle_struct)->DisplayKHRWrapper* { return GetWrapper(handle_struct->display); }); + manager->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayPropertiesKHR* handle_struct)->DisplayKHRWrapper* { return GetWrapper(handle_struct->display); }); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pPropertyCount, pProperties); return result; } @@ -8389,7 +8827,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8403,7 +8843,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPlanePropertiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pPropertyCount, pProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties); @@ -8416,17 +8856,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPlanePropertiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceDisplayPlanePropertiesKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceDisplayPlanePropertiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pPropertyCount, omit_output_data); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayPlanePropertiesKHR* handle_struct)->DisplayKHRWrapper* { return GetWrapper(handle_struct->currentDisplay); }); + manager->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayPlanePropertiesKHR* handle_struct)->DisplayKHRWrapper* { return GetWrapper(handle_struct->currentDisplay); }); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pPropertyCount, pProperties); return result; } @@ -8437,7 +8877,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneSupportedDisplaysKHR( uint32_t* pDisplayCount, VkDisplayKHR* pDisplays) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8451,7 +8893,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneSupportedDisplaysKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, planeIndex, pDisplayCount, pDisplays); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, planeIndex, pDisplayCount, pDisplays); VkResult result = GetInstanceTable(physicalDevice)->GetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays); @@ -8464,7 +8906,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneSupportedDisplaysKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDisplayPlaneSupportedDisplaysKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDisplayPlaneSupportedDisplaysKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -8472,10 +8914,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneSupportedDisplaysKHR( encoder->EncodeUInt32Ptr(pDisplayCount, omit_output_data); encoder->EncodeHandleArray(pDisplays, (pDisplayCount != nullptr) ? (*pDisplayCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndGroupCreateApiCallCapture(result, physicalDevice, nullptr, (pDisplayCount != nullptr) ? (*pDisplayCount) : 0, pDisplays, nullptr); + manager->EndGroupCreateApiCallCapture(result, physicalDevice, nullptr, (pDisplayCount != nullptr) ? (*pDisplayCount) : 0, pDisplays, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, planeIndex, pDisplayCount, pDisplays); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, planeIndex, pDisplayCount, pDisplays); return result; } @@ -8486,7 +8928,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModePropertiesKHR( uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8500,7 +8944,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModePropertiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, display, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, display, pPropertyCount, pProperties); VkResult result = GetInstanceTable(physicalDevice)->GetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties); @@ -8513,7 +8957,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModePropertiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDisplayModePropertiesKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDisplayModePropertiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -8521,10 +8965,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModePropertiesKHR( encoder->EncodeUInt32Ptr(pPropertyCount, omit_output_data); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayModePropertiesKHR* handle_struct)->DisplayModeKHRWrapper* { return GetWrapper(handle_struct->displayMode); }); + manager->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayModePropertiesKHR* handle_struct)->DisplayModeKHRWrapper* { return GetWrapper(handle_struct->displayMode); }); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, display, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, display, pPropertyCount, pProperties); return result; } @@ -8536,7 +8980,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayModeKHR( const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8550,7 +8996,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayModeKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, display, pCreateInfo, pAllocator, pMode); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, display, pCreateInfo, pAllocator, pMode); VkResult result = GetInstanceTable(physicalDevice)->CreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode); @@ -8563,7 +9009,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayModeKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDisplayModeKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDisplayModeKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -8572,10 +9018,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayModeKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pMode, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, physicalDevice, pMode, pCreateInfo); + manager->EndCreateApiCallCapture(result, physicalDevice, pMode, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, display, pCreateInfo, pAllocator, pMode); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, display, pCreateInfo, pAllocator, pMode); return result; } @@ -8586,7 +9032,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilitiesKHR( uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8600,7 +9048,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilitiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, mode, planeIndex, pCapabilities); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, mode, planeIndex, pCapabilities); VkResult result = GetInstanceTable(physicalDevice)->GetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities); if (result < 0) @@ -8608,7 +9056,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilitiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDisplayPlaneCapabilitiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDisplayPlaneCapabilitiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -8616,10 +9064,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilitiesKHR( encoder->EncodeUInt32Value(planeIndex); EncodeStructPtr(encoder, pCapabilities, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, mode, planeIndex, pCapabilities); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, mode, planeIndex, pCapabilities); return result; } @@ -8630,7 +9078,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayPlaneSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8644,9 +9094,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayPlaneSurfaceKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDisplaySurfaceCreateInfoKHR* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetInstanceTable(instance)->CreateDisplayPlaneSurfaceKHR(instance, pCreateInfo_unwrapped, pAllocator, pSurface); @@ -8660,7 +9110,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayPlaneSurfaceKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDisplayPlaneSurfaceKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDisplayPlaneSurfaceKHR); if (encoder) { encoder->EncodeHandleValue(instance); @@ -8668,10 +9118,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDisplayPlaneSurfaceKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -8683,7 +9133,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSharedSwapchainsKHR( const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8697,9 +9149,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSharedSwapchainsKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchainCount, pCreateInfos, pAllocator, pSwapchains); + CustomEncoderPreCall::Dispatch(manager, device, swapchainCount, pCreateInfos, pAllocator, pSwapchains); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSwapchainCreateInfoKHR* pCreateInfos_unwrapped = UnwrapStructArrayHandles(pCreateInfos, swapchainCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos_unwrapped, pAllocator, pSwapchains); @@ -8713,7 +9165,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSharedSwapchainsKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSharedSwapchainsKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSharedSwapchainsKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -8722,10 +9174,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSharedSwapchainsKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandleArray(pSwapchains, swapchainCount, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndGroupCreateApiCallCapture(result, device, nullptr, swapchainCount, pSwapchains, pCreateInfos); + manager->EndGroupCreateApiCallCapture(result, device, nullptr, swapchainCount, pSwapchains, pCreateInfos); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, swapchainCount, pCreateInfos, pAllocator, pSwapchains); + CustomEncoderPostCall::Dispatch(manager, result, device, swapchainCount, pCreateInfos, pAllocator, pSwapchains); return result; } @@ -8736,7 +9188,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateXlibSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8750,7 +9204,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateXlibSurfaceKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface); @@ -8763,7 +9217,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateXlibSurfaceKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateXlibSurfaceKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateXlibSurfaceKHR); if (encoder) { encoder->EncodeHandleValue(instance); @@ -8771,10 +9225,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateXlibSurfaceKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -8785,7 +9239,9 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceXlibPresentationSupportKHR( Display* dpy, VisualID visualID) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8797,11 +9253,11 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceXlibPresentationSupportKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, queueFamilyIndex, dpy, visualID); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, queueFamilyIndex, dpy, visualID); VkBool32 result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceXlibPresentationSupportKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceXlibPresentationSupportKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -8809,10 +9265,10 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceXlibPresentationSupportKHR( encoder->EncodeVoidPtr(dpy); encoder->EncodeSizeTValue(visualID); encoder->EncodeVkBool32Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, queueFamilyIndex, dpy, visualID); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, queueFamilyIndex, dpy, visualID); return result; } @@ -8823,7 +9279,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateXcbSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8837,7 +9295,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateXcbSurfaceKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface); @@ -8850,7 +9308,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateXcbSurfaceKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateXcbSurfaceKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateXcbSurfaceKHR); if (encoder) { encoder->EncodeHandleValue(instance); @@ -8858,10 +9316,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateXcbSurfaceKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -8872,7 +9330,9 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceXcbPresentationSupportKHR( xcb_connection_t* connection, xcb_visualid_t visual_id) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8884,11 +9344,11 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceXcbPresentationSupportKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, queueFamilyIndex, connection, visual_id); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, queueFamilyIndex, connection, visual_id); VkBool32 result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceXcbPresentationSupportKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceXcbPresentationSupportKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -8896,10 +9356,10 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceXcbPresentationSupportKHR( encoder->EncodeVoidPtr(connection); encoder->EncodeUInt32Value(visual_id); encoder->EncodeVkBool32Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, queueFamilyIndex, connection, visual_id); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, queueFamilyIndex, connection, visual_id); return result; } @@ -8910,7 +9370,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateWaylandSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8924,7 +9386,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateWaylandSurfaceKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface); @@ -8937,7 +9399,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateWaylandSurfaceKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateWaylandSurfaceKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateWaylandSurfaceKHR); if (encoder) { encoder->EncodeHandleValue(instance); @@ -8945,10 +9407,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateWaylandSurfaceKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -8958,7 +9420,9 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -8970,21 +9434,21 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceWaylandPresentationSupportKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, queueFamilyIndex, display); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, queueFamilyIndex, display); VkBool32 result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceWaylandPresentationSupportKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceWaylandPresentationSupportKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Value(queueFamilyIndex); encoder->EncodeVoidPtr(display); encoder->EncodeVkBool32Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, queueFamilyIndex, display); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, queueFamilyIndex, display); return result; } @@ -8995,7 +9459,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAndroidSurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9009,7 +9475,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAndroidSurfaceKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface); @@ -9022,7 +9488,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAndroidSurfaceKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateAndroidSurfaceKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateAndroidSurfaceKHR); if (encoder) { encoder->EncodeHandleValue(instance); @@ -9030,10 +9496,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAndroidSurfaceKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -9044,7 +9510,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateWin32SurfaceKHR( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9058,7 +9526,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateWin32SurfaceKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface); @@ -9071,7 +9539,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateWin32SurfaceKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateWin32SurfaceKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateWin32SurfaceKHR); if (encoder) { encoder->EncodeHandleValue(instance); @@ -9079,10 +9547,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateWin32SurfaceKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -9091,7 +9559,9 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9103,20 +9573,20 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceWin32PresentationSupportKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, queueFamilyIndex); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, queueFamilyIndex); VkBool32 result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceWin32PresentationSupportKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceWin32PresentationSupportKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Value(queueFamilyIndex); encoder->EncodeVkBool32Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, queueFamilyIndex); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, queueFamilyIndex); return result; } @@ -9126,7 +9596,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoCapabilitiesKHR( const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9140,7 +9612,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoCapabilitiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pVideoProfile, pCapabilities); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pVideoProfile, pCapabilities); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities); if (result < 0) @@ -9148,17 +9620,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoCapabilitiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceVideoCapabilitiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceVideoCapabilitiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pVideoProfile); EncodeStructPtr(encoder, pCapabilities, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pVideoProfile, pCapabilities); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pVideoProfile, pCapabilities); return result; } @@ -9169,7 +9641,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoFormatPropertiesKHR( uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9183,7 +9657,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoFormatPropertiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties); if (result < 0) @@ -9191,7 +9665,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoFormatPropertiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceVideoFormatPropertiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceVideoFormatPropertiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -9199,10 +9673,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoFormatPropertiesKHR( encoder->EncodeUInt32Ptr(pVideoFormatPropertyCount, omit_output_data); EncodeStructArray(encoder, pVideoFormatProperties, (pVideoFormatPropertyCount != nullptr) ? (*pVideoFormatPropertyCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties); return result; } @@ -9213,7 +9687,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionKHR( const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9227,7 +9703,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pVideoSession); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pVideoSession); VkResult result = GetDeviceTable(device)->CreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession); @@ -9240,7 +9716,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateVideoSessionKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateVideoSessionKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -9248,10 +9724,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pVideoSession, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pVideoSession, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pVideoSession, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pVideoSession); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pVideoSession); return result; } @@ -9261,7 +9737,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionKHR( VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9273,20 +9751,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, videoSession, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, videoSession, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyVideoSessionKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyVideoSessionKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(videoSession); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(videoSession); + manager->EndDestroyApiCallCapture(videoSession); } GetDeviceTable(device)->DestroyVideoSessionKHR(device, videoSession, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, videoSession, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, videoSession, pAllocator); DestroyWrappedHandle(videoSession); } @@ -9297,7 +9775,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetVideoSessionMemoryRequirementsKHR( uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9311,7 +9791,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetVideoSessionMemoryRequirementsKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, videoSession, pMemoryRequirementsCount, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, videoSession, pMemoryRequirementsCount, pMemoryRequirements); VkResult result = GetDeviceTable(device)->GetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements); if (result < 0) @@ -9319,7 +9799,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetVideoSessionMemoryRequirementsKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetVideoSessionMemoryRequirementsKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetVideoSessionMemoryRequirementsKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -9327,10 +9807,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetVideoSessionMemoryRequirementsKHR( encoder->EncodeUInt32Ptr(pMemoryRequirementsCount, omit_output_data); EncodeStructArray(encoder, pMemoryRequirements, (pMemoryRequirementsCount != nullptr) ? (*pMemoryRequirementsCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, videoSession, pMemoryRequirementsCount, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, result, device, videoSession, pMemoryRequirementsCount, pMemoryRequirements); return result; } @@ -9341,7 +9821,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BindVideoSessionMemoryKHR( uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9353,14 +9835,14 @@ VKAPI_ATTR VkResult VKAPI_CALL BindVideoSessionMemoryKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos); + CustomEncoderPreCall::Dispatch(manager, device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos_unwrapped = UnwrapStructArrayHandles(pBindSessionMemoryInfos, bindSessionMemoryInfoCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->BindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindVideoSessionMemoryKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindVideoSessionMemoryKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -9368,10 +9850,10 @@ VKAPI_ATTR VkResult VKAPI_CALL BindVideoSessionMemoryKHR( encoder->EncodeUInt32Value(bindSessionMemoryInfoCount); EncodeStructArray(encoder, pBindSessionMemoryInfos, bindSessionMemoryInfoCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos); + CustomEncoderPostCall::Dispatch(manager, result, device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos); return result; } @@ -9382,7 +9864,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionParametersKHR( const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9396,9 +9880,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionParametersKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pVideoSessionParameters); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pVideoSessionParameters); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkVideoSessionParametersCreateInfoKHR* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateVideoSessionParametersKHR(device, pCreateInfo_unwrapped, pAllocator, pVideoSessionParameters); @@ -9412,7 +9896,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionParametersKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateVideoSessionParametersKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateVideoSessionParametersKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -9420,10 +9904,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionParametersKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pVideoSessionParameters, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pVideoSessionParameters, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pVideoSessionParameters, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pVideoSessionParameters); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pVideoSessionParameters); return result; } @@ -9433,7 +9917,9 @@ VKAPI_ATTR VkResult VKAPI_CALL UpdateVideoSessionParametersKHR( VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9445,21 +9931,21 @@ VKAPI_ATTR VkResult VKAPI_CALL UpdateVideoSessionParametersKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, videoSessionParameters, pUpdateInfo); + CustomEncoderPreCall::Dispatch(manager, device, videoSessionParameters, pUpdateInfo); VkResult result = GetDeviceTable(device)->UpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkUpdateVideoSessionParametersKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkUpdateVideoSessionParametersKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(videoSessionParameters); EncodeStructPtr(encoder, pUpdateInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, videoSessionParameters, pUpdateInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, videoSessionParameters, pUpdateInfo); return result; } @@ -9469,7 +9955,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionParametersKHR( VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9481,20 +9969,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionParametersKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, videoSessionParameters, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, videoSessionParameters, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyVideoSessionParametersKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyVideoSessionParametersKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(videoSessionParameters); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(videoSessionParameters); + manager->EndDestroyApiCallCapture(videoSessionParameters); } GetDeviceTable(device)->DestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, videoSessionParameters, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, videoSessionParameters, pAllocator); DestroyWrappedHandle(videoSessionParameters); } @@ -9503,7 +9991,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9515,29 +10005,31 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginVideoCodingKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pBeginInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pBeginInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginVideoCodingKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginVideoCodingKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pBeginInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginVideoCodingKHRHandles, pBeginInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginVideoCodingKHRHandles, pBeginInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkVideoBeginCodingInfoKHR* pBeginInfo_unwrapped = UnwrapStructPtrHandles(pBeginInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBeginVideoCodingKHR(commandBuffer, pBeginInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pBeginInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pBeginInfo); } VKAPI_ATTR void VKAPI_CALL CmdEndVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9549,26 +10041,28 @@ VKAPI_ATTR void VKAPI_CALL CmdEndVideoCodingKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pEndCodingInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pEndCodingInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndVideoCodingKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndVideoCodingKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pEndCodingInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pEndCodingInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pEndCodingInfo); } VKAPI_ATTR void VKAPI_CALL CmdControlVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9580,26 +10074,28 @@ VKAPI_ATTR void VKAPI_CALL CmdControlVideoCodingKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCodingControlInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pCodingControlInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdControlVideoCodingKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdControlVideoCodingKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pCodingControlInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCodingControlInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pCodingControlInfo); } VKAPI_ATTR void VKAPI_CALL CmdDecodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9611,29 +10107,31 @@ VKAPI_ATTR void VKAPI_CALL CmdDecodeVideoKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pDecodeInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pDecodeInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDecodeVideoKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDecodeVideoKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pDecodeInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDecodeVideoKHRHandles, pDecodeInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDecodeVideoKHRHandles, pDecodeInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkVideoDecodeInfoKHR* pDecodeInfo_unwrapped = UnwrapStructPtrHandles(pDecodeInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdDecodeVideoKHR(commandBuffer, pDecodeInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pDecodeInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pDecodeInfo); } VKAPI_ATTR void VKAPI_CALL CmdBeginRenderingKHR( VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9645,28 +10143,30 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRenderingKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRenderingInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pRenderingInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginRenderingKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginRenderingKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pRenderingInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginRenderingKHRHandles, pRenderingInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginRenderingKHRHandles, pRenderingInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkRenderingInfo* pRenderingInfo_unwrapped = UnwrapStructPtrHandles(pRenderingInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBeginRenderingKHR(commandBuffer, pRenderingInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRenderingInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pRenderingInfo); } VKAPI_ATTR void VKAPI_CALL CmdEndRenderingKHR( VkCommandBuffer commandBuffer) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9678,25 +10178,27 @@ VKAPI_ATTR void VKAPI_CALL CmdEndRenderingKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPreCall::Dispatch(manager, commandBuffer); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndRenderingKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndRenderingKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdEndRenderingKHR(commandBuffer); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPostCall::Dispatch(manager, commandBuffer); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9708,26 +10210,28 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFeatures2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFeatures); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pFeatures); GetInstanceTable(physicalDevice)->GetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFeatures2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFeatures2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pFeatures); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFeatures); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pFeatures); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9739,19 +10243,19 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceProperties2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceProperties2KHR(physicalDevice, pProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceProperties2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceProperties2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pProperties); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties2KHR( @@ -9759,7 +10263,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties2KHR( VkFormat format, VkFormatProperties2* pFormatProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9771,20 +10277,20 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, format, pFormatProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, format, pFormatProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFormatProperties2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFormatProperties2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeEnumValue(format); EncodeStructPtr(encoder, pFormatProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, format, pFormatProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, format, pFormatProperties); } VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2KHR( @@ -9792,7 +10298,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2KHR( const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9806,7 +10314,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2KHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pImageFormatInfo, pImageFormatProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pImageFormatInfo, pImageFormatProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties); if (result < 0) @@ -9814,17 +10322,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2KHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceImageFormatProperties2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceImageFormatProperties2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pImageFormatInfo); EncodeStructPtr(encoder, pImageFormatProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pImageFormatInfo, pImageFormatProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pImageFormatInfo, pImageFormatProperties); return result; } @@ -9834,7 +10342,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9846,27 +10356,29 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyProperties2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); - VulkanCaptureManager::Get()->OverrideGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); + manager->OverrideGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceQueueFamilyProperties2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceQueueFamilyProperties2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pQueueFamilyPropertyCount); EncodeStructArray(encoder, pQueueFamilyProperties, (pQueueFamilyPropertyCount != nullptr) ? (*pQueueFamilyPropertyCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9878,19 +10390,19 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMemoryProperties2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pMemoryProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pMemoryProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceMemoryProperties2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceMemoryProperties2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pMemoryProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pMemoryProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pMemoryProperties); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties2KHR( @@ -9899,7 +10411,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties2KHR( uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9911,21 +10425,21 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFormatInfo, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pFormatInfo, pPropertyCount, pProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSparseImageFormatProperties2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSparseImageFormatProperties2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pFormatInfo); encoder->EncodeUInt32Ptr(pPropertyCount); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFormatInfo, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pFormatInfo, pPropertyCount, pProperties); } VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHR( @@ -9935,7 +10449,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHR( uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9947,11 +10463,11 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); + CustomEncoderPreCall::Dispatch(manager, device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); GetDeviceTable(device)->GetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceGroupPeerMemoryFeaturesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceGroupPeerMemoryFeaturesKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -9959,17 +10475,19 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHR( encoder->EncodeUInt32Value(localDeviceIndex); encoder->EncodeUInt32Value(remoteDeviceIndex); encoder->EncodeFlagsPtr(pPeerMemoryFeatures); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); + CustomEncoderPostCall::Dispatch(manager, device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); } VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -9981,19 +10499,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMaskKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, deviceMask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, deviceMask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDeviceMaskKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDeviceMaskKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(deviceMask); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDeviceMaskKHR(commandBuffer, deviceMask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, deviceMask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, deviceMask); } VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHR( @@ -10005,7 +10523,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHR( uint32_t groupCountY, uint32_t groupCountZ) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10017,9 +10537,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDispatchBaseKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDispatchBaseKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -10029,12 +10549,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHR( encoder->EncodeUInt32Value(groupCountX); encoder->EncodeUInt32Value(groupCountY); encoder->EncodeUInt32Value(groupCountZ); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); } VKAPI_ATTR void VKAPI_CALL TrimCommandPoolKHR( @@ -10042,7 +10562,9 @@ VKAPI_ATTR void VKAPI_CALL TrimCommandPoolKHR( VkCommandPool commandPool, VkCommandPoolTrimFlags flags) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10054,20 +10576,20 @@ VKAPI_ATTR void VKAPI_CALL TrimCommandPoolKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, commandPool, flags); + CustomEncoderPreCall::Dispatch(manager, device, commandPool, flags); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkTrimCommandPoolKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkTrimCommandPoolKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(commandPool); encoder->EncodeFlagsValue(flags); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->TrimCommandPoolKHR(device, commandPool, flags); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, commandPool, flags); + CustomEncoderPostCall::Dispatch(manager, device, commandPool, flags); } VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceGroupsKHR( @@ -10075,7 +10597,9 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10089,7 +10613,7 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceGroupsKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); + CustomEncoderPreCall::Dispatch(manager, instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); VkResult result = GetInstanceTable(instance)->EnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); @@ -10102,17 +10626,17 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceGroupsKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkEnumeratePhysicalDeviceGroupsKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkEnumeratePhysicalDeviceGroupsKHR); if (encoder) { encoder->EncodeHandleValue(instance); encoder->EncodeUInt32Ptr(pPhysicalDeviceGroupCount, omit_output_data); EncodeStructArray(encoder, pPhysicalDeviceGroupProperties, (pPhysicalDeviceGroupCount != nullptr) ? (*pPhysicalDeviceGroupCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndStructGroupCreateApiCallCapture(result, instance, (pPhysicalDeviceGroupCount != nullptr) ? (*pPhysicalDeviceGroupCount) : 0, pPhysicalDeviceGroupProperties, nullptr); + manager->EndStructGroupCreateApiCallCapture(result, instance, (pPhysicalDeviceGroupCount != nullptr) ? (*pPhysicalDeviceGroupCount) : 0, pPhysicalDeviceGroupProperties, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); + CustomEncoderPostCall::Dispatch(manager, result, instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); return result; } @@ -10122,7 +10646,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalBufferPropertiesKHR( const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10134,20 +10660,20 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalBufferPropertiesKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalBufferInfo, pExternalBufferProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pExternalBufferInfo, pExternalBufferProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalBufferPropertiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalBufferPropertiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pExternalBufferInfo); EncodeStructPtr(encoder, pExternalBufferProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalBufferInfo, pExternalBufferProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pExternalBufferInfo, pExternalBufferProperties); } VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR( @@ -10155,7 +10681,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR( const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10169,9 +10697,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pGetWin32HandleInfo, pHandle); + CustomEncoderPreCall::Dispatch(manager, device, pGetWin32HandleInfo, pHandle); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo_unwrapped = UnwrapStructPtrHandles(pGetWin32HandleInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetMemoryWin32HandleKHR(device, pGetWin32HandleInfo_unwrapped, pHandle); @@ -10180,17 +10708,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryWin32HandleKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryWin32HandleKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pGetWin32HandleInfo); encoder->EncodeVoidPtrPtr(pHandle, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pGetWin32HandleInfo, pHandle); + CustomEncoderPostCall::Dispatch(manager, result, device, pGetWin32HandleInfo, pHandle); return result; } @@ -10201,7 +10729,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR( HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10215,7 +10745,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, handleType, handle, pMemoryWin32HandleProperties); + CustomEncoderPreCall::Dispatch(manager, device, handleType, handle, pMemoryWin32HandleProperties); VkResult result = GetDeviceTable(device)->GetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties); if (result < 0) @@ -10223,7 +10753,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryWin32HandlePropertiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryWin32HandlePropertiesKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -10231,10 +10761,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR( encoder->EncodeVoidPtr(handle); EncodeStructPtr(encoder, pMemoryWin32HandleProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, handleType, handle, pMemoryWin32HandleProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, handleType, handle, pMemoryWin32HandleProperties); return result; } @@ -10244,7 +10774,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdKHR( const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10258,9 +10790,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pGetFdInfo, pFd); + CustomEncoderPreCall::Dispatch(manager, device, pGetFdInfo, pFd); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMemoryGetFdInfoKHR* pGetFdInfo_unwrapped = UnwrapStructPtrHandles(pGetFdInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetMemoryFdKHR(device, pGetFdInfo_unwrapped, pFd); @@ -10269,17 +10801,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryFdKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryFdKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pGetFdInfo); encoder->EncodeInt32Ptr(pFd, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pGetFdInfo, pFd); + CustomEncoderPostCall::Dispatch(manager, result, device, pGetFdInfo, pFd); return result; } @@ -10290,7 +10822,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR( int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10304,7 +10838,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, handleType, fd, pMemoryFdProperties); + CustomEncoderPreCall::Dispatch(manager, device, handleType, fd, pMemoryFdProperties); VkResult result = GetDeviceTable(device)->GetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties); if (result < 0) @@ -10312,7 +10846,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryFdPropertiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryFdPropertiesKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -10320,10 +10854,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR( encoder->EncodeInt32Value(fd); EncodeStructPtr(encoder, pMemoryFdProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, handleType, fd, pMemoryFdProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, handleType, fd, pMemoryFdProperties); return result; } @@ -10333,7 +10867,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalSemaphorePropertiesKHR( const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10345,27 +10881,29 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalSemaphorePropertiesKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pExternalSemaphoreInfo); EncodeStructPtr(encoder, pExternalSemaphoreProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties); } VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10377,23 +10915,23 @@ VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreWin32HandleKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pImportSemaphoreWin32HandleInfo); + CustomEncoderPreCall::Dispatch(manager, device, pImportSemaphoreWin32HandleInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo_unwrapped = UnwrapStructPtrHandles(pImportSemaphoreWin32HandleInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->ImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkImportSemaphoreWin32HandleKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkImportSemaphoreWin32HandleKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pImportSemaphoreWin32HandleInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pImportSemaphoreWin32HandleInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pImportSemaphoreWin32HandleInfo); return result; } @@ -10403,7 +10941,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreWin32HandleKHR( const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10417,9 +10957,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreWin32HandleKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pGetWin32HandleInfo, pHandle); + CustomEncoderPreCall::Dispatch(manager, device, pGetWin32HandleInfo, pHandle); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo_unwrapped = UnwrapStructPtrHandles(pGetWin32HandleInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo_unwrapped, pHandle); @@ -10428,17 +10968,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreWin32HandleKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSemaphoreWin32HandleKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSemaphoreWin32HandleKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pGetWin32HandleInfo); encoder->EncodeVoidPtrPtr(pHandle, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pGetWin32HandleInfo, pHandle); + CustomEncoderPostCall::Dispatch(manager, result, device, pGetWin32HandleInfo, pHandle); return result; } @@ -10447,7 +10987,9 @@ VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10459,23 +11001,23 @@ VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreFdKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pImportSemaphoreFdInfo); + CustomEncoderPreCall::Dispatch(manager, device, pImportSemaphoreFdInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo_unwrapped = UnwrapStructPtrHandles(pImportSemaphoreFdInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->ImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkImportSemaphoreFdKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkImportSemaphoreFdKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pImportSemaphoreFdInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pImportSemaphoreFdInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pImportSemaphoreFdInfo); return result; } @@ -10485,7 +11027,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreFdKHR( const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10499,9 +11043,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreFdKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pGetFdInfo, pFd); + CustomEncoderPreCall::Dispatch(manager, device, pGetFdInfo, pFd); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSemaphoreGetFdInfoKHR* pGetFdInfo_unwrapped = UnwrapStructPtrHandles(pGetFdInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetSemaphoreFdKHR(device, pGetFdInfo_unwrapped, pFd); @@ -10510,17 +11054,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreFdKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSemaphoreFdKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSemaphoreFdKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pGetFdInfo); encoder->EncodeInt32Ptr(pFd, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pGetFdInfo, pFd); + CustomEncoderPostCall::Dispatch(manager, result, device, pGetFdInfo, pFd); return result; } @@ -10533,7 +11077,9 @@ VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetKHR( uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10545,9 +11091,9 @@ VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPushDescriptorSetKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPushDescriptorSetKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -10556,15 +11102,15 @@ VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetKHR( encoder->EncodeUInt32Value(set); encoder->EncodeUInt32Value(descriptorWriteCount); EncodeStructArray(encoder, pDescriptorWrites, descriptorWriteCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdPushDescriptorSetKHRHandles, layout, descriptorWriteCount, pDescriptorWrites); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdPushDescriptorSetKHRHandles, layout, descriptorWriteCount, pDescriptorWrites); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkWriteDescriptorSet* pDescriptorWrites_unwrapped = UnwrapStructArrayHandles(pDescriptorWrites, descriptorWriteCount, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites); } VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR( @@ -10573,7 +11119,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR( const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10587,9 +11135,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateDescriptorUpdateTemplateKHR(device, pCreateInfo_unwrapped, pAllocator, pDescriptorUpdateTemplate); @@ -10603,7 +11151,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDescriptorUpdateTemplateKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDescriptorUpdateTemplateKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -10611,10 +11159,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pDescriptorUpdateTemplate, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pDescriptorUpdateTemplate, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pDescriptorUpdateTemplate, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate); return result; } @@ -10624,7 +11172,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplateKHR( VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10636,20 +11186,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplateKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorUpdateTemplate, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, descriptorUpdateTemplate, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDescriptorUpdateTemplateKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDescriptorUpdateTemplateKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(descriptorUpdateTemplate); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(descriptorUpdateTemplate); + manager->EndDestroyApiCallCapture(descriptorUpdateTemplate); } GetDeviceTable(device)->DestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorUpdateTemplate, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, descriptorUpdateTemplate, pAllocator); DestroyWrappedHandle(descriptorUpdateTemplate); } @@ -10660,7 +11210,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR( const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10674,7 +11226,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pRenderPass); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pRenderPass); VkResult result = GetDeviceTable(device)->CreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass); @@ -10687,7 +11239,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateRenderPass2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateRenderPass2KHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -10695,10 +11247,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pRenderPass, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pRenderPass, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pRenderPass, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pRenderPass); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pRenderPass); return result; } @@ -10708,7 +11260,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2KHR( const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10720,23 +11274,23 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRenderPassBegin, pSubpassBeginInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pRenderPassBegin, pSubpassBeginInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginRenderPass2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginRenderPass2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pRenderPassBegin); EncodeStructPtr(encoder, pSubpassBeginInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginRenderPass2KHRHandles, pRenderPassBegin); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginRenderPass2KHRHandles, pRenderPassBegin); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkRenderPassBeginInfo* pRenderPassBegin_unwrapped = UnwrapStructPtrHandles(pRenderPassBegin, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin_unwrapped, pSubpassBeginInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRenderPassBegin, pSubpassBeginInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pRenderPassBegin, pSubpassBeginInfo); } VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2KHR( @@ -10744,7 +11298,9 @@ VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2KHR( const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10756,27 +11312,29 @@ VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdNextSubpass2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdNextSubpass2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pSubpassBeginInfo); EncodeStructPtr(encoder, pSubpassEndInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); } VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10788,26 +11346,28 @@ VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pSubpassEndInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pSubpassEndInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndRenderPass2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndRenderPass2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pSubpassEndInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pSubpassEndInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pSubpassEndInfo); } VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10819,20 +11379,20 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainStatusKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain); + CustomEncoderPreCall::Dispatch(manager, device, swapchain); VkResult result = GetDeviceTable(device)->GetSwapchainStatusKHR(device, swapchain); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSwapchainStatusKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSwapchainStatusKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(swapchain); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, swapchain); + CustomEncoderPostCall::Dispatch(manager, result, device, swapchain); return result; } @@ -10842,7 +11402,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalFencePropertiesKHR( const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10854,27 +11416,29 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalFencePropertiesKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalFenceInfo, pExternalFenceProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pExternalFenceInfo, pExternalFenceProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalFencePropertiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalFencePropertiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pExternalFenceInfo); EncodeStructPtr(encoder, pExternalFenceProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pExternalFenceInfo, pExternalFenceProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pExternalFenceInfo, pExternalFenceProperties); } VKAPI_ATTR VkResult VKAPI_CALL ImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10886,23 +11450,23 @@ VKAPI_ATTR VkResult VKAPI_CALL ImportFenceWin32HandleKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pImportFenceWin32HandleInfo); + CustomEncoderPreCall::Dispatch(manager, device, pImportFenceWin32HandleInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo_unwrapped = UnwrapStructPtrHandles(pImportFenceWin32HandleInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->ImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkImportFenceWin32HandleKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkImportFenceWin32HandleKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pImportFenceWin32HandleInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pImportFenceWin32HandleInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pImportFenceWin32HandleInfo); return result; } @@ -10912,7 +11476,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceWin32HandleKHR( const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10926,9 +11492,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceWin32HandleKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pGetWin32HandleInfo, pHandle); + CustomEncoderPreCall::Dispatch(manager, device, pGetWin32HandleInfo, pHandle); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo_unwrapped = UnwrapStructPtrHandles(pGetWin32HandleInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetFenceWin32HandleKHR(device, pGetWin32HandleInfo_unwrapped, pHandle); @@ -10937,17 +11503,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceWin32HandleKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetFenceWin32HandleKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetFenceWin32HandleKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pGetWin32HandleInfo); encoder->EncodeVoidPtrPtr(pHandle, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pGetWin32HandleInfo, pHandle); + CustomEncoderPostCall::Dispatch(manager, result, device, pGetWin32HandleInfo, pHandle); return result; } @@ -10956,7 +11522,9 @@ VKAPI_ATTR VkResult VKAPI_CALL ImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -10968,23 +11536,23 @@ VKAPI_ATTR VkResult VKAPI_CALL ImportFenceFdKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pImportFenceFdInfo); + CustomEncoderPreCall::Dispatch(manager, device, pImportFenceFdInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImportFenceFdInfoKHR* pImportFenceFdInfo_unwrapped = UnwrapStructPtrHandles(pImportFenceFdInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->ImportFenceFdKHR(device, pImportFenceFdInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkImportFenceFdKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkImportFenceFdKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pImportFenceFdInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pImportFenceFdInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pImportFenceFdInfo); return result; } @@ -10994,7 +11562,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR( const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11008,9 +11578,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pGetFdInfo, pFd); + CustomEncoderPreCall::Dispatch(manager, device, pGetFdInfo, pFd); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkFenceGetFdInfoKHR* pGetFdInfo_unwrapped = UnwrapStructPtrHandles(pGetFdInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetFenceFdKHR(device, pGetFdInfo_unwrapped, pFd); @@ -11019,17 +11589,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetFenceFdKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetFenceFdKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pGetFdInfo); encoder->EncodeInt32Ptr(pFd, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pGetFdInfo, pFd); + CustomEncoderPostCall::Dispatch(manager, result, device, pGetFdInfo, pFd); return result; } @@ -11041,7 +11611,9 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQuer VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11055,7 +11627,7 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQuer bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions); VkResult result = GetInstanceTable(physicalDevice)->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions); if (result < 0) @@ -11063,7 +11635,7 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQuer omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -11072,10 +11644,10 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQuer EncodeStructArray(encoder, pCounters, (pCounterCount != nullptr) ? (*pCounterCount) : 0, omit_output_data); EncodeStructArray(encoder, pCounterDescriptions, (pCounterCount != nullptr) ? (*pCounterCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions); return result; } @@ -11085,7 +11657,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11097,27 +11671,29 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pPerformanceQueryCreateInfo, pNumPasses); GetInstanceTable(physicalDevice)->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pPerformanceQueryCreateInfo); encoder->EncodeUInt32Ptr(pNumPasses); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pPerformanceQueryCreateInfo, pNumPasses); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, pPerformanceQueryCreateInfo, pNumPasses); } VKAPI_ATTR VkResult VKAPI_CALL AcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11129,20 +11705,20 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireProfilingLockKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); VkResult result = GetDeviceTable(device)->AcquireProfilingLockKHR(device, pInfo); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireProfilingLockKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireProfilingLockKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -11150,7 +11726,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireProfilingLockKHR( VKAPI_ATTR void VKAPI_CALL ReleaseProfilingLockKHR( VkDevice device) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11162,18 +11740,18 @@ VKAPI_ATTR void VKAPI_CALL ReleaseProfilingLockKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device); + CustomEncoderPreCall::Dispatch(manager, device); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkReleaseProfilingLockKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkReleaseProfilingLockKHR); if (encoder) { encoder->EncodeHandleValue(device); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->ReleaseProfilingLockKHR(device); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device); + CustomEncoderPostCall::Dispatch(manager, device); } VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2KHR( @@ -11181,7 +11759,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2KHR( const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11195,9 +11775,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2KHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pSurfaceInfo, pSurfaceCapabilities); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pSurfaceInfo, pSurfaceCapabilities); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo_unwrapped = UnwrapStructPtrHandles(pSurfaceInfo, handle_unwrap_memory); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo_unwrapped, pSurfaceCapabilities); @@ -11206,17 +11786,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2KHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceCapabilities2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceCapabilities2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pSurfaceInfo); EncodeStructPtr(encoder, pSurfaceCapabilities, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pSurfaceInfo, pSurfaceCapabilities); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pSurfaceInfo, pSurfaceCapabilities); return result; } @@ -11227,7 +11807,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormats2KHR( uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11241,9 +11823,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormats2KHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo_unwrapped = UnwrapStructPtrHandles(pSurfaceInfo, handle_unwrap_memory); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo_unwrapped, pSurfaceFormatCount, pSurfaceFormats); @@ -11252,7 +11834,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormats2KHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceFormats2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceFormats2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -11260,10 +11842,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormats2KHR( encoder->EncodeUInt32Ptr(pSurfaceFormatCount, omit_output_data); EncodeStructArray(encoder, pSurfaceFormats, (pSurfaceFormatCount != nullptr) ? (*pSurfaceFormatCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats); return result; } @@ -11273,7 +11855,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayProperties2KHR( uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11287,7 +11871,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayProperties2KHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pPropertyCount, pProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties); @@ -11300,17 +11884,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayProperties2KHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceDisplayProperties2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceDisplayProperties2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pPropertyCount, omit_output_data); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayProperties2KHR* handle_struct)->DisplayKHRWrapper* { return GetWrapper(handle_struct->displayProperties.display); }); + manager->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayProperties2KHR* handle_struct)->DisplayKHRWrapper* { return GetWrapper(handle_struct->displayProperties.display); }); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pPropertyCount, pProperties); return result; } @@ -11320,7 +11904,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11334,7 +11920,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPlaneProperties2KHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pPropertyCount, pProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties); @@ -11347,17 +11933,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceDisplayPlaneProperties2KHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceDisplayPlaneProperties2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceDisplayPlaneProperties2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pPropertyCount, omit_output_data); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayPlaneProperties2KHR* handle_struct)->DisplayKHRWrapper* { return GetWrapper(handle_struct->displayPlaneProperties.currentDisplay); }); + manager->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayPlaneProperties2KHR* handle_struct)->DisplayKHRWrapper* { return GetWrapper(handle_struct->displayPlaneProperties.currentDisplay); }); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pPropertyCount, pProperties); return result; } @@ -11368,7 +11954,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModeProperties2KHR( uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11382,7 +11970,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModeProperties2KHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, display, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, display, pPropertyCount, pProperties); VkResult result = GetInstanceTable(physicalDevice)->GetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties); @@ -11395,7 +11983,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModeProperties2KHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDisplayModeProperties2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDisplayModeProperties2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -11403,10 +11991,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModeProperties2KHR( encoder->EncodeUInt32Ptr(pPropertyCount, omit_output_data); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayModeProperties2KHR* handle_struct)->DisplayModeKHRWrapper* { return GetWrapper(handle_struct->displayModeProperties.displayMode); }); + manager->EndStructGroupCreateApiCallCapture(result, physicalDevice, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, pProperties, [](VkDisplayModeProperties2KHR* handle_struct)->DisplayModeKHRWrapper* { return GetWrapper(handle_struct->displayModeProperties.displayMode); }); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, display, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, display, pPropertyCount, pProperties); return result; } @@ -11416,7 +12004,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilities2KHR( const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11430,9 +12020,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilities2KHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pDisplayPlaneInfo, pCapabilities); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pDisplayPlaneInfo, pCapabilities); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo_unwrapped = UnwrapStructPtrHandles(pDisplayPlaneInfo, handle_unwrap_memory); VkResult result = GetInstanceTable(physicalDevice)->GetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo_unwrapped, pCapabilities); @@ -11441,17 +12031,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilities2KHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDisplayPlaneCapabilities2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDisplayPlaneCapabilities2KHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pDisplayPlaneInfo); EncodeStructPtr(encoder, pCapabilities, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pDisplayPlaneInfo, pCapabilities); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pDisplayPlaneInfo, pCapabilities); return result; } @@ -11461,7 +12051,9 @@ VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2KHR( const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11473,23 +12065,23 @@ VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImageMemoryRequirementsInfo2* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetImageMemoryRequirements2KHR(device, pInfo_unwrapped, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageMemoryRequirements2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageMemoryRequirements2KHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2KHR( @@ -11497,7 +12089,9 @@ VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2KHR( const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11509,23 +12103,23 @@ VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBufferMemoryRequirementsInfo2* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetBufferMemoryRequirements2KHR(device, pInfo_unwrapped, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferMemoryRequirements2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferMemoryRequirements2KHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2KHR( @@ -11534,7 +12128,9 @@ VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2KHR( uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11546,24 +12142,24 @@ VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImageSparseMemoryRequirementsInfo2* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetImageSparseMemoryRequirements2KHR(device, pInfo_unwrapped, pSparseMemoryRequirementCount, pSparseMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSparseMemoryRequirements2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSparseMemoryRequirements2KHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeUInt32Ptr(pSparseMemoryRequirementCount); EncodeStructArray(encoder, pSparseMemoryRequirements, (pSparseMemoryRequirementCount != nullptr) ? (*pSparseMemoryRequirementCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); } VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR( @@ -11572,7 +12168,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR( const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11586,7 +12184,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pYcbcrConversion); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pYcbcrConversion); VkResult result = GetDeviceTable(device)->CreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion); @@ -11599,7 +12197,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSamplerYcbcrConversionKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateSamplerYcbcrConversionKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -11607,10 +12205,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pYcbcrConversion, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pYcbcrConversion, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pYcbcrConversion, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pYcbcrConversion); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pYcbcrConversion); return result; } @@ -11620,7 +12218,9 @@ VKAPI_ATTR void VKAPI_CALL DestroySamplerYcbcrConversionKHR( VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11632,20 +12232,20 @@ VKAPI_ATTR void VKAPI_CALL DestroySamplerYcbcrConversionKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, ycbcrConversion, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, ycbcrConversion, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySamplerYcbcrConversionKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroySamplerYcbcrConversionKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(ycbcrConversion); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(ycbcrConversion); + manager->EndDestroyApiCallCapture(ycbcrConversion); } GetDeviceTable(device)->DestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, ycbcrConversion, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, ycbcrConversion, pAllocator); DestroyWrappedHandle(ycbcrConversion); } @@ -11655,7 +12255,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2KHR( uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11667,24 +12269,24 @@ VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, bindInfoCount, pBindInfos); + CustomEncoderPreCall::Dispatch(manager, device, bindInfoCount, pBindInfos); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBindBufferMemoryInfo* pBindInfos_unwrapped = UnwrapStructArrayHandles(pBindInfos, bindInfoCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->BindBufferMemory2KHR(device, bindInfoCount, pBindInfos_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindBufferMemory2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindBufferMemory2KHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(bindInfoCount); EncodeStructArray(encoder, pBindInfos, bindInfoCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, bindInfoCount, pBindInfos); + CustomEncoderPostCall::Dispatch(manager, result, device, bindInfoCount, pBindInfos); return result; } @@ -11694,7 +12296,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2KHR( uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11706,24 +12310,24 @@ VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, bindInfoCount, pBindInfos); + CustomEncoderPreCall::Dispatch(manager, device, bindInfoCount, pBindInfos); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBindImageMemoryInfo* pBindInfos_unwrapped = UnwrapStructArrayHandles(pBindInfos, bindInfoCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->BindImageMemory2KHR(device, bindInfoCount, pBindInfos_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindImageMemory2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindImageMemory2KHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(bindInfoCount); EncodeStructArray(encoder, pBindInfos, bindInfoCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, bindInfoCount, pBindInfos); + CustomEncoderPostCall::Dispatch(manager, result, device, bindInfoCount, pBindInfos); return result; } @@ -11733,7 +12337,9 @@ VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupportKHR( const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11745,23 +12351,23 @@ VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupportKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pSupport); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pSupport); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDescriptorSetLayoutCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); GetDeviceTable(device)->GetDescriptorSetLayoutSupportKHR(device, pCreateInfo_unwrapped, pSupport); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDescriptorSetLayoutSupportKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDescriptorSetLayoutSupportKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pCreateInfo); EncodeStructPtr(encoder, pSupport); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pSupport); + CustomEncoderPostCall::Dispatch(manager, device, pCreateInfo, pSupport); } VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountKHR( @@ -11773,7 +12379,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountKHR( uint32_t maxDrawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11785,9 +12393,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndirectCountKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndirectCountKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -11797,12 +12405,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountKHR( encoder->EncodeVkDeviceSizeValue(countBufferOffset); encoder->EncodeUInt32Value(maxDrawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndirectCountKHRHandles, buffer, countBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndirectCountKHRHandles, buffer, countBuffer); } GetDeviceTable(commandBuffer)->CmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); } VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountKHR( @@ -11814,7 +12422,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountKHR( uint32_t maxDrawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11826,9 +12436,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndexedIndirectCountKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndexedIndirectCountKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -11838,12 +12448,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountKHR( encoder->EncodeVkDeviceSizeValue(countBufferOffset); encoder->EncodeUInt32Value(maxDrawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndexedIndirectCountKHRHandles, buffer, countBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndexedIndirectCountKHRHandles, buffer, countBuffer); } GetDeviceTable(commandBuffer)->CmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); } VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR( @@ -11851,7 +12461,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR( VkSemaphore semaphore, uint64_t* pValue) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11865,7 +12477,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, semaphore, pValue); + CustomEncoderPreCall::Dispatch(manager, device, semaphore, pValue); VkResult result = GetDeviceTable(device)->GetSemaphoreCounterValueKHR(device, semaphore, pValue); if (result < 0) @@ -11873,17 +12485,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSemaphoreCounterValueKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSemaphoreCounterValueKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(semaphore); encoder->EncodeUInt64Ptr(pValue, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, semaphore, pValue); + CustomEncoderPostCall::Dispatch(manager, result, device, semaphore, pValue); return result; } @@ -11893,7 +12505,9 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphoresKHR( const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11905,24 +12519,24 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphoresKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pWaitInfo, timeout); + CustomEncoderPreCall::Dispatch(manager, device, pWaitInfo, timeout); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSemaphoreWaitInfo* pWaitInfo_unwrapped = UnwrapStructPtrHandles(pWaitInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->WaitSemaphoresKHR(device, pWaitInfo_unwrapped, timeout); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWaitSemaphoresKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWaitSemaphoresKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pWaitInfo); encoder->EncodeUInt64Value(timeout); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pWaitInfo, timeout); + CustomEncoderPostCall::Dispatch(manager, result, device, pWaitInfo, timeout); return result; } @@ -11931,7 +12545,9 @@ VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11943,23 +12559,23 @@ VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphoreKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pSignalInfo); + CustomEncoderPreCall::Dispatch(manager, device, pSignalInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSemaphoreSignalInfo* pSignalInfo_unwrapped = UnwrapStructPtrHandles(pSignalInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->SignalSemaphoreKHR(device, pSignalInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSignalSemaphoreKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSignalSemaphoreKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pSignalInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pSignalInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pSignalInfo); return result; } @@ -11969,7 +12585,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceFragmentShadingRatesKHR( uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -11983,7 +12601,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceFragmentShadingRatesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates); if (result < 0) @@ -11991,17 +12609,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceFragmentShadingRatesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFragmentShadingRatesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceFragmentShadingRatesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pFragmentShadingRateCount, omit_output_data); EncodeStructArray(encoder, pFragmentShadingRates, (pFragmentShadingRateCount != nullptr) ? (*pFragmentShadingRateCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates); return result; } @@ -12011,7 +12629,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateKHR( const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12023,20 +12643,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pFragmentSize, combinerOps); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pFragmentSize, combinerOps); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetFragmentShadingRateKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetFragmentShadingRateKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pFragmentSize); encoder->EncodeEnumArray(combinerOps, 2); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pFragmentSize, combinerOps); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pFragmentSize, combinerOps); } VKAPI_ATTR VkResult VKAPI_CALL WaitForPresentKHR( @@ -12045,7 +12665,9 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitForPresentKHR( uint64_t presentId, uint64_t timeout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12057,11 +12679,11 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitForPresentKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain, presentId, timeout); + CustomEncoderPreCall::Dispatch(manager, device, swapchain, presentId, timeout); VkResult result = GetDeviceTable(device)->WaitForPresentKHR(device, swapchain, presentId, timeout); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWaitForPresentKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWaitForPresentKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -12069,10 +12691,10 @@ VKAPI_ATTR VkResult VKAPI_CALL WaitForPresentKHR( encoder->EncodeUInt64Value(presentId); encoder->EncodeUInt64Value(timeout); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, swapchain, presentId, timeout); + CustomEncoderPostCall::Dispatch(manager, result, device, swapchain, presentId, timeout); return result; } @@ -12081,7 +12703,9 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12093,23 +12717,23 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBufferDeviceAddressInfo* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkDeviceAddress result = GetDeviceTable(device)->GetBufferDeviceAddressKHR(device, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferDeviceAddressKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferDeviceAddressKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeVkDeviceAddressValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -12118,7 +12742,9 @@ VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12130,23 +12756,23 @@ VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddressKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBufferDeviceAddressInfo* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); uint64_t result = GetDeviceTable(device)->GetBufferOpaqueCaptureAddressKHR(device, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferOpaqueCaptureAddressKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferOpaqueCaptureAddressKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeUInt64Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -12155,7 +12781,9 @@ VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12167,23 +12795,23 @@ VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddressKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); uint64_t result = GetDeviceTable(device)->GetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceMemoryOpaqueCaptureAddressKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceMemoryOpaqueCaptureAddressKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeUInt64Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -12193,7 +12821,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDeferredOperationKHR( const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12207,7 +12837,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDeferredOperationKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pAllocator, pDeferredOperation); + CustomEncoderPreCall::Dispatch(manager, device, pAllocator, pDeferredOperation); VkResult result = GetDeviceTable(device)->CreateDeferredOperationKHR(device, pAllocator, pDeferredOperation); @@ -12220,17 +12850,17 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDeferredOperationKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDeferredOperationKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDeferredOperationKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pDeferredOperation, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pDeferredOperation, nullptr); + manager->EndCreateApiCallCapture(result, device, pDeferredOperation, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pAllocator, pDeferredOperation); + CustomEncoderPostCall::Dispatch(manager, result, device, pAllocator, pDeferredOperation); return result; } @@ -12240,7 +12870,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyDeferredOperationKHR( VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12252,20 +12884,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyDeferredOperationKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, operation, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, operation, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDeferredOperationKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDeferredOperationKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(operation); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(operation); + manager->EndDestroyApiCallCapture(operation); } GetDeviceTable(device)->DestroyDeferredOperationKHR(device, operation, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, operation, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, operation, pAllocator); DestroyWrappedHandle(operation); } @@ -12274,7 +12906,9 @@ VKAPI_ATTR uint32_t VKAPI_CALL GetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12286,20 +12920,20 @@ VKAPI_ATTR uint32_t VKAPI_CALL GetDeferredOperationMaxConcurrencyKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, operation); + CustomEncoderPreCall::Dispatch(manager, device, operation); uint32_t result = GetDeviceTable(device)->GetDeferredOperationMaxConcurrencyKHR(device, operation); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeferredOperationMaxConcurrencyKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeferredOperationMaxConcurrencyKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(operation); encoder->EncodeUInt32Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, operation); + CustomEncoderPostCall::Dispatch(manager, result, device, operation); return result; } @@ -12308,7 +12942,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12320,20 +12956,20 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeferredOperationResultKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, operation); + CustomEncoderPreCall::Dispatch(manager, device, operation); VkResult result = GetDeviceTable(device)->GetDeferredOperationResultKHR(device, operation); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeferredOperationResultKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeferredOperationResultKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(operation); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, operation); + CustomEncoderPostCall::Dispatch(manager, result, device, operation); return result; } @@ -12342,7 +12978,9 @@ VKAPI_ATTR VkResult VKAPI_CALL DeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12354,20 +12992,20 @@ VKAPI_ATTR VkResult VKAPI_CALL DeferredOperationJoinKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, operation); + CustomEncoderPreCall::Dispatch(manager, device, operation); VkResult result = GetDeviceTable(device)->DeferredOperationJoinKHR(device, operation); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDeferredOperationJoinKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDeferredOperationJoinKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(operation); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, operation); + CustomEncoderPostCall::Dispatch(manager, result, device, operation); return result; } @@ -12378,7 +13016,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR( uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12392,9 +13032,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pPipelineInfo, pExecutableCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, device, pPipelineInfo, pExecutableCount, pProperties); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkPipelineInfoKHR* pPipelineInfo_unwrapped = UnwrapStructPtrHandles(pPipelineInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetPipelineExecutablePropertiesKHR(device, pPipelineInfo_unwrapped, pExecutableCount, pProperties); @@ -12403,7 +13043,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineExecutablePropertiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineExecutablePropertiesKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -12411,10 +13051,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR( encoder->EncodeUInt32Ptr(pExecutableCount, omit_output_data); EncodeStructArray(encoder, pProperties, (pExecutableCount != nullptr) ? (*pExecutableCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pPipelineInfo, pExecutableCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, pPipelineInfo, pExecutableCount, pProperties); return result; } @@ -12425,7 +13065,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableStatisticsKHR( uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12439,9 +13081,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableStatisticsKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pExecutableInfo, pStatisticCount, pStatistics); + CustomEncoderPreCall::Dispatch(manager, device, pExecutableInfo, pStatisticCount, pStatistics); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkPipelineExecutableInfoKHR* pExecutableInfo_unwrapped = UnwrapStructPtrHandles(pExecutableInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetPipelineExecutableStatisticsKHR(device, pExecutableInfo_unwrapped, pStatisticCount, pStatistics); @@ -12450,7 +13092,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableStatisticsKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineExecutableStatisticsKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineExecutableStatisticsKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -12458,10 +13100,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableStatisticsKHR( encoder->EncodeUInt32Ptr(pStatisticCount, omit_output_data); EncodeStructArray(encoder, pStatistics, (pStatisticCount != nullptr) ? (*pStatisticCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pExecutableInfo, pStatisticCount, pStatistics); + CustomEncoderPostCall::Dispatch(manager, result, device, pExecutableInfo, pStatisticCount, pStatistics); return result; } @@ -12472,7 +13114,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableInternalRepresentationsKHR( uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12486,9 +13130,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableInternalRepresentationsKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations); + CustomEncoderPreCall::Dispatch(manager, device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkPipelineExecutableInfoKHR* pExecutableInfo_unwrapped = UnwrapStructPtrHandles(pExecutableInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo_unwrapped, pInternalRepresentationCount, pInternalRepresentations); @@ -12497,7 +13141,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableInternalRepresentationsKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineExecutableInternalRepresentationsKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineExecutableInternalRepresentationsKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -12505,10 +13149,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableInternalRepresentationsKHR( encoder->EncodeUInt32Ptr(pInternalRepresentationCount, omit_output_data); EncodeStructArray(encoder, pInternalRepresentations, (pInternalRepresentationCount != nullptr) ? (*pInternalRepresentationCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations); + CustomEncoderPostCall::Dispatch(manager, result, device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations); return result; } @@ -12518,7 +13162,9 @@ VKAPI_ATTR VkResult VKAPI_CALL MapMemory2KHR( const VkMemoryMapInfoKHR* pMemoryMapInfo, void** ppData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12532,9 +13178,9 @@ VKAPI_ATTR VkResult VKAPI_CALL MapMemory2KHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pMemoryMapInfo, ppData); + CustomEncoderPreCall::Dispatch(manager, device, pMemoryMapInfo, ppData); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMemoryMapInfoKHR* pMemoryMapInfo_unwrapped = UnwrapStructPtrHandles(pMemoryMapInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->MapMemory2KHR(device, pMemoryMapInfo_unwrapped, ppData); @@ -12543,17 +13189,17 @@ VKAPI_ATTR VkResult VKAPI_CALL MapMemory2KHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkMapMemory2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkMapMemory2KHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pMemoryMapInfo); encoder->EncodeVoidPtrPtr(ppData, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pMemoryMapInfo, ppData); + CustomEncoderPostCall::Dispatch(manager, result, device, pMemoryMapInfo, ppData); return result; } @@ -12562,7 +13208,9 @@ VKAPI_ATTR VkResult VKAPI_CALL UnmapMemory2KHR( VkDevice device, const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12574,23 +13222,23 @@ VKAPI_ATTR VkResult VKAPI_CALL UnmapMemory2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pMemoryUnmapInfo); + CustomEncoderPreCall::Dispatch(manager, device, pMemoryUnmapInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo_unwrapped = UnwrapStructPtrHandles(pMemoryUnmapInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->UnmapMemory2KHR(device, pMemoryUnmapInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkUnmapMemory2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkUnmapMemory2KHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pMemoryUnmapInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pMemoryUnmapInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pMemoryUnmapInfo); return result; } @@ -12600,7 +13248,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoEncodeQualityLevelPropertie const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12614,7 +13264,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoEncodeQualityLevelPropertie bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pQualityLevelInfo, pQualityLevelProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pQualityLevelInfo, pQualityLevelProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(physicalDevice, pQualityLevelInfo, pQualityLevelProperties); if (result < 0) @@ -12622,17 +13272,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoEncodeQualityLevelPropertie omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); EncodeStructPtr(encoder, pQualityLevelInfo); EncodeStructPtr(encoder, pQualityLevelProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pQualityLevelInfo, pQualityLevelProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pQualityLevelInfo, pQualityLevelProperties); return result; } @@ -12644,7 +13294,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetEncodedVideoSessionParametersKHR( size_t* pDataSize, void* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12658,9 +13310,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetEncodedVideoSessionParametersKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData); + CustomEncoderPreCall::Dispatch(manager, device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo_unwrapped = UnwrapStructPtrHandles(pVideoSessionParametersInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetEncodedVideoSessionParametersKHR(device, pVideoSessionParametersInfo_unwrapped, pFeedbackInfo, pDataSize, pData); @@ -12669,7 +13321,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetEncodedVideoSessionParametersKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetEncodedVideoSessionParametersKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetEncodedVideoSessionParametersKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -12678,10 +13330,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetEncodedVideoSessionParametersKHR( encoder->EncodeSizeTPtr(pDataSize, omit_output_data); encoder->EncodeVoidArray(pData, (pDataSize != nullptr) ? (*pDataSize) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData); + CustomEncoderPostCall::Dispatch(manager, result, device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData); return result; } @@ -12690,7 +13342,9 @@ VKAPI_ATTR void VKAPI_CALL CmdEncodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12702,22 +13356,22 @@ VKAPI_ATTR void VKAPI_CALL CmdEncodeVideoKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pEncodeInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pEncodeInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEncodeVideoKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEncodeVideoKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pEncodeInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdEncodeVideoKHRHandles, pEncodeInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdEncodeVideoKHRHandles, pEncodeInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkVideoEncodeInfoKHR* pEncodeInfo_unwrapped = UnwrapStructPtrHandles(pEncodeInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdEncodeVideoKHR(commandBuffer, pEncodeInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pEncodeInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pEncodeInfo); } VKAPI_ATTR void VKAPI_CALL CmdSetEvent2KHR( @@ -12725,7 +13379,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetEvent2KHR( VkEvent event, const VkDependencyInfo* pDependencyInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12737,23 +13393,23 @@ VKAPI_ATTR void VKAPI_CALL CmdSetEvent2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, pDependencyInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, event, pDependencyInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetEvent2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetEvent2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(event); EncodeStructPtr(encoder, pDependencyInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdSetEvent2KHRHandles, event, pDependencyInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdSetEvent2KHRHandles, event, pDependencyInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDependencyInfo* pDependencyInfo_unwrapped = UnwrapStructPtrHandles(pDependencyInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdSetEvent2KHR(commandBuffer, event, pDependencyInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, pDependencyInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, event, pDependencyInfo); } VKAPI_ATTR void VKAPI_CALL CmdResetEvent2KHR( @@ -12761,7 +13417,9 @@ VKAPI_ATTR void VKAPI_CALL CmdResetEvent2KHR( VkEvent event, VkPipelineStageFlags2 stageMask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12773,20 +13431,20 @@ VKAPI_ATTR void VKAPI_CALL CmdResetEvent2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, stageMask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, event, stageMask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResetEvent2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResetEvent2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(event); encoder->EncodeFlags64Value(stageMask); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdResetEvent2KHRHandles, event); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdResetEvent2KHRHandles, event); } GetDeviceTable(commandBuffer)->CmdResetEvent2KHR(commandBuffer, event, stageMask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, event, stageMask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, event, stageMask); } VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2KHR( @@ -12795,7 +13453,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2KHR( const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12807,31 +13467,33 @@ VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, eventCount, pEvents, pDependencyInfos); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, eventCount, pEvents, pDependencyInfos); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWaitEvents2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWaitEvents2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(eventCount); encoder->EncodeHandleArray(pEvents, eventCount); EncodeStructArray(encoder, pDependencyInfos, eventCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWaitEvents2KHRHandles, eventCount, pEvents, pDependencyInfos); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWaitEvents2KHRHandles, eventCount, pEvents, pDependencyInfos); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDependencyInfo* pDependencyInfos_unwrapped = UnwrapStructArrayHandles(pDependencyInfos, eventCount, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, eventCount, pEvents, pDependencyInfos); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, eventCount, pEvents, pDependencyInfos); } VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier2KHR( VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12843,22 +13505,22 @@ VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pDependencyInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pDependencyInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPipelineBarrier2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPipelineBarrier2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pDependencyInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdPipelineBarrier2KHRHandles, pDependencyInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdPipelineBarrier2KHRHandles, pDependencyInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDependencyInfo* pDependencyInfo_unwrapped = UnwrapStructPtrHandles(pDependencyInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pDependencyInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pDependencyInfo); } VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2KHR( @@ -12867,7 +13529,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2KHR( VkQueryPool queryPool, uint32_t query) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12879,21 +13543,21 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stage, queryPool, query); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, stage, queryPool, query); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteTimestamp2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteTimestamp2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFlags64Value(stage); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(query); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteTimestamp2KHRHandles, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteTimestamp2KHRHandles, queryPool); } GetDeviceTable(commandBuffer)->CmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stage, queryPool, query); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, stage, queryPool, query); } VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR( @@ -12902,7 +13566,9 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR( const VkSubmitInfo2* pSubmits, VkFence fence) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12914,14 +13580,14 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue, submitCount, pSubmits, fence); + CustomEncoderPreCall::Dispatch(manager, queue, submitCount, pSubmits, fence); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSubmitInfo2* pSubmits_unwrapped = UnwrapStructArrayHandles(pSubmits, submitCount, handle_unwrap_memory); VkResult result = GetDeviceTable(queue)->QueueSubmit2KHR(queue, submitCount, pSubmits_unwrapped, fence); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueSubmit2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueSubmit2KHR); if (encoder) { encoder->EncodeHandleValue(queue); @@ -12929,10 +13595,10 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR( EncodeStructArray(encoder, pSubmits, submitCount); encoder->EncodeHandleValue(fence); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, queue, submitCount, pSubmits, fence); + CustomEncoderPostCall::Dispatch(manager, result, queue, submitCount, pSubmits, fence); return result; } @@ -12944,7 +13610,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarker2AMD( VkDeviceSize dstOffset, uint32_t marker) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12956,9 +13624,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarker2AMD( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stage, dstBuffer, dstOffset, marker); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, stage, dstBuffer, dstOffset, marker); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteBufferMarker2AMD); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteBufferMarker2AMD); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -12966,12 +13634,12 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarker2AMD( encoder->EncodeHandleValue(dstBuffer); encoder->EncodeVkDeviceSizeValue(dstOffset); encoder->EncodeUInt32Value(marker); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteBufferMarker2AMDHandles, dstBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteBufferMarker2AMDHandles, dstBuffer); } GetDeviceTable(commandBuffer)->CmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stage, dstBuffer, dstOffset, marker); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, stage, dstBuffer, dstOffset, marker); } VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV( @@ -12979,7 +13647,9 @@ VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV( uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -12991,27 +13661,29 @@ VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue, pCheckpointDataCount, pCheckpointData); + CustomEncoderPreCall::Dispatch(manager, queue, pCheckpointDataCount, pCheckpointData); GetDeviceTable(queue)->GetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetQueueCheckpointData2NV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetQueueCheckpointData2NV); if (encoder) { encoder->EncodeHandleValue(queue); encoder->EncodeUInt32Ptr(pCheckpointDataCount); EncodeStructArray(encoder, pCheckpointData, (pCheckpointDataCount != nullptr) ? (*pCheckpointDataCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), queue, pCheckpointDataCount, pCheckpointData); + CustomEncoderPostCall::Dispatch(manager, queue, pCheckpointDataCount, pCheckpointData); } VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13023,29 +13695,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyBufferInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pCopyBufferInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBuffer2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBuffer2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pCopyBufferInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBuffer2KHRHandles, pCopyBufferInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBuffer2KHRHandles, pCopyBufferInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyBufferInfo2* pCopyBufferInfo_unwrapped = UnwrapStructPtrHandles(pCopyBufferInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyBufferInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pCopyBufferInfo); } VKAPI_ATTR void VKAPI_CALL CmdCopyImage2KHR( VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13057,29 +13731,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyImage2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyImageInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pCopyImageInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImage2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImage2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pCopyImageInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImage2KHRHandles, pCopyImageInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImage2KHRHandles, pCopyImageInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyImageInfo2* pCopyImageInfo_unwrapped = UnwrapStructPtrHandles(pCopyImageInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyImage2KHR(commandBuffer, pCopyImageInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyImageInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pCopyImageInfo); } VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13091,29 +13767,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyBufferToImageInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pCopyBufferToImageInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBufferToImage2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyBufferToImage2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pCopyBufferToImageInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBufferToImage2KHRHandles, pCopyBufferToImageInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyBufferToImage2KHRHandles, pCopyBufferToImageInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo_unwrapped = UnwrapStructPtrHandles(pCopyBufferToImageInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyBufferToImageInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pCopyBufferToImageInfo); } VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13125,29 +13803,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyImageToBufferInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pCopyImageToBufferInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImageToBuffer2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyImageToBuffer2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pCopyImageToBufferInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImageToBuffer2KHRHandles, pCopyImageToBufferInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyImageToBuffer2KHRHandles, pCopyImageToBufferInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo_unwrapped = UnwrapStructPtrHandles(pCopyImageToBufferInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCopyImageToBufferInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pCopyImageToBufferInfo); } VKAPI_ATTR void VKAPI_CALL CmdBlitImage2KHR( VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13159,29 +13839,31 @@ VKAPI_ATTR void VKAPI_CALL CmdBlitImage2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pBlitImageInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pBlitImageInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBlitImage2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBlitImage2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pBlitImageInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBlitImage2KHRHandles, pBlitImageInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBlitImage2KHRHandles, pBlitImageInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBlitImageInfo2* pBlitImageInfo_unwrapped = UnwrapStructPtrHandles(pBlitImageInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBlitImage2KHR(commandBuffer, pBlitImageInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pBlitImageInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pBlitImageInfo); } VKAPI_ATTR void VKAPI_CALL CmdResolveImage2KHR( VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13193,29 +13875,31 @@ VKAPI_ATTR void VKAPI_CALL CmdResolveImage2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pResolveImageInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pResolveImageInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResolveImage2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdResolveImage2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pResolveImageInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdResolveImage2KHRHandles, pResolveImageInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdResolveImage2KHRHandles, pResolveImageInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkResolveImageInfo2* pResolveImageInfo_unwrapped = UnwrapStructPtrHandles(pResolveImageInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdResolveImage2KHR(commandBuffer, pResolveImageInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pResolveImageInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pResolveImageInfo); } VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirect2KHR( VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13227,19 +13911,19 @@ VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirect2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, indirectDeviceAddress); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, indirectDeviceAddress); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdTraceRaysIndirect2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdTraceRaysIndirect2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkDeviceAddressValue(indirectDeviceAddress); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, indirectDeviceAddress); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, indirectDeviceAddress); } VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirementsKHR( @@ -13247,7 +13931,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirementsKHR( const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13259,20 +13945,20 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirementsKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pMemoryRequirements); GetDeviceTable(device)->GetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceBufferMemoryRequirementsKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceBufferMemoryRequirementsKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirementsKHR( @@ -13280,7 +13966,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirementsKHR( const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13292,23 +13980,23 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirementsKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDeviceImageMemoryRequirements* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetDeviceImageMemoryRequirementsKHR(device, pInfo_unwrapped, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceImageMemoryRequirementsKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceImageMemoryRequirementsKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirementsKHR( @@ -13317,7 +14005,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirementsKHR( uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13329,24 +14019,24 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirementsKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDeviceImageMemoryRequirements* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetDeviceImageSparseMemoryRequirementsKHR(device, pInfo_unwrapped, pSparseMemoryRequirementCount, pSparseMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceImageSparseMemoryRequirementsKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceImageSparseMemoryRequirementsKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeUInt32Ptr(pSparseMemoryRequirementCount); EncodeStructArray(encoder, pSparseMemoryRequirements, (pSparseMemoryRequirementCount != nullptr) ? (*pSparseMemoryRequirementCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer2KHR( @@ -13356,7 +14046,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer2KHR( VkDeviceSize size, VkIndexType indexType) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13368,9 +14060,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, size, indexType); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, size, indexType); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindIndexBuffer2KHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindIndexBuffer2KHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -13378,12 +14070,12 @@ VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer2KHR( encoder->EncodeVkDeviceSizeValue(offset); encoder->EncodeVkDeviceSizeValue(size); encoder->EncodeEnumValue(indexType); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindIndexBuffer2KHRHandles, buffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindIndexBuffer2KHRHandles, buffer); } GetDeviceTable(commandBuffer)->CmdBindIndexBuffer2KHR(commandBuffer, buffer, offset, size, indexType); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, size, indexType); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, size, indexType); } VKAPI_ATTR void VKAPI_CALL GetRenderingAreaGranularityKHR( @@ -13391,7 +14083,9 @@ VKAPI_ATTR void VKAPI_CALL GetRenderingAreaGranularityKHR( const VkRenderingAreaInfoKHR* pRenderingAreaInfo, VkExtent2D* pGranularity) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13403,20 +14097,20 @@ VKAPI_ATTR void VKAPI_CALL GetRenderingAreaGranularityKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pRenderingAreaInfo, pGranularity); + CustomEncoderPreCall::Dispatch(manager, device, pRenderingAreaInfo, pGranularity); GetDeviceTable(device)->GetRenderingAreaGranularityKHR(device, pRenderingAreaInfo, pGranularity); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRenderingAreaGranularityKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRenderingAreaGranularityKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pRenderingAreaInfo); EncodeStructPtr(encoder, pGranularity); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pRenderingAreaInfo, pGranularity); + CustomEncoderPostCall::Dispatch(manager, device, pRenderingAreaInfo, pGranularity); } VKAPI_ATTR void VKAPI_CALL GetDeviceImageSubresourceLayoutKHR( @@ -13424,7 +14118,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceImageSubresourceLayoutKHR( const VkDeviceImageSubresourceInfoKHR* pInfo, VkSubresourceLayout2KHR* pLayout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13436,23 +14132,23 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceImageSubresourceLayoutKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pLayout); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pLayout); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDeviceImageSubresourceInfoKHR* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetDeviceImageSubresourceLayoutKHR(device, pInfo_unwrapped, pLayout); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceImageSubresourceLayoutKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceImageSubresourceLayoutKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pLayout); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pLayout); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pLayout); } VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2KHR( @@ -13461,7 +14157,9 @@ VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2KHR( const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13473,21 +14171,21 @@ VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2KHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, image, pSubresource, pLayout); + CustomEncoderPreCall::Dispatch(manager, device, image, pSubresource, pLayout); GetDeviceTable(device)->GetImageSubresourceLayout2KHR(device, image, pSubresource, pLayout); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSubresourceLayout2KHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSubresourceLayout2KHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(image); EncodeStructPtr(encoder, pSubresource); EncodeStructPtr(encoder, pLayout); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, image, pSubresource, pLayout); + CustomEncoderPostCall::Dispatch(manager, device, image, pSubresource, pLayout); } VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR( @@ -13495,7 +14193,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR( uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13509,7 +14209,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pPropertyCount, pProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceCooperativeMatrixPropertiesKHR(physicalDevice, pPropertyCount, pProperties); if (result < 0) @@ -13517,17 +14217,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pPropertyCount, omit_output_data); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pPropertyCount, pProperties); return result; } @@ -13537,7 +14237,9 @@ VKAPI_ATTR void VKAPI_CALL FrameBoundaryANDROID( VkSemaphore semaphore, VkImage image) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13549,20 +14251,20 @@ VKAPI_ATTR void VKAPI_CALL FrameBoundaryANDROID( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, semaphore, image); + CustomEncoderPreCall::Dispatch(manager, device, semaphore, image); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkFrameBoundaryANDROID); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkFrameBoundaryANDROID); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(semaphore); encoder->EncodeHandleValue(image); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->FrameBoundaryANDROID(device, semaphore, image); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, semaphore, image); + CustomEncoderPostCall::Dispatch(manager, device, semaphore, image); } VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT( @@ -13571,7 +14273,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT( const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13585,7 +14289,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pCallback); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pCallback); VkResult result = GetInstanceTable(instance)->CreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback); @@ -13598,7 +14302,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDebugReportCallbackEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDebugReportCallbackEXT); if (encoder) { encoder->EncodeHandleValue(instance); @@ -13606,10 +14310,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pCallback, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pCallback, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pCallback, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pCallback); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pCallback); return result; } @@ -13619,7 +14323,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyDebugReportCallbackEXT( VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13631,20 +14337,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyDebugReportCallbackEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, callback, pAllocator); + CustomEncoderPreCall::Dispatch(manager, instance, callback, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDebugReportCallbackEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDebugReportCallbackEXT); if (encoder) { encoder->EncodeHandleValue(instance); encoder->EncodeHandleValue(callback); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(callback); + manager->EndDestroyApiCallCapture(callback); } GetInstanceTable(instance)->DestroyDebugReportCallbackEXT(instance, callback, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), instance, callback, pAllocator); + CustomEncoderPostCall::Dispatch(manager, instance, callback, pAllocator); DestroyWrappedHandle(callback); } @@ -13659,7 +14365,9 @@ VKAPI_ATTR void VKAPI_CALL DebugReportMessageEXT( const char* pLayerPrefix, const char* pMessage) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13671,9 +14379,9 @@ VKAPI_ATTR void VKAPI_CALL DebugReportMessageEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage); + CustomEncoderPreCall::Dispatch(manager, instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDebugReportMessageEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDebugReportMessageEXT); if (encoder) { encoder->EncodeHandleValue(instance); @@ -13684,19 +14392,21 @@ VKAPI_ATTR void VKAPI_CALL DebugReportMessageEXT( encoder->EncodeInt32Value(messageCode); encoder->EncodeString(pLayerPrefix); encoder->EncodeString(pMessage); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetInstanceTable(instance)->DebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage); + CustomEncoderPostCall::Dispatch(manager, instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage); } VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13708,23 +14418,23 @@ VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pTagInfo); + CustomEncoderPreCall::Dispatch(manager, device, pTagInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDebugMarkerObjectTagInfoEXT* pTagInfo_unwrapped = UnwrapStructPtrHandles(pTagInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->DebugMarkerSetObjectTagEXT(device, pTagInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDebugMarkerSetObjectTagEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDebugMarkerSetObjectTagEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pTagInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pTagInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pTagInfo); return result; } @@ -13733,7 +14443,9 @@ VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13745,23 +14457,23 @@ VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pNameInfo); + CustomEncoderPreCall::Dispatch(manager, device, pNameInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDebugMarkerObjectNameInfoEXT* pNameInfo_unwrapped = UnwrapStructPtrHandles(pNameInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->DebugMarkerSetObjectNameEXT(device, pNameInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDebugMarkerSetObjectNameEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDebugMarkerSetObjectNameEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pNameInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pNameInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pNameInfo); return result; } @@ -13770,7 +14482,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13782,25 +14496,27 @@ VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pMarkerInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pMarkerInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDebugMarkerBeginEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDebugMarkerBeginEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pMarkerInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pMarkerInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pMarkerInfo); } VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13812,25 +14528,27 @@ VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerEndEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPreCall::Dispatch(manager, commandBuffer); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDebugMarkerEndEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDebugMarkerEndEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDebugMarkerEndEXT(commandBuffer); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPostCall::Dispatch(manager, commandBuffer); } VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13842,19 +14560,19 @@ VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pMarkerInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pMarkerInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDebugMarkerInsertEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDebugMarkerInsertEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pMarkerInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pMarkerInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pMarkerInfo); } VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffersEXT( @@ -13865,7 +14583,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffersEXT( const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13877,9 +14597,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffersEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindTransformFeedbackBuffersEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindTransformFeedbackBuffersEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -13888,12 +14608,12 @@ VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffersEXT( encoder->EncodeHandleArray(pBuffers, bindingCount); encoder->EncodeVkDeviceSizeArray(pOffsets, bindingCount); encoder->EncodeVkDeviceSizeArray(pSizes, bindingCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindTransformFeedbackBuffersEXTHandles, bindingCount, pBuffers); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindTransformFeedbackBuffersEXTHandles, bindingCount, pBuffers); } GetDeviceTable(commandBuffer)->CmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes); } VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedbackEXT( @@ -13903,7 +14623,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedbackEXT( const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13915,9 +14637,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedbackEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginTransformFeedbackEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginTransformFeedbackEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -13925,12 +14647,12 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedbackEXT( encoder->EncodeUInt32Value(counterBufferCount); encoder->EncodeHandleArray(pCounterBuffers, counterBufferCount); encoder->EncodeVkDeviceSizeArray(pCounterBufferOffsets, counterBufferCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginTransformFeedbackEXTHandles, counterBufferCount, pCounterBuffers); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginTransformFeedbackEXTHandles, counterBufferCount, pCounterBuffers); } GetDeviceTable(commandBuffer)->CmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); } VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedbackEXT( @@ -13940,7 +14662,9 @@ VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedbackEXT( const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13952,9 +14676,9 @@ VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedbackEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndTransformFeedbackEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndTransformFeedbackEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -13962,12 +14686,12 @@ VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedbackEXT( encoder->EncodeUInt32Value(counterBufferCount); encoder->EncodeHandleArray(pCounterBuffers, counterBufferCount); encoder->EncodeVkDeviceSizeArray(pCounterBufferOffsets, counterBufferCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdEndTransformFeedbackEXTHandles, counterBufferCount, pCounterBuffers); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdEndTransformFeedbackEXTHandles, counterBufferCount, pCounterBuffers); } GetDeviceTable(commandBuffer)->CmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); } VKAPI_ATTR void VKAPI_CALL CmdBeginQueryIndexedEXT( @@ -13977,7 +14701,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginQueryIndexedEXT( VkQueryControlFlags flags, uint32_t index) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -13989,9 +14715,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginQueryIndexedEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, query, flags, index); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, queryPool, query, flags, index); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginQueryIndexedEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginQueryIndexedEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -13999,12 +14725,12 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginQueryIndexedEXT( encoder->EncodeUInt32Value(query); encoder->EncodeFlagsValue(flags); encoder->EncodeUInt32Value(index); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginQueryIndexedEXTHandles, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginQueryIndexedEXTHandles, queryPool); } GetDeviceTable(commandBuffer)->CmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, query, flags, index); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, queryPool, query, flags, index); } VKAPI_ATTR void VKAPI_CALL CmdEndQueryIndexedEXT( @@ -14013,7 +14739,9 @@ VKAPI_ATTR void VKAPI_CALL CmdEndQueryIndexedEXT( uint32_t query, uint32_t index) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14025,21 +14753,21 @@ VKAPI_ATTR void VKAPI_CALL CmdEndQueryIndexedEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, query, index); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, queryPool, query, index); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndQueryIndexedEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndQueryIndexedEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(query); encoder->EncodeUInt32Value(index); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdEndQueryIndexedEXTHandles, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdEndQueryIndexedEXTHandles, queryPool); } GetDeviceTable(commandBuffer)->CmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, queryPool, query, index); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, queryPool, query, index); } VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCountEXT( @@ -14051,7 +14779,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCountEXT( uint32_t counterOffset, uint32_t vertexStride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14063,9 +14793,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCountEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndirectByteCountEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndirectByteCountEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -14075,19 +14805,21 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCountEXT( encoder->EncodeVkDeviceSizeValue(counterBufferOffset); encoder->EncodeUInt32Value(counterOffset); encoder->EncodeUInt32Value(vertexStride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndirectByteCountEXTHandles, counterBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndirectByteCountEXTHandles, counterBuffer); } GetDeviceTable(commandBuffer)->CmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride); } VKAPI_ATTR uint32_t VKAPI_CALL GetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14099,23 +14831,23 @@ VKAPI_ATTR uint32_t VKAPI_CALL GetImageViewHandleNVX( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImageViewHandleInfoNVX* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); uint32_t result = GetDeviceTable(device)->GetImageViewHandleNVX(device, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageViewHandleNVX); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageViewHandleNVX); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeUInt32Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -14125,7 +14857,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetImageViewAddressNVX( VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14139,7 +14873,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetImageViewAddressNVX( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, imageView, pProperties); + CustomEncoderPreCall::Dispatch(manager, device, imageView, pProperties); VkResult result = GetDeviceTable(device)->GetImageViewAddressNVX(device, imageView, pProperties); if (result < 0) @@ -14147,17 +14881,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetImageViewAddressNVX( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageViewAddressNVX); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageViewAddressNVX); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(imageView); EncodeStructPtr(encoder, pProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, imageView, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, imageView, pProperties); return result; } @@ -14171,7 +14905,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountAMD( uint32_t maxDrawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14183,9 +14919,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountAMD( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndirectCountAMD); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndirectCountAMD); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -14195,12 +14931,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountAMD( encoder->EncodeVkDeviceSizeValue(countBufferOffset); encoder->EncodeUInt32Value(maxDrawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndirectCountAMDHandles, buffer, countBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndirectCountAMDHandles, buffer, countBuffer); } GetDeviceTable(commandBuffer)->CmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); } VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD( @@ -14212,7 +14948,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD( uint32_t maxDrawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14224,9 +14962,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndexedIndirectCountAMD); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawIndexedIndirectCountAMD); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -14236,12 +14974,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD( encoder->EncodeVkDeviceSizeValue(countBufferOffset); encoder->EncodeUInt32Value(maxDrawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndexedIndirectCountAMDHandles, buffer, countBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawIndexedIndirectCountAMDHandles, buffer, countBuffer); } GetDeviceTable(commandBuffer)->CmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); } VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD( @@ -14252,7 +14990,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD( size_t* pInfoSize, void* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14266,7 +15006,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pipeline, shaderStage, infoType, pInfoSize, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pipeline, shaderStage, infoType, pInfoSize, pInfo); VkResult result = GetDeviceTable(device)->GetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo); if (result < 0) @@ -14274,7 +15014,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetShaderInfoAMD); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetShaderInfoAMD); if (encoder) { encoder->EncodeHandleValue(device); @@ -14284,10 +15024,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD( encoder->EncodeSizeTPtr(pInfoSize, omit_output_data); encoder->EncodeVoidArray(pInfo, (pInfoSize != nullptr) ? (*pInfoSize) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pipeline, shaderStage, infoType, pInfoSize, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pipeline, shaderStage, infoType, pInfoSize, pInfo); return result; } @@ -14298,7 +15038,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateStreamDescriptorSurfaceGGP( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14312,7 +15054,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateStreamDescriptorSurfaceGGP( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateStreamDescriptorSurfaceGGP(instance, pCreateInfo, pAllocator, pSurface); @@ -14325,7 +15067,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateStreamDescriptorSurfaceGGP( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateStreamDescriptorSurfaceGGP); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateStreamDescriptorSurfaceGGP); if (encoder) { encoder->EncodeHandleValue(instance); @@ -14333,10 +15075,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateStreamDescriptorSurfaceGGP( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -14351,7 +15093,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceExternalImageFormatPropertiesNV( VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14365,7 +15109,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceExternalImageFormatPropertiesNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties); if (result < 0) @@ -14373,7 +15117,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceExternalImageFormatPropertiesNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalImageFormatPropertiesNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceExternalImageFormatPropertiesNV); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -14385,10 +15129,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceExternalImageFormatPropertiesNV( encoder->EncodeFlagsValue(externalHandleType); EncodeStructPtr(encoder, pExternalImageFormatProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties); return result; } @@ -14399,7 +15143,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV( VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14413,7 +15159,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, memory, handleType, pHandle); + CustomEncoderPreCall::Dispatch(manager, device, memory, handleType, pHandle); VkResult result = GetDeviceTable(device)->GetMemoryWin32HandleNV(device, memory, handleType, pHandle); if (result < 0) @@ -14421,7 +15167,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryWin32HandleNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryWin32HandleNV); if (encoder) { encoder->EncodeHandleValue(device); @@ -14429,10 +15175,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV( encoder->EncodeFlagsValue(handleType); encoder->EncodeVoidPtrPtr(pHandle, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, memory, handleType, pHandle); + CustomEncoderPostCall::Dispatch(manager, result, device, memory, handleType, pHandle); return result; } @@ -14443,7 +15189,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateViSurfaceNN( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14457,7 +15205,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateViSurfaceNN( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface); @@ -14470,7 +15218,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateViSurfaceNN( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateViSurfaceNN); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateViSurfaceNN); if (encoder) { encoder->EncodeHandleValue(instance); @@ -14478,10 +15226,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateViSurfaceNN( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -14490,7 +15238,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14502,28 +15252,30 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginConditionalRenderingEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pConditionalRenderingBegin); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pConditionalRenderingBegin); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginConditionalRenderingEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginConditionalRenderingEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pConditionalRenderingBegin); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginConditionalRenderingEXTHandles, pConditionalRenderingBegin); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBeginConditionalRenderingEXTHandles, pConditionalRenderingBegin); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin_unwrapped = UnwrapStructPtrHandles(pConditionalRenderingBegin, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pConditionalRenderingBegin); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pConditionalRenderingBegin); } VKAPI_ATTR void VKAPI_CALL CmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14535,18 +15287,18 @@ VKAPI_ATTR void VKAPI_CALL CmdEndConditionalRenderingEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPreCall::Dispatch(manager, commandBuffer); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndConditionalRenderingEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndConditionalRenderingEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdEndConditionalRenderingEXT(commandBuffer); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPostCall::Dispatch(manager, commandBuffer); } VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingNV( @@ -14555,7 +15307,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingNV( uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14567,28 +15321,30 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstViewport, viewportCount, pViewportWScalings); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstViewport, viewportCount, pViewportWScalings); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportWScalingNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportWScalingNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstViewport); encoder->EncodeUInt32Value(viewportCount); EncodeStructArray(encoder, pViewportWScalings, viewportCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstViewport, viewportCount, pViewportWScalings); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstViewport, viewportCount, pViewportWScalings); } VKAPI_ATTR VkResult VKAPI_CALL ReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14600,20 +15356,20 @@ VKAPI_ATTR VkResult VKAPI_CALL ReleaseDisplayEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, display); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, display); VkResult result = GetInstanceTable(physicalDevice)->ReleaseDisplayEXT(physicalDevice, display); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkReleaseDisplayEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkReleaseDisplayEXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeHandleValue(display); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, display); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, display); return result; } @@ -14623,7 +15379,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireXlibDisplayEXT( Display* dpy, VkDisplayKHR display) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14635,21 +15393,21 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireXlibDisplayEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, dpy, display); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, dpy, display); VkResult result = GetInstanceTable(physicalDevice)->AcquireXlibDisplayEXT(physicalDevice, dpy, display); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireXlibDisplayEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireXlibDisplayEXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeVoidPtr(dpy); encoder->EncodeHandleValue(display); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, dpy, display); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, dpy, display); return result; } @@ -14660,7 +15418,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT( RROutput rrOutput, VkDisplayKHR* pDisplay) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14674,7 +15434,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, dpy, rrOutput, pDisplay); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, dpy, rrOutput, pDisplay); VkResult result = GetInstanceTable(physicalDevice)->GetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay); @@ -14687,7 +15447,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetRandROutputDisplayEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetRandROutputDisplayEXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -14695,10 +15455,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT( encoder->EncodeSizeTValue(rrOutput); encoder->EncodeHandlePtr(pDisplay, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, physicalDevice, pDisplay, nullptr); + manager->EndCreateApiCallCapture(result, physicalDevice, pDisplay, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, dpy, rrOutput, pDisplay); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, dpy, rrOutput, pDisplay); return result; } @@ -14708,7 +15468,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2EXT( VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14722,7 +15484,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2EXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, surface, pSurfaceCapabilities); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, surface, pSurfaceCapabilities); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities); if (result < 0) @@ -14730,17 +15492,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2EXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceCapabilities2EXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfaceCapabilities2EXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeHandleValue(surface); EncodeStructPtr(encoder, pSurfaceCapabilities, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, surface, pSurfaceCapabilities); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, surface, pSurfaceCapabilities); return result; } @@ -14750,7 +15512,9 @@ VKAPI_ATTR VkResult VKAPI_CALL DisplayPowerControlEXT( VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14762,21 +15526,21 @@ VKAPI_ATTR VkResult VKAPI_CALL DisplayPowerControlEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, display, pDisplayPowerInfo); + CustomEncoderPreCall::Dispatch(manager, device, display, pDisplayPowerInfo); VkResult result = GetDeviceTable(device)->DisplayPowerControlEXT(device, display, pDisplayPowerInfo); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDisplayPowerControlEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkDisplayPowerControlEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(display); EncodeStructPtr(encoder, pDisplayPowerInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, display, pDisplayPowerInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, display, pDisplayPowerInfo); return result; } @@ -14787,7 +15551,9 @@ VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT( const VkAllocationCallbacks* pAllocator, VkFence* pFence) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14801,7 +15567,7 @@ VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pDeviceEventInfo, pAllocator, pFence); + CustomEncoderPreCall::Dispatch(manager, device, pDeviceEventInfo, pAllocator, pFence); VkResult result = GetDeviceTable(device)->RegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence); @@ -14814,7 +15580,7 @@ VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkRegisterDeviceEventEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkRegisterDeviceEventEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -14822,10 +15588,10 @@ VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pFence, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pFence, nullptr); + manager->EndCreateApiCallCapture(result, device, pFence, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pDeviceEventInfo, pAllocator, pFence); + CustomEncoderPostCall::Dispatch(manager, result, device, pDeviceEventInfo, pAllocator, pFence); return result; } @@ -14837,7 +15603,9 @@ VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT( const VkAllocationCallbacks* pAllocator, VkFence* pFence) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14851,7 +15619,7 @@ VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, display, pDisplayEventInfo, pAllocator, pFence); + CustomEncoderPreCall::Dispatch(manager, device, display, pDisplayEventInfo, pAllocator, pFence); VkResult result = GetDeviceTable(device)->RegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence); @@ -14864,7 +15632,7 @@ VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkRegisterDisplayEventEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkRegisterDisplayEventEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -14873,10 +15641,10 @@ VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pFence, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pFence, nullptr); + manager->EndCreateApiCallCapture(result, device, pFence, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, display, pDisplayEventInfo, pAllocator, pFence); + CustomEncoderPostCall::Dispatch(manager, result, device, display, pDisplayEventInfo, pAllocator, pFence); return result; } @@ -14887,7 +15655,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT( VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14901,7 +15671,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain, counter, pCounterValue); + CustomEncoderPreCall::Dispatch(manager, device, swapchain, counter, pCounterValue); VkResult result = GetDeviceTable(device)->GetSwapchainCounterEXT(device, swapchain, counter, pCounterValue); if (result < 0) @@ -14909,7 +15679,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSwapchainCounterEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSwapchainCounterEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -14917,10 +15687,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT( encoder->EncodeEnumValue(counter); encoder->EncodeUInt64Ptr(pCounterValue, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, swapchain, counter, pCounterValue); + CustomEncoderPostCall::Dispatch(manager, result, device, swapchain, counter, pCounterValue); return result; } @@ -14930,7 +15700,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRefreshCycleDurationGOOGLE( VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14944,7 +15716,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRefreshCycleDurationGOOGLE( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain, pDisplayTimingProperties); + CustomEncoderPreCall::Dispatch(manager, device, swapchain, pDisplayTimingProperties); VkResult result = GetDeviceTable(device)->GetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties); if (result < 0) @@ -14952,17 +15724,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRefreshCycleDurationGOOGLE( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRefreshCycleDurationGOOGLE); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRefreshCycleDurationGOOGLE); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(swapchain); EncodeStructPtr(encoder, pDisplayTimingProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, swapchain, pDisplayTimingProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, swapchain, pDisplayTimingProperties); return result; } @@ -14973,7 +15745,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE( uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -14987,7 +15761,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain, pPresentationTimingCount, pPresentationTimings); + CustomEncoderPreCall::Dispatch(manager, device, swapchain, pPresentationTimingCount, pPresentationTimings); VkResult result = GetDeviceTable(device)->GetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings); if (result < 0) @@ -14995,7 +15769,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPastPresentationTimingGOOGLE); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPastPresentationTimingGOOGLE); if (encoder) { encoder->EncodeHandleValue(device); @@ -15003,10 +15777,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE( encoder->EncodeUInt32Ptr(pPresentationTimingCount, omit_output_data); EncodeStructArray(encoder, pPresentationTimings, (pPresentationTimingCount != nullptr) ? (*pPresentationTimingCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, swapchain, pPresentationTimingCount, pPresentationTimings); + CustomEncoderPostCall::Dispatch(manager, result, device, swapchain, pPresentationTimingCount, pPresentationTimings); return result; } @@ -15017,7 +15791,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEXT( uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15029,28 +15805,30 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDiscardRectangleEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDiscardRectangleEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstDiscardRectangle); encoder->EncodeUInt32Value(discardRectangleCount); EncodeStructArray(encoder, pDiscardRectangles, discardRectangleCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles); } VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEnableEXT( VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15062,26 +15840,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, discardRectangleEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, discardRectangleEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDiscardRectangleEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDiscardRectangleEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(discardRectangleEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDiscardRectangleEnableEXT(commandBuffer, discardRectangleEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, discardRectangleEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, discardRectangleEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleModeEXT( VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15093,19 +15873,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleModeEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, discardRectangleMode); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, discardRectangleMode); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDiscardRectangleModeEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDiscardRectangleModeEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(discardRectangleMode); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDiscardRectangleModeEXT(commandBuffer, discardRectangleMode); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, discardRectangleMode); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, discardRectangleMode); } VKAPI_ATTR void VKAPI_CALL SetHdrMetadataEXT( @@ -15114,7 +15894,9 @@ VKAPI_ATTR void VKAPI_CALL SetHdrMetadataEXT( const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15126,21 +15908,21 @@ VKAPI_ATTR void VKAPI_CALL SetHdrMetadataEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchainCount, pSwapchains, pMetadata); + CustomEncoderPreCall::Dispatch(manager, device, swapchainCount, pSwapchains, pMetadata); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetHdrMetadataEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetHdrMetadataEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(swapchainCount); encoder->EncodeHandleArray(pSwapchains, swapchainCount); EncodeStructArray(encoder, pMetadata, swapchainCount); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->SetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, swapchainCount, pSwapchains, pMetadata); + CustomEncoderPostCall::Dispatch(manager, device, swapchainCount, pSwapchains, pMetadata); } VKAPI_ATTR VkResult VKAPI_CALL CreateIOSSurfaceMVK( @@ -15149,7 +15931,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateIOSSurfaceMVK( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15163,7 +15947,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateIOSSurfaceMVK( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface); @@ -15176,7 +15960,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateIOSSurfaceMVK( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateIOSSurfaceMVK); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateIOSSurfaceMVK); if (encoder) { encoder->EncodeHandleValue(instance); @@ -15184,10 +15968,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateIOSSurfaceMVK( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -15198,7 +15982,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMacOSSurfaceMVK( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15212,7 +15998,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMacOSSurfaceMVK( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface); @@ -15225,7 +16011,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMacOSSurfaceMVK( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateMacOSSurfaceMVK); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateMacOSSurfaceMVK); if (encoder) { encoder->EncodeHandleValue(instance); @@ -15233,10 +16019,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMacOSSurfaceMVK( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -15245,7 +16031,9 @@ VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15257,25 +16045,25 @@ VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pNameInfo); + CustomEncoderPreCall::Dispatch(manager, device, pNameInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDebugUtilsObjectNameInfoEXT* pNameInfo_unwrapped = UnwrapStructPtrHandles(pNameInfo, handle_unwrap_memory); auto device_wrapper = GetWrapper(device); auto physical_device = device_wrapper->physical_device->handle; VkResult result = GetInstanceTable(physical_device)->SetDebugUtilsObjectNameEXT(device, pNameInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetDebugUtilsObjectNameEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetDebugUtilsObjectNameEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pNameInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pNameInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pNameInfo); return result; } @@ -15284,7 +16072,9 @@ VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15296,25 +16086,25 @@ VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pTagInfo); + CustomEncoderPreCall::Dispatch(manager, device, pTagInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDebugUtilsObjectTagInfoEXT* pTagInfo_unwrapped = UnwrapStructPtrHandles(pTagInfo, handle_unwrap_memory); auto device_wrapper = GetWrapper(device); auto physical_device = device_wrapper->physical_device->handle; VkResult result = GetInstanceTable(physical_device)->SetDebugUtilsObjectTagEXT(device, pTagInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetDebugUtilsObjectTagEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetDebugUtilsObjectTagEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pTagInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pTagInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pTagInfo); return result; } @@ -15323,7 +16113,9 @@ VKAPI_ATTR void VKAPI_CALL QueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15335,25 +16127,27 @@ VKAPI_ATTR void VKAPI_CALL QueueBeginDebugUtilsLabelEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue, pLabelInfo); + CustomEncoderPreCall::Dispatch(manager, queue, pLabelInfo); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueBeginDebugUtilsLabelEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueBeginDebugUtilsLabelEXT); if (encoder) { encoder->EncodeHandleValue(queue); EncodeStructPtr(encoder, pLabelInfo); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(queue)->QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), queue, pLabelInfo); + CustomEncoderPostCall::Dispatch(manager, queue, pLabelInfo); } VKAPI_ATTR void VKAPI_CALL QueueEndDebugUtilsLabelEXT( VkQueue queue) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15365,25 +16159,27 @@ VKAPI_ATTR void VKAPI_CALL QueueEndDebugUtilsLabelEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue); + CustomEncoderPreCall::Dispatch(manager, queue); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueEndDebugUtilsLabelEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueEndDebugUtilsLabelEXT); if (encoder) { encoder->EncodeHandleValue(queue); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(queue)->QueueEndDebugUtilsLabelEXT(queue); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), queue); + CustomEncoderPostCall::Dispatch(manager, queue); } VKAPI_ATTR void VKAPI_CALL QueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15395,26 +16191,28 @@ VKAPI_ATTR void VKAPI_CALL QueueInsertDebugUtilsLabelEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue, pLabelInfo); + CustomEncoderPreCall::Dispatch(manager, queue, pLabelInfo); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueInsertDebugUtilsLabelEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueInsertDebugUtilsLabelEXT); if (encoder) { encoder->EncodeHandleValue(queue); EncodeStructPtr(encoder, pLabelInfo); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(queue)->QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), queue, pLabelInfo); + CustomEncoderPostCall::Dispatch(manager, queue, pLabelInfo); } VKAPI_ATTR void VKAPI_CALL CmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15426,25 +16224,27 @@ VKAPI_ATTR void VKAPI_CALL CmdBeginDebugUtilsLabelEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pLabelInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pLabelInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginDebugUtilsLabelEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBeginDebugUtilsLabelEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pLabelInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pLabelInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pLabelInfo); } VKAPI_ATTR void VKAPI_CALL CmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15456,25 +16256,27 @@ VKAPI_ATTR void VKAPI_CALL CmdEndDebugUtilsLabelEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPreCall::Dispatch(manager, commandBuffer); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndDebugUtilsLabelEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdEndDebugUtilsLabelEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdEndDebugUtilsLabelEXT(commandBuffer); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer); + CustomEncoderPostCall::Dispatch(manager, commandBuffer); } VKAPI_ATTR void VKAPI_CALL CmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15486,19 +16288,19 @@ VKAPI_ATTR void VKAPI_CALL CmdInsertDebugUtilsLabelEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pLabelInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pLabelInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdInsertDebugUtilsLabelEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdInsertDebugUtilsLabelEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pLabelInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pLabelInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pLabelInfo); } VKAPI_ATTR VkResult VKAPI_CALL CreateDebugUtilsMessengerEXT( @@ -15507,7 +16309,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDebugUtilsMessengerEXT( const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15521,7 +16325,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDebugUtilsMessengerEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pMessenger); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pMessenger); VkResult result = GetInstanceTable(instance)->CreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger); @@ -15534,7 +16338,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDebugUtilsMessengerEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDebugUtilsMessengerEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDebugUtilsMessengerEXT); if (encoder) { encoder->EncodeHandleValue(instance); @@ -15542,10 +16346,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDebugUtilsMessengerEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pMessenger, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pMessenger, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pMessenger, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pMessenger); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pMessenger); return result; } @@ -15555,7 +16359,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyDebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15567,20 +16373,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyDebugUtilsMessengerEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, messenger, pAllocator); + CustomEncoderPreCall::Dispatch(manager, instance, messenger, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDebugUtilsMessengerEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyDebugUtilsMessengerEXT); if (encoder) { encoder->EncodeHandleValue(instance); encoder->EncodeHandleValue(messenger); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(messenger); + manager->EndDestroyApiCallCapture(messenger); } GetInstanceTable(instance)->DestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), instance, messenger, pAllocator); + CustomEncoderPostCall::Dispatch(manager, instance, messenger, pAllocator); DestroyWrappedHandle(messenger); } @@ -15591,7 +16397,9 @@ VKAPI_ATTR void VKAPI_CALL SubmitDebugUtilsMessageEXT( VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15603,21 +16411,21 @@ VKAPI_ATTR void VKAPI_CALL SubmitDebugUtilsMessageEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, messageSeverity, messageTypes, pCallbackData); + CustomEncoderPreCall::Dispatch(manager, instance, messageSeverity, messageTypes, pCallbackData); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSubmitDebugUtilsMessageEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSubmitDebugUtilsMessageEXT); if (encoder) { encoder->EncodeHandleValue(instance); encoder->EncodeEnumValue(messageSeverity); encoder->EncodeFlagsValue(messageTypes); EncodeStructPtr(encoder, pCallbackData); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetInstanceTable(instance)->SubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), instance, messageSeverity, messageTypes, pCallbackData); + CustomEncoderPostCall::Dispatch(manager, instance, messageSeverity, messageTypes, pCallbackData); } VKAPI_ATTR VkResult VKAPI_CALL GetAndroidHardwareBufferPropertiesANDROID( @@ -15625,7 +16433,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15639,7 +16449,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetAndroidHardwareBufferPropertiesANDROID( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, buffer, pProperties); + CustomEncoderPreCall::Dispatch(manager, device, buffer, pProperties); VkResult result = GetDeviceTable(device)->GetAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties); if (result < 0) @@ -15647,17 +16457,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetAndroidHardwareBufferPropertiesANDROID( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetAndroidHardwareBufferPropertiesANDROID); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetAndroidHardwareBufferPropertiesANDROID); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeVoidPtr(buffer); EncodeStructPtr(encoder, pProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, buffer, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, buffer, pProperties); return result; } @@ -15667,7 +16477,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryAndroidHardwareBufferANDROID( const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15681,9 +16493,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryAndroidHardwareBufferANDROID( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pBuffer); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pBuffer); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetMemoryAndroidHardwareBufferANDROID(device, pInfo_unwrapped, pBuffer); @@ -15692,17 +16504,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryAndroidHardwareBufferANDROID( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryAndroidHardwareBufferANDROID); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryAndroidHardwareBufferANDROID); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeVoidPtrPtr(pBuffer, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo, pBuffer); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo, pBuffer); return result; } @@ -15711,7 +16523,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15723,19 +16537,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pSampleLocationsInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pSampleLocationsInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetSampleLocationsEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetSampleLocationsEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pSampleLocationsInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pSampleLocationsInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pSampleLocationsInfo); } VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMultisamplePropertiesEXT( @@ -15743,7 +16557,9 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMultisamplePropertiesEXT( VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15755,20 +16571,20 @@ VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMultisamplePropertiesEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, samples, pMultisampleProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, samples, pMultisampleProperties); GetInstanceTable(physicalDevice)->GetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceMultisamplePropertiesEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceMultisamplePropertiesEXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeEnumValue(samples); EncodeStructPtr(encoder, pMultisampleProperties); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, samples, pMultisampleProperties); + CustomEncoderPostCall::Dispatch(manager, physicalDevice, samples, pMultisampleProperties); } VKAPI_ATTR VkResult VKAPI_CALL GetImageDrmFormatModifierPropertiesEXT( @@ -15776,7 +16592,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetImageDrmFormatModifierPropertiesEXT( VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15790,7 +16608,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetImageDrmFormatModifierPropertiesEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, image, pProperties); + CustomEncoderPreCall::Dispatch(manager, device, image, pProperties); VkResult result = GetDeviceTable(device)->GetImageDrmFormatModifierPropertiesEXT(device, image, pProperties); if (result < 0) @@ -15798,17 +16616,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetImageDrmFormatModifierPropertiesEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageDrmFormatModifierPropertiesEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageDrmFormatModifierPropertiesEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(image); EncodeStructPtr(encoder, pProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, image, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, image, pProperties); return result; } @@ -15819,7 +16637,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateValidationCacheEXT( const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15833,7 +16653,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateValidationCacheEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pValidationCache); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pValidationCache); VkResult result = GetDeviceTable(device)->CreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache); @@ -15846,7 +16666,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateValidationCacheEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateValidationCacheEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateValidationCacheEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -15854,10 +16674,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateValidationCacheEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pValidationCache, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pValidationCache, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pValidationCache, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pValidationCache); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pValidationCache); return result; } @@ -15867,7 +16687,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyValidationCacheEXT( VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15879,20 +16701,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyValidationCacheEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, validationCache, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, validationCache, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyValidationCacheEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyValidationCacheEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(validationCache); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(validationCache); + manager->EndDestroyApiCallCapture(validationCache); } GetDeviceTable(device)->DestroyValidationCacheEXT(device, validationCache, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, validationCache, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, validationCache, pAllocator); DestroyWrappedHandle(validationCache); } @@ -15903,7 +16725,9 @@ VKAPI_ATTR VkResult VKAPI_CALL MergeValidationCachesEXT( uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15915,11 +16739,11 @@ VKAPI_ATTR VkResult VKAPI_CALL MergeValidationCachesEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, dstCache, srcCacheCount, pSrcCaches); + CustomEncoderPreCall::Dispatch(manager, device, dstCache, srcCacheCount, pSrcCaches); VkResult result = GetDeviceTable(device)->MergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkMergeValidationCachesEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkMergeValidationCachesEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -15927,10 +16751,10 @@ VKAPI_ATTR VkResult VKAPI_CALL MergeValidationCachesEXT( encoder->EncodeUInt32Value(srcCacheCount); encoder->EncodeHandleArray(pSrcCaches, srcCacheCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, dstCache, srcCacheCount, pSrcCaches); + CustomEncoderPostCall::Dispatch(manager, result, device, dstCache, srcCacheCount, pSrcCaches); return result; } @@ -15941,7 +16765,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetValidationCacheDataEXT( size_t* pDataSize, void* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15955,7 +16781,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetValidationCacheDataEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, validationCache, pDataSize, pData); + CustomEncoderPreCall::Dispatch(manager, device, validationCache, pDataSize, pData); VkResult result = GetDeviceTable(device)->GetValidationCacheDataEXT(device, validationCache, pDataSize, pData); if (result < 0) @@ -15963,7 +16789,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetValidationCacheDataEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetValidationCacheDataEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetValidationCacheDataEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -15971,10 +16797,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetValidationCacheDataEXT( encoder->EncodeSizeTPtr(pDataSize, omit_output_data); encoder->EncodeVoidArray(pData, (pDataSize != nullptr) ? (*pDataSize) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, validationCache, pDataSize, pData); + CustomEncoderPostCall::Dispatch(manager, result, device, validationCache, pDataSize, pData); return result; } @@ -15984,7 +16810,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindShadingRateImageNV( VkImageView imageView, VkImageLayout imageLayout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -15996,20 +16824,20 @@ VKAPI_ATTR void VKAPI_CALL CmdBindShadingRateImageNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, imageView, imageLayout); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, imageView, imageLayout); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindShadingRateImageNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindShadingRateImageNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(imageView); encoder->EncodeEnumValue(imageLayout); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindShadingRateImageNVHandles, imageView); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindShadingRateImageNVHandles, imageView); } GetDeviceTable(commandBuffer)->CmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, imageView, imageLayout); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, imageView, imageLayout); } VKAPI_ATTR void VKAPI_CALL CmdSetViewportShadingRatePaletteNV( @@ -16018,7 +16846,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportShadingRatePaletteNV( uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16030,21 +16860,21 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportShadingRatePaletteNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstViewport, viewportCount, pShadingRatePalettes); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportShadingRatePaletteNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportShadingRatePaletteNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstViewport); encoder->EncodeUInt32Value(viewportCount); EncodeStructArray(encoder, pShadingRatePalettes, viewportCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstViewport, viewportCount, pShadingRatePalettes); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstViewport, viewportCount, pShadingRatePalettes); } VKAPI_ATTR void VKAPI_CALL CmdSetCoarseSampleOrderNV( @@ -16053,7 +16883,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCoarseSampleOrderNV( uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16065,21 +16897,21 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCoarseSampleOrderNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoarseSampleOrderNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoarseSampleOrderNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(sampleOrderType); encoder->EncodeUInt32Value(customSampleOrderCount); EncodeStructArray(encoder, pCustomSampleOrders, customSampleOrderCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders); } VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV( @@ -16088,7 +16920,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV( const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16102,9 +16936,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pAccelerationStructure); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pAccelerationStructure); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkAccelerationStructureCreateInfoNV* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateAccelerationStructureNV(device, pCreateInfo_unwrapped, pAllocator, pAccelerationStructure); @@ -16118,7 +16952,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateAccelerationStructureNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateAccelerationStructureNV); if (encoder) { encoder->EncodeHandleValue(device); @@ -16126,10 +16960,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pAccelerationStructure, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pAccelerationStructure, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pAccelerationStructure, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pAccelerationStructure); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pAccelerationStructure); return result; } @@ -16139,7 +16973,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureNV( VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16151,20 +16987,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, accelerationStructure, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, accelerationStructure, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyAccelerationStructureNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyAccelerationStructureNV); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(accelerationStructure); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(accelerationStructure); + manager->EndDestroyApiCallCapture(accelerationStructure); } GetDeviceTable(device)->DestroyAccelerationStructureNV(device, accelerationStructure, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, accelerationStructure, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, accelerationStructure, pAllocator); DestroyWrappedHandle(accelerationStructure); } @@ -16174,7 +17010,9 @@ VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureMemoryRequirementsNV( const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16186,23 +17024,23 @@ VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureMemoryRequirementsNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetAccelerationStructureMemoryRequirementsNV(device, pInfo_unwrapped, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetAccelerationStructureMemoryRequirementsNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetAccelerationStructureMemoryRequirementsNV); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pMemoryRequirements); } VKAPI_ATTR VkResult VKAPI_CALL BindAccelerationStructureMemoryNV( @@ -16210,7 +17048,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16222,24 +17062,24 @@ VKAPI_ATTR VkResult VKAPI_CALL BindAccelerationStructureMemoryNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, bindInfoCount, pBindInfos); + CustomEncoderPreCall::Dispatch(manager, device, bindInfoCount, pBindInfos); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBindAccelerationStructureMemoryInfoNV* pBindInfos_unwrapped = UnwrapStructArrayHandles(pBindInfos, bindInfoCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->BindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindAccelerationStructureMemoryNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindAccelerationStructureMemoryNV); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(bindInfoCount); EncodeStructArray(encoder, pBindInfos, bindInfoCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, bindInfoCount, pBindInfos); + CustomEncoderPostCall::Dispatch(manager, result, device, bindInfoCount, pBindInfos); return result; } @@ -16255,7 +17095,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructureNV( VkBuffer scratch, VkDeviceSize scratchOffset) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16267,9 +17109,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructureNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBuildAccelerationStructureNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBuildAccelerationStructureNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -16281,15 +17123,15 @@ VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructureNV( encoder->EncodeHandleValue(src); encoder->EncodeHandleValue(scratch); encoder->EncodeVkDeviceSizeValue(scratchOffset); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBuildAccelerationStructureNVHandles, pInfo, instanceData, dst, src, scratch); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBuildAccelerationStructureNVHandles, pInfo, instanceData, dst, src, scratch); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkAccelerationStructureInfoNV* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBuildAccelerationStructureNV(commandBuffer, pInfo_unwrapped, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset); } VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureNV( @@ -16298,7 +17140,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureNV( VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16310,21 +17154,21 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, dst, src, mode); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, dst, src, mode); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyAccelerationStructureNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyAccelerationStructureNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(dst); encoder->EncodeHandleValue(src); encoder->EncodeEnumValue(mode); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyAccelerationStructureNVHandles, dst, src); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyAccelerationStructureNVHandles, dst, src); } GetDeviceTable(commandBuffer)->CmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, dst, src, mode); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, dst, src, mode); } VKAPI_ATTR void VKAPI_CALL CmdTraceRaysNV( @@ -16344,7 +17188,9 @@ VKAPI_ATTR void VKAPI_CALL CmdTraceRaysNV( uint32_t height, uint32_t depth) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16356,9 +17202,9 @@ VKAPI_ATTR void VKAPI_CALL CmdTraceRaysNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdTraceRaysNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdTraceRaysNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -16376,12 +17222,12 @@ VKAPI_ATTR void VKAPI_CALL CmdTraceRaysNV( encoder->EncodeUInt32Value(width); encoder->EncodeUInt32Value(height); encoder->EncodeUInt32Value(depth); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdTraceRaysNVHandles, raygenShaderBindingTableBuffer, missShaderBindingTableBuffer, hitShaderBindingTableBuffer, callableShaderBindingTableBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdTraceRaysNVHandles, raygenShaderBindingTableBuffer, missShaderBindingTableBuffer, hitShaderBindingTableBuffer, callableShaderBindingTableBuffer); } GetDeviceTable(commandBuffer)->CmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth); } VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR( @@ -16392,7 +17238,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR( size_t dataSize, void* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16406,7 +17254,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pipeline, firstGroup, groupCount, dataSize, pData); + CustomEncoderPreCall::Dispatch(manager, device, pipeline, firstGroup, groupCount, dataSize, pData); VkResult result = GetDeviceTable(device)->GetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData); if (result < 0) @@ -16414,7 +17262,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRayTracingShaderGroupHandlesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRayTracingShaderGroupHandlesKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -16424,10 +17272,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR( encoder->EncodeSizeTValue(dataSize); encoder->EncodeVoidArray(pData, dataSize, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pipeline, firstGroup, groupCount, dataSize, pData); + CustomEncoderPostCall::Dispatch(manager, result, device, pipeline, firstGroup, groupCount, dataSize, pData); return result; } @@ -16440,7 +17288,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV( size_t dataSize, void* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16454,7 +17304,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pipeline, firstGroup, groupCount, dataSize, pData); + CustomEncoderPreCall::Dispatch(manager, device, pipeline, firstGroup, groupCount, dataSize, pData); VkResult result = GetDeviceTable(device)->GetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData); if (result < 0) @@ -16462,7 +17312,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRayTracingShaderGroupHandlesNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRayTracingShaderGroupHandlesNV); if (encoder) { encoder->EncodeHandleValue(device); @@ -16472,10 +17322,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV( encoder->EncodeSizeTValue(dataSize); encoder->EncodeVoidArray(pData, dataSize, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pipeline, firstGroup, groupCount, dataSize, pData); + CustomEncoderPostCall::Dispatch(manager, result, device, pipeline, firstGroup, groupCount, dataSize, pData); return result; } @@ -16486,7 +17336,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureHandleNV( size_t dataSize, void* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16500,7 +17352,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureHandleNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, accelerationStructure, dataSize, pData); + CustomEncoderPreCall::Dispatch(manager, device, accelerationStructure, dataSize, pData); VkResult result = GetDeviceTable(device)->GetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData); if (result < 0) @@ -16508,7 +17360,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureHandleNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetAccelerationStructureHandleNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetAccelerationStructureHandleNV); if (encoder) { encoder->EncodeHandleValue(device); @@ -16516,10 +17368,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureHandleNV( encoder->EncodeSizeTValue(dataSize); encoder->EncodeVoidArray(pData, dataSize, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, accelerationStructure, dataSize, pData); + CustomEncoderPostCall::Dispatch(manager, result, device, accelerationStructure, dataSize, pData); return result; } @@ -16532,7 +17384,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesNV( VkQueryPool queryPool, uint32_t firstQuery) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16544,9 +17398,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteAccelerationStructuresPropertiesNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteAccelerationStructuresPropertiesNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -16555,12 +17409,12 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesNV( encoder->EncodeEnumValue(queryType); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(firstQuery); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteAccelerationStructuresPropertiesNVHandles, accelerationStructureCount, pAccelerationStructures, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteAccelerationStructuresPropertiesNVHandles, accelerationStructureCount, pAccelerationStructures, queryPool); } GetDeviceTable(commandBuffer)->CmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery); } VKAPI_ATTR VkResult VKAPI_CALL CompileDeferredNV( @@ -16568,7 +17422,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CompileDeferredNV( VkPipeline pipeline, uint32_t shader) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16580,21 +17436,21 @@ VKAPI_ATTR VkResult VKAPI_CALL CompileDeferredNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pipeline, shader); + CustomEncoderPreCall::Dispatch(manager, device, pipeline, shader); VkResult result = GetDeviceTable(device)->CompileDeferredNV(device, pipeline, shader); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCompileDeferredNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCompileDeferredNV); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(pipeline); encoder->EncodeUInt32Value(shader); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pipeline, shader); + CustomEncoderPostCall::Dispatch(manager, result, device, pipeline, shader); return result; } @@ -16605,7 +17461,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryHostPointerPropertiesEXT( const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16619,7 +17477,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryHostPointerPropertiesEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, handleType, pHostPointer, pMemoryHostPointerProperties); + CustomEncoderPreCall::Dispatch(manager, device, handleType, pHostPointer, pMemoryHostPointerProperties); VkResult result = GetDeviceTable(device)->GetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties); if (result < 0) @@ -16627,7 +17485,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryHostPointerPropertiesEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryHostPointerPropertiesEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryHostPointerPropertiesEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -16635,10 +17493,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryHostPointerPropertiesEXT( encoder->EncodeVoidPtr(pHostPointer); EncodeStructPtr(encoder, pMemoryHostPointerProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, handleType, pHostPointer, pMemoryHostPointerProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, handleType, pHostPointer, pMemoryHostPointerProperties); return result; } @@ -16650,7 +17508,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD( VkDeviceSize dstOffset, uint32_t marker) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16662,9 +17522,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pipelineStage, dstBuffer, dstOffset, marker); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteBufferMarkerAMD); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteBufferMarkerAMD); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -16672,12 +17532,12 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD( encoder->EncodeHandleValue(dstBuffer); encoder->EncodeVkDeviceSizeValue(dstOffset); encoder->EncodeUInt32Value(marker); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteBufferMarkerAMDHandles, dstBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteBufferMarkerAMDHandles, dstBuffer); } GetDeviceTable(commandBuffer)->CmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineStage, dstBuffer, dstOffset, marker); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pipelineStage, dstBuffer, dstOffset, marker); } VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT( @@ -16685,7 +17545,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16699,7 +17561,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pTimeDomainCount, pTimeDomains); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pTimeDomainCount, pTimeDomains); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains); if (result < 0) @@ -16707,17 +17569,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pTimeDomainCount, omit_output_data); encoder->EncodeEnumArray(pTimeDomains, (pTimeDomainCount != nullptr) ? (*pTimeDomainCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pTimeDomainCount, pTimeDomains); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pTimeDomainCount, pTimeDomains); return result; } @@ -16729,7 +17591,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT( uint64_t* pTimestamps, uint64_t* pMaxDeviation) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16743,7 +17607,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation); + CustomEncoderPreCall::Dispatch(manager, device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation); VkResult result = GetDeviceTable(device)->GetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation); if (result < 0) @@ -16751,7 +17615,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetCalibratedTimestampsEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetCalibratedTimestampsEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -16760,10 +17624,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT( encoder->EncodeUInt64Array(pTimestamps, timestampCount, omit_output_data); encoder->EncodeUInt64Ptr(pMaxDeviation, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation); + CustomEncoderPostCall::Dispatch(manager, result, device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation); return result; } @@ -16773,7 +17637,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksNV( uint32_t taskCount, uint32_t firstTask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16785,20 +17651,20 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, taskCount, firstTask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, taskCount, firstTask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(taskCount); encoder->EncodeUInt32Value(firstTask); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, taskCount, firstTask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, taskCount, firstTask); } VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectNV( @@ -16808,7 +17674,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectNV( uint32_t drawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16820,9 +17688,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, drawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, drawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksIndirectNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksIndirectNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -16830,12 +17698,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectNV( encoder->EncodeVkDeviceSizeValue(offset); encoder->EncodeUInt32Value(drawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawMeshTasksIndirectNVHandles, buffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawMeshTasksIndirectNVHandles, buffer); } GetDeviceTable(commandBuffer)->CmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, drawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, drawCount, stride); } VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountNV( @@ -16847,7 +17715,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountNV( uint32_t maxDrawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16859,9 +17729,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksIndirectCountNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksIndirectCountNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -16871,12 +17741,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountNV( encoder->EncodeVkDeviceSizeValue(countBufferOffset); encoder->EncodeUInt32Value(maxDrawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawMeshTasksIndirectCountNVHandles, buffer, countBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawMeshTasksIndirectCountNVHandles, buffer, countBuffer); } GetDeviceTable(commandBuffer)->CmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); } VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorEnableNV( @@ -16885,7 +17755,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorEnableNV( uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16897,21 +17769,21 @@ VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorEnableNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetExclusiveScissorEnableNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetExclusiveScissorEnableNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstExclusiveScissor); encoder->EncodeUInt32Value(exclusiveScissorCount); encoder->EncodeVkBool32Array(pExclusiveScissorEnables, exclusiveScissorCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetExclusiveScissorEnableNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables); } VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorNV( @@ -16920,7 +17792,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorNV( uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16932,28 +17806,30 @@ VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetExclusiveScissorNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetExclusiveScissorNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstExclusiveScissor); encoder->EncodeUInt32Value(exclusiveScissorCount); EncodeStructArray(encoder, pExclusiveScissors, exclusiveScissorCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors); } VKAPI_ATTR void VKAPI_CALL CmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16965,19 +17841,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCheckpointNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCheckpointMarker); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pCheckpointMarker); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCheckpointNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCheckpointNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVoidPtr(pCheckpointMarker); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetCheckpointNV(commandBuffer, pCheckpointMarker); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pCheckpointMarker); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pCheckpointMarker); } VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointDataNV( @@ -16985,7 +17861,9 @@ VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointDataNV( uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -16997,27 +17875,29 @@ VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointDataNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue, pCheckpointDataCount, pCheckpointData); + CustomEncoderPreCall::Dispatch(manager, queue, pCheckpointDataCount, pCheckpointData); GetDeviceTable(queue)->GetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetQueueCheckpointDataNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetQueueCheckpointDataNV); if (encoder) { encoder->EncodeHandleValue(queue); encoder->EncodeUInt32Ptr(pCheckpointDataCount); EncodeStructArray(encoder, pCheckpointData, (pCheckpointDataCount != nullptr) ? (*pCheckpointDataCount) : 0); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), queue, pCheckpointDataCount, pCheckpointData); + CustomEncoderPostCall::Dispatch(manager, queue, pCheckpointDataCount, pCheckpointData); } VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17029,20 +17909,20 @@ VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInitializeInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInitializeInfo); VkResult result = GetDeviceTable(device)->InitializePerformanceApiINTEL(device, pInitializeInfo); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkInitializePerformanceApiINTEL); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkInitializePerformanceApiINTEL); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInitializeInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInitializeInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInitializeInfo); return result; } @@ -17050,7 +17930,9 @@ VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL( VKAPI_ATTR void VKAPI_CALL UninitializePerformanceApiINTEL( VkDevice device) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17062,25 +17944,27 @@ VKAPI_ATTR void VKAPI_CALL UninitializePerformanceApiINTEL( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device); + CustomEncoderPreCall::Dispatch(manager, device); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkUninitializePerformanceApiINTEL); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkUninitializePerformanceApiINTEL); if (encoder) { encoder->EncodeHandleValue(device); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->UninitializePerformanceApiINTEL(device); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device); + CustomEncoderPostCall::Dispatch(manager, device); } VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17092,20 +17976,20 @@ VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceMarkerINTEL( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pMarkerInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pMarkerInfo); VkResult result = GetDeviceTable(commandBuffer)->CmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPerformanceMarkerINTEL); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPerformanceMarkerINTEL); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pMarkerInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, commandBuffer, pMarkerInfo); + CustomEncoderPostCall::Dispatch(manager, result, commandBuffer, pMarkerInfo); return result; } @@ -17114,7 +17998,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17126,20 +18012,20 @@ VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceStreamMarkerINTEL( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pMarkerInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pMarkerInfo); VkResult result = GetDeviceTable(commandBuffer)->CmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPerformanceStreamMarkerINTEL); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPerformanceStreamMarkerINTEL); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pMarkerInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, commandBuffer, pMarkerInfo); + CustomEncoderPostCall::Dispatch(manager, result, commandBuffer, pMarkerInfo); return result; } @@ -17148,7 +18034,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17160,20 +18048,20 @@ VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceOverrideINTEL( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pOverrideInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pOverrideInfo); VkResult result = GetDeviceTable(commandBuffer)->CmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPerformanceOverrideINTEL); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPerformanceOverrideINTEL); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pOverrideInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, commandBuffer, pOverrideInfo); + CustomEncoderPostCall::Dispatch(manager, result, commandBuffer, pOverrideInfo); return result; } @@ -17183,7 +18071,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquirePerformanceConfigurationINTEL( const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17197,7 +18087,7 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquirePerformanceConfigurationINTEL( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pAcquireInfo, pConfiguration); + CustomEncoderPreCall::Dispatch(manager, device, pAcquireInfo, pConfiguration); VkResult result = GetDeviceTable(device)->AcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration); @@ -17210,17 +18100,17 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquirePerformanceConfigurationINTEL( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkAcquirePerformanceConfigurationINTEL); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkAcquirePerformanceConfigurationINTEL); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pAcquireInfo); encoder->EncodeHandlePtr(pConfiguration, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pConfiguration, nullptr); + manager->EndCreateApiCallCapture(result, device, pConfiguration, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pAcquireInfo, pConfiguration); + CustomEncoderPostCall::Dispatch(manager, result, device, pAcquireInfo, pConfiguration); return result; } @@ -17229,7 +18119,9 @@ VKAPI_ATTR VkResult VKAPI_CALL ReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17241,20 +18133,20 @@ VKAPI_ATTR VkResult VKAPI_CALL ReleasePerformanceConfigurationINTEL( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, configuration); + CustomEncoderPreCall::Dispatch(manager, device, configuration); VkResult result = GetDeviceTable(device)->ReleasePerformanceConfigurationINTEL(device, configuration); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkReleasePerformanceConfigurationINTEL); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkReleasePerformanceConfigurationINTEL); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(configuration); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(configuration); + manager->EndDestroyApiCallCapture(configuration); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, configuration); + CustomEncoderPostCall::Dispatch(manager, result, device, configuration); DestroyWrappedHandle(configuration); @@ -17265,7 +18157,9 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17277,20 +18171,20 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSetPerformanceConfigurationINTEL( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), queue, configuration); + CustomEncoderPreCall::Dispatch(manager, queue, configuration); VkResult result = GetDeviceTable(queue)->QueueSetPerformanceConfigurationINTEL(queue, configuration); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueSetPerformanceConfigurationINTEL); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkQueueSetPerformanceConfigurationINTEL); if (encoder) { encoder->EncodeHandleValue(queue); encoder->EncodeHandleValue(configuration); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, queue, configuration); + CustomEncoderPostCall::Dispatch(manager, result, queue, configuration); return result; } @@ -17300,7 +18194,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPerformanceParameterINTEL( VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17314,7 +18210,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPerformanceParameterINTEL( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, parameter, pValue); + CustomEncoderPreCall::Dispatch(manager, device, parameter, pValue); VkResult result = GetDeviceTable(device)->GetPerformanceParameterINTEL(device, parameter, pValue); if (result < 0) @@ -17322,17 +18218,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPerformanceParameterINTEL( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPerformanceParameterINTEL); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPerformanceParameterINTEL); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeEnumValue(parameter); EncodeStructPtr(encoder, pValue, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, parameter, pValue); + CustomEncoderPostCall::Dispatch(manager, result, device, parameter, pValue); return result; } @@ -17342,7 +18238,9 @@ VKAPI_ATTR void VKAPI_CALL SetLocalDimmingAMD( VkSwapchainKHR swapChain, VkBool32 localDimmingEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17354,20 +18252,20 @@ VKAPI_ATTR void VKAPI_CALL SetLocalDimmingAMD( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapChain, localDimmingEnable); + CustomEncoderPreCall::Dispatch(manager, device, swapChain, localDimmingEnable); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetLocalDimmingAMD); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetLocalDimmingAMD); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(swapChain); encoder->EncodeVkBool32Value(localDimmingEnable); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->SetLocalDimmingAMD(device, swapChain, localDimmingEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, swapChain, localDimmingEnable); + CustomEncoderPostCall::Dispatch(manager, device, swapChain, localDimmingEnable); } VKAPI_ATTR VkResult VKAPI_CALL CreateImagePipeSurfaceFUCHSIA( @@ -17376,7 +18274,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImagePipeSurfaceFUCHSIA( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17390,7 +18290,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImagePipeSurfaceFUCHSIA( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateImagePipeSurfaceFUCHSIA(instance, pCreateInfo, pAllocator, pSurface); @@ -17403,7 +18303,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImagePipeSurfaceFUCHSIA( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateImagePipeSurfaceFUCHSIA); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateImagePipeSurfaceFUCHSIA); if (encoder) { encoder->EncodeHandleValue(instance); @@ -17411,10 +18311,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImagePipeSurfaceFUCHSIA( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -17425,7 +18325,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMetalSurfaceEXT( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17439,7 +18341,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMetalSurfaceEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface); @@ -17452,7 +18354,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMetalSurfaceEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateMetalSurfaceEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateMetalSurfaceEXT); if (encoder) { encoder->EncodeHandleValue(instance); @@ -17460,10 +18362,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMetalSurfaceEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -17472,7 +18374,9 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17484,23 +18388,23 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkBufferDeviceAddressInfo* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkDeviceAddress result = GetDeviceTable(device)->GetBufferDeviceAddressEXT(device, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferDeviceAddressEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetBufferDeviceAddressEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeVkDeviceAddressValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -17510,7 +18414,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolPropertiesEXT( uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17524,25 +18430,25 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolPropertiesEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pToolCount, pToolProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pToolCount, pToolProperties); - VkResult result = VulkanCaptureManager::Get()->OverrideGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties); + VkResult result = manager->OverrideGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties); if (result < 0) { omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceToolPropertiesEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceToolPropertiesEXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pToolCount, omit_output_data); EncodeStructArray(encoder, pToolProperties, (pToolCount != nullptr) ? (*pToolCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pToolCount, pToolProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pToolCount, pToolProperties); return result; } @@ -17552,7 +18458,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17566,7 +18474,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pPropertyCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pPropertyCount, pProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties); if (result < 0) @@ -17574,17 +18482,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pPropertyCount, omit_output_data); EncodeStructArray(encoder, pProperties, (pPropertyCount != nullptr) ? (*pPropertyCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pPropertyCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pPropertyCount, pProperties); return result; } @@ -17594,7 +18502,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSupportedFramebufferMixedSamples uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17608,7 +18518,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSupportedFramebufferMixedSamples bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pCombinationCount, pCombinations); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pCombinationCount, pCombinations); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations); if (result < 0) @@ -17616,17 +18526,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSupportedFramebufferMixedSamples omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Ptr(pCombinationCount, omit_output_data); EncodeStructArray(encoder, pCombinations, (pCombinationCount != nullptr) ? (*pCombinationCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pCombinationCount, pCombinations); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pCombinationCount, pCombinations); return result; } @@ -17637,7 +18547,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModes2EXT( uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17651,9 +18563,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModes2EXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo_unwrapped = UnwrapStructPtrHandles(pSurfaceInfo, handle_unwrap_memory); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceSurfacePresentModes2EXT(physicalDevice, pSurfaceInfo_unwrapped, pPresentModeCount, pPresentModes); @@ -17662,7 +18574,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModes2EXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfacePresentModes2EXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceSurfacePresentModes2EXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -17670,10 +18582,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModes2EXT( encoder->EncodeUInt32Ptr(pPresentModeCount, omit_output_data); encoder->EncodeEnumArray(pPresentModes, (pPresentModeCount != nullptr) ? (*pPresentModeCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes); return result; } @@ -17682,7 +18594,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17694,20 +18608,20 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireFullScreenExclusiveModeEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain); + CustomEncoderPreCall::Dispatch(manager, device, swapchain); VkResult result = GetDeviceTable(device)->AcquireFullScreenExclusiveModeEXT(device, swapchain); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireFullScreenExclusiveModeEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireFullScreenExclusiveModeEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(swapchain); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, swapchain); + CustomEncoderPostCall::Dispatch(manager, result, device, swapchain); return result; } @@ -17716,7 +18630,9 @@ VKAPI_ATTR VkResult VKAPI_CALL ReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17728,20 +18644,20 @@ VKAPI_ATTR VkResult VKAPI_CALL ReleaseFullScreenExclusiveModeEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, swapchain); + CustomEncoderPreCall::Dispatch(manager, device, swapchain); VkResult result = GetDeviceTable(device)->ReleaseFullScreenExclusiveModeEXT(device, swapchain); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkReleaseFullScreenExclusiveModeEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkReleaseFullScreenExclusiveModeEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(swapchain); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, swapchain); + CustomEncoderPostCall::Dispatch(manager, result, device, swapchain); return result; } @@ -17751,7 +18667,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupSurfacePresentModes2EXT( const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17765,9 +18683,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupSurfacePresentModes2EXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pSurfaceInfo, pModes); + CustomEncoderPreCall::Dispatch(manager, device, pSurfaceInfo, pModes); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo_unwrapped = UnwrapStructPtrHandles(pSurfaceInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetDeviceGroupSurfacePresentModes2EXT(device, pSurfaceInfo_unwrapped, pModes); @@ -17776,17 +18694,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupSurfacePresentModes2EXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceGroupSurfacePresentModes2EXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceGroupSurfacePresentModes2EXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pSurfaceInfo); encoder->EncodeFlagsPtr(pModes, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pSurfaceInfo, pModes); + CustomEncoderPostCall::Dispatch(manager, result, device, pSurfaceInfo, pModes); return result; } @@ -17797,7 +18715,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateHeadlessSurfaceEXT( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17811,7 +18731,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateHeadlessSurfaceEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface); @@ -17824,7 +18744,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateHeadlessSurfaceEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateHeadlessSurfaceEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateHeadlessSurfaceEXT); if (encoder) { encoder->EncodeHandleValue(instance); @@ -17832,10 +18752,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateHeadlessSurfaceEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -17845,7 +18765,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17857,20 +18779,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, lineStippleFactor, lineStipplePattern); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, lineStippleFactor, lineStipplePattern); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLineStippleEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLineStippleEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(lineStippleFactor); encoder->EncodeUInt16Value(lineStipplePattern); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, lineStippleFactor, lineStipplePattern); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, lineStippleFactor, lineStipplePattern); } VKAPI_ATTR void VKAPI_CALL ResetQueryPoolEXT( @@ -17879,7 +18801,9 @@ VKAPI_ATTR void VKAPI_CALL ResetQueryPoolEXT( uint32_t firstQuery, uint32_t queryCount) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17891,28 +18815,30 @@ VKAPI_ATTR void VKAPI_CALL ResetQueryPoolEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, queryPool, firstQuery, queryCount); + CustomEncoderPreCall::Dispatch(manager, device, queryPool, firstQuery, queryCount); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetQueryPoolEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkResetQueryPoolEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(firstQuery); encoder->EncodeUInt32Value(queryCount); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->ResetQueryPoolEXT(device, queryPool, firstQuery, queryCount); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, queryPool, firstQuery, queryCount); + CustomEncoderPostCall::Dispatch(manager, device, queryPool, firstQuery, queryCount); } VKAPI_ATTR void VKAPI_CALL CmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17924,26 +18850,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCullModeEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, cullMode); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, cullMode); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCullModeEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCullModeEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFlagsValue(cullMode); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetCullModeEXT(commandBuffer, cullMode); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, cullMode); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, cullMode); } VKAPI_ATTR void VKAPI_CALL CmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17955,26 +18883,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetFrontFaceEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, frontFace); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, frontFace); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetFrontFaceEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetFrontFaceEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(frontFace); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetFrontFaceEXT(commandBuffer, frontFace); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, frontFace); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, frontFace); } VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -17986,19 +18916,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveTopologyEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, primitiveTopology); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, primitiveTopology); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPrimitiveTopologyEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPrimitiveTopologyEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(primitiveTopology); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, primitiveTopology); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, primitiveTopology); } VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCountEXT( @@ -18006,7 +18936,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCountEXT( uint32_t viewportCount, const VkViewport* pViewports) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18018,20 +18950,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCountEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, viewportCount, pViewports); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, viewportCount, pViewports); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportWithCountEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportWithCountEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(viewportCount); EncodeStructArray(encoder, pViewports, viewportCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, viewportCount, pViewports); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, viewportCount, pViewports); } VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCountEXT( @@ -18039,7 +18971,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCountEXT( uint32_t scissorCount, const VkRect2D* pScissors) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18051,20 +18985,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCountEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, scissorCount, pScissors); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, scissorCount, pScissors); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetScissorWithCountEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetScissorWithCountEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(scissorCount); EncodeStructArray(encoder, pScissors, scissorCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, scissorCount, pScissors); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, scissorCount, pScissors); } VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2EXT( @@ -18076,7 +19010,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2EXT( const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18088,9 +19024,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2EXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindVertexBuffers2EXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindVertexBuffers2EXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -18100,19 +19036,21 @@ VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2EXT( encoder->EncodeVkDeviceSizeArray(pOffsets, bindingCount); encoder->EncodeVkDeviceSizeArray(pSizes, bindingCount); encoder->EncodeVkDeviceSizeArray(pStrides, bindingCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindVertexBuffers2EXTHandles, bindingCount, pBuffers); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindVertexBuffers2EXTHandles, bindingCount, pBuffers); } GetDeviceTable(commandBuffer)->CmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18124,26 +19062,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthTestEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthTestEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthTestEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthTestEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthTestEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(depthTestEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthTestEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthTestEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18155,26 +19095,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthWriteEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthWriteEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthWriteEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthWriteEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthWriteEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(depthWriteEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthWriteEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthWriteEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18186,26 +19128,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthCompareOpEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthCompareOp); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthCompareOp); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthCompareOpEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthCompareOpEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(depthCompareOp); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthCompareOp); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthCompareOp); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18217,26 +19161,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBoundsTestEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthBoundsTestEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthBoundsTestEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBoundsTestEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBoundsTestEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(depthBoundsTestEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthBoundsTestEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthBoundsTestEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18248,19 +19194,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilTestEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stencilTestEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, stencilTestEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilTestEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilTestEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(stencilTestEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stencilTestEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, stencilTestEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT( @@ -18271,7 +19217,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT( VkStencilOp depthFailOp, VkCompareOp compareOp) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18283,9 +19231,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilOpEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetStencilOpEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -18294,19 +19242,21 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT( encoder->EncodeEnumValue(passOp); encoder->EncodeEnumValue(depthFailOp); encoder->EncodeEnumValue(compareOp); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); } VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToImageEXT( VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18318,23 +19268,23 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToImageEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCopyMemoryToImageInfo); + CustomEncoderPreCall::Dispatch(manager, device, pCopyMemoryToImageInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo_unwrapped = UnwrapStructPtrHandles(pCopyMemoryToImageInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CopyMemoryToImageEXT(device, pCopyMemoryToImageInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyMemoryToImageEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyMemoryToImageEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pCopyMemoryToImageInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCopyMemoryToImageInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pCopyMemoryToImageInfo); return result; } @@ -18343,7 +19293,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyImageToMemoryEXT( VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18355,23 +19307,23 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyImageToMemoryEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCopyImageToMemoryInfo); + CustomEncoderPreCall::Dispatch(manager, device, pCopyImageToMemoryInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo_unwrapped = UnwrapStructPtrHandles(pCopyImageToMemoryInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CopyImageToMemoryEXT(device, pCopyImageToMemoryInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyImageToMemoryEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyImageToMemoryEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pCopyImageToMemoryInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCopyImageToMemoryInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pCopyImageToMemoryInfo); return result; } @@ -18380,7 +19332,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyImageToImageEXT( VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18392,23 +19346,23 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyImageToImageEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCopyImageToImageInfo); + CustomEncoderPreCall::Dispatch(manager, device, pCopyImageToImageInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo_unwrapped = UnwrapStructPtrHandles(pCopyImageToImageInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CopyImageToImageEXT(device, pCopyImageToImageInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyImageToImageEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyImageToImageEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pCopyImageToImageInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCopyImageToImageInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pCopyImageToImageInfo); return result; } @@ -18418,7 +19372,9 @@ VKAPI_ATTR VkResult VKAPI_CALL TransitionImageLayoutEXT( uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18430,24 +19386,24 @@ VKAPI_ATTR VkResult VKAPI_CALL TransitionImageLayoutEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, transitionCount, pTransitions); + CustomEncoderPreCall::Dispatch(manager, device, transitionCount, pTransitions); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkHostImageLayoutTransitionInfoEXT* pTransitions_unwrapped = UnwrapStructArrayHandles(pTransitions, transitionCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->TransitionImageLayoutEXT(device, transitionCount, pTransitions_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkTransitionImageLayoutEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkTransitionImageLayoutEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeUInt32Value(transitionCount); EncodeStructArray(encoder, pTransitions, transitionCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, transitionCount, pTransitions); + CustomEncoderPostCall::Dispatch(manager, result, device, transitionCount, pTransitions); return result; } @@ -18458,7 +19414,9 @@ VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT( const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18470,28 +19428,30 @@ VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, image, pSubresource, pLayout); + CustomEncoderPreCall::Dispatch(manager, device, image, pSubresource, pLayout); GetDeviceTable(device)->GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSubresourceLayout2EXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetImageSubresourceLayout2EXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(image); EncodeStructPtr(encoder, pSubresource); EncodeStructPtr(encoder, pLayout); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, image, pSubresource, pLayout); + CustomEncoderPostCall::Dispatch(manager, device, image, pSubresource, pLayout); } VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesEXT( VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18503,23 +19463,23 @@ VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pReleaseInfo); + CustomEncoderPreCall::Dispatch(manager, device, pReleaseInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo_unwrapped = UnwrapStructPtrHandles(pReleaseInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->ReleaseSwapchainImagesEXT(device, pReleaseInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkReleaseSwapchainImagesEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkReleaseSwapchainImagesEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pReleaseInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pReleaseInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pReleaseInfo); return result; } @@ -18529,7 +19489,9 @@ VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsNV( const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18541,30 +19503,32 @@ VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pInfo, pMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(device)->GetGeneratedCommandsMemoryRequirementsNV(device, pInfo_unwrapped, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetGeneratedCommandsMemoryRequirementsNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetGeneratedCommandsMemoryRequirementsNV); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pInfo, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18576,22 +19540,22 @@ VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pGeneratedCommandsInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pGeneratedCommandsInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPreprocessGeneratedCommandsNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdPreprocessGeneratedCommandsNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pGeneratedCommandsInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdPreprocessGeneratedCommandsNVHandles, pGeneratedCommandsInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdPreprocessGeneratedCommandsNVHandles, pGeneratedCommandsInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo_unwrapped = UnwrapStructPtrHandles(pGeneratedCommandsInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pGeneratedCommandsInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pGeneratedCommandsInfo); } VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsNV( @@ -18599,7 +19563,9 @@ VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsNV( VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18611,23 +19577,23 @@ VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, isPreprocessed, pGeneratedCommandsInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, isPreprocessed, pGeneratedCommandsInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdExecuteGeneratedCommandsNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdExecuteGeneratedCommandsNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(isPreprocessed); EncodeStructPtr(encoder, pGeneratedCommandsInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdExecuteGeneratedCommandsNVHandles, pGeneratedCommandsInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdExecuteGeneratedCommandsNVHandles, pGeneratedCommandsInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo_unwrapped = UnwrapStructPtrHandles(pGeneratedCommandsInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, isPreprocessed, pGeneratedCommandsInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, isPreprocessed, pGeneratedCommandsInfo); } VKAPI_ATTR void VKAPI_CALL CmdBindPipelineShaderGroupNV( @@ -18636,7 +19602,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindPipelineShaderGroupNV( VkPipeline pipeline, uint32_t groupIndex) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18648,21 +19616,21 @@ VKAPI_ATTR void VKAPI_CALL CmdBindPipelineShaderGroupNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineBindPoint, pipeline, groupIndex); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pipelineBindPoint, pipeline, groupIndex); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindPipelineShaderGroupNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindPipelineShaderGroupNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(pipelineBindPoint); encoder->EncodeHandleValue(pipeline); encoder->EncodeUInt32Value(groupIndex); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindPipelineShaderGroupNVHandles, pipeline); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindPipelineShaderGroupNVHandles, pipeline); } GetDeviceTable(commandBuffer)->CmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineBindPoint, pipeline, groupIndex); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pipelineBindPoint, pipeline, groupIndex); } VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV( @@ -18671,7 +19639,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV( const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18685,9 +19655,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pIndirectCommandsLayout); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pIndirectCommandsLayout); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateIndirectCommandsLayoutNV(device, pCreateInfo_unwrapped, pAllocator, pIndirectCommandsLayout); @@ -18701,7 +19671,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateIndirectCommandsLayoutNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateIndirectCommandsLayoutNV); if (encoder) { encoder->EncodeHandleValue(device); @@ -18709,10 +19679,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pIndirectCommandsLayout, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pIndirectCommandsLayout, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pIndirectCommandsLayout, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pIndirectCommandsLayout); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pIndirectCommandsLayout); return result; } @@ -18722,7 +19692,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18734,20 +19706,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, indirectCommandsLayout, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, indirectCommandsLayout, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyIndirectCommandsLayoutNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyIndirectCommandsLayoutNV); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(indirectCommandsLayout); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(indirectCommandsLayout); + manager->EndDestroyApiCallCapture(indirectCommandsLayout); } GetDeviceTable(device)->DestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, indirectCommandsLayout, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, indirectCommandsLayout, pAllocator); DestroyWrappedHandle(indirectCommandsLayout); } @@ -18756,7 +19728,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias2EXT( VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT* pDepthBiasInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18768,19 +19742,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias2EXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pDepthBiasInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pDepthBiasInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBias2EXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBias2EXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pDepthBiasInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthBias2EXT(commandBuffer, pDepthBiasInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pDepthBiasInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pDepthBiasInfo); } VKAPI_ATTR VkResult VKAPI_CALL AcquireDrmDisplayEXT( @@ -18788,7 +19762,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireDrmDisplayEXT( int32_t drmFd, VkDisplayKHR display) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18800,21 +19776,21 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireDrmDisplayEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, drmFd, display); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, drmFd, display); VkResult result = GetInstanceTable(physicalDevice)->AcquireDrmDisplayEXT(physicalDevice, drmFd, display); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireDrmDisplayEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireDrmDisplayEXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeInt32Value(drmFd); encoder->EncodeHandleValue(display); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, drmFd, display); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, drmFd, display); return result; } @@ -18825,7 +19801,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDrmDisplayEXT( uint32_t connectorId, VkDisplayKHR* display) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18839,7 +19817,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDrmDisplayEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, drmFd, connectorId, display); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, drmFd, connectorId, display); VkResult result = GetInstanceTable(physicalDevice)->GetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display); @@ -18852,7 +19830,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDrmDisplayEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDrmDisplayEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetDrmDisplayEXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -18860,10 +19838,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDrmDisplayEXT( encoder->EncodeUInt32Value(connectorId); encoder->EncodeHandlePtr(display, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, physicalDevice, display, nullptr); + manager->EndCreateApiCallCapture(result, physicalDevice, display, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, drmFd, connectorId, display); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, drmFd, connectorId, display); return result; } @@ -18874,7 +19852,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlotEXT( const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18888,7 +19868,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlotEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pPrivateDataSlot); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pPrivateDataSlot); VkResult result = GetDeviceTable(device)->CreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot); @@ -18901,7 +19881,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlotEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreatePrivateDataSlotEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreatePrivateDataSlotEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -18909,10 +19889,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlotEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pPrivateDataSlot, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pPrivateDataSlot, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pPrivateDataSlot, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pPrivateDataSlot); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pPrivateDataSlot); return result; } @@ -18922,7 +19902,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyPrivateDataSlotEXT( VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18934,20 +19916,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyPrivateDataSlotEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, privateDataSlot, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, privateDataSlot, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyPrivateDataSlotEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyPrivateDataSlotEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(privateDataSlot); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(privateDataSlot); + manager->EndDestroyApiCallCapture(privateDataSlot); } GetDeviceTable(device)->DestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, privateDataSlot, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, privateDataSlot, pAllocator); DestroyWrappedHandle(privateDataSlot); } @@ -18959,7 +19941,9 @@ VKAPI_ATTR VkResult VKAPI_CALL SetPrivateDataEXT( VkPrivateDataSlot privateDataSlot, uint64_t data) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -18971,11 +19955,11 @@ VKAPI_ATTR VkResult VKAPI_CALL SetPrivateDataEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, objectType, objectHandle, privateDataSlot, data); + CustomEncoderPreCall::Dispatch(manager, device, objectType, objectHandle, privateDataSlot, data); VkResult result = GetDeviceTable(device)->SetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetPrivateDataEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetPrivateDataEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -18984,10 +19968,10 @@ VKAPI_ATTR VkResult VKAPI_CALL SetPrivateDataEXT( encoder->EncodeHandleValue(privateDataSlot); encoder->EncodeUInt64Value(data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, objectType, objectHandle, privateDataSlot, data); + CustomEncoderPostCall::Dispatch(manager, result, device, objectType, objectHandle, privateDataSlot, data); return result; } @@ -18999,7 +19983,9 @@ VKAPI_ATTR void VKAPI_CALL GetPrivateDataEXT( VkPrivateDataSlot privateDataSlot, uint64_t* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19011,11 +19997,11 @@ VKAPI_ATTR void VKAPI_CALL GetPrivateDataEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, objectType, objectHandle, privateDataSlot, pData); + CustomEncoderPreCall::Dispatch(manager, device, objectType, objectHandle, privateDataSlot, pData); GetDeviceTable(device)->GetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPrivateDataEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPrivateDataEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -19023,10 +20009,10 @@ VKAPI_ATTR void VKAPI_CALL GetPrivateDataEXT( encoder->EncodeUInt64Value(GetWrappedId(objectHandle, objectType)); encoder->EncodeHandleValue(privateDataSlot); encoder->EncodeUInt64Ptr(pData); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, objectType, objectHandle, privateDataSlot, pData); + CustomEncoderPostCall::Dispatch(manager, device, objectType, objectHandle, privateDataSlot, pData); } VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV( @@ -19034,7 +20020,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV( VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19046,20 +20034,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, shadingRate, combinerOps); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, shadingRate, combinerOps); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetFragmentShadingRateEnumNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetFragmentShadingRateEnumNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(shadingRate); encoder->EncodeEnumArray(combinerOps, 2); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, shadingRate, combinerOps); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, shadingRate, combinerOps); } VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT( @@ -19067,7 +20055,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT( VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19081,7 +20071,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pFaultCounts, pFaultInfo); + CustomEncoderPreCall::Dispatch(manager, device, pFaultCounts, pFaultInfo); VkResult result = GetDeviceTable(device)->GetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo); if (result < 0) @@ -19089,17 +20079,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceFaultInfoEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceFaultInfoEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pFaultCounts, omit_output_data); EncodeStructPtr(encoder, pFaultInfo, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pFaultCounts, pFaultInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pFaultCounts, pFaultInfo); return result; } @@ -19108,7 +20098,9 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireWinrtDisplayNV( VkPhysicalDevice physicalDevice, VkDisplayKHR display) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19120,20 +20112,20 @@ VKAPI_ATTR VkResult VKAPI_CALL AcquireWinrtDisplayNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, display); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, display); VkResult result = GetInstanceTable(physicalDevice)->AcquireWinrtDisplayNV(physicalDevice, display); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireWinrtDisplayNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkAcquireWinrtDisplayNV); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeHandleValue(display); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, display); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, display); return result; } @@ -19143,7 +20135,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetWinrtDisplayNV( uint32_t deviceRelativeId, VkDisplayKHR* pDisplay) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19157,7 +20151,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetWinrtDisplayNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, deviceRelativeId, pDisplay); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, deviceRelativeId, pDisplay); VkResult result = GetInstanceTable(physicalDevice)->GetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay); @@ -19170,17 +20164,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetWinrtDisplayNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetWinrtDisplayNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkGetWinrtDisplayNV); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Value(deviceRelativeId); encoder->EncodeHandlePtr(pDisplay, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, physicalDevice, pDisplay, nullptr); + manager->EndCreateApiCallCapture(result, physicalDevice, pDisplay, nullptr); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, deviceRelativeId, pDisplay); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, deviceRelativeId, pDisplay); return result; } @@ -19191,7 +20185,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDirectFBSurfaceEXT( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19205,7 +20201,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDirectFBSurfaceEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateDirectFBSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface); @@ -19218,7 +20214,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDirectFBSurfaceEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDirectFBSurfaceEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateDirectFBSurfaceEXT); if (encoder) { encoder->EncodeHandleValue(instance); @@ -19226,10 +20222,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDirectFBSurfaceEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -19239,7 +20235,9 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19251,21 +20249,21 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceDirectFBPresentationSupportEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, queueFamilyIndex, dfb); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, queueFamilyIndex, dfb); VkBool32 result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceDirectFBPresentationSupportEXT(physicalDevice, queueFamilyIndex, dfb); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceDirectFBPresentationSupportEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceDirectFBPresentationSupportEXT); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Value(queueFamilyIndex); encoder->EncodeVoidPtr(dfb); encoder->EncodeVkBool32Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, queueFamilyIndex, dfb); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, queueFamilyIndex, dfb); return result; } @@ -19277,7 +20275,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetVertexInputEXT( uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19289,9 +20289,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetVertexInputEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetVertexInputEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetVertexInputEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -19299,12 +20299,12 @@ VKAPI_ATTR void VKAPI_CALL CmdSetVertexInputEXT( EncodeStructArray(encoder, pVertexBindingDescriptions, vertexBindingDescriptionCount); encoder->EncodeUInt32Value(vertexAttributeDescriptionCount); EncodeStructArray(encoder, pVertexAttributeDescriptions, vertexAttributeDescriptionCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions); } VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandleFUCHSIA( @@ -19312,7 +20312,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandleFUCHSIA( const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19326,9 +20328,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandleFUCHSIA( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pGetZirconHandleInfo, pZirconHandle); + CustomEncoderPreCall::Dispatch(manager, device, pGetZirconHandleInfo, pZirconHandle); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo_unwrapped = UnwrapStructPtrHandles(pGetZirconHandleInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo_unwrapped, pZirconHandle); @@ -19337,17 +20339,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandleFUCHSIA( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryZirconHandleFUCHSIA); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryZirconHandleFUCHSIA); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pGetZirconHandleInfo); encoder->EncodeUInt32Ptr(pZirconHandle, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pGetZirconHandleInfo, pZirconHandle); + CustomEncoderPostCall::Dispatch(manager, result, device, pGetZirconHandleInfo, pZirconHandle); return result; } @@ -19358,7 +20360,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandlePropertiesFUCHSIA( zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19372,7 +20376,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandlePropertiesFUCHSIA( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, handleType, zirconHandle, pMemoryZirconHandleProperties); + CustomEncoderPreCall::Dispatch(manager, device, handleType, zirconHandle, pMemoryZirconHandleProperties); VkResult result = GetDeviceTable(device)->GetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties); if (result < 0) @@ -19380,7 +20384,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandlePropertiesFUCHSIA( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryZirconHandlePropertiesFUCHSIA); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryZirconHandlePropertiesFUCHSIA); if (encoder) { encoder->EncodeHandleValue(device); @@ -19388,10 +20392,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandlePropertiesFUCHSIA( encoder->EncodeUInt32Value(zirconHandle); EncodeStructPtr(encoder, pMemoryZirconHandleProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, handleType, zirconHandle, pMemoryZirconHandleProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, handleType, zirconHandle, pMemoryZirconHandleProperties); return result; } @@ -19400,7 +20404,9 @@ VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreZirconHandleFUCHSIA( VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19412,23 +20418,23 @@ VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreZirconHandleFUCHSIA( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pImportSemaphoreZirconHandleInfo); + CustomEncoderPreCall::Dispatch(manager, device, pImportSemaphoreZirconHandleInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo_unwrapped = UnwrapStructPtrHandles(pImportSemaphoreZirconHandleInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->ImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkImportSemaphoreZirconHandleFUCHSIA); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkImportSemaphoreZirconHandleFUCHSIA); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pImportSemaphoreZirconHandleInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pImportSemaphoreZirconHandleInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pImportSemaphoreZirconHandleInfo); return result; } @@ -19438,7 +20444,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreZirconHandleFUCHSIA( const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19452,9 +20460,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreZirconHandleFUCHSIA( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pGetZirconHandleInfo, pZirconHandle); + CustomEncoderPreCall::Dispatch(manager, device, pGetZirconHandleInfo, pZirconHandle); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo_unwrapped = UnwrapStructPtrHandles(pGetZirconHandleInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo_unwrapped, pZirconHandle); @@ -19463,17 +20471,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreZirconHandleFUCHSIA( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSemaphoreZirconHandleFUCHSIA); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetSemaphoreZirconHandleFUCHSIA); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pGetZirconHandleInfo); encoder->EncodeUInt32Ptr(pZirconHandle, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pGetZirconHandleInfo, pZirconHandle); + CustomEncoderPostCall::Dispatch(manager, result, device, pGetZirconHandleInfo, pZirconHandle); return result; } @@ -19483,7 +20491,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindInvocationMaskHUAWEI( VkImageView imageView, VkImageLayout imageLayout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19495,20 +20505,20 @@ VKAPI_ATTR void VKAPI_CALL CmdBindInvocationMaskHUAWEI( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, imageView, imageLayout); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, imageView, imageLayout); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindInvocationMaskHUAWEI); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindInvocationMaskHUAWEI); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(imageView); encoder->EncodeEnumValue(imageLayout); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindInvocationMaskHUAWEIHandles, imageView); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindInvocationMaskHUAWEIHandles, imageView); } GetDeviceTable(commandBuffer)->CmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, imageView, imageLayout); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, imageView, imageLayout); } VKAPI_ATTR VkResult VKAPI_CALL GetMemoryRemoteAddressNV( @@ -19516,7 +20526,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryRemoteAddressNV( const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19530,9 +20542,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryRemoteAddressNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pMemoryGetRemoteAddressInfo, pAddress); + CustomEncoderPreCall::Dispatch(manager, device, pMemoryGetRemoteAddressInfo, pAddress); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo_unwrapped = UnwrapStructPtrHandles(pMemoryGetRemoteAddressInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo_unwrapped, pAddress); @@ -19541,17 +20553,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryRemoteAddressNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryRemoteAddressNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMemoryRemoteAddressNV); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pMemoryGetRemoteAddressInfo); encoder->EncodeVoidPtrPtr(pAddress, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pMemoryGetRemoteAddressInfo, pAddress); + CustomEncoderPostCall::Dispatch(manager, result, device, pMemoryGetRemoteAddressInfo, pAddress); return result; } @@ -19560,7 +20572,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetPatchControlPointsEXT( VkCommandBuffer commandBuffer, uint32_t patchControlPoints) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19572,26 +20586,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetPatchControlPointsEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, patchControlPoints); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, patchControlPoints); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPatchControlPointsEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPatchControlPointsEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(patchControlPoints); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, patchControlPoints); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, patchControlPoints); } VKAPI_ATTR void VKAPI_CALL CmdSetRasterizerDiscardEnableEXT( VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19603,26 +20619,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetRasterizerDiscardEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, rasterizerDiscardEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, rasterizerDiscardEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRasterizerDiscardEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRasterizerDiscardEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(rasterizerDiscardEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, rasterizerDiscardEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, rasterizerDiscardEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthBiasEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19634,26 +20652,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthBiasEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthBiasEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthBiasEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBiasEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthBiasEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(depthBiasEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthBiasEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthBiasEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEXT( VkCommandBuffer commandBuffer, VkLogicOp logicOp) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19665,26 +20685,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, logicOp); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, logicOp); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLogicOpEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLogicOpEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(logicOp); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetLogicOpEXT(commandBuffer, logicOp); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, logicOp); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, logicOp); } VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveRestartEnableEXT( VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19696,19 +20718,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveRestartEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, primitiveRestartEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, primitiveRestartEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPrimitiveRestartEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPrimitiveRestartEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(primitiveRestartEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, primitiveRestartEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, primitiveRestartEnable); } VKAPI_ATTR VkResult VKAPI_CALL CreateScreenSurfaceQNX( @@ -19717,7 +20739,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateScreenSurfaceQNX( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19731,7 +20755,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateScreenSurfaceQNX( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPreCall::Dispatch(manager, instance, pCreateInfo, pAllocator, pSurface); VkResult result = GetInstanceTable(instance)->CreateScreenSurfaceQNX(instance, pCreateInfo, pAllocator, pSurface); @@ -19744,7 +20768,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateScreenSurfaceQNX( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateScreenSurfaceQNX); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateScreenSurfaceQNX); if (encoder) { encoder->EncodeHandleValue(instance); @@ -19752,10 +20776,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateScreenSurfaceQNX( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSurface, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); + manager->EndCreateApiCallCapture(result, instance, pSurface, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, instance, pCreateInfo, pAllocator, pSurface); + CustomEncoderPostCall::Dispatch(manager, result, instance, pCreateInfo, pAllocator, pSurface); return result; } @@ -19765,7 +20789,9 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window* window) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19777,21 +20803,21 @@ VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceScreenPresentationSupportQNX( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, queueFamilyIndex, window); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, queueFamilyIndex, window); VkBool32 result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceScreenPresentationSupportQNX(physicalDevice, queueFamilyIndex, window); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceScreenPresentationSupportQNX); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceScreenPresentationSupportQNX); if (encoder) { encoder->EncodeHandleValue(physicalDevice); encoder->EncodeUInt32Value(queueFamilyIndex); encoder->EncodeVoidPtr(window); encoder->EncodeVkBool32Value(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, queueFamilyIndex, window); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, queueFamilyIndex, window); return result; } @@ -19801,7 +20827,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteEn uint32_t attachmentCount, const VkBool32* pColorWriteEnables) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19813,20 +20841,20 @@ VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteEn shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, attachmentCount, pColorWriteEnables); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, attachmentCount, pColorWriteEnables); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetColorWriteEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetColorWriteEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(attachmentCount); encoder->EncodeVkBool32Array(pColorWriteEnables, attachmentCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, attachmentCount, pColorWriteEnables); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, attachmentCount, pColorWriteEnables); } VKAPI_ATTR void VKAPI_CALL CmdDrawMultiEXT( @@ -19837,7 +20865,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMultiEXT( uint32_t firstInstance, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19849,9 +20879,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMultiEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMultiEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMultiEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -19860,12 +20890,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMultiEXT( encoder->EncodeUInt32Value(instanceCount); encoder->EncodeUInt32Value(firstInstance); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride); } VKAPI_ATTR void VKAPI_CALL CmdDrawMultiIndexedEXT( @@ -19877,7 +20907,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMultiIndexedEXT( uint32_t stride, const int32_t* pVertexOffset) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19889,9 +20921,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMultiIndexedEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMultiIndexedEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMultiIndexedEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -19901,12 +20933,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMultiIndexedEXT( encoder->EncodeUInt32Value(firstInstance); encoder->EncodeUInt32Value(stride); encoder->EncodeInt32Ptr(pVertexOffset); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset); } VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT( @@ -19915,7 +20947,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT( const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19929,9 +20963,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pMicromap); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pMicromap); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMicromapCreateInfoEXT* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateMicromapEXT(device, pCreateInfo_unwrapped, pAllocator, pMicromap); @@ -19945,7 +20979,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateMicromapEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateMicromapEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -19953,10 +20987,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pMicromap, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pMicromap, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pMicromap, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pMicromap); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pMicromap); return result; } @@ -19966,7 +21000,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyMicromapEXT( VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -19978,20 +21014,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyMicromapEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, micromap, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, micromap, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyMicromapEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyMicromapEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(micromap); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(micromap); + manager->EndDestroyApiCallCapture(micromap); } GetDeviceTable(device)->DestroyMicromapEXT(device, micromap, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, micromap, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, micromap, pAllocator); DestroyWrappedHandle(micromap); } @@ -20001,7 +21037,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBuildMicromapsEXT( uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20013,23 +21051,23 @@ VKAPI_ATTR void VKAPI_CALL CmdBuildMicromapsEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, infoCount, pInfos); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, infoCount, pInfos); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBuildMicromapsEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBuildMicromapsEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(infoCount); EncodeStructArray(encoder, pInfos, infoCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBuildMicromapsEXTHandles, infoCount, pInfos); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBuildMicromapsEXTHandles, infoCount, pInfos); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMicromapBuildInfoEXT* pInfos_unwrapped = UnwrapStructArrayHandles(pInfos, infoCount, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, infoCount, pInfos); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, infoCount, pInfos); } VKAPI_ATTR VkResult VKAPI_CALL BuildMicromapsEXT( @@ -20038,7 +21076,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BuildMicromapsEXT( uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20050,14 +21090,14 @@ VKAPI_ATTR VkResult VKAPI_CALL BuildMicromapsEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, deferredOperation, infoCount, pInfos); + CustomEncoderPreCall::Dispatch(manager, device, deferredOperation, infoCount, pInfos); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMicromapBuildInfoEXT* pInfos_unwrapped = UnwrapStructArrayHandles(pInfos, infoCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->BuildMicromapsEXT(device, deferredOperation, infoCount, pInfos_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBuildMicromapsEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBuildMicromapsEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -20065,10 +21105,10 @@ VKAPI_ATTR VkResult VKAPI_CALL BuildMicromapsEXT( encoder->EncodeUInt32Value(infoCount); EncodeStructArray(encoder, pInfos, infoCount); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, deferredOperation, infoCount, pInfos); + CustomEncoderPostCall::Dispatch(manager, result, device, deferredOperation, infoCount, pInfos); return result; } @@ -20078,7 +21118,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapEXT( VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20090,24 +21132,24 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, deferredOperation, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, deferredOperation, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyMicromapInfoEXT* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CopyMicromapEXT(device, deferredOperation, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyMicromapEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyMicromapEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(deferredOperation); EncodeStructPtr(encoder, pInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, deferredOperation, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, deferredOperation, pInfo); return result; } @@ -20117,7 +21159,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapToMemoryEXT( VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20129,24 +21173,24 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapToMemoryEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, deferredOperation, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, deferredOperation, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyMicromapToMemoryInfoEXT* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CopyMicromapToMemoryEXT(device, deferredOperation, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyMicromapToMemoryEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyMicromapToMemoryEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(deferredOperation); EncodeStructPtr(encoder, pInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, deferredOperation, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, deferredOperation, pInfo); return result; } @@ -20156,7 +21200,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToMicromapEXT( VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20168,24 +21214,24 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToMicromapEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, deferredOperation, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, deferredOperation, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyMemoryToMicromapInfoEXT* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CopyMemoryToMicromapEXT(device, deferredOperation, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyMemoryToMicromapEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyMemoryToMicromapEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(deferredOperation); EncodeStructPtr(encoder, pInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, deferredOperation, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, deferredOperation, pInfo); return result; } @@ -20199,7 +21245,9 @@ VKAPI_ATTR VkResult VKAPI_CALL WriteMicromapsPropertiesEXT( void* pData, size_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20213,7 +21261,7 @@ VKAPI_ATTR VkResult VKAPI_CALL WriteMicromapsPropertiesEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, micromapCount, pMicromaps, queryType, dataSize, pData, stride); + CustomEncoderPreCall::Dispatch(manager, device, micromapCount, pMicromaps, queryType, dataSize, pData, stride); VkResult result = GetDeviceTable(device)->WriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride); if (result < 0) @@ -20221,7 +21269,7 @@ VKAPI_ATTR VkResult VKAPI_CALL WriteMicromapsPropertiesEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWriteMicromapsPropertiesEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWriteMicromapsPropertiesEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -20232,10 +21280,10 @@ VKAPI_ATTR VkResult VKAPI_CALL WriteMicromapsPropertiesEXT( encoder->EncodeVoidArray(pData, dataSize, omit_output_data); encoder->EncodeSizeTValue(stride); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, micromapCount, pMicromaps, queryType, dataSize, pData, stride); + CustomEncoderPostCall::Dispatch(manager, result, device, micromapCount, pMicromaps, queryType, dataSize, pData, stride); return result; } @@ -20244,7 +21292,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapEXT( VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20256,29 +21306,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyMicromapEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyMicromapEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyMicromapEXTHandles, pInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyMicromapEXTHandles, pInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyMicromapInfoEXT* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyMicromapEXT(commandBuffer, pInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pInfo); } VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapToMemoryEXT( VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20290,29 +21342,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapToMemoryEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyMicromapToMemoryEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyMicromapToMemoryEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyMicromapToMemoryEXTHandles, pInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyMicromapToMemoryEXTHandles, pInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyMicromapToMemoryInfoEXT* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyMicromapToMemoryEXT(commandBuffer, pInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pInfo); } VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToMicromapEXT( VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20324,22 +21378,22 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToMicromapEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyMemoryToMicromapEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyMemoryToMicromapEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyMemoryToMicromapEXTHandles, pInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyMemoryToMicromapEXTHandles, pInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyMemoryToMicromapInfoEXT* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyMemoryToMicromapEXT(commandBuffer, pInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pInfo); } VKAPI_ATTR void VKAPI_CALL CmdWriteMicromapsPropertiesEXT( @@ -20350,7 +21404,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteMicromapsPropertiesEXT( VkQueryPool queryPool, uint32_t firstQuery) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20362,9 +21418,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteMicromapsPropertiesEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteMicromapsPropertiesEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteMicromapsPropertiesEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -20373,12 +21429,12 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteMicromapsPropertiesEXT( encoder->EncodeEnumValue(queryType); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(firstQuery); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteMicromapsPropertiesEXTHandles, micromapCount, pMicromaps, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteMicromapsPropertiesEXTHandles, micromapCount, pMicromaps, queryPool); } GetDeviceTable(commandBuffer)->CmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery); } VKAPI_ATTR void VKAPI_CALL GetDeviceMicromapCompatibilityEXT( @@ -20386,7 +21442,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceMicromapCompatibilityEXT( const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20398,20 +21456,20 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceMicromapCompatibilityEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pVersionInfo, pCompatibility); + CustomEncoderPreCall::Dispatch(manager, device, pVersionInfo, pCompatibility); GetDeviceTable(device)->GetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceMicromapCompatibilityEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceMicromapCompatibilityEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pVersionInfo); encoder->EncodeEnumPtr(pCompatibility); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pVersionInfo, pCompatibility); + CustomEncoderPostCall::Dispatch(manager, device, pVersionInfo, pCompatibility); } VKAPI_ATTR void VKAPI_CALL GetMicromapBuildSizesEXT( @@ -20420,7 +21478,9 @@ VKAPI_ATTR void VKAPI_CALL GetMicromapBuildSizesEXT( const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20432,24 +21492,24 @@ VKAPI_ATTR void VKAPI_CALL GetMicromapBuildSizesEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, buildType, pBuildInfo, pSizeInfo); + CustomEncoderPreCall::Dispatch(manager, device, buildType, pBuildInfo, pSizeInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkMicromapBuildInfoEXT* pBuildInfo_unwrapped = UnwrapStructPtrHandles(pBuildInfo, handle_unwrap_memory); GetDeviceTable(device)->GetMicromapBuildSizesEXT(device, buildType, pBuildInfo_unwrapped, pSizeInfo); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMicromapBuildSizesEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetMicromapBuildSizesEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeEnumValue(buildType); EncodeStructPtr(encoder, pBuildInfo); EncodeStructPtr(encoder, pSizeInfo); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, buildType, pBuildInfo, pSizeInfo); + CustomEncoderPostCall::Dispatch(manager, device, buildType, pBuildInfo, pSizeInfo); } VKAPI_ATTR void VKAPI_CALL CmdDrawClusterHUAWEI( @@ -20458,7 +21518,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawClusterHUAWEI( uint32_t groupCountY, uint32_t groupCountZ) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20470,21 +21532,21 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawClusterHUAWEI( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, groupCountX, groupCountY, groupCountZ); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, groupCountX, groupCountY, groupCountZ); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawClusterHUAWEI); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawClusterHUAWEI); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(groupCountX); encoder->EncodeUInt32Value(groupCountY); encoder->EncodeUInt32Value(groupCountZ); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, groupCountX, groupCountY, groupCountZ); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, groupCountX, groupCountY, groupCountZ); } VKAPI_ATTR void VKAPI_CALL CmdDrawClusterIndirectHUAWEI( @@ -20492,7 +21554,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawClusterIndirectHUAWEI( VkBuffer buffer, VkDeviceSize offset) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20504,20 +21568,20 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawClusterIndirectHUAWEI( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawClusterIndirectHUAWEI); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawClusterIndirectHUAWEI); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(buffer); encoder->EncodeVkDeviceSizeValue(offset); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawClusterIndirectHUAWEIHandles, buffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawClusterIndirectHUAWEIHandles, buffer); } GetDeviceTable(commandBuffer)->CmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset); } VKAPI_ATTR void VKAPI_CALL SetDeviceMemoryPriorityEXT( @@ -20525,7 +21589,9 @@ VKAPI_ATTR void VKAPI_CALL SetDeviceMemoryPriorityEXT( VkDeviceMemory memory, float priority) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20537,20 +21603,20 @@ VKAPI_ATTR void VKAPI_CALL SetDeviceMemoryPriorityEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, memory, priority); + CustomEncoderPreCall::Dispatch(manager, device, memory, priority); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetDeviceMemoryPriorityEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkSetDeviceMemoryPriorityEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(memory); encoder->EncodeFloatValue(priority); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } GetDeviceTable(device)->SetDeviceMemoryPriorityEXT(device, memory, priority); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, memory, priority); + CustomEncoderPostCall::Dispatch(manager, device, memory, priority); } VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutHostMappingInfoVALVE( @@ -20558,7 +21624,9 @@ VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutHostMappingInfoVALVE( const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20570,23 +21638,23 @@ VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutHostMappingInfoVALVE( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pBindingReference, pHostMapping); + CustomEncoderPreCall::Dispatch(manager, device, pBindingReference, pHostMapping); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkDescriptorSetBindingReferenceVALVE* pBindingReference_unwrapped = UnwrapStructPtrHandles(pBindingReference, handle_unwrap_memory); GetDeviceTable(device)->GetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference_unwrapped, pHostMapping); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDescriptorSetLayoutHostMappingInfoVALVE); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDescriptorSetLayoutHostMappingInfoVALVE); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pBindingReference); EncodeStructPtr(encoder, pHostMapping); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pBindingReference, pHostMapping); + CustomEncoderPostCall::Dispatch(manager, device, pBindingReference, pHostMapping); } VKAPI_ATTR void VKAPI_CALL GetDescriptorSetHostMappingVALVE( @@ -20594,7 +21662,9 @@ VKAPI_ATTR void VKAPI_CALL GetDescriptorSetHostMappingVALVE( VkDescriptorSet descriptorSet, void** ppData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20606,20 +21676,20 @@ VKAPI_ATTR void VKAPI_CALL GetDescriptorSetHostMappingVALVE( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorSet, ppData); + CustomEncoderPreCall::Dispatch(manager, device, descriptorSet, ppData); GetDeviceTable(device)->GetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDescriptorSetHostMappingVALVE); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDescriptorSetHostMappingVALVE); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(descriptorSet); encoder->EncodeVoidPtrPtr(ppData); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, descriptorSet, ppData); + CustomEncoderPostCall::Dispatch(manager, device, descriptorSet, ppData); } VKAPI_ATTR void VKAPI_CALL GetPipelineIndirectMemoryRequirementsNV( @@ -20627,7 +21697,9 @@ VKAPI_ATTR void VKAPI_CALL GetPipelineIndirectMemoryRequirementsNV( const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20639,23 +21711,23 @@ VKAPI_ATTR void VKAPI_CALL GetPipelineIndirectMemoryRequirementsNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pMemoryRequirements); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pMemoryRequirements); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkComputePipelineCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); GetDeviceTable(device)->GetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo_unwrapped, pMemoryRequirements); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineIndirectMemoryRequirementsNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineIndirectMemoryRequirementsNV); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pCreateInfo); EncodeStructPtr(encoder, pMemoryRequirements); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pMemoryRequirements); + CustomEncoderPostCall::Dispatch(manager, device, pCreateInfo, pMemoryRequirements); } VKAPI_ATTR void VKAPI_CALL CmdUpdatePipelineIndirectBufferNV( @@ -20663,7 +21735,9 @@ VKAPI_ATTR void VKAPI_CALL CmdUpdatePipelineIndirectBufferNV( VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20675,27 +21749,29 @@ VKAPI_ATTR void VKAPI_CALL CmdUpdatePipelineIndirectBufferNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineBindPoint, pipeline); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pipelineBindPoint, pipeline); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdUpdatePipelineIndirectBufferNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdUpdatePipelineIndirectBufferNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(pipelineBindPoint); encoder->EncodeHandleValue(pipeline); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdUpdatePipelineIndirectBufferNVHandles, pipeline); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdUpdatePipelineIndirectBufferNVHandles, pipeline); } GetDeviceTable(commandBuffer)->CmdUpdatePipelineIndirectBufferNV(commandBuffer, pipelineBindPoint, pipeline); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineBindPoint, pipeline); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pipelineBindPoint, pipeline); } VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetPipelineIndirectDeviceAddressNV( VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20707,23 +21783,23 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetPipelineIndirectDeviceAddressNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkPipelineIndirectDeviceAddressInfoNV* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkDeviceAddress result = GetDeviceTable(device)->GetPipelineIndirectDeviceAddressNV(device, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineIndirectDeviceAddressNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPipelineIndirectDeviceAddressNV); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeVkDeviceAddressValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -20732,7 +21808,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetTessellationDomainOriginEXT( VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20744,26 +21822,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetTessellationDomainOriginEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, domainOrigin); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, domainOrigin); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetTessellationDomainOriginEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetTessellationDomainOriginEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(domainOrigin); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, domainOrigin); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, domainOrigin); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthClampEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20775,26 +21855,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthClampEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthClampEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthClampEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthClampEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(depthClampEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthClampEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthClampEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetPolygonModeEXT( VkCommandBuffer commandBuffer, VkPolygonMode polygonMode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20806,26 +21888,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetPolygonModeEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, polygonMode); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, polygonMode); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPolygonModeEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetPolygonModeEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(polygonMode); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetPolygonModeEXT(commandBuffer, polygonMode); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, polygonMode); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, polygonMode); } VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationSamplesEXT( VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20837,19 +21921,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationSamplesEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, rasterizationSamples); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, rasterizationSamples); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRasterizationSamplesEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRasterizationSamplesEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(rasterizationSamples); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, rasterizationSamples); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, rasterizationSamples); } VKAPI_ATTR void VKAPI_CALL CmdSetSampleMaskEXT( @@ -20857,7 +21941,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetSampleMaskEXT( VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20869,27 +21955,29 @@ VKAPI_ATTR void VKAPI_CALL CmdSetSampleMaskEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, samples, pSampleMask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, samples, pSampleMask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetSampleMaskEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetSampleMaskEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(samples); encoder->EncodeVkSampleMaskArray(pSampleMask, (samples + 31) / 32); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, samples, pSampleMask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, samples, pSampleMask); } VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToCoverageEnableEXT( VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20901,26 +21989,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToCoverageEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, alphaToCoverageEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, alphaToCoverageEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetAlphaToCoverageEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetAlphaToCoverageEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(alphaToCoverageEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, alphaToCoverageEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, alphaToCoverageEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToOneEnableEXT( VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20932,26 +22022,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToOneEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, alphaToOneEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, alphaToOneEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetAlphaToOneEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetAlphaToOneEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(alphaToOneEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, alphaToOneEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, alphaToOneEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEnableEXT( VkCommandBuffer commandBuffer, VkBool32 logicOpEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20963,19 +22055,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, logicOpEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, logicOpEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLogicOpEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLogicOpEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(logicOpEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, logicOpEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, logicOpEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEnableEXT( @@ -20984,7 +22076,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEnableEXT( uint32_t attachmentCount, const VkBool32* pColorBlendEnables) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -20996,21 +22090,21 @@ VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetColorBlendEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetColorBlendEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstAttachment); encoder->EncodeUInt32Value(attachmentCount); encoder->EncodeVkBool32Array(pColorBlendEnables, attachmentCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables); } VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEquationEXT( @@ -21019,7 +22113,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEquationEXT( uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21031,21 +22127,21 @@ VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEquationEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetColorBlendEquationEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetColorBlendEquationEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstAttachment); encoder->EncodeUInt32Value(attachmentCount); EncodeStructArray(encoder, pColorBlendEquations, attachmentCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations); } VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteMaskEXT( @@ -21054,7 +22150,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteMaskEXT( uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21066,28 +22164,30 @@ VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteMaskEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetColorWriteMaskEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetColorWriteMaskEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstAttachment); encoder->EncodeUInt32Value(attachmentCount); encoder->EncodeFlagsArray(pColorWriteMasks, attachmentCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks); } VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationStreamEXT( VkCommandBuffer commandBuffer, uint32_t rasterizationStream) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21099,26 +22199,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationStreamEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, rasterizationStream); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, rasterizationStream); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRasterizationStreamEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRasterizationStreamEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(rasterizationStream); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, rasterizationStream); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, rasterizationStream); } VKAPI_ATTR void VKAPI_CALL CmdSetConservativeRasterizationModeEXT( VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21130,26 +22232,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetConservativeRasterizationModeEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, conservativeRasterizationMode); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, conservativeRasterizationMode); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetConservativeRasterizationModeEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetConservativeRasterizationModeEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(conservativeRasterizationMode); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, conservativeRasterizationMode); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, conservativeRasterizationMode); } VKAPI_ATTR void VKAPI_CALL CmdSetExtraPrimitiveOverestimationSizeEXT( VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21161,26 +22265,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetExtraPrimitiveOverestimationSizeEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, extraPrimitiveOverestimationSize); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, extraPrimitiveOverestimationSize); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetExtraPrimitiveOverestimationSizeEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetExtraPrimitiveOverestimationSizeEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFloatValue(extraPrimitiveOverestimationSize); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, extraPrimitiveOverestimationSize); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, extraPrimitiveOverestimationSize); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthClipEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21192,26 +22298,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthClipEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, depthClipEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthClipEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthClipEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(depthClipEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, depthClipEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, depthClipEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEnableEXT( VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21223,19 +22331,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, sampleLocationsEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, sampleLocationsEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetSampleLocationsEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetSampleLocationsEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(sampleLocationsEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, sampleLocationsEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, sampleLocationsEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendAdvancedEXT( @@ -21244,7 +22352,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendAdvancedEXT( uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21256,28 +22366,30 @@ VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendAdvancedEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetColorBlendAdvancedEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetColorBlendAdvancedEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstAttachment); encoder->EncodeUInt32Value(attachmentCount); EncodeStructArray(encoder, pColorBlendAdvanced, attachmentCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced); } VKAPI_ATTR void VKAPI_CALL CmdSetProvokingVertexModeEXT( VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21289,26 +22401,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetProvokingVertexModeEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, provokingVertexMode); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, provokingVertexMode); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetProvokingVertexModeEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetProvokingVertexModeEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(provokingVertexMode); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, provokingVertexMode); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, provokingVertexMode); } VKAPI_ATTR void VKAPI_CALL CmdSetLineRasterizationModeEXT( VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21320,26 +22434,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetLineRasterizationModeEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, lineRasterizationMode); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, lineRasterizationMode); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLineRasterizationModeEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLineRasterizationModeEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(lineRasterizationMode); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, lineRasterizationMode); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, lineRasterizationMode); } VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21351,26 +22467,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stippledLineEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, stippledLineEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLineStippleEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetLineStippleEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(stippledLineEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stippledLineEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, stippledLineEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipNegativeOneToOneEXT( VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21382,26 +22500,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipNegativeOneToOneEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, negativeOneToOne); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, negativeOneToOne); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthClipNegativeOneToOneEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetDepthClipNegativeOneToOneEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(negativeOneToOne); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, negativeOneToOne); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, negativeOneToOne); } VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingEnableNV( VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21413,19 +22533,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingEnableNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, viewportWScalingEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, viewportWScalingEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportWScalingEnableNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportWScalingEnableNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(viewportWScalingEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, viewportWScalingEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, viewportWScalingEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetViewportSwizzleNV( @@ -21434,7 +22554,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportSwizzleNV( uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21446,28 +22568,30 @@ VKAPI_ATTR void VKAPI_CALL CmdSetViewportSwizzleNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstViewport, viewportCount, pViewportSwizzles); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, firstViewport, viewportCount, pViewportSwizzles); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportSwizzleNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetViewportSwizzleNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(firstViewport); encoder->EncodeUInt32Value(viewportCount); EncodeStructArray(encoder, pViewportSwizzles, viewportCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, firstViewport, viewportCount, pViewportSwizzles); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, firstViewport, viewportCount, pViewportSwizzles); } VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorEnableNV( VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21479,26 +22603,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorEnableNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageToColorEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, coverageToColorEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageToColorEnableNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageToColorEnableNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(coverageToColorEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageToColorEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, coverageToColorEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorLocationNV( VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21510,26 +22636,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorLocationNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageToColorLocation); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, coverageToColorLocation); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageToColorLocationNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageToColorLocationNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(coverageToColorLocation); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageToColorLocation); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, coverageToColorLocation); } VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationModeNV( VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21541,26 +22669,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationModeNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageModulationMode); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, coverageModulationMode); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageModulationModeNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageModulationModeNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(coverageModulationMode); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageModulationMode); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, coverageModulationMode); } VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableEnableNV( VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21572,19 +22702,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableEnableNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageModulationTableEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, coverageModulationTableEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageModulationTableEnableNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageModulationTableEnableNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(coverageModulationTableEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageModulationTableEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, coverageModulationTableEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableNV( @@ -21592,7 +22722,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableNV( uint32_t coverageModulationTableCount, const float* pCoverageModulationTable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21604,27 +22736,29 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageModulationTableCount, pCoverageModulationTable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, coverageModulationTableCount, pCoverageModulationTable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageModulationTableNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageModulationTableNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(coverageModulationTableCount); encoder->EncodeFloatArray(pCoverageModulationTable, coverageModulationTableCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageModulationTableCount, pCoverageModulationTable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, coverageModulationTableCount, pCoverageModulationTable); } VKAPI_ATTR void VKAPI_CALL CmdSetShadingRateImageEnableNV( VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21636,26 +22770,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetShadingRateImageEnableNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, shadingRateImageEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, shadingRateImageEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetShadingRateImageEnableNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetShadingRateImageEnableNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(shadingRateImageEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, shadingRateImageEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, shadingRateImageEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetRepresentativeFragmentTestEnableNV( VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21667,26 +22803,28 @@ VKAPI_ATTR void VKAPI_CALL CmdSetRepresentativeFragmentTestEnableNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, representativeFragmentTestEnable); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, representativeFragmentTestEnable); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRepresentativeFragmentTestEnableNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRepresentativeFragmentTestEnableNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeVkBool32Value(representativeFragmentTestEnable); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, representativeFragmentTestEnable); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, representativeFragmentTestEnable); } VKAPI_ATTR void VKAPI_CALL CmdSetCoverageReductionModeNV( VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21698,19 +22836,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCoverageReductionModeNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageReductionMode); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, coverageReductionMode); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageReductionModeNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetCoverageReductionModeNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeEnumValue(coverageReductionMode); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, coverageReductionMode); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, coverageReductionMode); } VKAPI_ATTR void VKAPI_CALL GetShaderModuleIdentifierEXT( @@ -21718,7 +22856,9 @@ VKAPI_ATTR void VKAPI_CALL GetShaderModuleIdentifierEXT( VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21730,20 +22870,20 @@ VKAPI_ATTR void VKAPI_CALL GetShaderModuleIdentifierEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, shaderModule, pIdentifier); + CustomEncoderPreCall::Dispatch(manager, device, shaderModule, pIdentifier); GetDeviceTable(device)->GetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetShaderModuleIdentifierEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetShaderModuleIdentifierEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(shaderModule); EncodeStructPtr(encoder, pIdentifier); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, shaderModule, pIdentifier); + CustomEncoderPostCall::Dispatch(manager, device, shaderModule, pIdentifier); } VKAPI_ATTR void VKAPI_CALL GetShaderModuleCreateInfoIdentifierEXT( @@ -21751,7 +22891,9 @@ VKAPI_ATTR void VKAPI_CALL GetShaderModuleCreateInfoIdentifierEXT( const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21763,23 +22905,23 @@ VKAPI_ATTR void VKAPI_CALL GetShaderModuleCreateInfoIdentifierEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pIdentifier); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pIdentifier); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkShaderModuleCreateInfo* pCreateInfo_unwrapped = UnwrapStructPtrHandles(pCreateInfo, handle_unwrap_memory); GetDeviceTable(device)->GetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo_unwrapped, pIdentifier); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetShaderModuleCreateInfoIdentifierEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetShaderModuleCreateInfoIdentifierEXT); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pCreateInfo); EncodeStructPtr(encoder, pIdentifier); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pIdentifier); + CustomEncoderPostCall::Dispatch(manager, device, pCreateInfo, pIdentifier); } VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV( @@ -21788,7 +22930,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV( uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21802,7 +22946,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties); + CustomEncoderPreCall::Dispatch(manager, physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties); VkResult result = GetInstanceTable(physicalDevice)->GetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties); if (result < 0) @@ -21810,7 +22954,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceOpticalFlowImageFormatsNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetPhysicalDeviceOpticalFlowImageFormatsNV); if (encoder) { encoder->EncodeHandleValue(physicalDevice); @@ -21818,10 +22962,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV( encoder->EncodeUInt32Ptr(pFormatCount, omit_output_data); EncodeStructArray(encoder, pImageFormatProperties, (pFormatCount != nullptr) ? (*pFormatCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties); + CustomEncoderPostCall::Dispatch(manager, result, physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties); return result; } @@ -21832,7 +22976,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateOpticalFlowSessionNV( const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21846,7 +22992,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateOpticalFlowSessionNV( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pSession); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pSession); VkResult result = GetDeviceTable(device)->CreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession); @@ -21859,7 +23005,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateOpticalFlowSessionNV( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateOpticalFlowSessionNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateOpticalFlowSessionNV); if (encoder) { encoder->EncodeHandleValue(device); @@ -21867,10 +23013,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateOpticalFlowSessionNV( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pSession, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pSession, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pSession, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pSession); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pSession); return result; } @@ -21880,7 +23026,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyOpticalFlowSessionNV( VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21892,20 +23040,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyOpticalFlowSessionNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, session, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, session, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyOpticalFlowSessionNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyOpticalFlowSessionNV); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(session); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(session); + manager->EndDestroyApiCallCapture(session); } GetDeviceTable(device)->DestroyOpticalFlowSessionNV(device, session, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, session, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, session, pAllocator); DestroyWrappedHandle(session); } @@ -21917,7 +23065,9 @@ VKAPI_ATTR VkResult VKAPI_CALL BindOpticalFlowSessionImageNV( VkImageView view, VkImageLayout layout) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21929,11 +23079,11 @@ VKAPI_ATTR VkResult VKAPI_CALL BindOpticalFlowSessionImageNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, session, bindingPoint, view, layout); + CustomEncoderPreCall::Dispatch(manager, device, session, bindingPoint, view, layout); VkResult result = GetDeviceTable(device)->BindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindOpticalFlowSessionImageNV); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkBindOpticalFlowSessionImageNV); if (encoder) { encoder->EncodeHandleValue(device); @@ -21942,10 +23092,10 @@ VKAPI_ATTR VkResult VKAPI_CALL BindOpticalFlowSessionImageNV( encoder->EncodeHandleValue(view); encoder->EncodeEnumValue(layout); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, session, bindingPoint, view, layout); + CustomEncoderPostCall::Dispatch(manager, result, device, session, bindingPoint, view, layout); return result; } @@ -21955,7 +23105,9 @@ VKAPI_ATTR void VKAPI_CALL CmdOpticalFlowExecuteNV( VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -21967,20 +23119,20 @@ VKAPI_ATTR void VKAPI_CALL CmdOpticalFlowExecuteNV( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, session, pExecuteInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, session, pExecuteInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdOpticalFlowExecuteNV); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdOpticalFlowExecuteNV); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeHandleValue(session); EncodeStructPtr(encoder, pExecuteInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdOpticalFlowExecuteNVHandles, session); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdOpticalFlowExecuteNVHandles, session); } GetDeviceTable(commandBuffer)->CmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, session, pExecuteInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, session, pExecuteInfo); } VKAPI_ATTR VkResult VKAPI_CALL CreateShadersEXT( @@ -21990,7 +23142,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateShadersEXT( const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22004,9 +23158,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateShadersEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, createInfoCount, pCreateInfos, pAllocator, pShaders); + CustomEncoderPreCall::Dispatch(manager, device, createInfoCount, pCreateInfos, pAllocator, pShaders); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkShaderCreateInfoEXT* pCreateInfos_unwrapped = UnwrapStructArrayHandles(pCreateInfos, createInfoCount, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CreateShadersEXT(device, createInfoCount, pCreateInfos_unwrapped, pAllocator, pShaders); @@ -22020,7 +23174,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateShadersEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateShadersEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateShadersEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -22029,10 +23183,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateShadersEXT( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandleArray(pShaders, createInfoCount, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndGroupCreateApiCallCapture(result, device, nullptr, createInfoCount, pShaders, pCreateInfos); + manager->EndGroupCreateApiCallCapture(result, device, nullptr, createInfoCount, pShaders, pCreateInfos); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, createInfoCount, pCreateInfos, pAllocator, pShaders); + CustomEncoderPostCall::Dispatch(manager, result, device, createInfoCount, pCreateInfos, pAllocator, pShaders); return result; } @@ -22042,7 +23196,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyShaderEXT( VkShaderEXT shader, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22054,20 +23210,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyShaderEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, shader, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, shader, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyShaderEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyShaderEXT); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(shader); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(shader); + manager->EndDestroyApiCallCapture(shader); } GetDeviceTable(device)->DestroyShaderEXT(device, shader, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, shader, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, shader, pAllocator); DestroyWrappedHandle(shader); } @@ -22078,7 +23234,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetShaderBinaryDataEXT( size_t* pDataSize, void* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22092,7 +23250,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetShaderBinaryDataEXT( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, shader, pDataSize, pData); + CustomEncoderPreCall::Dispatch(manager, device, shader, pDataSize, pData); VkResult result = GetDeviceTable(device)->GetShaderBinaryDataEXT(device, shader, pDataSize, pData); if (result < 0) @@ -22100,7 +23258,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetShaderBinaryDataEXT( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetShaderBinaryDataEXT); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetShaderBinaryDataEXT); if (encoder) { encoder->EncodeHandleValue(device); @@ -22108,10 +23266,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetShaderBinaryDataEXT( encoder->EncodeSizeTPtr(pDataSize, omit_output_data); encoder->EncodeVoidArray(pData, (pDataSize != nullptr) ? (*pDataSize) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, shader, pDataSize, pData); + CustomEncoderPostCall::Dispatch(manager, result, device, shader, pDataSize, pData); return result; } @@ -22122,7 +23280,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBindShadersEXT( const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22134,21 +23294,21 @@ VKAPI_ATTR void VKAPI_CALL CmdBindShadersEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stageCount, pStages, pShaders); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, stageCount, pStages, pShaders); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindShadersEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBindShadersEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(stageCount); encoder->EncodeEnumArray(pStages, stageCount); encoder->EncodeHandleArray(pShaders, stageCount); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBindShadersEXTHandles, stageCount, pShaders); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBindShadersEXTHandles, stageCount, pShaders); } GetDeviceTable(commandBuffer)->CmdBindShadersEXT(commandBuffer, stageCount, pStages, pShaders); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, stageCount, pStages, pShaders); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, stageCount, pStages, pShaders); } VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM( @@ -22157,7 +23317,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM( uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22171,7 +23333,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, framebuffer, pPropertiesCount, pProperties); + CustomEncoderPreCall::Dispatch(manager, device, framebuffer, pPropertiesCount, pProperties); VkResult result = GetDeviceTable(device)->GetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties); if (result < 0) @@ -22179,7 +23341,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetFramebufferTilePropertiesQCOM); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetFramebufferTilePropertiesQCOM); if (encoder) { encoder->EncodeHandleValue(device); @@ -22187,10 +23349,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM( encoder->EncodeUInt32Ptr(pPropertiesCount, omit_output_data); EncodeStructArray(encoder, pProperties, (pPropertiesCount != nullptr) ? (*pPropertiesCount) : 0, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, framebuffer, pPropertiesCount, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, framebuffer, pPropertiesCount, pProperties); return result; } @@ -22200,7 +23362,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM( const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22214,9 +23378,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pRenderingInfo, pProperties); + CustomEncoderPreCall::Dispatch(manager, device, pRenderingInfo, pProperties); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkRenderingInfo* pRenderingInfo_unwrapped = UnwrapStructPtrHandles(pRenderingInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->GetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo_unwrapped, pProperties); @@ -22225,17 +23389,17 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDynamicRenderingTilePropertiesQCOM); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDynamicRenderingTilePropertiesQCOM); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pRenderingInfo); EncodeStructPtr(encoder, pProperties, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pRenderingInfo, pProperties); + CustomEncoderPostCall::Dispatch(manager, result, device, pRenderingInfo, pProperties); return result; } @@ -22244,7 +23408,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetAttachmentFeedbackLoopEnableEXT( VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22256,19 +23422,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetAttachmentFeedbackLoopEnableEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, aspectMask); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, aspectMask); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetAttachmentFeedbackLoopEnableEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetAttachmentFeedbackLoopEnableEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeFlagsValue(aspectMask); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, aspectMask); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, aspectMask); } VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR( @@ -22277,7 +23443,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR( const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22291,15 +23459,15 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pCreateInfo, pAllocator, pAccelerationStructure); + CustomEncoderPreCall::Dispatch(manager, device, pCreateInfo, pAllocator, pAccelerationStructure); - VkResult result = VulkanCaptureManager::Get()->OverrideCreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure); + VkResult result = manager->OverrideCreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure); if (result < 0) { omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateAccelerationStructureKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCreateAccelerationStructureKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -22307,10 +23475,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR( EncodeStructPtr(encoder, pAllocator); encoder->EncodeHandlePtr(pAccelerationStructure, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndCreateApiCallCapture(result, device, pAccelerationStructure, pCreateInfo); + manager->EndCreateApiCallCapture(result, device, pAccelerationStructure, pCreateInfo); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pCreateInfo, pAllocator, pAccelerationStructure); + CustomEncoderPostCall::Dispatch(manager, result, device, pCreateInfo, pAllocator, pAccelerationStructure); return result; } @@ -22320,7 +23488,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22332,20 +23502,20 @@ VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, accelerationStructure, pAllocator); + CustomEncoderPreCall::Dispatch(manager, device, accelerationStructure, pAllocator); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyAccelerationStructureKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkDestroyAccelerationStructureKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(accelerationStructure); EncodeStructPtr(encoder, pAllocator); - VulkanCaptureManager::Get()->EndDestroyApiCallCapture(accelerationStructure); + manager->EndDestroyApiCallCapture(accelerationStructure); } GetDeviceTable(device)->DestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, accelerationStructure, pAllocator); + CustomEncoderPostCall::Dispatch(manager, device, accelerationStructure, pAllocator); DestroyWrappedHandle(accelerationStructure); } @@ -22356,7 +23526,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresKHR( const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22368,24 +23540,24 @@ VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, infoCount, pInfos, ppBuildRangeInfos); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, infoCount, pInfos, ppBuildRangeInfos); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBuildAccelerationStructuresKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBuildAccelerationStructuresKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(infoCount); EncodeStructArray(encoder, pInfos, infoCount); EncodeStructArray2D(encoder, ppBuildRangeInfos, ArraySize2D(commandBuffer, infoCount, pInfos, ppBuildRangeInfos)); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBuildAccelerationStructuresKHRHandles, infoCount, pInfos); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBuildAccelerationStructuresKHRHandles, infoCount, pInfos); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkAccelerationStructureBuildGeometryInfoKHR* pInfos_unwrapped = UnwrapStructArrayHandles(pInfos, infoCount, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos_unwrapped, ppBuildRangeInfos); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, infoCount, pInfos, ppBuildRangeInfos); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, infoCount, pInfos, ppBuildRangeInfos); } VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresIndirectKHR( @@ -22396,7 +23568,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresIndirectKHR( const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22408,9 +23582,9 @@ VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresIndirectKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBuildAccelerationStructuresIndirectKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdBuildAccelerationStructuresIndirectKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -22419,15 +23593,15 @@ VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresIndirectKHR( encoder->EncodeVkDeviceAddressArray(pIndirectDeviceAddresses, infoCount); encoder->EncodeUInt32Array(pIndirectStrides, infoCount); encoder->EncodeUInt32Array2D(ppMaxPrimitiveCounts, ArraySize2D(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts)); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdBuildAccelerationStructuresIndirectKHRHandles, infoCount, pInfos); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdBuildAccelerationStructuresIndirectKHRHandles, infoCount, pInfos); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkAccelerationStructureBuildGeometryInfoKHR* pInfos_unwrapped = UnwrapStructArrayHandles(pInfos, infoCount, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos_unwrapped, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts); } VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureToMemoryKHR( @@ -22435,7 +23609,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureToMemoryKHR( VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22447,24 +23623,24 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureToMemoryKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, deferredOperation, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, deferredOperation, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyAccelerationStructureToMemoryKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyAccelerationStructureToMemoryKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(deferredOperation); EncodeStructPtr(encoder, pInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, deferredOperation, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, deferredOperation, pInfo); return result; } @@ -22474,7 +23650,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToAccelerationStructureKHR( VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22486,24 +23664,24 @@ VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToAccelerationStructureKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, deferredOperation, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, deferredOperation, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkResult result = GetDeviceTable(device)->CopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyMemoryToAccelerationStructureKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkCopyMemoryToAccelerationStructureKHR); if (encoder) { encoder->EncodeHandleValue(device); encoder->EncodeHandleValue(deferredOperation); EncodeStructPtr(encoder, pInfo); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, deferredOperation, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, deferredOperation, pInfo); return result; } @@ -22517,7 +23695,9 @@ VKAPI_ATTR VkResult VKAPI_CALL WriteAccelerationStructuresPropertiesKHR( void* pData, size_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22531,7 +23711,7 @@ VKAPI_ATTR VkResult VKAPI_CALL WriteAccelerationStructuresPropertiesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride); + CustomEncoderPreCall::Dispatch(manager, device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride); VkResult result = GetDeviceTable(device)->WriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride); if (result < 0) @@ -22539,7 +23719,7 @@ VKAPI_ATTR VkResult VKAPI_CALL WriteAccelerationStructuresPropertiesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWriteAccelerationStructuresPropertiesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkWriteAccelerationStructuresPropertiesKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -22550,10 +23730,10 @@ VKAPI_ATTR VkResult VKAPI_CALL WriteAccelerationStructuresPropertiesKHR( encoder->EncodeVoidArray(pData, dataSize, omit_output_data); encoder->EncodeSizeTValue(stride); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride); + CustomEncoderPostCall::Dispatch(manager, result, device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride); return result; } @@ -22562,7 +23742,9 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22574,29 +23756,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyAccelerationStructureKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyAccelerationStructureKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyAccelerationStructureKHRHandles, pInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyAccelerationStructureKHRHandles, pInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyAccelerationStructureInfoKHR* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyAccelerationStructureKHR(commandBuffer, pInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pInfo); } VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22608,29 +23792,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureToMemoryKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyAccelerationStructureToMemoryKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyAccelerationStructureToMemoryKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyAccelerationStructureToMemoryKHRHandles, pInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyAccelerationStructureToMemoryKHRHandles, pInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pInfo); } VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22642,29 +23828,31 @@ VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToAccelerationStructureKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pInfo); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyMemoryToAccelerationStructureKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdCopyMemoryToAccelerationStructureKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); EncodeStructPtr(encoder, pInfo); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyMemoryToAccelerationStructureKHRHandles, pInfo); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdCopyMemoryToAccelerationStructureKHRHandles, pInfo); } - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); GetDeviceTable(commandBuffer)->CmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo_unwrapped); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pInfo); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pInfo); } VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetAccelerationStructureDeviceAddressKHR( VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22676,23 +23864,23 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetAccelerationStructureDeviceAddressKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pInfo); + CustomEncoderPreCall::Dispatch(manager, device, pInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkAccelerationStructureDeviceAddressInfoKHR* pInfo_unwrapped = UnwrapStructPtrHandles(pInfo, handle_unwrap_memory); VkDeviceAddress result = GetDeviceTable(device)->GetAccelerationStructureDeviceAddressKHR(device, pInfo_unwrapped); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetAccelerationStructureDeviceAddressKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetAccelerationStructureDeviceAddressKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pInfo); encoder->EncodeVkDeviceAddressValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pInfo); + CustomEncoderPostCall::Dispatch(manager, result, device, pInfo); return result; } @@ -22705,7 +23893,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesKHR( VkQueryPool queryPool, uint32_t firstQuery) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22717,9 +23907,9 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteAccelerationStructuresPropertiesKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdWriteAccelerationStructuresPropertiesKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -22728,12 +23918,12 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesKHR( encoder->EncodeEnumValue(queryType); encoder->EncodeHandleValue(queryPool); encoder->EncodeUInt32Value(firstQuery); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteAccelerationStructuresPropertiesKHRHandles, accelerationStructureCount, pAccelerationStructures, queryPool); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdWriteAccelerationStructuresPropertiesKHRHandles, accelerationStructureCount, pAccelerationStructures, queryPool); } GetDeviceTable(commandBuffer)->CmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery); } VKAPI_ATTR void VKAPI_CALL GetDeviceAccelerationStructureCompatibilityKHR( @@ -22741,7 +23931,9 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceAccelerationStructureCompatibilityKHR( const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22753,20 +23945,20 @@ VKAPI_ATTR void VKAPI_CALL GetDeviceAccelerationStructureCompatibilityKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pVersionInfo, pCompatibility); + CustomEncoderPreCall::Dispatch(manager, device, pVersionInfo, pCompatibility); GetDeviceTable(device)->GetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceAccelerationStructureCompatibilityKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetDeviceAccelerationStructureCompatibilityKHR); if (encoder) { encoder->EncodeHandleValue(device); EncodeStructPtr(encoder, pVersionInfo); encoder->EncodeEnumPtr(pCompatibility); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, pVersionInfo, pCompatibility); + CustomEncoderPostCall::Dispatch(manager, device, pVersionInfo, pCompatibility); } VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureBuildSizesKHR( @@ -22776,7 +23968,9 @@ VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureBuildSizesKHR( const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22788,14 +23982,14 @@ VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureBuildSizesKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo); + CustomEncoderPreCall::Dispatch(manager, device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo); - auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory(); + auto handle_unwrap_memory = manager->GetHandleUnwrapMemory(); const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo_unwrapped = UnwrapStructPtrHandles(pBuildInfo, handle_unwrap_memory); GetDeviceTable(device)->GetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo_unwrapped, pMaxPrimitiveCounts, pSizeInfo); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetAccelerationStructureBuildSizesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetAccelerationStructureBuildSizesKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -22803,10 +23997,10 @@ VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureBuildSizesKHR( EncodeStructPtr(encoder, pBuildInfo); encoder->EncodeUInt32Array(pMaxPrimitiveCounts, (pBuildInfo != nullptr) ? (pBuildInfo->geometryCount) : 0); EncodeStructPtr(encoder, pSizeInfo); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo); + CustomEncoderPostCall::Dispatch(manager, device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo); } VKAPI_ATTR void VKAPI_CALL CmdTraceRaysKHR( @@ -22819,7 +24013,9 @@ VKAPI_ATTR void VKAPI_CALL CmdTraceRaysKHR( uint32_t height, uint32_t depth) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22831,9 +24027,9 @@ VKAPI_ATTR void VKAPI_CALL CmdTraceRaysKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdTraceRaysKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdTraceRaysKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -22844,12 +24040,12 @@ VKAPI_ATTR void VKAPI_CALL CmdTraceRaysKHR( encoder->EncodeUInt32Value(width); encoder->EncodeUInt32Value(height); encoder->EncodeUInt32Value(depth); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth); } VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR( @@ -22860,7 +24056,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR( size_t dataSize, void* pData) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22874,7 +24072,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR( bool omit_output_data = false; - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pipeline, firstGroup, groupCount, dataSize, pData); + CustomEncoderPreCall::Dispatch(manager, device, pipeline, firstGroup, groupCount, dataSize, pData); VkResult result = GetDeviceTable(device)->GetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData); if (result < 0) @@ -22882,7 +24080,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR( omit_output_data = true; } - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -22892,10 +24090,10 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR( encoder->EncodeSizeTValue(dataSize); encoder->EncodeVoidArray(pData, dataSize, omit_output_data); encoder->EncodeEnumValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pipeline, firstGroup, groupCount, dataSize, pData); + CustomEncoderPostCall::Dispatch(manager, result, device, pipeline, firstGroup, groupCount, dataSize, pData); return result; } @@ -22908,7 +24106,9 @@ VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirectKHR( const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22920,9 +24120,9 @@ VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirectKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdTraceRaysIndirectKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdTraceRaysIndirectKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -22931,12 +24131,12 @@ VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirectKHR( EncodeStructPtr(encoder, pHitShaderBindingTable); EncodeStructPtr(encoder, pCallableShaderBindingTable); encoder->EncodeVkDeviceAddressValue(indirectDeviceAddress); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress); } VKAPI_ATTR VkDeviceSize VKAPI_CALL GetRayTracingShaderGroupStackSizeKHR( @@ -22945,7 +24145,9 @@ VKAPI_ATTR VkDeviceSize VKAPI_CALL GetRayTracingShaderGroupStackSizeKHR( uint32_t group, VkShaderGroupShaderKHR groupShader) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22957,11 +24159,11 @@ VKAPI_ATTR VkDeviceSize VKAPI_CALL GetRayTracingShaderGroupStackSizeKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), device, pipeline, group, groupShader); + CustomEncoderPreCall::Dispatch(manager, device, pipeline, group, groupShader); VkDeviceSize result = GetDeviceTable(device)->GetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader); - auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRayTracingShaderGroupStackSizeKHR); + auto encoder = manager->BeginApiCallCapture(format::ApiCallId::ApiCall_vkGetRayTracingShaderGroupStackSizeKHR); if (encoder) { encoder->EncodeHandleValue(device); @@ -22969,10 +24171,10 @@ VKAPI_ATTR VkDeviceSize VKAPI_CALL GetRayTracingShaderGroupStackSizeKHR( encoder->EncodeUInt32Value(group); encoder->EncodeEnumValue(groupShader); encoder->EncodeVkDeviceSizeValue(result); - VulkanCaptureManager::Get()->EndApiCallCapture(); + manager->EndApiCallCapture(); } - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, device, pipeline, group, groupShader); + CustomEncoderPostCall::Dispatch(manager, result, device, pipeline, group, groupShader); return result; } @@ -22981,7 +24183,9 @@ VKAPI_ATTR void VKAPI_CALL CmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, uint32_t pipelineStackSize) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -22993,19 +24197,19 @@ VKAPI_ATTR void VKAPI_CALL CmdSetRayTracingPipelineStackSizeKHR( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineStackSize); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, pipelineStackSize); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRayTracingPipelineStackSizeKHR); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdSetRayTracingPipelineStackSizeKHR); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(pipelineStackSize); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, pipelineStackSize); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, pipelineStackSize); } VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksEXT( @@ -23014,7 +24218,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksEXT( uint32_t groupCountY, uint32_t groupCountZ) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -23026,21 +24232,21 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, groupCountX, groupCountY, groupCountZ); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, groupCountX, groupCountY, groupCountZ); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); encoder->EncodeUInt32Value(groupCountX); encoder->EncodeUInt32Value(groupCountY); encoder->EncodeUInt32Value(groupCountZ); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer); + manager->EndCommandApiCallCapture(commandBuffer); } GetDeviceTable(commandBuffer)->CmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, groupCountX, groupCountY, groupCountZ); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, groupCountX, groupCountY, groupCountZ); } VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectEXT( @@ -23050,7 +24256,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectEXT( uint32_t drawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -23062,9 +24270,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, drawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, drawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksIndirectEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksIndirectEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -23072,12 +24280,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectEXT( encoder->EncodeVkDeviceSizeValue(offset); encoder->EncodeUInt32Value(drawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawMeshTasksIndirectEXTHandles, buffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawMeshTasksIndirectEXTHandles, buffer); } GetDeviceTable(commandBuffer)->CmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, drawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, drawCount, stride); } VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountEXT( @@ -23089,7 +24297,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountEXT( uint32_t maxDrawCount, uint32_t stride) { - auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization(); + VulkanCaptureManager* manager = VulkanCaptureManager::Get(); + GFXRECON_ASSERT(manager != nullptr); + auto force_command_serialization = manager->GetForceCommandSerialization(); std::shared_lock shared_api_call_lock; std::unique_lock exclusive_api_call_lock; if (force_command_serialization) @@ -23101,9 +24311,9 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountEXT( shared_api_call_lock = VulkanCaptureManager::AcquireSharedApiCallLock(); } - CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPreCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksIndirectCountEXT); + auto encoder = manager->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_vkCmdDrawMeshTasksIndirectCountEXT); if (encoder) { encoder->EncodeHandleValue(commandBuffer); @@ -23113,12 +24323,12 @@ VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountEXT( encoder->EncodeVkDeviceSizeValue(countBufferOffset); encoder->EncodeUInt32Value(maxDrawCount); encoder->EncodeUInt32Value(stride); - VulkanCaptureManager::Get()->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawMeshTasksIndirectCountEXTHandles, buffer, countBuffer); + manager->EndCommandApiCallCapture(commandBuffer, TrackCmdDrawMeshTasksIndirectCountEXTHandles, buffer, countBuffer); } GetDeviceTable(commandBuffer)->CmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); - CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + CustomEncoderPostCall::Dispatch(manager, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); } GFXRECON_END_NAMESPACE(encode) diff --git a/framework/generated/vulkan_generators/capture_overrides.json b/framework/generated/vulkan_generators/capture_overrides.json index 2b6de71129..a410b6e049 100644 --- a/framework/generated/vulkan_generators/capture_overrides.json +++ b/framework/generated/vulkan_generators/capture_overrides.json @@ -1,14 +1,14 @@ { - "functions": { - "vkCreateInstance": "VulkanCaptureManager::OverrideCreateInstance", - "vkCreateDevice": "VulkanCaptureManager::Get()->OverrideCreateDevice", - "vkCreateBuffer": "VulkanCaptureManager::Get()->OverrideCreateBuffer", - "vkCreateImage": "VulkanCaptureManager::Get()->OverrideCreateImage", - "vkAllocateMemory": "VulkanCaptureManager::Get()->OverrideAllocateMemory", - "vkGetPhysicalDeviceToolPropertiesEXT": "VulkanCaptureManager::Get()->OverrideGetPhysicalDeviceToolPropertiesEXT", - "vkCreateAccelerationStructureKHR": "VulkanCaptureManager::Get()->OverrideCreateAccelerationStructureKHR", - "vkGetPhysicalDeviceQueueFamilyProperties": "VulkanCaptureManager::Get()->OverrideGetPhysicalDeviceQueueFamilyProperties", - "vkGetPhysicalDeviceQueueFamilyProperties2": "VulkanCaptureManager::Get()->OverrideGetPhysicalDeviceQueueFamilyProperties2", - "vkGetPhysicalDeviceQueueFamilyProperties2KHR": "VulkanCaptureManager::Get()->OverrideGetPhysicalDeviceQueueFamilyProperties2KHR" - } + "functions": { + "vkCreateInstance": "VulkanCaptureManager::OverrideCreateInstance", + "vkCreateDevice": "manager->OverrideCreateDevice", + "vkCreateBuffer": "manager->OverrideCreateBuffer", + "vkCreateImage": "manager->OverrideCreateImage", + "vkAllocateMemory": "manager->OverrideAllocateMemory", + "vkGetPhysicalDeviceToolPropertiesEXT": "manager->OverrideGetPhysicalDeviceToolPropertiesEXT", + "vkCreateAccelerationStructureKHR": "manager->OverrideCreateAccelerationStructureKHR", + "vkGetPhysicalDeviceQueueFamilyProperties": "manager->OverrideGetPhysicalDeviceQueueFamilyProperties", + "vkGetPhysicalDeviceQueueFamilyProperties2": "manager->OverrideGetPhysicalDeviceQueueFamilyProperties2", + "vkGetPhysicalDeviceQueueFamilyProperties2KHR": "manager->OverrideGetPhysicalDeviceQueueFamilyProperties2KHR" + } } diff --git a/framework/generated/vulkan_generators/vulkan_api_call_encoders_body_generator.py b/framework/generated/vulkan_generators/vulkan_api_call_encoders_body_generator.py index 01c78c438c..5648cce73d 100644 --- a/framework/generated/vulkan_generators/vulkan_api_call_encoders_body_generator.py +++ b/framework/generated/vulkan_generators/vulkan_api_call_encoders_body_generator.py @@ -228,12 +228,17 @@ def make_cmd_body(self, return_type, name, values): has_outputs = self.has_outputs(return_type, values) arg_list = self.make_arg_list(values) + capture_manager = 'manager' + if name == "vkCreateInstance": + capture_manager = 'VulkanCaptureManager::Get()' body = '' - + if name != "vkCreateInstance": + body += indent + 'VulkanCaptureManager* manager = VulkanCaptureManager::Get();\n' + body += indent + 'GFXRECON_ASSERT(manager != nullptr);\n' if name == "vkCreateInstance" or name == "vkQueuePresentKHR": body += indent + 'auto api_call_lock = VulkanCaptureManager::AcquireExclusiveApiCallLock();\n' else: - body += indent + 'auto force_command_serialization = VulkanCaptureManager::Get()->GetForceCommandSerialization();\n' + body += indent + 'auto force_command_serialization = manager->GetForceCommandSerialization();\n' body += indent + 'std::shared_lock shared_api_call_lock;\n' body += indent + 'std::unique_lock exclusive_api_call_lock;\n' body += indent + 'if (force_command_serialization)\n' @@ -255,8 +260,8 @@ def make_cmd_body(self, return_type, name, values): body += indent + 'bool omit_output_data = false;\n' body += '\n' - body += indent + 'CustomEncoderPreCall::Dispatch(VulkanCaptureManager::Get(), {});\n'.format( - name, arg_list + body += indent + 'CustomEncoderPreCall::Dispatch({}, {});\n'.format( + name, capture_manager, arg_list ) if not encode_after: @@ -291,7 +296,7 @@ def make_cmd_body(self, return_type, name, values): ) if unwrap_expr: if need_unwrap_memory: - body += indent + 'auto handle_unwrap_memory = VulkanCaptureManager::Get()->GetHandleUnwrapMemory();\n' + body += indent + f'auto handle_unwrap_memory = {capture_manager}->GetHandleUnwrapMemory();\n' body += unwrap_expr body += '\n' @@ -338,12 +343,12 @@ def make_cmd_body(self, return_type, name, values): body += '\n' if return_type and return_type != 'void': - body += ' CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), result, {});\n'.format( - name, arg_list + body += ' CustomEncoderPostCall::Dispatch({}, result, {});\n'.format( + name, capture_manager, arg_list ) else: - body += ' CustomEncoderPostCall::Dispatch(VulkanCaptureManager::Get(), {});\n'.format( - name, arg_list + body += ' CustomEncoderPostCall::Dispatch({}, {});\n'.format( + name, capture_manager, arg_list ) cleanup_expr = self.make_handle_cleanup(name, values, indent) @@ -385,6 +390,10 @@ def make_parameter_encoding( return body def make_begin_api_call(self, name, values): + capture_manager = 'manager' + if name == 'vkCreateInstance': + capture_manager = 'VulkanCaptureManager::Get()' + if name.startswith('vkCreate') or name.startswith( 'vkAllocate' ) or name.startswith('vkDestroy') or name.startswith( @@ -392,12 +401,12 @@ def make_begin_api_call(self, name, values): ) or self.retrieves_handles(values) or ( values[0].base_type == 'VkCommandBuffer' ) or (name == 'vkReleasePerformanceConfigurationINTEL'): - return 'auto encoder = VulkanCaptureManager::Get()->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_{});\n'.format( - name + return 'auto encoder = {}->BeginTrackedApiCallCapture(format::ApiCallId::ApiCall_{});\n'.format( + capture_manager, name ) else: - return 'auto encoder = VulkanCaptureManager::Get()->BeginApiCallCapture(format::ApiCallId::ApiCall_{});\n'.format( - name + return 'auto encoder = {}->BeginApiCallCapture(format::ApiCallId::ApiCall_{});\n'.format( + capture_manager, name ) def get_struct_handle_member_info(self, members): @@ -424,7 +433,9 @@ def get_struct_handle_member_info(self, members): return member_handle_type, member_handle_name, member_array_length def make_end_api_call(self, name, values, return_type): - decl = 'VulkanCaptureManager::Get()->' + decl = 'manager->' + if name == 'vkCreateInstance': + decl = 'VulkanCaptureManager::Get()->' if name.startswith('vkCreate') or name.startswith( 'vkAllocate'