Update qrenderdoc to handle vulkan pipeline state

This commit is contained in:
baldurk
2015-10-05 14:39:34 +02:00
parent 8b23082228
commit 48248c460c
3 changed files with 26 additions and 3 deletions
+2
View File
@@ -106,6 +106,7 @@ void Core::LoadLogfile(int proxyRenderer, QString replayHost, QString logFile, b
r->GetD3D11PipelineState(&CurD3D11PipelineState);
r->GetGLPipelineState(&CurGLPipelineState);
r->GetVulkanPipelineState(&CurVulkanPipelineState);
//CurPipelineState.SetStates(m_APIProps, CurD3D11PipelineState, CurGLPipelineState);
UnreadMessageCount = 0;
@@ -140,6 +141,7 @@ void Core::SetEventID(ILogViewerForm *exclude, uint32_t frameID, uint32_t eventI
r->SetFrameEvent(frameID, eventID);
r->GetD3D11PipelineState(&CurD3D11PipelineState);
r->GetGLPipelineState(&CurGLPipelineState);
r->GetVulkanPipelineState(&CurVulkanPipelineState);
//CurPipelineState.SetStates(m_APIProps, CurD3D11PipelineState, CurGLPipelineState);
});
+1
View File
@@ -111,6 +111,7 @@ class Core
D3D11PipelineState CurD3D11PipelineState;
GLPipelineState CurGLPipelineState;
VulkanPipelineState CurVulkanPipelineState;
//CommonPipelineState CurPipelineState;
private:
+23 -3
View File
@@ -127,9 +127,19 @@ void TextureViewer::on_render_clicked(QMouseEvent *e)
ResourceId id;
if(m_Core->APIProps().pipelineType == ePipelineState_D3D11)
id = m_Core->CurD3D11PipelineState.m_OM.RenderTargets[0].Resource;
{
id = m_Core->CurD3D11PipelineState.m_OM.RenderTargets[0].Resource;
}
else if(m_Core->APIProps().pipelineType == ePipelineState_OpenGL)
{
id = m_Core->CurGLPipelineState.m_FB.m_DrawFBO.Color[0].Obj;
}
else
id = m_Core->CurGLPipelineState.m_FB.m_DrawFBO.Color[0].Obj;
{
const VulkanPipelineState &pipe = m_Core->CurVulkanPipelineState;
if(pipe.Pass.renderpass.colorAttachments.count > 0)
id = pipe.Pass.framebuffer.attachments[pipe.Pass.renderpass.colorAttachments[0]].img;
}
PixelValue val;
ReplayOutput_PickPixel(m_Output, id, false, x, y, 0, 0, 0, &val);
@@ -183,9 +193,19 @@ void TextureViewer::OnEventSelected(uint32_t frameID, uint32_t eventID)
m_Core->Renderer()->AsyncInvoke([this](IReplayRenderer *) {
TextureDisplay d;
if(m_Core->APIProps().pipelineType == ePipelineState_D3D11)
{
d.texid = m_Core->CurD3D11PipelineState.m_OM.RenderTargets[0].Resource;
else
}
else if(m_Core->APIProps().pipelineType == ePipelineState_OpenGL)
{
d.texid = m_Core->CurGLPipelineState.m_FB.m_DrawFBO.Color[0].Obj;
}
else
{
const VulkanPipelineState &pipe = m_Core->CurVulkanPipelineState;
if(pipe.Pass.renderpass.colorAttachments.count > 0)
d.texid = pipe.Pass.framebuffer.attachments[pipe.Pass.renderpass.colorAttachments[0]].img;
}
d.mip = 0;
d.sampleIdx = ~0U;
d.overlay = eTexOverlay_None;