mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 17:40:39 +00:00
Update D3D11 initial state handling to write directly from mapped buffer
This commit is contained in:
@@ -246,6 +246,13 @@ public:
|
||||
ret func; \
|
||||
bool CONCAT(Serialise_, func);
|
||||
|
||||
// A handy macros to say "is the serialiser reading and we're doing replay-mode stuff?"
|
||||
// The reason we check both is that checking the first allows the compiler to eliminate the other
|
||||
// path at compile-time, and the second because we might be just struct-serialising in which case we
|
||||
// should be doing no work to restore states.
|
||||
// Writing is unambiguously during capture mode, so we don't have to check both in that case.
|
||||
#define IsReplayingAndReading() (ser.IsReading() && IsReplayMode(m_State))
|
||||
|
||||
enum class D3D11Chunk : uint32_t
|
||||
{
|
||||
DeviceInitialisation = (uint32_t)SystemChunk::FirstDriverChunk,
|
||||
|
||||
@@ -489,7 +489,12 @@ public:
|
||||
// log replaying
|
||||
|
||||
bool Prepare_InitialState(ID3D11DeviceChild *res);
|
||||
bool Serialise_InitialState(ResourceId resid, ID3D11DeviceChild *res);
|
||||
uint32_t GetSize_InitialState(ResourceId id, ID3D11DeviceChild *res);
|
||||
template <typename SerialiserType>
|
||||
bool Serialise_InitialState(SerialiserType &ser, ResourceId resid, ID3D11DeviceChild *res);
|
||||
|
||||
bool ShouldOmitInitState(D3D11_TEXTURE2D_DESC &desc, ResourceId Id);
|
||||
|
||||
void Create_InitialState(ResourceId id, ID3D11DeviceChild *live, bool hasData);
|
||||
void Apply_InitialState(ID3D11DeviceChild *live, D3D11ResourceManager::InitialContentData initial);
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -104,9 +104,15 @@ bool D3D11ResourceManager::Prepare_InitialState(ID3D11DeviceChild *res)
|
||||
return m_Device->Prepare_InitialState(res);
|
||||
}
|
||||
|
||||
bool D3D11ResourceManager::Serialise_InitialState(ResourceId id, ID3D11DeviceChild *res)
|
||||
uint32_t D3D11ResourceManager::GetSize_InitialState(ResourceId id, ID3D11DeviceChild *res)
|
||||
{
|
||||
return m_Device->Serialise_InitialState(id, res);
|
||||
return m_Device->GetSize_InitialState(id, res);
|
||||
}
|
||||
|
||||
bool D3D11ResourceManager::Serialise_InitialState(WriteSerialiser &ser, ResourceId id,
|
||||
ID3D11DeviceChild *res)
|
||||
{
|
||||
return m_Device->Serialise_InitialState(ser, id, res);
|
||||
}
|
||||
|
||||
void D3D11ResourceManager::Create_InitialState(ResourceId id, ID3D11DeviceChild *live, bool hasData)
|
||||
|
||||
@@ -170,11 +170,7 @@ class D3D11ResourceManager
|
||||
: public ResourceManager<ID3D11DeviceChild *, ID3D11DeviceChild *, D3D11ResourceRecord>
|
||||
{
|
||||
public:
|
||||
D3D11ResourceManager(LogState state, Serialiser *ser, WrappedID3D11Device *dev)
|
||||
: ResourceManager(state, ser), m_Device(dev)
|
||||
{
|
||||
}
|
||||
|
||||
D3D11ResourceManager(WrappedID3D11Device *dev) : m_Device(dev) {}
|
||||
ID3D11DeviceChild *UnwrapResource(ID3D11DeviceChild *res);
|
||||
ID3D11Resource *UnwrapResource(ID3D11Resource *res)
|
||||
{
|
||||
@@ -190,7 +186,8 @@ private:
|
||||
bool Force_InitialState(ID3D11DeviceChild *res, bool prepare);
|
||||
bool Need_InitialStateChunk(ID3D11DeviceChild *res);
|
||||
bool Prepare_InitialState(ID3D11DeviceChild *res);
|
||||
bool Serialise_InitialState(ResourceId resid, ID3D11DeviceChild *res);
|
||||
uint32_t GetSize_InitialState(ResourceId id, ID3D11DeviceChild *res);
|
||||
bool Serialise_InitialState(WriteSerialiser &ser, ResourceId resid, ID3D11DeviceChild *res);
|
||||
void Create_InitialState(ResourceId id, ID3D11DeviceChild *live, bool hasData);
|
||||
void Apply_InitialState(ID3D11DeviceChild *live, InitialContentData data);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user