Give Vulkan shader stage structs in pipeline state consistent names

This commit is contained in:
baldurk
2017-01-24 12:12:33 +00:00
parent 581c55f615
commit 31c29c3149
10 changed files with 164 additions and 164 deletions
+38 -38
View File
@@ -175,12 +175,12 @@ ShaderBindpointMapping CommonPipelineState::GetBindpointMapping(ShaderStageType
{
switch(stage)
{
case eShaderStage_Vertex: return m_Vulkan->VS.BindpointMapping;
case eShaderStage_Tess_Control: return m_Vulkan->TCS.BindpointMapping;
case eShaderStage_Tess_Eval: return m_Vulkan->TES.BindpointMapping;
case eShaderStage_Geometry: return m_Vulkan->GS.BindpointMapping;
case eShaderStage_Fragment: return m_Vulkan->FS.BindpointMapping;
case eShaderStage_Compute: return m_Vulkan->CS.BindpointMapping;
case eShaderStage_Vertex: return m_Vulkan->m_VS.BindpointMapping;
case eShaderStage_Tess_Control: return m_Vulkan->m_TCS.BindpointMapping;
case eShaderStage_Tess_Eval: return m_Vulkan->m_TES.BindpointMapping;
case eShaderStage_Geometry: return m_Vulkan->m_GS.BindpointMapping;
case eShaderStage_Fragment: return m_Vulkan->m_FS.BindpointMapping;
case eShaderStage_Compute: return m_Vulkan->m_CS.BindpointMapping;
default: break;
}
}
@@ -236,12 +236,12 @@ ShaderReflection *CommonPipelineState::GetShaderReflection(ShaderStageType stage
{
switch(stage)
{
case eShaderStage_Vertex: return m_Vulkan->VS.ShaderDetails;
case eShaderStage_Tess_Control: return m_Vulkan->TCS.ShaderDetails;
case eShaderStage_Tess_Eval: return m_Vulkan->TES.ShaderDetails;
case eShaderStage_Geometry: return m_Vulkan->GS.ShaderDetails;
case eShaderStage_Fragment: return m_Vulkan->FS.ShaderDetails;
case eShaderStage_Compute: return m_Vulkan->CS.ShaderDetails;
case eShaderStage_Vertex: return m_Vulkan->m_VS.ShaderDetails;
case eShaderStage_Tess_Control: return m_Vulkan->m_TCS.ShaderDetails;
case eShaderStage_Tess_Eval: return m_Vulkan->m_TES.ShaderDetails;
case eShaderStage_Geometry: return m_Vulkan->m_GS.ShaderDetails;
case eShaderStage_Fragment: return m_Vulkan->m_FS.ShaderDetails;
case eShaderStage_Compute: return m_Vulkan->m_CS.ShaderDetails;
default: break;
}
}
@@ -258,12 +258,12 @@ QString CommonPipelineState::GetShaderEntryPoint(ShaderStageType stage)
{
switch(stage)
{
case eShaderStage_Vertex: ret = m_Vulkan->VS.entryPoint; break;
case eShaderStage_Tess_Control: ret = m_Vulkan->TCS.entryPoint; break;
case eShaderStage_Tess_Eval: ret = m_Vulkan->TES.entryPoint; break;
case eShaderStage_Geometry: ret = m_Vulkan->GS.entryPoint; break;
case eShaderStage_Fragment: ret = m_Vulkan->FS.entryPoint; break;
case eShaderStage_Compute: ret = m_Vulkan->CS.entryPoint; break;
case eShaderStage_Vertex: ret = m_Vulkan->m_VS.entryPoint; break;
case eShaderStage_Tess_Control: ret = m_Vulkan->m_TCS.entryPoint; break;
case eShaderStage_Tess_Eval: ret = m_Vulkan->m_TES.entryPoint; break;
case eShaderStage_Geometry: ret = m_Vulkan->m_GS.entryPoint; break;
case eShaderStage_Fragment: ret = m_Vulkan->m_FS.entryPoint; break;
case eShaderStage_Compute: ret = m_Vulkan->m_CS.entryPoint; break;
default: break;
}
}
@@ -318,12 +318,12 @@ ResourceId CommonPipelineState::GetShader(ShaderStageType stage)
{
switch(stage)
{
case eShaderStage_Vertex: return m_Vulkan->VS.Shader;
case eShaderStage_Tess_Control: return m_Vulkan->TCS.Shader;
case eShaderStage_Tess_Eval: return m_Vulkan->TES.Shader;
case eShaderStage_Geometry: return m_Vulkan->GS.Shader;
case eShaderStage_Fragment: return m_Vulkan->FS.Shader;
case eShaderStage_Compute: return m_Vulkan->CS.Shader;
case eShaderStage_Vertex: return m_Vulkan->m_VS.Shader;
case eShaderStage_Tess_Control: return m_Vulkan->m_TCS.Shader;
case eShaderStage_Tess_Eval: return m_Vulkan->m_TES.Shader;
case eShaderStage_Geometry: return m_Vulkan->m_GS.Shader;
case eShaderStage_Fragment: return m_Vulkan->m_FS.Shader;
case eShaderStage_Compute: return m_Vulkan->m_CS.Shader;
default: break;
}
}
@@ -381,12 +381,12 @@ QString CommonPipelineState::GetShaderName(ShaderStageType stage)
{
switch(stage)
{
case eShaderStage_Vertex: ret = m_Vulkan->VS.ShaderName; break;
case eShaderStage_Domain: ret = m_Vulkan->TCS.ShaderName; break;
case eShaderStage_Hull: ret = m_Vulkan->TES.ShaderName; break;
case eShaderStage_Geometry: ret = m_Vulkan->GS.ShaderName; break;
case eShaderStage_Pixel: ret = m_Vulkan->FS.ShaderName; break;
case eShaderStage_Compute: ret = m_Vulkan->CS.ShaderName; break;
case eShaderStage_Vertex: ret = m_Vulkan->m_VS.ShaderName; break;
case eShaderStage_Domain: ret = m_Vulkan->m_TCS.ShaderName; break;
case eShaderStage_Hull: ret = m_Vulkan->m_TES.ShaderName; break;
case eShaderStage_Geometry: ret = m_Vulkan->m_GS.ShaderName; break;
case eShaderStage_Pixel: ret = m_Vulkan->m_FS.ShaderName; break;
case eShaderStage_Compute: ret = m_Vulkan->m_CS.ShaderName; break;
default: break;
}
}
@@ -736,10 +736,10 @@ QVector<VertexInputAttribute> CommonPipelineState::GetVertexInputs()
for(int i = 0; i < attrs.count; i++)
{
int attrib = -1;
if(m_Vulkan->VS.ShaderDetails != NULL)
if(m_Vulkan->m_VS.ShaderDetails != NULL)
{
if(attrs[i].location < (uint32_t)m_Vulkan->VS.BindpointMapping.InputAttributes.count)
attrib = m_Vulkan->VS.BindpointMapping.InputAttributes[attrs[i].location];
if(attrs[i].location < (uint32_t)m_Vulkan->m_VS.BindpointMapping.InputAttributes.count)
attrib = m_Vulkan->m_VS.BindpointMapping.InputAttributes[attrs[i].location];
}
else
attrib = i;
@@ -763,15 +763,15 @@ QVector<VertexInputAttribute> CommonPipelineState::GetVertexInputs()
ret[a].Format = attrs[i].format;
ret[a].Used = true;
if(m_Vulkan->VS.ShaderDetails != NULL)
if(m_Vulkan->m_VS.ShaderDetails != NULL)
{
int attrib = -1;
if(attrs[i].location < (uint32_t)m_Vulkan->VS.BindpointMapping.InputAttributes.count)
attrib = m_Vulkan->VS.BindpointMapping.InputAttributes[attrs[i].location];
if(attrs[i].location < (uint32_t)m_Vulkan->m_VS.BindpointMapping.InputAttributes.count)
attrib = m_Vulkan->m_VS.BindpointMapping.InputAttributes[attrs[i].location];
if(attrib >= 0 && attrib < m_Vulkan->VS.ShaderDetails->InputSig.count)
ret[a].Name = m_Vulkan->VS.ShaderDetails->InputSig[attrib].varName;
if(attrib >= 0 && attrib < m_Vulkan->m_VS.ShaderDetails->InputSig.count)
ret[a].Name = m_Vulkan->m_VS.ShaderDetails->InputSig[attrib].varName;
if(attrib == -1)
continue;
+8 -8
View File
@@ -135,7 +135,7 @@ public:
return m_GL != NULL && m_GL->m_TES.Shader != ResourceId();
if(IsLogVK())
return m_Vulkan != NULL && m_Vulkan->TES.Shader != ResourceId();
return m_Vulkan != NULL && m_Vulkan->m_TES.Shader != ResourceId();
}
return false;
@@ -237,19 +237,19 @@ private:
const VulkanPipelineState::ShaderStage &GetVulkanStage(ShaderStageType stage)
{
if(stage == eShaderStage_Vertex)
return m_Vulkan->VS;
return m_Vulkan->m_VS;
if(stage == eShaderStage_Tess_Control)
return m_Vulkan->TCS;
return m_Vulkan->m_TCS;
if(stage == eShaderStage_Tess_Eval)
return m_Vulkan->TES;
return m_Vulkan->m_TES;
if(stage == eShaderStage_Geometry)
return m_Vulkan->GS;
return m_Vulkan->m_GS;
if(stage == eShaderStage_Fragment)
return m_Vulkan->FS;
return m_Vulkan->m_FS;
if(stage == eShaderStage_Compute)
return m_Vulkan->CS;
return m_Vulkan->m_CS;
qCritical() << "Error - invalid stage " << (int)stage;
return m_Vulkan->CS;
return m_Vulkan->m_CS;
}
};
@@ -466,23 +466,23 @@ const VulkanPipelineState::ShaderStage *VulkanPipelineStateViewer::stageForSende
while(widget)
{
if(widget == ui->stagesTabs->widget(0))
return &m_Ctx->CurVulkanPipelineState.VS;
return &m_Ctx->CurVulkanPipelineState.m_VS;
if(widget == ui->stagesTabs->widget(1))
return &m_Ctx->CurVulkanPipelineState.VS;
return &m_Ctx->CurVulkanPipelineState.m_VS;
if(widget == ui->stagesTabs->widget(2))
return &m_Ctx->CurVulkanPipelineState.TCS;
return &m_Ctx->CurVulkanPipelineState.m_TCS;
if(widget == ui->stagesTabs->widget(3))
return &m_Ctx->CurVulkanPipelineState.TES;
return &m_Ctx->CurVulkanPipelineState.m_TES;
if(widget == ui->stagesTabs->widget(4))
return &m_Ctx->CurVulkanPipelineState.GS;
return &m_Ctx->CurVulkanPipelineState.m_GS;
if(widget == ui->stagesTabs->widget(5))
return &m_Ctx->CurVulkanPipelineState.FS;
return &m_Ctx->CurVulkanPipelineState.m_FS;
if(widget == ui->stagesTabs->widget(6))
return &m_Ctx->CurVulkanPipelineState.FS;
return &m_Ctx->CurVulkanPipelineState.m_FS;
if(widget == ui->stagesTabs->widget(7))
return &m_Ctx->CurVulkanPipelineState.FS;
return &m_Ctx->CurVulkanPipelineState.m_FS;
if(widget == ui->stagesTabs->widget(8))
return &m_Ctx->CurVulkanPipelineState.CS;
return &m_Ctx->CurVulkanPipelineState.m_CS;
widget = widget->parentWidget();
}
@@ -1443,15 +1443,15 @@ void VulkanPipelineStateViewer::setState()
QString name = tr("Attribute %1").arg(i);
if(state.VS.Shader != ResourceId())
if(state.m_VS.Shader != ResourceId())
{
int attrib = -1;
if((int32_t)a.location < state.VS.BindpointMapping.InputAttributes.count)
attrib = state.VS.BindpointMapping.InputAttributes[a.location];
if((int32_t)a.location < state.m_VS.BindpointMapping.InputAttributes.count)
attrib = state.m_VS.BindpointMapping.InputAttributes[a.location];
if(attrib >= 0 && attrib < state.VS.ShaderDetails->InputSig.count)
if(attrib >= 0 && attrib < state.m_VS.ShaderDetails->InputSig.count)
{
name = state.VS.ShaderDetails->InputSig[attrib].varName;
name = state.m_VS.ShaderDetails->InputSig[attrib].varName;
usedSlot = true;
}
}
@@ -1702,12 +1702,12 @@ void VulkanPipelineStateViewer::setState()
ui->viBuffers->setUpdatesEnabled(true);
ui->viBuffers->verticalScrollBar()->setValue(vs);
setShaderState(state.VS, state.graphics, ui->vsShader, ui->vsResources, ui->vsUBOs);
setShaderState(state.GS, state.graphics, ui->gsShader, ui->gsResources, ui->gsUBOs);
setShaderState(state.TCS, state.graphics, ui->tcsShader, ui->tcsResources, ui->tcsUBOs);
setShaderState(state.TES, state.graphics, ui->tesShader, ui->tesResources, ui->tesUBOs);
setShaderState(state.FS, state.graphics, ui->fsShader, ui->fsResources, ui->fsUBOs);
setShaderState(state.CS, state.compute, ui->csShader, ui->csResources, ui->csUBOs);
setShaderState(state.m_VS, state.graphics, ui->vsShader, ui->vsResources, ui->vsUBOs);
setShaderState(state.m_GS, state.graphics, ui->gsShader, ui->gsResources, ui->gsUBOs);
setShaderState(state.m_TCS, state.graphics, ui->tcsShader, ui->tcsResources, ui->tcsUBOs);
setShaderState(state.m_TES, state.graphics, ui->tesShader, ui->tesResources, ui->tesUBOs);
setShaderState(state.m_FS, state.graphics, ui->fsShader, ui->fsResources, ui->fsUBOs);
setShaderState(state.m_CS, state.compute, ui->csShader, ui->csResources, ui->csUBOs);
////////////////////////////////////////////////
// Rasterizer
@@ -1825,15 +1825,15 @@ void VulkanPipelineStateViewer::setState()
name = tex->name;
typeName = ToQStr(tex->resType);
if(!tex->customName && state.FS.ShaderDetails != NULL)
if(!tex->customName && state.m_FS.ShaderDetails != NULL)
{
for(int s = 0; s < state.FS.ShaderDetails->OutputSig.count; s++)
for(int s = 0; s < state.m_FS.ShaderDetails->OutputSig.count; s++)
{
if(state.FS.ShaderDetails->OutputSig[s].regIndex == (uint32_t)colIdx &&
(state.FS.ShaderDetails->OutputSig[s].systemValue == eAttr_None ||
state.FS.ShaderDetails->OutputSig[s].systemValue == eAttr_ColourOutput))
if(state.m_FS.ShaderDetails->OutputSig[s].regIndex == (uint32_t)colIdx &&
(state.m_FS.ShaderDetails->OutputSig[s].systemValue == eAttr_None ||
state.m_FS.ShaderDetails->OutputSig[s].systemValue == eAttr_ColourOutput))
{
name = QString("<%1>").arg(ToQStr(state.FS.ShaderDetails->OutputSig[s].varName));
name = QString("<%1>").arg(ToQStr(state.m_FS.ShaderDetails->OutputSig[s].varName));
}
}
}
+1 -1
View File
@@ -175,7 +175,7 @@ struct VulkanPipelineState
rdctype::array<byte> data;
};
rdctype::array<SpecInfo> specialization;
} VS, TCS, TES, GS, FS, CS;
} m_VS, m_TCS, m_TES, m_GS, m_FS, m_CS;
struct Tessellation
{
+6 -6
View File
@@ -1237,12 +1237,12 @@ void Serialiser::Serialise(const char *name, VulkanPipelineState &el)
Serialise("", el.IA);
Serialise("", el.VI);
Serialise("", el.VS);
Serialise("", el.TCS);
Serialise("", el.TES);
Serialise("", el.GS);
Serialise("", el.FS);
Serialise("", el.CS);
Serialise("", el.m_VS);
Serialise("", el.m_TCS);
Serialise("", el.m_TES);
Serialise("", el.m_GS);
Serialise("", el.m_FS);
Serialise("", el.m_CS);
Serialise("", el.Tess);
+3 -3
View File
@@ -3184,7 +3184,7 @@ void VulkanReplay::SavePipelineState()
m_VulkanPipelineState.compute.flags = p.flags;
VulkanPipelineState::ShaderStage &stage = m_VulkanPipelineState.CS;
VulkanPipelineState::ShaderStage &stage = m_VulkanPipelineState.m_CS;
int i = 5; // 5 is the CS idx (VS, TCS, TES, GS, FS, CS)
{
@@ -3252,8 +3252,8 @@ void VulkanReplay::SavePipelineState()
// Shader Stages
VulkanPipelineState::ShaderStage *stages[] = {
&m_VulkanPipelineState.VS, &m_VulkanPipelineState.TCS, &m_VulkanPipelineState.TES,
&m_VulkanPipelineState.GS, &m_VulkanPipelineState.FS,
&m_VulkanPipelineState.m_VS, &m_VulkanPipelineState.m_TCS, &m_VulkanPipelineState.m_TES,
&m_VulkanPipelineState.m_GS, &m_VulkanPipelineState.m_FS,
};
for(size_t i = 0; i < ARRAY_COUNT(stages); i++)
+2 -2
View File
@@ -1646,8 +1646,8 @@ void ReplayRenderer::FetchPipelineState()
{
VulkanPipelineState::ShaderStage *stages[] = {
&m_VulkanPipelineState.VS, &m_VulkanPipelineState.TCS, &m_VulkanPipelineState.TES,
&m_VulkanPipelineState.GS, &m_VulkanPipelineState.FS, &m_VulkanPipelineState.CS,
&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++)
+45 -45
View File
@@ -149,7 +149,7 @@ namespace renderdocui.Code
return m_GL != null && m_GL.m_TES.Shader != ResourceId.Null;
if (IsLogVK)
return m_Vulkan != null && m_Vulkan.TES.Shader != ResourceId.Null;
return m_Vulkan != null && m_Vulkan.m_TES.Shader != ResourceId.Null;
}
return false;
@@ -330,12 +330,12 @@ namespace renderdocui.Code
{
switch (stage)
{
case ShaderStageType.Vertex: return m_Vulkan.VS.BindpointMapping;
case ShaderStageType.Tess_Control: return m_Vulkan.TCS.BindpointMapping;
case ShaderStageType.Tess_Eval: return m_Vulkan.TES.BindpointMapping;
case ShaderStageType.Geometry: return m_Vulkan.GS.BindpointMapping;
case ShaderStageType.Fragment: return m_Vulkan.FS.BindpointMapping;
case ShaderStageType.Compute: return m_Vulkan.CS.BindpointMapping;
case ShaderStageType.Vertex: return m_Vulkan.m_VS.BindpointMapping;
case ShaderStageType.Tess_Control: return m_Vulkan.m_TCS.BindpointMapping;
case ShaderStageType.Tess_Eval: return m_Vulkan.m_TES.BindpointMapping;
case ShaderStageType.Geometry: return m_Vulkan.m_GS.BindpointMapping;
case ShaderStageType.Fragment: return m_Vulkan.m_FS.BindpointMapping;
case ShaderStageType.Compute: return m_Vulkan.m_CS.BindpointMapping;
}
}
}
@@ -387,12 +387,12 @@ namespace renderdocui.Code
{
switch (stage)
{
case ShaderStageType.Vertex: return m_Vulkan.VS.ShaderDetails;
case ShaderStageType.Tess_Control: return m_Vulkan.TCS.ShaderDetails;
case ShaderStageType.Tess_Eval: return m_Vulkan.TES.ShaderDetails;
case ShaderStageType.Geometry: return m_Vulkan.GS.ShaderDetails;
case ShaderStageType.Fragment: return m_Vulkan.FS.ShaderDetails;
case ShaderStageType.Compute: return m_Vulkan.CS.ShaderDetails;
case ShaderStageType.Vertex: return m_Vulkan.m_VS.ShaderDetails;
case ShaderStageType.Tess_Control: return m_Vulkan.m_TCS.ShaderDetails;
case ShaderStageType.Tess_Eval: return m_Vulkan.m_TES.ShaderDetails;
case ShaderStageType.Geometry: return m_Vulkan.m_GS.ShaderDetails;
case ShaderStageType.Fragment: return m_Vulkan.m_FS.ShaderDetails;
case ShaderStageType.Compute: return m_Vulkan.m_CS.ShaderDetails;
}
}
}
@@ -406,12 +406,12 @@ namespace renderdocui.Code
{
switch (stage)
{
case ShaderStageType.Vertex: return m_Vulkan.VS.entryPoint;
case ShaderStageType.Tess_Control: return m_Vulkan.TCS.entryPoint;
case ShaderStageType.Tess_Eval: return m_Vulkan.TES.entryPoint;
case ShaderStageType.Geometry: return m_Vulkan.GS.entryPoint;
case ShaderStageType.Fragment: return m_Vulkan.FS.entryPoint;
case ShaderStageType.Compute: return m_Vulkan.CS.entryPoint;
case ShaderStageType.Vertex: return m_Vulkan.m_VS.entryPoint;
case ShaderStageType.Tess_Control: return m_Vulkan.m_TCS.entryPoint;
case ShaderStageType.Tess_Eval: return m_Vulkan.m_TES.entryPoint;
case ShaderStageType.Geometry: return m_Vulkan.m_GS.entryPoint;
case ShaderStageType.Fragment: return m_Vulkan.m_FS.entryPoint;
case ShaderStageType.Compute: return m_Vulkan.m_CS.entryPoint;
}
}
@@ -462,12 +462,12 @@ namespace renderdocui.Code
{
switch (stage)
{
case ShaderStageType.Vertex: return m_Vulkan.VS.Shader;
case ShaderStageType.Tess_Control: return m_Vulkan.TCS.Shader;
case ShaderStageType.Tess_Eval: return m_Vulkan.TES.Shader;
case ShaderStageType.Geometry: return m_Vulkan.GS.Shader;
case ShaderStageType.Fragment: return m_Vulkan.FS.Shader;
case ShaderStageType.Compute: return m_Vulkan.CS.Shader;
case ShaderStageType.Vertex: return m_Vulkan.m_VS.Shader;
case ShaderStageType.Tess_Control: return m_Vulkan.m_TCS.Shader;
case ShaderStageType.Tess_Eval: return m_Vulkan.m_TES.Shader;
case ShaderStageType.Geometry: return m_Vulkan.m_GS.Shader;
case ShaderStageType.Fragment: return m_Vulkan.m_FS.Shader;
case ShaderStageType.Compute: return m_Vulkan.m_CS.Shader;
}
}
}
@@ -519,12 +519,12 @@ namespace renderdocui.Code
{
switch (stage)
{
case ShaderStageType.Vertex: return m_Vulkan.VS.ShaderName;
case ShaderStageType.Domain: return m_Vulkan.TCS.ShaderName;
case ShaderStageType.Hull: return m_Vulkan.TES.ShaderName;
case ShaderStageType.Geometry: return m_Vulkan.GS.ShaderName;
case ShaderStageType.Pixel: return m_Vulkan.FS.ShaderName;
case ShaderStageType.Compute: return m_Vulkan.CS.ShaderName;
case ShaderStageType.Vertex: return m_Vulkan.m_VS.ShaderName;
case ShaderStageType.Domain: return m_Vulkan.m_TCS.ShaderName;
case ShaderStageType.Hull: return m_Vulkan.m_TES.ShaderName;
case ShaderStageType.Geometry: return m_Vulkan.m_GS.ShaderName;
case ShaderStageType.Pixel: return m_Vulkan.m_FS.ShaderName;
case ShaderStageType.Compute: return m_Vulkan.m_CS.ShaderName;
}
}
}
@@ -875,10 +875,10 @@ namespace renderdocui.Code
for (int i = 0; i < attrs.Length; i++)
{
int attrib = -1;
if (m_Vulkan.VS.BindpointMapping != null && m_Vulkan.VS.ShaderDetails != null)
if (m_Vulkan.m_VS.BindpointMapping != null && m_Vulkan.m_VS.ShaderDetails != null)
{
if(attrs[i].location < m_Vulkan.VS.BindpointMapping.InputAttributes.Length)
attrib = m_Vulkan.VS.BindpointMapping.InputAttributes[attrs[i].location];
if(attrs[i].location < m_Vulkan.m_VS.BindpointMapping.InputAttributes.Length)
attrib = m_Vulkan.m_VS.BindpointMapping.InputAttributes[attrs[i].location];
}
else
attrib = i;
@@ -902,15 +902,15 @@ namespace renderdocui.Code
ret[a].Format = attrs[i].format;
ret[a].Used = true;
if (m_Vulkan.VS.BindpointMapping != null && m_Vulkan.VS.ShaderDetails != null)
if (m_Vulkan.m_VS.BindpointMapping != null && m_Vulkan.m_VS.ShaderDetails != null)
{
int attrib = -1;
if (attrs[i].location < m_Vulkan.VS.BindpointMapping.InputAttributes.Length)
attrib = m_Vulkan.VS.BindpointMapping.InputAttributes[attrs[i].location];
if (attrs[i].location < m_Vulkan.m_VS.BindpointMapping.InputAttributes.Length)
attrib = m_Vulkan.m_VS.BindpointMapping.InputAttributes[attrs[i].location];
if (attrib >= 0 && attrib < m_Vulkan.VS.ShaderDetails.InputSig.Length)
ret[a].Name = m_Vulkan.VS.ShaderDetails.InputSig[attrib].varName;
if (attrib >= 0 && attrib < m_Vulkan.m_VS.ShaderDetails.InputSig.Length)
ret[a].Name = m_Vulkan.m_VS.ShaderDetails.InputSig[attrib].varName;
if (attrib == -1) continue;
}
@@ -1035,12 +1035,12 @@ namespace renderdocui.Code
switch (stage)
{
case ShaderStageType.Vertex: s = m_Vulkan.VS; break;
case ShaderStageType.Tess_Control: s = m_Vulkan.TCS; break;
case ShaderStageType.Tess_Eval: s = m_Vulkan.TES; break;
case ShaderStageType.Geometry: s = m_Vulkan.GS; break;
case ShaderStageType.Fragment: s = m_Vulkan.FS; break;
case ShaderStageType.Compute: s = m_Vulkan.CS; break;
case ShaderStageType.Vertex: s = m_Vulkan.m_VS; break;
case ShaderStageType.Tess_Control: s = m_Vulkan.m_TCS; break;
case ShaderStageType.Tess_Eval: s = m_Vulkan.m_TES; break;
case ShaderStageType.Geometry: s = m_Vulkan.m_GS; break;
case ShaderStageType.Fragment: s = m_Vulkan.m_FS; break;
case ShaderStageType.Compute: s = m_Vulkan.m_CS; break;
}
if (s.ShaderDetails != null && BufIdx < s.ShaderDetails.ConstantBlocks.Length)
+1 -1
View File
@@ -208,7 +208,7 @@ namespace renderdoc
SpecInfo[] specialization;
};
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
public ShaderStage VS, TCS, TES, GS, FS, CS;
public ShaderStage m_VS, m_TCS, m_TES, m_GS, m_FS, m_CS;
[StructLayout(LayoutKind.Sequential)]
public class Tessellation
@@ -1217,15 +1217,15 @@ namespace renderdocui.Windows.PipelineState
string name = String.Format("Attribute {0}", i);
if (state.VS.Shader != ResourceId.Null)
if (state.m_VS.Shader != ResourceId.Null)
{
int attrib = -1;
if(a.location < state.VS.BindpointMapping.InputAttributes.Length)
attrib = state.VS.BindpointMapping.InputAttributes[a.location];
if(a.location < state.m_VS.BindpointMapping.InputAttributes.Length)
attrib = state.m_VS.BindpointMapping.InputAttributes[a.location];
if (attrib >= 0 && attrib < state.VS.ShaderDetails.InputSig.Length)
if (attrib >= 0 && attrib < state.m_VS.ShaderDetails.InputSig.Length)
{
name = state.VS.ShaderDetails.InputSig[attrib].varName;
name = state.m_VS.ShaderDetails.InputSig[attrib].varName;
usedSlot = true;
}
}
@@ -1460,12 +1460,12 @@ namespace renderdocui.Windows.PipelineState
viBuffers.EndUpdate();
viBuffers.SetVScrollValue(vs);
SetShaderState(texs, bufs, state.VS, state.graphics, vsShader, vsResources, vsCBuffers);
SetShaderState(texs, bufs, state.GS, state.graphics, gsShader, gsResources, gsCBuffers);
SetShaderState(texs, bufs, state.TCS, state.graphics, hsShader, hsResources, hsCBuffers);
SetShaderState(texs, bufs, state.TES, state.graphics, dsShader, dsResources, dsCBuffers);
SetShaderState(texs, bufs, state.FS, state.graphics, psShader, psResources, psCBuffers);
SetShaderState(texs, bufs, state.CS, state.compute, csShader, csResources, csCBuffers);
SetShaderState(texs, bufs, state.m_VS, state.graphics, vsShader, vsResources, vsCBuffers);
SetShaderState(texs, bufs, state.m_GS, state.graphics, gsShader, gsResources, gsCBuffers);
SetShaderState(texs, bufs, state.m_TCS, state.graphics, hsShader, hsResources, hsCBuffers);
SetShaderState(texs, bufs, state.m_TES, state.graphics, dsShader, dsResources, dsCBuffers);
SetShaderState(texs, bufs, state.m_FS, state.graphics, psShader, psResources, psCBuffers);
SetShaderState(texs, bufs, state.m_CS, state.compute, csShader, csResources, csCBuffers);
////////////////////////////////////////////////
// Rasterizer
@@ -1587,15 +1587,15 @@ namespace renderdocui.Windows.PipelineState
name = texs[t].name;
typename = texs[t].resType.Str();
if (!texs[t].customName && state.FS.ShaderDetails != null)
if (!texs[t].customName && state.m_FS.ShaderDetails != null)
{
for(int s=0; s < state.FS.ShaderDetails.OutputSig.Length; s++)
for(int s=0; s < state.m_FS.ShaderDetails.OutputSig.Length; s++)
{
if(state.FS.ShaderDetails.OutputSig[s].regIndex == colIdx &&
(state.FS.ShaderDetails.OutputSig[s].systemValue == SystemAttribute.None ||
state.FS.ShaderDetails.OutputSig[s].systemValue == SystemAttribute.ColourOutput))
if(state.m_FS.ShaderDetails.OutputSig[s].regIndex == colIdx &&
(state.m_FS.ShaderDetails.OutputSig[s].systemValue == SystemAttribute.None ||
state.m_FS.ShaderDetails.OutputSig[s].systemValue == SystemAttribute.ColourOutput))
{
name = String.Format("<{0}>", state.FS.ShaderDetails.OutputSig[s].varName);
name = String.Format("<{0}>", state.m_FS.ShaderDetails.OutputSig[s].varName);
}
}
}
@@ -1756,11 +1756,11 @@ namespace renderdocui.Windows.PipelineState
pipeFlow.SetStagesEnabled(new bool[] {
true,
true,
state.TCS.Shader != ResourceId.Null,
state.TES.Shader != ResourceId.Null,
state.GS.Shader != ResourceId.Null,
state.m_TCS.Shader != ResourceId.Null,
state.m_TES.Shader != ResourceId.Null,
state.m_GS.Shader != ResourceId.Null,
true,
state.FS.Shader != ResourceId.Null,
state.m_FS.Shader != ResourceId.Null,
true,
false
});
@@ -2112,19 +2112,19 @@ namespace renderdocui.Windows.PipelineState
while (cur is Control)
{
if (cur == tabVS)
stage = m_Core.CurVulkanPipelineState.VS;
stage = m_Core.CurVulkanPipelineState.m_VS;
else if (cur == tabGS)
stage = m_Core.CurVulkanPipelineState.GS;
stage = m_Core.CurVulkanPipelineState.m_GS;
else if (cur == tabHS)
stage = m_Core.CurVulkanPipelineState.TCS;
stage = m_Core.CurVulkanPipelineState.m_TCS;
else if (cur == tabDS)
stage = m_Core.CurVulkanPipelineState.TES;
stage = m_Core.CurVulkanPipelineState.m_TES;
else if (cur == tabPS)
stage = m_Core.CurVulkanPipelineState.FS;
stage = m_Core.CurVulkanPipelineState.m_FS;
else if (cur == tabCS)
stage = m_Core.CurVulkanPipelineState.CS;
stage = m_Core.CurVulkanPipelineState.m_CS;
else if (cur == tabOM)
stage = m_Core.CurVulkanPipelineState.FS;
stage = m_Core.CurVulkanPipelineState.m_FS;
if (stage != null)
return stage;
@@ -3584,16 +3584,16 @@ div.stage table tr td { border-right: 1px solid #AAAAAA; background-color: #EEEE
{
case 0: ExportHTML(writer, m_Core.CurVulkanPipelineState.IA); break;
case 1: ExportHTML(writer, m_Core.CurVulkanPipelineState.VI); break;
case 2: ExportHTML(writer, m_Core.CurVulkanPipelineState.VS); break;
case 3: ExportHTML(writer, m_Core.CurVulkanPipelineState.TCS); break;
case 4: ExportHTML(writer, m_Core.CurVulkanPipelineState.TES); break;
case 5: ExportHTML(writer, m_Core.CurVulkanPipelineState.GS); break;
case 2: ExportHTML(writer, m_Core.CurVulkanPipelineState.m_VS); break;
case 3: ExportHTML(writer, m_Core.CurVulkanPipelineState.m_TCS); break;
case 4: ExportHTML(writer, m_Core.CurVulkanPipelineState.m_TES); break;
case 5: ExportHTML(writer, m_Core.CurVulkanPipelineState.m_GS); break;
case 6: ExportHTML(writer, m_Core.CurVulkanPipelineState.RS); break;
case 7: ExportHTML(writer, m_Core.CurVulkanPipelineState.FS); break;
case 7: ExportHTML(writer, m_Core.CurVulkanPipelineState.m_FS); break;
case 8: ExportHTML(writer, m_Core.CurVulkanPipelineState.CB); break;
case 9: ExportHTML(writer, m_Core.CurVulkanPipelineState.DS); break;
case 10: ExportHTML(writer, m_Core.CurVulkanPipelineState.Pass); break;
case 11: ExportHTML(writer, m_Core.CurVulkanPipelineState.CS); break;
case 11: ExportHTML(writer, m_Core.CurVulkanPipelineState.m_CS); break;
}
writer.WriteEndElement();