mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Get abbreviations from common pipeline state (as they're API specific)
* Also the PipelineStateViewer will set its current 'sticky' API type to the common pipeline state, so that when a log isn't loaded we can still get API-specific properties that match the last API used.
This commit is contained in:
@@ -49,6 +49,8 @@ namespace renderdocui.Code
|
||||
m_Vulkan = vk;
|
||||
}
|
||||
|
||||
public APIPipelineStateType DefaultType = APIPipelineStateType.D3D11;
|
||||
|
||||
private bool LogLoaded
|
||||
{
|
||||
get
|
||||
@@ -103,6 +105,62 @@ namespace renderdocui.Code
|
||||
}
|
||||
}
|
||||
|
||||
public bool SupportsResourceArrays
|
||||
{
|
||||
get
|
||||
{
|
||||
if (LogLoaded)
|
||||
{
|
||||
if (IsLogVK)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public string Abbrev(ShaderStageType stage)
|
||||
{
|
||||
if (IsLogD3D11 || (!LogLoaded && DefaultType == APIPipelineStateType.D3D11))
|
||||
{
|
||||
switch (stage)
|
||||
{
|
||||
case ShaderStageType.Vertex: return "VS";
|
||||
case ShaderStageType.Hull: return "HS";
|
||||
case ShaderStageType.Domain: return "DS";
|
||||
case ShaderStageType.Geometry: return "GS";
|
||||
case ShaderStageType.Pixel: return "PS";
|
||||
case ShaderStageType.Compute: return "CS";
|
||||
}
|
||||
}
|
||||
else if (IsLogGL || (!LogLoaded && DefaultType == APIPipelineStateType.OpenGL) ||
|
||||
IsLogVK || (!LogLoaded && DefaultType == APIPipelineStateType.Vulkan))
|
||||
{
|
||||
switch (stage)
|
||||
{
|
||||
case ShaderStageType.Vertex: return "VS";
|
||||
case ShaderStageType.Tess_Control: return "TCS";
|
||||
case ShaderStageType.Tess_Eval: return "TES";
|
||||
case ShaderStageType.Geometry: return "GS";
|
||||
case ShaderStageType.Fragment: return "FS";
|
||||
case ShaderStageType.Compute: return "CS";
|
||||
}
|
||||
}
|
||||
|
||||
return "?S";
|
||||
}
|
||||
|
||||
public string OutputAbbrev()
|
||||
{
|
||||
if (IsLogGL || (!LogLoaded && DefaultType == APIPipelineStateType.OpenGL) ||
|
||||
IsLogVK || (!LogLoaded && DefaultType == APIPipelineStateType.Vulkan))
|
||||
{
|
||||
return "FB";
|
||||
}
|
||||
|
||||
return "RT";
|
||||
}
|
||||
|
||||
// there's a lot of redundancy in these functions
|
||||
|
||||
public ShaderBindpointMapping GetBindpointMapping(ShaderStageType stage)
|
||||
@@ -604,20 +662,6 @@ namespace renderdocui.Code
|
||||
return null;
|
||||
}
|
||||
|
||||
public bool SupportsResourceArrays
|
||||
{
|
||||
get
|
||||
{
|
||||
if (LogLoaded)
|
||||
{
|
||||
if (IsLogVK)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void GetConstantBuffer(ShaderStageType stage, uint BufIdx, uint ArrayIdx, out ResourceId buf, out ulong ByteOffset, out ulong ByteSize)
|
||||
{
|
||||
if (LogLoaded)
|
||||
|
||||
@@ -725,36 +725,6 @@ namespace renderdoc
|
||||
return stage.ToString();
|
||||
}
|
||||
|
||||
public static string Abbrev(this ShaderStageType stage, APIPipelineStateType apitype)
|
||||
{
|
||||
if (apitype == APIPipelineStateType.D3D11)
|
||||
{
|
||||
switch (stage)
|
||||
{
|
||||
case ShaderStageType.Vertex: return "VS";
|
||||
case ShaderStageType.Hull: return "HS";
|
||||
case ShaderStageType.Domain: return "DS";
|
||||
case ShaderStageType.Geometry: return "GS";
|
||||
case ShaderStageType.Pixel: return "PS";
|
||||
case ShaderStageType.Compute: return "CS";
|
||||
}
|
||||
}
|
||||
else if (apitype == APIPipelineStateType.OpenGL)
|
||||
{
|
||||
switch (stage)
|
||||
{
|
||||
case ShaderStageType.Vertex: return "VS";
|
||||
case ShaderStageType.Tess_Control: return "TCS";
|
||||
case ShaderStageType.Tess_Eval: return "TES";
|
||||
case ShaderStageType.Geometry: return "GS";
|
||||
case ShaderStageType.Fragment: return "FS";
|
||||
case ShaderStageType.Compute: return "CS";
|
||||
}
|
||||
}
|
||||
|
||||
return "?S";
|
||||
}
|
||||
|
||||
public static string Str(this SystemAttribute systemValue)
|
||||
{
|
||||
switch (systemValue)
|
||||
|
||||
@@ -101,6 +101,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
}
|
||||
|
||||
m_Current = m_D3D11;
|
||||
m_Core.CurPipelineState.DefaultType = APIPipelineStateType.D3D11;
|
||||
}
|
||||
|
||||
private void SetToGL()
|
||||
@@ -117,6 +118,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
}
|
||||
|
||||
m_Current = m_GL;
|
||||
m_Core.CurPipelineState.DefaultType = APIPipelineStateType.OpenGL;
|
||||
}
|
||||
|
||||
private void SetToVulkan()
|
||||
@@ -133,6 +135,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
}
|
||||
|
||||
m_Current = m_Vulkan;
|
||||
m_Core.CurPipelineState.DefaultType = APIPipelineStateType.Vulkan;
|
||||
}
|
||||
|
||||
public void OnLogfileLoaded()
|
||||
|
||||
Reference in New Issue
Block a user