mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-20 21:46:52 +00:00
Fix fetching DRED contexts
* Though these are broken as they are not properly processing BeginEvent strings which are not packed/encoded
This commit is contained in:
@@ -3748,8 +3748,12 @@ void WrappedID3D12Device::DumpDRED(D3D12_AUTO_BREADCRUMB_NODE *node,
|
||||
if(ctx && numContexts > 0 && ctx->BreadcrumbIndex == i)
|
||||
{
|
||||
RDCLOG(" [%u]: %s -- %ls", i, ToStr(node->pCommandHistory[i]).c_str(), ctx->pContextString);
|
||||
ctx++;
|
||||
numContexts--;
|
||||
// sometimes get duplicates?
|
||||
while(ctx->BreadcrumbIndex == i)
|
||||
{
|
||||
ctx++;
|
||||
numContexts--;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -549,6 +549,26 @@ class WrappedID3D12CommandQueue;
|
||||
template <typename SerialiserType> \
|
||||
bool CONCAT(Serialise_, func(SerialiserType &ser, __VA_ARGS__));
|
||||
|
||||
template <typename DRED_NODE>
|
||||
inline void GetDREDContexts(const DRED_NODE *node, D3D12_DRED_BREADCRUMB_CONTEXT **contexts,
|
||||
UINT &numContexts);
|
||||
|
||||
template <>
|
||||
inline void GetDREDContexts(const D3D12_AUTO_BREADCRUMB_NODE *node,
|
||||
D3D12_DRED_BREADCRUMB_CONTEXT **contexts, UINT &numContexts)
|
||||
{
|
||||
*contexts = NULL;
|
||||
numContexts = 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline void GetDREDContexts(const D3D12_AUTO_BREADCRUMB_NODE1 *node,
|
||||
D3D12_DRED_BREADCRUMB_CONTEXT **contexts, UINT &numContexts)
|
||||
{
|
||||
*contexts = node->pBreadcrumbContexts;
|
||||
numContexts = node->BreadcrumbContextsCount;
|
||||
}
|
||||
|
||||
class WrappedID3D12Device : public IFrameCapturer, public ID3DDevice, public ID3D12Device14
|
||||
{
|
||||
private:
|
||||
@@ -805,21 +825,6 @@ private:
|
||||
|
||||
void DumpDREDPageFault(const D3D12_DRED_PAGE_FAULT_OUTPUT &DredPageFaultOutput);
|
||||
|
||||
template <typename DRED_NODE>
|
||||
void GetDREDContexts(DRED_NODE *node, D3D12_DRED_BREADCRUMB_CONTEXT **contexts, UINT &numContexts)
|
||||
{
|
||||
*contexts = NULL;
|
||||
numContexts = 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
void GetDREDContexts(D3D12_AUTO_BREADCRUMB_NODE1 *node, D3D12_DRED_BREADCRUMB_CONTEXT **contexts,
|
||||
UINT &numContexts)
|
||||
{
|
||||
*contexts = node->pBreadcrumbContexts;
|
||||
numContexts = node->BreadcrumbContextsCount;
|
||||
}
|
||||
|
||||
template <typename DRED_NODE>
|
||||
void DumpDRED(DRED_NODE *head)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user