mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-28 12:51:03 +00:00
Get wrapper from info structure unwrapped resource
This commit is contained in:
@@ -4200,8 +4200,8 @@ bool WrappedVulkan::Serialise_vkCmdBeginRenderPass(
|
||||
m_PartialReplayData.renderPassActive = true;
|
||||
ObjDisp(cmdBuffer)->CmdBeginRenderPass(Unwrap(cmdBuffer), &beginInfo, cont);
|
||||
|
||||
m_PartialReplayData.state.renderPass = GetResourceManager()->GetOriginalID(GetResID(beginInfo.renderPass));
|
||||
m_PartialReplayData.state.framebuffer = GetResourceManager()->GetOriginalID(GetResID(beginInfo.framebuffer));
|
||||
m_PartialReplayData.state.renderPass = GetResourceManager()->GetOriginalID(VKMGR()->GetNonDispWrapper(beginInfo.renderPass)->id);
|
||||
m_PartialReplayData.state.framebuffer = GetResourceManager()->GetOriginalID(VKMGR()->GetNonDispWrapper(beginInfo.framebuffer)->id);
|
||||
m_PartialReplayData.state.renderArea = beginInfo.renderArea;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,12 +24,6 @@
|
||||
|
||||
#include "vk_info.h"
|
||||
|
||||
template<typename realtype>
|
||||
static ResourceId GetIDFromReal(realtype real)
|
||||
{
|
||||
return ((WrappedVkNonDispRes *)VKMGR()->GetWrapper(RealVkRes(real.handle)))->id;
|
||||
}
|
||||
|
||||
void VulkanCreationInfo::Pipeline::Init(const VkGraphicsPipelineCreateInfo* pCreateInfo)
|
||||
{
|
||||
flags = pCreateInfo->flags;
|
||||
@@ -39,7 +33,7 @@ void VulkanCreationInfo::Pipeline::Init(const VkGraphicsPipelineCreateInfo* pCre
|
||||
// VkPipelineShaderStageCreateInfo
|
||||
RDCEraseEl(shaders);
|
||||
for(uint32_t i=0; i < pCreateInfo->stageCount; i++)
|
||||
shaders[ pCreateInfo->pStages[i].stage ] = GetIDFromReal(pCreateInfo->pStages[i].shader);
|
||||
shaders[ pCreateInfo->pStages[i].stage ] = VKMGR()->GetNonDispWrapper(pCreateInfo->pStages[i].shader)->id;
|
||||
|
||||
if(pCreateInfo->pVertexInputState)
|
||||
{
|
||||
@@ -160,7 +154,7 @@ void VulkanCreationInfo::Framebuffer::Init(const VkFramebufferCreateInfo* pCreat
|
||||
|
||||
attachments.resize(pCreateInfo->attachmentCount);
|
||||
for(uint32_t i=0; i < pCreateInfo->attachmentCount; i++)
|
||||
attachments[i].view = GetIDFromReal(pCreateInfo->pAttachments[i].view);
|
||||
attachments[i].view = VKMGR()->GetNonDispWrapper(pCreateInfo->pAttachments[i].view)->id;
|
||||
}
|
||||
|
||||
void VulkanCreationInfo::DescSetLayout::Init(const VkDescriptorSetLayoutCreateInfo* pCreateInfo)
|
||||
@@ -177,7 +171,7 @@ void VulkanCreationInfo::DescSetLayout::Init(const VkDescriptorSetLayoutCreateIn
|
||||
bindings[i].immutableSampler = new ResourceId[bindings[i].arraySize];
|
||||
|
||||
for(uint32_t s=0; s < bindings[i].arraySize; s++)
|
||||
bindings[i].immutableSampler[s] = GetIDFromReal(pCreateInfo->pBinding[i].pImmutableSamplers[s]);
|
||||
bindings[i].immutableSampler[s] = VKMGR()->GetNonDispWrapper(pCreateInfo->pBinding[i].pImmutableSamplers[s])->id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,6 +102,12 @@ class VulkanResourceManager : public ResourceManager<WrappedVkRes*, RealVkRes, V
|
||||
return ((WrappedVkNonDispRes *)res)->id;
|
||||
}
|
||||
|
||||
template<typename realtype>
|
||||
WrappedVkNonDispRes *GetNonDispWrapper(realtype real)
|
||||
{
|
||||
return (WrappedVkNonDispRes *)GetWrapper(RealVkRes(real.handle));
|
||||
}
|
||||
|
||||
template<typename parenttype, typename realtype>
|
||||
ResourceId WrapResource(parenttype parentObj, realtype &obj)
|
||||
{
|
||||
|
||||
@@ -29,12 +29,6 @@
|
||||
|
||||
#include "serialise/string_utils.h"
|
||||
|
||||
template<typename realtype>
|
||||
static ResourceId GetIDFromReal(realtype real)
|
||||
{
|
||||
return ((WrappedVkNonDispRes *)VKMGR()->GetWrapper(RealVkRes(real.handle)))->id;
|
||||
}
|
||||
|
||||
// VKTODOMED should share this between shader and C++ - need #include support in glslang
|
||||
struct displayuniforms
|
||||
{
|
||||
@@ -1313,15 +1307,15 @@ void VulkanReplay::SavePipelineState()
|
||||
if(layoutBind.immutableSampler)
|
||||
dst.bindings[b].elems[a].sampler = layoutBind.immutableSampler[a];
|
||||
else if(info->sampler != VK_NULL_HANDLE)
|
||||
dst.bindings[b].elems[a].sampler = rm->GetOriginalID(GetIDFromReal(info->sampler));
|
||||
dst.bindings[b].elems[a].sampler = rm->GetOriginalID(VKMGR()->GetNonDispWrapper(info->sampler)->id);
|
||||
|
||||
// only one of these is ever set
|
||||
if(info->imageView != VK_NULL_HANDLE)
|
||||
dst.bindings[b].elems[a].view = rm->GetOriginalID(GetIDFromReal(info->imageView));
|
||||
dst.bindings[b].elems[a].view = rm->GetOriginalID(VKMGR()->GetNonDispWrapper(info->imageView)->id);
|
||||
if(info->bufferView != VK_NULL_HANDLE)
|
||||
dst.bindings[b].elems[a].view = rm->GetOriginalID(GetIDFromReal(info->bufferView));
|
||||
dst.bindings[b].elems[a].view = rm->GetOriginalID(VKMGR()->GetNonDispWrapper(info->bufferView)->id);
|
||||
if(info->attachmentView != VK_NULL_HANDLE)
|
||||
dst.bindings[b].elems[a].view = rm->GetOriginalID(GetIDFromReal(info->attachmentView));
|
||||
dst.bindings[b].elems[a].view = rm->GetOriginalID(VKMGR()->GetNonDispWrapper(info->attachmentView)->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user