mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-10-02 10:28:02 +00:00
Expose queries for descriptor stores and D3D12 root signature range
* This will allow a UI viewer or consumer of the replay API to more easily query 'all' descriptors for a given store.
This commit is contained in:
@@ -250,6 +250,7 @@ public:
|
||||
void RenderMesh(uint32_t eventId, const rdcarray<MeshFormat> &secondaryDraws, const MeshDisplay &cfg)
|
||||
{
|
||||
}
|
||||
rdcarray<DescriptorStoreDescription> GetDescriptorStores() { return {}; }
|
||||
rdcarray<BufferDescription> GetBuffers() { return {}; }
|
||||
rdcarray<DebugMessage> GetDebugMessages() { return rdcarray<DebugMessage>(); }
|
||||
BufferDescription GetBuffer(ResourceId id)
|
||||
|
||||
@@ -102,6 +102,7 @@ rdcstr DoStringise(const ReplayProxyPacket &el)
|
||||
STRINGISE_ENUM_NAMED(eReplayProxy_GetSamplerDescriptors, "GetSamplerDescriptors");
|
||||
STRINGISE_ENUM_NAMED(eReplayProxy_GetDescriptorAccess, "GetDescriptorAccess");
|
||||
STRINGISE_ENUM_NAMED(eReplayProxy_GetDescriptorLocations, "GetDescriptorLocations");
|
||||
STRINGISE_ENUM_NAMED(eReplayProxy_GetDescriptorStores, "GetDescriptorStores");
|
||||
}
|
||||
END_ENUM_STRINGISE();
|
||||
}
|
||||
@@ -530,6 +531,35 @@ TextureDescription ReplayProxy::GetTexture(ResourceId id)
|
||||
PROXY_FUNCTION(GetTexture, id);
|
||||
}
|
||||
|
||||
template <typename ParamSerialiser, typename ReturnSerialiser>
|
||||
rdcarray<DescriptorStoreDescription> ReplayProxy::Proxied_GetDescriptorStores(
|
||||
ParamSerialiser ¶mser, ReturnSerialiser &retser)
|
||||
{
|
||||
const ReplayProxyPacket expectedPacket = eReplayProxy_GetDescriptorStores;
|
||||
ReplayProxyPacket packet = eReplayProxy_GetDescriptorStores;
|
||||
rdcarray<DescriptorStoreDescription> ret;
|
||||
|
||||
{
|
||||
BEGIN_PARAMS();
|
||||
END_PARAMS();
|
||||
}
|
||||
|
||||
{
|
||||
REMOTE_EXECUTION();
|
||||
if(paramser.IsReading() && !paramser.IsErrored() && !m_IsErrored)
|
||||
ret = m_Remote->GetDescriptorStores();
|
||||
}
|
||||
|
||||
SERIALISE_RETURN(ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
rdcarray<DescriptorStoreDescription> ReplayProxy::GetDescriptorStores()
|
||||
{
|
||||
PROXY_FUNCTION(GetDescriptorStores);
|
||||
}
|
||||
|
||||
template <typename ParamSerialiser, typename ReturnSerialiser>
|
||||
rdcarray<BufferDescription> ReplayProxy::Proxied_GetBuffers(ParamSerialiser ¶mser,
|
||||
ReturnSerialiser &retser)
|
||||
@@ -3046,6 +3076,7 @@ bool ReplayProxy::Tick(int type)
|
||||
case eReplayProxy_GetSamplerDescriptors: GetSamplerDescriptors(ResourceId(), {}); break;
|
||||
case eReplayProxy_GetDescriptorAccess: GetDescriptorAccess(0); break;
|
||||
case eReplayProxy_GetDescriptorLocations: GetDescriptorLocations(ResourceId(), {}); break;
|
||||
case eReplayProxy_GetDescriptorStores: GetDescriptorStores(); break;
|
||||
case eReplayProxy_GetUsage: GetUsage(ResourceId()); break;
|
||||
case eReplayProxy_GetLiveID: GetLiveID(ResourceId()); break;
|
||||
case eReplayProxy_GetFrameRecord: GetFrameRecord(); break;
|
||||
|
||||
@@ -110,6 +110,7 @@ enum ReplayProxyPacket
|
||||
eReplayProxy_GetSamplerDescriptors,
|
||||
eReplayProxy_GetDescriptorAccess,
|
||||
eReplayProxy_GetDescriptorLocations,
|
||||
eReplayProxy_GetDescriptorStores,
|
||||
};
|
||||
|
||||
DECLARE_REFLECTION_ENUM(ReplayProxyPacket);
|
||||
@@ -469,6 +470,8 @@ public:
|
||||
|
||||
IMPLEMENT_FUNCTION_PROXIED(rdcarray<ResourceDescription>, GetResources);
|
||||
|
||||
IMPLEMENT_FUNCTION_PROXIED(rdcarray<DescriptorStoreDescription>, GetDescriptorStores);
|
||||
|
||||
IMPLEMENT_FUNCTION_PROXIED(rdcarray<BufferDescription>, GetBuffers);
|
||||
IMPLEMENT_FUNCTION_PROXIED(BufferDescription, GetBuffer, ResourceId id);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user