diff --git a/renderdoc/driver/vulkan/vk_manager.h b/renderdoc/driver/vulkan/vk_manager.h index b182e7e1e..1536f1450 100644 --- a/renderdoc/driver/vulkan/vk_manager.h +++ b/renderdoc/driver/vulkan/vk_manager.h @@ -75,13 +75,15 @@ class VulkanResourceManager : public ResourceManager realtype GetLiveHandle(ResourceId origid) { - return ((typename UnwrapHelper::ParentType *)ResourceManager::GetLiveResource(origid))->real.As(); + RealVkRes res = ((typename UnwrapHelper::ParentType *)ResourceManager::GetLiveResource(origid))->real; + return res.As(); } template realtype GetCurrentHandle(ResourceId id) { - return ((typename UnwrapHelper::ParentType *)ResourceManager::GetCurrentResource(id))->real.As(); + RealVkRes res = ((typename UnwrapHelper::ParentType *)ResourceManager::GetCurrentResource(id))->real; + return res.As(); } // handling memory & image transitions diff --git a/renderdoc/driver/vulkan/vk_resources.h b/renderdoc/driver/vulkan/vk_resources.h index 90f7737c0..73f79d0df 100644 --- a/renderdoc/driver/vulkan/vk_resources.h +++ b/renderdoc/driver/vulkan/vk_resources.h @@ -406,7 +406,9 @@ RealType Unwrap(RealType obj) { if(obj == VK_NULL_HANDLE) return VK_NULL_HANDLE; - return GetWrapped(obj)->real.As(); + RealVkRes res = GetWrapped(obj)->real; + + return res.As(); } template @@ -428,7 +430,9 @@ VkResourceRecord *GetRecord(RealType obj) template RealType ToHandle(WrappedVkRes *ptr) { - return ((typename UnwrapHelper::Outer *)ptr)->real.As(); + RealVkRes res = ((typename UnwrapHelper::Outer *)ptr)->real; + + return res.As(); } enum VkResourceType