Fetch D3D12 dynamic feedback directly as descriptor accesses

This commit is contained in:
baldurk
2024-04-10 18:58:51 +01:00
parent 5e759b7fc9
commit 2c170df588
6 changed files with 350 additions and 307 deletions
@@ -76,6 +76,8 @@ enum class ShaderType
Max,
};
ShaderStage GetShaderStage(ShaderType type);
/////////////////////////////////////////////////////////////////////////
// the below classes basically mimics the existing reflection interface.
//
@@ -290,6 +290,22 @@ ShaderBuiltin GetSystemValue(SVSemantic systemValue)
return ShaderBuiltin::Undefined;
}
ShaderStage GetShaderStage(ShaderType type)
{
switch(type)
{
case DXBC::ShaderType::Pixel: return ShaderStage::Pixel;
case DXBC::ShaderType::Vertex: return ShaderStage::Vertex;
case DXBC::ShaderType::Geometry: return ShaderStage::Geometry;
case DXBC::ShaderType::Hull: return ShaderStage::Hull;
case DXBC::ShaderType::Domain: return ShaderStage::Domain;
case DXBC::ShaderType::Compute: return ShaderStage::Compute;
case DXBC::ShaderType::Amplification: return ShaderStage::Amplification;
case DXBC::ShaderType::Mesh: return ShaderStage::Mesh;
default: RDCERR("Unexpected DXBC shader type %u", type); return ShaderStage::Vertex;
}
}
rdcstr TypeName(CBufferVariableType desc)
{
rdcstr ret;