mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-29 13:20:54 +00:00
Don't rewrap queues when multiple queues are mapped to one on replay
This commit is contained in:
@@ -296,6 +296,12 @@ public:
|
||||
return (WrappedVkNonDispRes *)GetWrapper(ToTypedHandle(real));
|
||||
}
|
||||
|
||||
template <typename realtype>
|
||||
WrappedVkDispRes *GetDispWrapper(realtype real)
|
||||
{
|
||||
return (WrappedVkDispRes *)GetWrapper(ToTypedHandle(real));
|
||||
}
|
||||
|
||||
template <typename parenttype, typename realtype>
|
||||
ResourceId WrapResource(parenttype parentObj, realtype &obj)
|
||||
{
|
||||
|
||||
@@ -50,8 +50,18 @@ bool WrappedVulkan::Serialise_vkGetDeviceQueue(SerialiserType &ser, VkDevice dev
|
||||
|
||||
ObjDisp(device)->GetDeviceQueue(Unwrap(device), remapFamily, remapIndex, &queue);
|
||||
|
||||
GetResourceManager()->WrapResource(Unwrap(device), queue);
|
||||
GetResourceManager()->AddLiveResource(Queue, queue);
|
||||
if(GetResourceManager()->HasWrapper(ToTypedHandle(queue)))
|
||||
{
|
||||
ResourceId live = GetResourceManager()->GetDispWrapper(queue)->id;
|
||||
|
||||
// whenever the new ID is requested, return the old ID, via replacements.
|
||||
GetResourceManager()->ReplaceResource(Queue, GetResourceManager()->GetOriginalID(live));
|
||||
}
|
||||
else
|
||||
{
|
||||
GetResourceManager()->WrapResource(Unwrap(device), queue);
|
||||
GetResourceManager()->AddLiveResource(Queue, queue);
|
||||
}
|
||||
|
||||
if(remapFamily == m_QueueFamilyIdx && m_Queue == VK_NULL_HANDLE)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user