Pass pipeline state around by reference instead of copying by value

This commit is contained in:
baldurk
2017-08-18 19:35:19 +01:00
parent 8ae1c650b0
commit 9b4ee72af6
29 changed files with 217 additions and 202 deletions
+18 -17
View File
@@ -263,12 +263,12 @@ void CaptureContext::LoadLogfileThreaded(const QString &logFile, const QString &
m_PostloadProgress = 0.9f;
m_CurD3D11PipelineState = r->GetD3D11PipelineState();
m_CurD3D12PipelineState = r->GetD3D12PipelineState();
m_CurGLPipelineState = r->GetGLPipelineState();
m_CurVulkanPipelineState = r->GetVulkanPipelineState();
m_CurPipelineState.SetStates(m_APIProps, &m_CurD3D11PipelineState, &m_CurD3D12PipelineState,
&m_CurGLPipelineState, &m_CurVulkanPipelineState);
m_CurD3D11PipelineState = &r->GetD3D11PipelineState();
m_CurD3D12PipelineState = &r->GetD3D12PipelineState();
m_CurGLPipelineState = &r->GetGLPipelineState();
m_CurVulkanPipelineState = &r->GetVulkanPipelineState();
m_CurPipelineState.SetStates(m_APIProps, m_CurD3D11PipelineState, m_CurD3D12PipelineState,
m_CurGLPipelineState, m_CurVulkanPipelineState);
m_UnreadMessageCount = 0;
AddMessages(m_FrameInfo.debugMessages);
@@ -534,11 +534,12 @@ void CaptureContext::CloseLogfile()
m_Drawcalls.clear();
m_FirstDrawcall = m_LastDrawcall = NULL;
m_CurD3D11PipelineState = D3D11Pipe::State();
m_CurD3D12PipelineState = D3D12Pipe::State();
m_CurGLPipelineState = GLPipe::State();
m_CurVulkanPipelineState = VKPipe::State();
m_CurPipelineState.SetStates(m_APIProps, NULL, NULL, NULL, NULL);
m_CurD3D11PipelineState = NULL;
m_CurD3D12PipelineState = NULL;
m_CurGLPipelineState = NULL;
m_CurVulkanPipelineState = NULL;
m_CurPipelineState.SetStates(m_APIProps, m_CurD3D11PipelineState, m_CurD3D12PipelineState,
m_CurGLPipelineState, m_CurVulkanPipelineState);
m_DebugMessages.clear();
m_UnreadMessageCount = 0;
@@ -564,12 +565,12 @@ void CaptureContext::SetEventID(const QVector<ILogViewer *> &exclude, uint32_t s
m_Renderer.BlockInvoke([this, eventID, force](IReplayController *r) {
r->SetFrameEvent(eventID, force);
m_CurD3D11PipelineState = r->GetD3D11PipelineState();
m_CurD3D12PipelineState = r->GetD3D12PipelineState();
m_CurGLPipelineState = r->GetGLPipelineState();
m_CurVulkanPipelineState = r->GetVulkanPipelineState();
m_CurPipelineState.SetStates(m_APIProps, &m_CurD3D11PipelineState, &m_CurD3D12PipelineState,
&m_CurGLPipelineState, &m_CurVulkanPipelineState);
m_CurD3D11PipelineState = &r->GetD3D11PipelineState();
m_CurD3D12PipelineState = &r->GetD3D12PipelineState();
m_CurGLPipelineState = &r->GetGLPipelineState();
m_CurVulkanPipelineState = &r->GetVulkanPipelineState();
m_CurPipelineState.SetStates(m_APIProps, m_CurD3D11PipelineState, m_CurD3D12PipelineState,
m_CurGLPipelineState, m_CurVulkanPipelineState);
});
for(ILogViewer *logviewer : m_LogViewers)
+8 -8
View File
@@ -186,19 +186,19 @@ public:
void AddDockWindow(QWidget *newWindow, DockReference ref, QWidget *refWindow,
float percentage = 0.5f) override;
D3D11Pipe::State &CurD3D11PipelineState() override { return m_CurD3D11PipelineState; }
D3D12Pipe::State &CurD3D12PipelineState() override { return m_CurD3D12PipelineState; }
GLPipe::State &CurGLPipelineState() override { return m_CurGLPipelineState; }
VKPipe::State &CurVulkanPipelineState() override { return m_CurVulkanPipelineState; }
const D3D11Pipe::State &CurD3D11PipelineState() override { return *m_CurD3D11PipelineState; }
const D3D12Pipe::State &CurD3D12PipelineState() override { return *m_CurD3D12PipelineState; }
const GLPipe::State &CurGLPipelineState() override { return *m_CurGLPipelineState; }
const VKPipe::State &CurVulkanPipelineState() override { return *m_CurVulkanPipelineState; }
CommonPipelineState &CurPipelineState() override { return m_CurPipelineState; }
PersistantConfig &Config() override { return m_Config; }
private:
ReplayManager m_Renderer;
D3D11Pipe::State m_CurD3D11PipelineState;
D3D12Pipe::State m_CurD3D12PipelineState;
GLPipe::State m_CurGLPipelineState;
VKPipe::State m_CurVulkanPipelineState;
const D3D11Pipe::State *m_CurD3D11PipelineState;
const D3D12Pipe::State *m_CurD3D12PipelineState;
const GLPipe::State *m_CurGLPipelineState;
const VKPipe::State *m_CurVulkanPipelineState;
CommonPipelineState m_CurPipelineState;
PersistantConfig &m_Config;
@@ -928,7 +928,7 @@ BoundCBuffer CommonPipelineState::GetConstantBuffer(ShaderStage stage, uint32_t
s.BindpointMapping.ConstantBlocks[s.ShaderDetails->ConstantBlocks[BufIdx].bindPoint].bind;
if(uboIdx >= 0 && uboIdx < m_GL->UniformBuffers.count)
{
GLPipe::Buffer &b = m_GL->UniformBuffers[uboIdx];
const GLPipe::Buffer &b = m_GL->UniformBuffers[uboIdx];
buf = b.Resource;
ByteOffset = b.Offset;
@@ -939,7 +939,8 @@ BoundCBuffer CommonPipelineState::GetConstantBuffer(ShaderStage stage, uint32_t
}
else if(IsLogVK())
{
VKPipe::Pipeline &pipe = stage == ShaderStage::Compute ? m_Vulkan->compute : m_Vulkan->graphics;
const VKPipe::Pipeline &pipe =
stage == ShaderStage::Compute ? m_Vulkan->compute : m_Vulkan->graphics;
const VKPipe::Shader &s = GetVulkanStage(stage);
if(s.ShaderDetails != NULL && BufIdx < (uint32_t)s.ShaderDetails->ConstantBlocks.count)
@@ -145,8 +145,8 @@ public:
:param ~renderdoc.GL_State gl: The OpenGL state.
:param ~renderdoc.VK_State vk: The Vulkan state.
)");
void SetStates(APIProperties props, D3D11Pipe::State *d3d11, D3D12Pipe::State *d3d12,
GLPipe::State *gl, VKPipe::State *vk)
void SetStates(APIProperties props, const D3D11Pipe::State *d3d11, const D3D12Pipe::State *d3d12,
const GLPipe::State *gl, const VKPipe::State *vk)
{
m_APIProps = props;
m_D3D11 = d3d11;
@@ -422,10 +422,10 @@ Typically this is ``glsl`` or ``hlsl``.
QVector<BoundResource> GetOutputTargets();
private:
D3D11Pipe::State *m_D3D11 = NULL;
D3D12Pipe::State *m_D3D12 = NULL;
GLPipe::State *m_GL = NULL;
VKPipe::State *m_Vulkan = NULL;
const D3D11Pipe::State *m_D3D11 = NULL;
const D3D12Pipe::State *m_D3D12 = NULL;
const GLPipe::State *m_GL = NULL;
const VKPipe::State *m_Vulkan = NULL;
APIProperties m_APIProps;
const D3D11Pipe::Shader &GetD3D11Stage(ShaderStage stage);
+4 -4
View File
@@ -1386,28 +1386,28 @@ currently docked.
:return: The current D3D11 pipeline state.
:rtype: ~renderdoc.D3D11_State
)");
virtual D3D11Pipe::State &CurD3D11PipelineState() = 0;
virtual const D3D11Pipe::State &CurD3D11PipelineState() = 0;
DOCUMENT(R"(Retrieve the current :class:`~renderdoc.D3D12_State` pipeline state.
:return: The current D3D12 pipeline state.
:rtype: ~renderdoc.D3D12_State
)");
virtual D3D12Pipe::State &CurD3D12PipelineState() = 0;
virtual const D3D12Pipe::State &CurD3D12PipelineState() = 0;
DOCUMENT(R"(Retrieve the current :class:`~renderdoc.GL_State` pipeline state.
:return: The current OpenGL pipeline state.
:rtype: ~renderdoc.GL_State
)");
virtual GLPipe::State &CurGLPipelineState() = 0;
virtual const GLPipe::State &CurGLPipelineState() = 0;
DOCUMENT(R"(Retrieve the current :class:`~renderdoc.VK_State` pipeline state.
:return: The current Vulkan pipeline state.
:rtype: ~renderdoc.VK_State
)");
virtual VKPipe::State &CurVulkanPipelineState() = 0;
virtual const VKPipe::State &CurVulkanPipelineState() = 0;
DOCUMENT(R"(Retrieve the current :class:`CommonPipelineState` abstracted pipeline state.
@@ -2261,7 +2261,7 @@ void D3D11PipelineStateViewer::shaderSave_clicked()
m_Common.SaveShaderFile(shaderDetails);
}
QVariantList D3D11PipelineStateViewer::exportViewHTML(D3D11Pipe::View &view, int i,
QVariantList D3D11PipelineStateViewer::exportViewHTML(const D3D11Pipe::View &view, int i,
ShaderReflection *refl,
const QString &extraParams)
{
@@ -2385,7 +2385,7 @@ QVariantList D3D11PipelineStateViewer::exportViewHTML(D3D11Pipe::View &view, int
d, a, viewFormat, format, viewParams};
}
void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D11Pipe::IA &ia)
void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D11Pipe::IA &ia)
{
{
xml.writeStartElement(lit("h3"));
@@ -2483,7 +2483,7 @@ void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D11Pipe::IA &
m_Common.exportHTMLTable(xml, {tr("Primitive Topology")}, {ToQStr(m_Ctx.CurDrawcall()->topology)});
}
void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D11Pipe::Shader &sh)
void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D11Pipe::Shader &sh)
{
ShaderReflection *shaderDetails = sh.ShaderDetails;
@@ -2697,7 +2697,7 @@ void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D11Pipe::Shad
}
}
void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D11Pipe::SO &so)
void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D11Pipe::SO &so)
{
{
xml.writeStartElement(lit("h3"));
@@ -2735,7 +2735,7 @@ void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D11Pipe::SO &
}
}
void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D11Pipe::Rasterizer &rs)
void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D11Pipe::Rasterizer &rs)
{
{
xml.writeStartElement(lit("h3"));
@@ -2812,7 +2812,7 @@ void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D11Pipe::Rast
}
}
void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D11Pipe::OM &om)
void D3D11PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D11Pipe::OM &om)
{
{
xml.writeStartElement(lit("h3"));
@@ -93,13 +93,13 @@ private:
void setState();
void clearState();
QVariantList exportViewHTML(D3D11Pipe::View &view, int i, ShaderReflection *refl,
QVariantList exportViewHTML(const D3D11Pipe::View &view, int i, ShaderReflection *refl,
const QString &extraParams);
void exportHTML(QXmlStreamWriter &xml, D3D11Pipe::IA &ia);
void exportHTML(QXmlStreamWriter &xml, D3D11Pipe::Shader &sh);
void exportHTML(QXmlStreamWriter &xml, D3D11Pipe::SO &so);
void exportHTML(QXmlStreamWriter &xml, D3D11Pipe::Rasterizer &rs);
void exportHTML(QXmlStreamWriter &xml, D3D11Pipe::OM &om);
void exportHTML(QXmlStreamWriter &xml, const D3D11Pipe::IA &ia);
void exportHTML(QXmlStreamWriter &xml, const D3D11Pipe::Shader &sh);
void exportHTML(QXmlStreamWriter &xml, const D3D11Pipe::SO &so);
void exportHTML(QXmlStreamWriter &xml, const D3D11Pipe::Rasterizer &rs);
void exportHTML(QXmlStreamWriter &xml, const D3D11Pipe::OM &om);
void setInactiveRow(RDTreeWidgetItem *node);
void setEmptyRow(RDTreeWidgetItem *node);
@@ -2254,7 +2254,7 @@ QVariantList D3D12PipelineStateViewer::exportViewHTML(const D3D12Pipe::View &vie
a, viewFormat, format, viewParams};
}
void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D12Pipe::IA &ia)
void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe::IA &ia)
{
{
xml.writeStartElement(lit("h3"));
@@ -2356,7 +2356,7 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D12Pipe::IA &
m_Common.exportHTMLTable(xml, {tr("Primitive Topology")}, {ToQStr(m_Ctx.CurDrawcall()->topology)});
}
void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D12Pipe::Shader &sh)
void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe::Shader &sh)
{
ShaderReflection *shaderDetails = sh.ShaderDetails;
@@ -2716,7 +2716,7 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D12Pipe::Shad
}
}
void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D12Pipe::Streamout &so)
void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe::Streamout &so)
{
{
xml.writeStartElement(lit("h3"));
@@ -2776,7 +2776,7 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D12Pipe::Stre
}
}
void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D12Pipe::Rasterizer &rs)
void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe::Rasterizer &rs)
{
{
xml.writeStartElement(lit("h3"));
@@ -2853,7 +2853,7 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D12Pipe::Rast
}
}
void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, D3D12Pipe::OM &om)
void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe::OM &om)
{
{
xml.writeStartElement(lit("h3"));
@@ -109,11 +109,11 @@ private:
QVariantList exportViewHTML(const D3D12Pipe::View &view, bool rw,
const ShaderResource *shaderInput, const QString &extraParams);
void exportHTML(QXmlStreamWriter &xml, D3D12Pipe::IA &ia);
void exportHTML(QXmlStreamWriter &xml, D3D12Pipe::Shader &sh);
void exportHTML(QXmlStreamWriter &xml, D3D12Pipe::Streamout &so);
void exportHTML(QXmlStreamWriter &xml, D3D12Pipe::Rasterizer &rs);
void exportHTML(QXmlStreamWriter &xml, D3D12Pipe::OM &om);
void exportHTML(QXmlStreamWriter &xml, const D3D12Pipe::IA &ia);
void exportHTML(QXmlStreamWriter &xml, const D3D12Pipe::Shader &sh);
void exportHTML(QXmlStreamWriter &xml, const D3D12Pipe::Streamout &so);
void exportHTML(QXmlStreamWriter &xml, const D3D12Pipe::Rasterizer &rs);
void exportHTML(QXmlStreamWriter &xml, const D3D12Pipe::OM &om);
// keep track of the VB nodes (we want to be able to highlight them easily on hover)
QList<RDTreeWidgetItem *> m_VBNodes;
@@ -2264,7 +2264,7 @@ void GLPipelineStateViewer::shaderSave_clicked()
m_Common.SaveShaderFile(shaderDetails);
}
void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, GLPipe::VertexInput &vtx)
void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const GLPipe::VertexInput &vtx)
{
const GLPipe::State &pipe = m_Ctx.CurGLPipelineState();
{
@@ -2419,7 +2419,7 @@ void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, GLPipe::VertexInpu
}
}
void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, GLPipe::Shader &sh)
void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const GLPipe::Shader &sh)
{
const GLPipe::State &pipe = m_Ctx.CurGLPipelineState();
ShaderReflection *shaderDetails = sh.ShaderDetails;
@@ -2870,7 +2870,7 @@ void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, GLPipe::Shader &sh
}
}
void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, GLPipe::Feedback &xfb)
void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const GLPipe::Feedback &xfb)
{
const GLPipe::State &pipe = m_Ctx.CurGLPipelineState();
{
@@ -2919,7 +2919,7 @@ void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, GLPipe::Feedback &
}
}
void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, GLPipe::Rasterizer &rs)
void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const GLPipe::Rasterizer &rs)
{
const GLPipe::State &pipe = m_Ctx.CurGLPipelineState();
xml.writeStartElement(tr("h3"));
@@ -3037,7 +3037,7 @@ void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, GLPipe::Rasterizer
}
}
void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, GLPipe::FrameBuffer &fb)
void GLPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const GLPipe::FrameBuffer &fb)
{
const GLPipe::State &pipe = m_Ctx.CurGLPipelineState();
{
@@ -107,11 +107,11 @@ private:
bool showNode(bool usedSlot, bool filledSlot);
void exportHTML(QXmlStreamWriter &xml, GLPipe::VertexInput &vtx);
void exportHTML(QXmlStreamWriter &xml, GLPipe::Shader &sh);
void exportHTML(QXmlStreamWriter &xml, GLPipe::Feedback &xfb);
void exportHTML(QXmlStreamWriter &xml, GLPipe::Rasterizer &rs);
void exportHTML(QXmlStreamWriter &xml, GLPipe::FrameBuffer &fb);
void exportHTML(QXmlStreamWriter &xml, const GLPipe::VertexInput &vtx);
void exportHTML(QXmlStreamWriter &xml, const GLPipe::Shader &sh);
void exportHTML(QXmlStreamWriter &xml, const GLPipe::Feedback &xfb);
void exportHTML(QXmlStreamWriter &xml, const GLPipe::Rasterizer &rs);
void exportHTML(QXmlStreamWriter &xml, const GLPipe::FrameBuffer &fb);
// keep track of the VB nodes (we want to be able to highlight them easily on hover)
QList<RDTreeWidgetItem *> m_VBNodes;
@@ -2403,7 +2403,7 @@ void VulkanPipelineStateViewer::shaderSave_clicked()
m_Common.SaveShaderFile(shaderDetails);
}
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::VertexInput &vi)
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const VKPipe::VertexInput &vi)
{
{
xml.writeStartElement(lit("h3"));
@@ -2469,7 +2469,7 @@ void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::Vertex
}
}
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::InputAssembly &ia)
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const VKPipe::InputAssembly &ia)
{
{
xml.writeStartElement(lit("h3"));
@@ -2507,7 +2507,7 @@ void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::InputA
{ToQStr(m_Ctx.CurDrawcall()->topology), m_Ctx.CurVulkanPipelineState().Tess.numControlPoints});
}
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::Shader &sh)
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const VKPipe::Shader &sh)
{
ShaderReflection *shaderDetails = sh.ShaderDetails;
@@ -2862,7 +2862,7 @@ void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::Shader
}
}
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::Raster &rs)
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const VKPipe::Raster &rs)
{
{
xml.writeStartElement(lit("h3"));
@@ -2889,7 +2889,7 @@ void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::Raster
Formatter::Format(rs.slopeScaledDepthBias), Formatter::Format(rs.lineWidth)});
}
VKPipe::MultiSample &msaa = m_Ctx.CurVulkanPipelineState().MSAA;
const VKPipe::MultiSample &msaa = m_Ctx.CurVulkanPipelineState().MSAA;
{
xml.writeStartElement(lit("h3"));
@@ -2903,7 +2903,7 @@ void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::Raster
Formatter::Format(msaa.minSampleShading), Formatter::Format(msaa.sampleMask, true)});
}
VKPipe::ViewState &vp = m_Ctx.CurVulkanPipelineState().VP;
const VKPipe::ViewState &vp = m_Ctx.CurVulkanPipelineState().VP;
{
xml.writeStartElement(lit("h3"));
@@ -2948,7 +2948,7 @@ void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::Raster
}
}
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::ColorBlend &cb)
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const VKPipe::ColorBlend &cb)
{
xml.writeStartElement(lit("h3"));
xml.writeCharacters(tr("Color Blend State"));
@@ -2998,7 +2998,7 @@ void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::ColorB
rows);
}
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::DepthStencil &ds)
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const VKPipe::DepthStencil &ds)
{
{
xml.writeStartElement(lit("h3"));
@@ -3055,7 +3055,7 @@ void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::DepthS
}
}
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, VKPipe::CurrentPass &pass)
void VulkanPipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const VKPipe::CurrentPass &pass)
{
{
xml.writeStartElement(lit("h3"));
@@ -118,13 +118,13 @@ private:
bool showNode(bool usedSlot, bool filledSlot);
void exportHTML(QXmlStreamWriter &xml, VKPipe::VertexInput &vi);
void exportHTML(QXmlStreamWriter &xml, VKPipe::InputAssembly &ia);
void exportHTML(QXmlStreamWriter &xml, VKPipe::Shader &sh);
void exportHTML(QXmlStreamWriter &xml, VKPipe::Raster &rs);
void exportHTML(QXmlStreamWriter &xml, VKPipe::ColorBlend &cb);
void exportHTML(QXmlStreamWriter &xml, VKPipe::DepthStencil &ds);
void exportHTML(QXmlStreamWriter &xml, VKPipe::CurrentPass &pass);
void exportHTML(QXmlStreamWriter &xml, const VKPipe::VertexInput &vi);
void exportHTML(QXmlStreamWriter &xml, const VKPipe::InputAssembly &ia);
void exportHTML(QXmlStreamWriter &xml, const VKPipe::Shader &sh);
void exportHTML(QXmlStreamWriter &xml, const VKPipe::Raster &rs);
void exportHTML(QXmlStreamWriter &xml, const VKPipe::ColorBlend &cb);
void exportHTML(QXmlStreamWriter &xml, const VKPipe::DepthStencil &ds);
void exportHTML(QXmlStreamWriter &xml, const VKPipe::CurrentPass &pass);
// keep track of the VB nodes (we want to be able to highlight them easily on hover)
QList<RDTreeWidgetItem *> m_VBNodes;
+4 -4
View File
@@ -99,16 +99,16 @@ struct CaptureContextInvoker : ICaptureContext
virtual const QVector<DebugMessage> &DebugMessages() override { return m_Ctx.DebugMessages(); }
virtual int UnreadMessageCount() override { return m_Ctx.UnreadMessageCount(); }
virtual void MarkMessagesRead() override { return m_Ctx.MarkMessagesRead(); }
virtual D3D11Pipe::State &CurD3D11PipelineState() override
virtual const D3D11Pipe::State &CurD3D11PipelineState() override
{
return m_Ctx.CurD3D11PipelineState();
}
virtual D3D12Pipe::State &CurD3D12PipelineState() override
virtual const D3D12Pipe::State &CurD3D12PipelineState() override
{
return m_Ctx.CurD3D12PipelineState();
}
virtual GLPipe::State &CurGLPipelineState() override { return m_Ctx.CurGLPipelineState(); }
virtual VKPipe::State &CurVulkanPipelineState() override
virtual const GLPipe::State &CurGLPipelineState() override { return m_Ctx.CurGLPipelineState(); }
virtual const VKPipe::State &CurVulkanPipelineState() override
{
return m_Ctx.CurVulkanPipelineState();
}
+4 -4
View File
@@ -515,7 +515,7 @@ You should use :meth:`GetAPIProperties` to determine the API of the capture.
:return: The current D3D11 pipeline state.
:rtype: D3D11_State
)");
virtual D3D11Pipe::State GetD3D11PipelineState() = 0;
virtual const D3D11Pipe::State &GetD3D11PipelineState() = 0;
DOCUMENT(R"(Retrieve the current :class:`D3D12_State` pipeline state.
@@ -525,7 +525,7 @@ You should use :meth:`GetAPIProperties` to determine the API of the capture.
:return: The current D3D12 pipeline state.
:rtype: D3D12_State
)");
virtual D3D12Pipe::State GetD3D12PipelineState() = 0;
virtual const D3D12Pipe::State &GetD3D12PipelineState() = 0;
DOCUMENT(R"(Retrieve the current :class:`GL_State` pipeline state.
@@ -535,7 +535,7 @@ You should use :meth:`GetAPIProperties` to determine the API of the capture.
:return: The current OpenGL pipeline state.
:rtype: GL_State
)");
virtual GLPipe::State GetGLPipelineState() = 0;
virtual const GLPipe::State &GetGLPipelineState() = 0;
DOCUMENT(R"(Retrieve the current :class:`VK_State` pipeline state.
@@ -545,7 +545,7 @@ You should use :meth:`GetAPIProperties` to determine the API of the capture.
:return: The current Vulkan pipeline state.
:rtype: VK_State
)");
virtual VKPipe::State GetVulkanPipelineState() = 0;
virtual const VKPipe::State &GetVulkanPipelineState() = 0;
DOCUMENT(R"(Retrieve the list of possible disassembly targets for :meth:`DisassembleShader`. The
values are implementation dependent but will always include a default target first which is the
+7 -4
View File
@@ -146,7 +146,7 @@ public:
// handle a couple of operations ourselves to return a simple fake log
APIProperties GetAPIProperties() { return m_Props; }
FrameRecord GetFrameRecord() { return m_FrameRecord; }
D3D11Pipe::State GetD3D11PipelineState() { return m_PipelineState; }
const D3D11Pipe::State &GetD3D11PipelineState() { return m_PipelineState; }
// other operations are dropped/ignored, to avoid confusion
void ReadLogInitialisation() {}
void RenderMesh(uint32_t eventID, const vector<MeshFormat> &secondaryDraws, const MeshDisplay &cfg)
@@ -161,9 +161,9 @@ public:
return ret;
}
void SavePipelineState() {}
D3D12Pipe::State GetD3D12PipelineState() { return D3D12Pipe::State(); }
GLPipe::State GetGLPipelineState() { return GLPipe::State(); }
VKPipe::State GetVulkanPipelineState() { return VKPipe::State(); }
const D3D12Pipe::State &GetD3D12PipelineState() { return m_D3D12State; }
const GLPipe::State &GetGLPipelineState() { return m_GLState; }
const VKPipe::State &GetVulkanPipelineState() { return m_VKState; }
void ReplayLog(uint32_t endEventID, ReplayLogType replayType) {}
vector<uint32_t> GetPassEvents(uint32_t eventID) { return vector<uint32_t>(); }
vector<EventUsage> GetUsage(ResourceId id) { return vector<EventUsage>(); }
@@ -269,6 +269,9 @@ private:
APIProperties m_Props;
FrameRecord m_FrameRecord;
D3D11Pipe::State m_PipelineState;
D3D12Pipe::State m_D3D12State;
VKPipe::State m_VKState;
GLPipe::State m_GLState;
IReplayDriver *m_Proxy;
string m_Filename;
ResourceId m_TextureID;
+45
View File
@@ -2443,6 +2443,51 @@ void ReplayProxy::SavePipelineState()
m_FromReplaySerialiser->Serialise("", m_D3D12PipelineState);
m_FromReplaySerialiser->Serialise("", m_GLPipelineState);
m_FromReplaySerialiser->Serialise("", m_VulkanPipelineState);
{
D3D11Pipe::Shader *stages[] = {
&m_D3D11PipelineState.m_VS, &m_D3D11PipelineState.m_HS, &m_D3D11PipelineState.m_DS,
&m_D3D11PipelineState.m_GS, &m_D3D11PipelineState.m_PS, &m_D3D11PipelineState.m_CS,
};
for(int i = 0; i < 6; i++)
if(stages[i]->Object != ResourceId())
stages[i]->ShaderDetails = GetShader(GetLiveID(stages[i]->Object), "");
}
{
D3D12Pipe::Shader *stages[] = {
&m_D3D12PipelineState.m_VS, &m_D3D12PipelineState.m_HS, &m_D3D12PipelineState.m_DS,
&m_D3D12PipelineState.m_GS, &m_D3D12PipelineState.m_PS, &m_D3D12PipelineState.m_CS,
};
for(int i = 0; i < 6; i++)
if(stages[i]->Object != ResourceId())
stages[i]->ShaderDetails = GetShader(GetLiveID(stages[i]->Object), "");
}
{
GLPipe::Shader *stages[] = {
&m_GLPipelineState.m_VS, &m_GLPipelineState.m_TCS, &m_GLPipelineState.m_TES,
&m_GLPipelineState.m_GS, &m_GLPipelineState.m_FS, &m_GLPipelineState.m_CS,
};
for(int i = 0; i < 6; i++)
if(stages[i]->Object != ResourceId())
stages[i]->ShaderDetails = GetShader(GetLiveID(stages[i]->Object), "");
}
{
VKPipe::Shader *stages[] = {
&m_VulkanPipelineState.m_VS, &m_VulkanPipelineState.m_TCS, &m_VulkanPipelineState.m_TES,
&m_VulkanPipelineState.m_GS, &m_VulkanPipelineState.m_FS, &m_VulkanPipelineState.m_CS,
};
for(int i = 0; i < 6; i++)
if(stages[i]->Object != ResourceId())
stages[i]->ShaderDetails =
GetShader(GetLiveID(stages[i]->Object), stages[i]->entryPoint.elems);
}
}
void ReplayProxy::ReplayLog(uint32_t endEventID, ReplayLogType replayType)
+4 -4
View File
@@ -401,10 +401,10 @@ public:
vector<DebugMessage> GetDebugMessages();
void SavePipelineState();
D3D11Pipe::State GetD3D11PipelineState() { return m_D3D11PipelineState; }
D3D12Pipe::State GetD3D12PipelineState() { return m_D3D12PipelineState; }
GLPipe::State GetGLPipelineState() { return m_GLPipelineState; }
VKPipe::State GetVulkanPipelineState() { return m_VulkanPipelineState; }
const D3D11Pipe::State &GetD3D11PipelineState() { return m_D3D11PipelineState; }
const D3D12Pipe::State &GetD3D12PipelineState() { return m_D3D12PipelineState; }
const GLPipe::State &GetGLPipelineState() { return m_GLPipelineState; }
const VKPipe::State &GetVulkanPipelineState() { return m_VulkanPipelineState; }
void ReplayLog(uint32_t endEventID, ReplayLogType replayType);
vector<uint32_t> GetPassEvents(uint32_t eventID);
+3 -5
View File
@@ -491,11 +491,11 @@ vector<ResourceId> D3D11Replay::GetTextures()
return ret;
}
D3D11Pipe::State D3D11Replay::MakePipelineState()
void D3D11Replay::SavePipelineState()
{
D3D11RenderState *rs = m_pDevice->GetImmediateContext()->GetCurrentPipelineState();
D3D11Pipe::State ret;
D3D11Pipe::State &ret = m_CurPipelineState;
/////////////////////////////////////////////////
// Input Assembler
@@ -584,7 +584,7 @@ D3D11Pipe::State D3D11Replay::MakePipelineState()
refl = shad->GetDetails();
dst.Object = rm->GetOriginalID(id);
dst.ShaderDetails = NULL;
dst.ShaderDetails = refl;
string str = GetDebugName(src.Shader);
dst.customName = true;
@@ -1340,8 +1340,6 @@ D3D11Pipe::State D3D11Replay::MakePipelineState()
ret.m_OM.m_State.m_BackFace.FailOp = StencilOp::Keep;
}
}
return ret;
}
void D3D11Replay::ReadLogInitialisation()
+8 -7
View File
@@ -65,11 +65,11 @@ public:
FrameRecord GetFrameRecord();
void SavePipelineState() { m_CurPipelineState = MakePipelineState(); }
D3D11Pipe::State GetD3D11PipelineState() { return m_CurPipelineState; }
D3D12Pipe::State GetD3D12PipelineState() { return D3D12Pipe::State(); }
GLPipe::State GetGLPipelineState() { return GLPipe::State(); }
VKPipe::State GetVulkanPipelineState() { return VKPipe::State(); }
void SavePipelineState();
const D3D11Pipe::State &GetD3D11PipelineState() { return m_CurPipelineState; }
const D3D12Pipe::State &GetD3D12PipelineState() { return m_D3D12State; }
const GLPipe::State &GetGLPipelineState() { return m_GLState; }
const VKPipe::State &GetVulkanPipelineState() { return m_VKState; }
void FreeTargetResource(ResourceId id);
void FreeCustomShader(ResourceId id);
@@ -170,8 +170,6 @@ public:
Callstack::StackResolver *GetCallstackResolver();
private:
D3D11Pipe::State MakePipelineState();
bool m_WARP;
bool m_Proxy;
@@ -180,4 +178,7 @@ private:
WrappedID3D11Device *m_pDevice;
D3D11Pipe::State m_CurPipelineState;
D3D12Pipe::State m_D3D12State;
VKPipe::State m_VKState;
GLPipe::State m_GLState;
};
+3 -1
View File
@@ -889,7 +889,7 @@ void D3D12Replay::FillRegisterSpaces(const D3D12RenderState::RootSignature &root
SAFE_DELETE_ARRAY(spaces);
}
void D3D12Replay::MakePipelineState()
void D3D12Replay::SavePipelineState()
{
const D3D12RenderState &rs = m_pDevice->GetQueue()->GetCommandData()->m_RenderState;
@@ -979,6 +979,7 @@ void D3D12Replay::MakePipelineState()
state.m_CS.Object = sh->GetResourceID();
state.m_CS.stage = ShaderStage::Compute;
state.m_CS.ShaderDetails = &sh->GetDetails();
state.m_CS.BindpointMapping = sh->GetMapping();
state.rootSig = rm->GetOriginalID(rs.compute.rootsig);
@@ -1010,6 +1011,7 @@ void D3D12Replay::MakePipelineState()
{
dst.Object = sh->GetResourceID();
dst.BindpointMapping = sh->GetMapping();
dst.ShaderDetails = &sh->GetDetails();
}
if(rs.graphics.rootsig != ResourceId())
+8 -7
View File
@@ -63,11 +63,11 @@ public:
FrameRecord GetFrameRecord();
void SavePipelineState() { MakePipelineState(); }
D3D11Pipe::State GetD3D11PipelineState() { return D3D11Pipe::State(); }
D3D12Pipe::State GetD3D12PipelineState() { return m_PipelineState; }
GLPipe::State GetGLPipelineState() { return GLPipe::State(); }
VKPipe::State GetVulkanPipelineState() { return VKPipe::State(); }
void SavePipelineState();
const D3D11Pipe::State &GetD3D11PipelineState() { return m_D3D11State; }
const D3D12Pipe::State &GetD3D12PipelineState() { return m_PipelineState; }
const GLPipe::State &GetGLPipelineState() { return m_GLState; }
const VKPipe::State &GetVulkanPipelineState() { return m_VKState; }
void FreeTargetResource(ResourceId id);
void FreeCustomShader(ResourceId id);
@@ -178,8 +178,6 @@ public:
void PreDeviceShutdownCounters();
private:
void MakePipelineState();
void FillRegisterSpaces(const D3D12RenderState::RootSignature &rootSig,
rdctype::array<D3D12Pipe::RegisterSpace> &spaces,
D3D12_SHADER_VISIBILITY visibility);
@@ -190,6 +188,9 @@ private:
vector<ID3D12Resource *> m_ProxyResources;
D3D12Pipe::State m_PipelineState;
D3D11Pipe::State m_D3D11State;
VKPipe::State m_VKState;
GLPipe::State m_GLState;
WrappedID3D12Device *m_pDevice;
};
+2 -2
View File
@@ -1105,7 +1105,7 @@ void GLReplay::SavePipelineState()
{
curProg = rm->GetCurrentResource(pipeDetails.stagePrograms[i]).name;
stages[i]->Object = rm->GetOriginalID(pipeDetails.stageShaders[i]);
refls[i] = GetShader(pipeDetails.stageShaders[i], "");
stages[i]->ShaderDetails = refls[i] = GetShader(pipeDetails.stageShaders[i], "");
GetBindpointMapping(gl.GetHookset(), curProg, (int)i, refls[i],
stages[i]->BindpointMapping);
mappings[i] = &stages[i]->BindpointMapping;
@@ -1138,7 +1138,7 @@ void GLReplay::SavePipelineState()
stages[i]->customProgramName = (programName != "");
stages[i]->Object = rm->GetOriginalID(progDetails.stageShaders[i]);
refls[i] = GetShader(progDetails.stageShaders[i], "");
stages[i]->ShaderDetails = refls[i] = GetShader(progDetails.stageShaders[i], "");
GetBindpointMapping(gl.GetHookset(), curProg, (int)i, refls[i], stages[i]->BindpointMapping);
mappings[i] = &stages[i]->BindpointMapping;
+7 -4
View File
@@ -111,10 +111,10 @@ public:
FrameRecord GetFrameRecord();
void SavePipelineState();
D3D11Pipe::State GetD3D11PipelineState() { return D3D11Pipe::State(); }
D3D12Pipe::State GetD3D12PipelineState() { return D3D12Pipe::State(); }
GLPipe::State GetGLPipelineState() { return m_CurPipelineState; }
VKPipe::State GetVulkanPipelineState() { return VKPipe::State(); }
const D3D11Pipe::State &GetD3D11PipelineState() { return m_D3D11State; }
const D3D12Pipe::State &GetD3D12PipelineState() { return m_D3D12State; }
const GLPipe::State &GetGLPipelineState() { return m_CurPipelineState; }
const VKPipe::State &GetVulkanPipelineState() { return m_VKState; }
void FreeTargetResource(ResourceId id);
void ReadLogInitialisation();
@@ -415,6 +415,9 @@ private:
WrappedOpenGL *m_pDriver;
GLPipe::State m_CurPipelineState;
D3D11Pipe::State m_D3D11State;
D3D12Pipe::State m_D3D12State;
VKPipe::State m_VKState;
};
const GLHookSet &GetRealGLFunctions();
+4 -2
View File
@@ -2870,7 +2870,6 @@ void VulkanReplay::SavePipelineState()
{
stage.Object = rm->GetOriginalID(p.shaders[i].module);
stage.entryPoint = p.shaders[i].entryPoint;
stage.ShaderDetails = NULL;
stage.customName = true;
stage.name = m_pDriver->m_CreationInfo.m_Names[p.shaders[i].module];
@@ -2883,6 +2882,8 @@ void VulkanReplay::SavePipelineState()
stage.stage = ShaderStage::Compute;
if(p.shaders[i].mapping)
stage.BindpointMapping = *p.shaders[i].mapping;
if(p.shaders[i].refl)
stage.ShaderDetails = p.shaders[i].refl;
create_array_uninit(stage.specialization, p.shaders[i].specialization.size());
for(size_t s = 0; s < p.shaders[i].specialization.size(); s++)
@@ -2940,7 +2941,6 @@ void VulkanReplay::SavePipelineState()
{
stages[i]->Object = rm->GetOriginalID(p.shaders[i].module);
stages[i]->entryPoint = p.shaders[i].entryPoint;
stages[i]->ShaderDetails = NULL;
stages[i]->customName = true;
stages[i]->name = m_pDriver->m_CreationInfo.m_Names[p.shaders[i].module];
@@ -2953,6 +2953,8 @@ void VulkanReplay::SavePipelineState()
stages[i]->stage = StageFromIndex(i);
if(p.shaders[i].mapping)
stages[i]->BindpointMapping = *p.shaders[i].mapping;
if(p.shaders[i].refl)
stages[i]->ShaderDetails = p.shaders[i].refl;
create_array_uninit(stages[i]->specialization, p.shaders[i].specialization.size());
for(size_t s = 0; s < p.shaders[i].specialization.size(); s++)
+7 -4
View File
@@ -153,10 +153,10 @@ public:
vector<DebugMessage> GetDebugMessages();
void SavePipelineState();
D3D11Pipe::State GetD3D11PipelineState() { return D3D11Pipe::State(); }
D3D12Pipe::State GetD3D12PipelineState() { return D3D12Pipe::State(); }
GLPipe::State GetGLPipelineState() { return GLPipe::State(); }
VKPipe::State GetVulkanPipelineState() { return m_VulkanPipelineState; }
const D3D11Pipe::State &GetD3D11PipelineState() { return m_D3D11State; }
const D3D12Pipe::State &GetD3D12PipelineState() { return m_D3D12State; }
const GLPipe::State &GetGLPipelineState() { return m_GLState; }
const VKPipe::State &GetVulkanPipelineState() { return m_VulkanPipelineState; }
void FreeTargetResource(ResourceId id);
void ReadLogInitialisation();
@@ -321,6 +321,9 @@ private:
};
VKPipe::State m_VulkanPipelineState;
D3D11Pipe::State m_D3D11State;
D3D12Pipe::State m_D3D12State;
GLPipe::State m_GLState;
map<uint64_t, OutputWindow> m_OutputWindows;
uint64_t m_OutputWinID;
+12 -57
View File
@@ -213,24 +213,24 @@ void ReplayController::SetFrameEvent(uint32_t eventID, bool force)
}
}
D3D11Pipe::State ReplayController::GetD3D11PipelineState()
const D3D11Pipe::State &ReplayController::GetD3D11PipelineState()
{
return m_D3D11PipelineState;
return *m_D3D11PipelineState;
}
D3D12Pipe::State ReplayController::GetD3D12PipelineState()
const D3D12Pipe::State &ReplayController::GetD3D12PipelineState()
{
return m_D3D12PipelineState;
return *m_D3D12PipelineState;
}
GLPipe::State ReplayController::GetGLPipelineState()
const GLPipe::State &ReplayController::GetGLPipelineState()
{
return m_GLPipelineState;
return *m_GLPipelineState;
}
VKPipe::State ReplayController::GetVulkanPipelineState()
const VKPipe::State &ReplayController::GetVulkanPipelineState()
{
return m_VulkanPipelineState;
return *m_VulkanPipelineState;
}
rdctype::array<rdctype::str> ReplayController::GetDisassemblyTargets()
@@ -1645,53 +1645,8 @@ void ReplayController::FetchPipelineState()
{
m_pDevice->SavePipelineState();
m_D3D11PipelineState = m_pDevice->GetD3D11PipelineState();
m_D3D12PipelineState = m_pDevice->GetD3D12PipelineState();
m_GLPipelineState = m_pDevice->GetGLPipelineState();
m_VulkanPipelineState = m_pDevice->GetVulkanPipelineState();
{
D3D11Pipe::Shader *stages[] = {
&m_D3D11PipelineState.m_VS, &m_D3D11PipelineState.m_HS, &m_D3D11PipelineState.m_DS,
&m_D3D11PipelineState.m_GS, &m_D3D11PipelineState.m_PS, &m_D3D11PipelineState.m_CS,
};
for(int i = 0; i < 6; i++)
if(stages[i]->Object != ResourceId())
stages[i]->ShaderDetails = m_pDevice->GetShader(m_pDevice->GetLiveID(stages[i]->Object), "");
}
{
D3D12Pipe::Shader *stages[] = {
&m_D3D12PipelineState.m_VS, &m_D3D12PipelineState.m_HS, &m_D3D12PipelineState.m_DS,
&m_D3D12PipelineState.m_GS, &m_D3D12PipelineState.m_PS, &m_D3D12PipelineState.m_CS,
};
for(int i = 0; i < 6; i++)
if(stages[i]->Object != ResourceId())
stages[i]->ShaderDetails = m_pDevice->GetShader(m_pDevice->GetLiveID(stages[i]->Object), "");
}
{
GLPipe::Shader *stages[] = {
&m_GLPipelineState.m_VS, &m_GLPipelineState.m_TCS, &m_GLPipelineState.m_TES,
&m_GLPipelineState.m_GS, &m_GLPipelineState.m_FS, &m_GLPipelineState.m_CS,
};
for(int i = 0; i < 6; i++)
if(stages[i]->Object != ResourceId())
stages[i]->ShaderDetails = m_pDevice->GetShader(m_pDevice->GetLiveID(stages[i]->Object), "");
}
{
VKPipe::Shader *stages[] = {
&m_VulkanPipelineState.m_VS, &m_VulkanPipelineState.m_TCS, &m_VulkanPipelineState.m_TES,
&m_VulkanPipelineState.m_GS, &m_VulkanPipelineState.m_FS, &m_VulkanPipelineState.m_CS,
};
for(int i = 0; i < 6; i++)
if(stages[i]->Object != ResourceId())
stages[i]->ShaderDetails = m_pDevice->GetShader(m_pDevice->GetLiveID(stages[i]->Object),
stages[i]->entryPoint.elems);
}
m_D3D11PipelineState = &m_pDevice->GetD3D11PipelineState();
m_D3D12PipelineState = &m_pDevice->GetD3D12PipelineState();
m_GLPipelineState = &m_pDevice->GetGLPipelineState();
m_VulkanPipelineState = &m_pDevice->GetVulkanPipelineState();
}
+8 -8
View File
@@ -137,10 +137,10 @@ public:
void FetchPipelineState();
D3D11Pipe::State GetD3D11PipelineState();
D3D12Pipe::State GetD3D12PipelineState();
GLPipe::State GetGLPipelineState();
VKPipe::State GetVulkanPipelineState();
const D3D11Pipe::State &GetD3D11PipelineState();
const D3D12Pipe::State &GetD3D12PipelineState();
const GLPipe::State &GetGLPipelineState();
const VKPipe::State &GetVulkanPipelineState();
rdctype::array<rdctype::str> GetDisassemblyTargets();
rdctype::str DisassembleShader(const ShaderReflection *refl, const char *target);
@@ -213,10 +213,10 @@ private:
uint32_t m_EventID;
D3D11Pipe::State m_D3D11PipelineState;
D3D12Pipe::State m_D3D12PipelineState;
GLPipe::State m_GLPipelineState;
VKPipe::State m_VulkanPipelineState;
const D3D11Pipe::State *m_D3D11PipelineState;
const D3D12Pipe::State *m_D3D12PipelineState;
const GLPipe::State *m_GLPipelineState;
const VKPipe::State *m_VulkanPipelineState;
std::vector<ReplayOutput *> m_Outputs;
+4 -4
View File
@@ -98,10 +98,10 @@ public:
virtual vector<EventUsage> GetUsage(ResourceId id) = 0;
virtual void SavePipelineState() = 0;
virtual D3D11Pipe::State GetD3D11PipelineState() = 0;
virtual D3D12Pipe::State GetD3D12PipelineState() = 0;
virtual GLPipe::State GetGLPipelineState() = 0;
virtual VKPipe::State GetVulkanPipelineState() = 0;
virtual const D3D11Pipe::State &GetD3D11PipelineState() = 0;
virtual const D3D12Pipe::State &GetD3D12PipelineState() = 0;
virtual const GLPipe::State &GetGLPipelineState() = 0;
virtual const VKPipe::State &GetVulkanPipelineState() = 0;
virtual FrameRecord GetFrameRecord() = 0;