Look up constant buffers properly via shader details in D3D11. Refs #411

This commit is contained in:
baldurk
2016-11-02 16:31:51 +01:00
parent 94eb512726
commit dc96853b39
+10 -5
View File
@@ -943,13 +943,18 @@ namespace renderdocui.Code
case ShaderStageType.Compute: s = m_D3D11.m_CS; break;
}
if(BufIdx < s.ConstantBuffers.Length)
if (s.ShaderDetails != null && BufIdx < s.ShaderDetails.ConstantBlocks.Length)
{
buf = s.ConstantBuffers[BufIdx].Buffer;
ByteOffset = (ulong)(s.ConstantBuffers[BufIdx].VecOffset * 4 * sizeof(float));
ByteSize = (ulong)(s.ConstantBuffers[BufIdx].VecCount * 4 * sizeof(float));
int bind = s.ShaderDetails.ConstantBlocks[BufIdx].bindPoint;
return;
if (bind < s.ConstantBuffers.Length)
{
buf = s.ConstantBuffers[bind].Buffer;
ByteOffset = (ulong)(s.ConstantBuffers[bind].VecOffset * 4 * sizeof(float));
ByteSize = (ulong)(s.ConstantBuffers[bind].VecCount * 4 * sizeof(float));
return;
}
}
}
else if (IsLogD3D12)