Skip to content

Commit 22b9e1d

Browse files
committed
Show DXIL debugger missing resources as DebugMessage instead of RDCERR
1 parent defb871 commit 22b9e1d

File tree

1 file changed

+37
-15
lines changed

1 file changed

+37
-15
lines changed

renderdoc/driver/d3d12/d3d12_dxil_debug.cpp

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1276,17 +1276,22 @@ SRVInfo D3D12APIWrapper::FetchSRV(const BindingSlot &slot)
12761276
}
12771277
}
12781278

1279-
RDCERR("Couldn't find root signature parameter corresponding to SRV %u in space %u",
1280-
slot.shaderRegister, slot.registerSpace);
1279+
m_Device->AddDebugMessage(
1280+
MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning,
1281+
StringFormat::Fmt(
1282+
"Couldn't find root signature parameter corresponding to SRV %u in space %u",
1283+
slot.shaderRegister, slot.registerSpace));
12811284
{
12821285
SCOPED_WRITELOCK(m_SRVsLock);
12831286
m_SRVInfos[slot] = srvData;
12841287
}
12851288
return srvData;
12861289
}
12871290

1288-
RDCERR("No root signature bound, couldn't identify SRV %u in space %u", slot.shaderRegister,
1289-
slot.registerSpace);
1291+
m_Device->AddDebugMessage(
1292+
MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning,
1293+
StringFormat::Fmt("No root signature bound, couldn't identify SRV %u in space %u",
1294+
slot.shaderRegister, slot.registerSpace));
12901295
{
12911296
SCOPED_WRITELOCK(m_SRVsLock);
12921297
m_SRVInfos[slot] = srvData;
@@ -1379,13 +1384,17 @@ UAVInfo D3D12APIWrapper::FetchUAV(const D3D12Descriptor *resDescriptor, const Bi
13791384
if(counterData.size() == 4)
13801385
uavData.hiddenCounter = *((uint32_t *)counterData.data());
13811386
else
1382-
RDCERR("Couldn't read UAV counter data for UAV in slot %u space %u",
1383-
slot.shaderRegister, slot.registerSpace);
1387+
m_Device->AddDebugMessage(
1388+
MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning,
1389+
StringFormat::Fmt("Couldn't read UAV counter data for UAV in slot %u space %u",
1390+
slot.shaderRegister, slot.registerSpace));
13841391
}
13851392
else
13861393
{
1387-
RDCERR("NULL counter resource for UAV in slot %u space %u", slot.shaderRegister,
1388-
slot.registerSpace);
1394+
m_Device->AddDebugMessage(
1395+
MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning,
1396+
StringFormat::Fmt("NULL counter resource for UAV in slot %u space %u",
1397+
slot.shaderRegister, slot.registerSpace));
13891398
}
13901399
}
13911400
}
@@ -1563,17 +1572,22 @@ UAVInfo D3D12APIWrapper::FetchUAV(const BindingSlot &slot)
15631572
}
15641573
}
15651574

1566-
RDCERR("Couldn't find root signature parameter corresponding to UAV %u in space %u",
1567-
slot.shaderRegister, slot.registerSpace);
1575+
m_Device->AddDebugMessage(
1576+
MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning,
1577+
StringFormat::Fmt(
1578+
"Couldn't find root signature parameter corresponding to UAV %u in space %u",
1579+
slot.shaderRegister, slot.registerSpace));
15681580
{
15691581
SCOPED_WRITELOCK(m_UAVsLock);
15701582
m_UAVInfos[slot] = uavData;
15711583
}
15721584
return uavData;
15731585
}
15741586

1575-
RDCERR("No root signature bound, couldn't identify UAV %u in space %u", slot.shaderRegister,
1576-
slot.registerSpace);
1587+
m_Device->AddDebugMessage(
1588+
MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning,
1589+
StringFormat::Fmt("No root signature bound, couldn't identify UAV %u in space %u",
1590+
slot.shaderRegister, slot.registerSpace));
15771591
{
15781592
SCOPED_WRITELOCK(m_UAVsLock);
15791593
m_UAVInfos[slot] = uavData;
@@ -1990,7 +2004,10 @@ ResourceReferenceInfo D3D12APIWrapper::FetchResourceReferenceInfo(const DXDebug:
19902004
}
19912005
else
19922006
{
1993-
RDCERR("Unknown SRV resource at Descriptor Index %u", descriptorIndex);
2007+
m_Device->AddDebugMessage(
2008+
MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning,
2009+
StringFormat::Fmt("Internal error: Uknown %s resource at Descriptor Index %u",
2010+
ToStr(resRefInfo.resClass).c_str(), descriptorIndex));
19942011
return ResourceReferenceInfo();
19952012
}
19962013

@@ -2031,7 +2048,10 @@ ResourceReferenceInfo D3D12APIWrapper::FetchResourceReferenceInfo(const DXDebug:
20312048
break;
20322049
}
20332050
default:
2034-
RDCERR("Unhandled Descriptor Type %s", ToStr(desc.GetType()).c_str());
2051+
m_Device->AddDebugMessage(MessageCategory::Execution, MessageSeverity::High,
2052+
MessageSource::RuntimeWarning,
2053+
StringFormat::Fmt("Internal error: Unhandled Descriptor Type %s",
2054+
ToStr(desc.GetType()).c_str()));
20352055
return ResourceReferenceInfo();
20362056
}
20372057
return resRefInfo;
@@ -2104,7 +2124,9 @@ ShaderDirectAccess D3D12APIWrapper::FetchShaderDirectAccess(DescriptorType type,
21042124
}
21052125
}
21062126
}
2107-
RDCERR("Failed to find descriptor %u %u", (uint32_t)heapType, descriptorIndex);
2127+
m_Device->AddDebugMessage(
2128+
MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning,
2129+
StringFormat::Fmt("Failed to find descriptor %u %u", (uint32_t)heapType, descriptorIndex));
21082130
return ShaderDirectAccess();
21092131
}
21102132
};

0 commit comments

Comments
 (0)