mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-12 21:10:42 +00:00
Allow resource managers to mutate initial states
* This is useful for being able to cache data during apply, rather than during serialise when we don't typically execute GPU work.
This commit is contained in:
@@ -700,7 +700,7 @@ protected:
|
||||
virtual bool Serialise_InitialState(WriteSerialiser &ser, ResourceId id, RecordType *record,
|
||||
const InitialContentData *initialData) = 0;
|
||||
virtual void Create_InitialState(ResourceId id, WrappedResourceType live, bool hasData) = 0;
|
||||
virtual void Apply_InitialState(WrappedResourceType live, const InitialContentData &initial) = 0;
|
||||
virtual void Apply_InitialState(WrappedResourceType live, InitialContentData &initial) = 0;
|
||||
virtual rdcarray<ResourceId> InitialContentResources();
|
||||
|
||||
void UpdateLastWriteTime(ResourceId id, FrameRefType refType);
|
||||
@@ -1377,7 +1377,7 @@ void ResourceManager<Configuration>::ApplyInitialContents()
|
||||
for(auto it = resources.begin(); it != resources.end(); ++it)
|
||||
{
|
||||
ResourceId id = *it;
|
||||
const InitialContentStorage &data = m_InitialContents[id];
|
||||
InitialContentStorage &data = m_InitialContents[id];
|
||||
WrappedResourceType live = GetLiveResource(id);
|
||||
Apply_InitialState(live, data.data);
|
||||
}
|
||||
|
||||
@@ -767,7 +767,7 @@ public:
|
||||
const D3D11InitialContents *initial);
|
||||
|
||||
void Create_InitialState(ResourceId id, ID3D11DeviceChild *live, bool hasData);
|
||||
void Apply_InitialState(ID3D11DeviceChild *live, const D3D11InitialContents &initial);
|
||||
void Apply_InitialState(ID3D11DeviceChild *live, D3D11InitialContents &initial);
|
||||
|
||||
void SetStructuredExport(uint64_t sectionVersion)
|
||||
{
|
||||
|
||||
@@ -1297,8 +1297,7 @@ void WrappedID3D11Device::Create_InitialState(ResourceId id, ID3D11DeviceChild *
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedID3D11Device::Apply_InitialState(ID3D11DeviceChild *live,
|
||||
const D3D11InitialContents &initial)
|
||||
void WrappedID3D11Device::Apply_InitialState(ID3D11DeviceChild *live, D3D11InitialContents &initial)
|
||||
{
|
||||
if(HasFatalError())
|
||||
return;
|
||||
|
||||
@@ -96,8 +96,7 @@ void D3D11ResourceManager::Create_InitialState(ResourceId id, ID3D11DeviceChild
|
||||
m_Device->Create_InitialState(id, live, hasData);
|
||||
}
|
||||
|
||||
void D3D11ResourceManager::Apply_InitialState(ID3D11DeviceChild *live,
|
||||
const D3D11InitialContents &data)
|
||||
void D3D11ResourceManager::Apply_InitialState(ID3D11DeviceChild *live, D3D11InitialContents &data)
|
||||
{
|
||||
m_Device->Apply_InitialState(live, data);
|
||||
}
|
||||
|
||||
@@ -322,7 +322,7 @@ private:
|
||||
bool Serialise_InitialState(WriteSerialiser &ser, ResourceId id, D3D11ResourceRecord *record,
|
||||
const D3D11InitialContents *initial);
|
||||
void Create_InitialState(ResourceId id, ID3D11DeviceChild *live, bool hasData);
|
||||
void Apply_InitialState(ID3D11DeviceChild *live, const D3D11InitialContents &data);
|
||||
void Apply_InitialState(ID3D11DeviceChild *live, D3D11InitialContents &data);
|
||||
|
||||
WrappedID3D11Device *m_Device;
|
||||
};
|
||||
|
||||
@@ -1634,8 +1634,7 @@ void D3D12ResourceManager::Create_InitialState(ResourceId id, ID3D12DeviceChild
|
||||
}
|
||||
}
|
||||
|
||||
void D3D12ResourceManager::Apply_InitialState(ID3D12DeviceChild *live,
|
||||
const D3D12InitialContents &data)
|
||||
void D3D12ResourceManager::Apply_InitialState(ID3D12DeviceChild *live, D3D12InitialContents &data)
|
||||
{
|
||||
if(m_Device->HasFatalError())
|
||||
return;
|
||||
|
||||
@@ -1309,7 +1309,7 @@ private:
|
||||
return Serialise_InitialState<WriteSerialiser>(ser, id, record, initial);
|
||||
}
|
||||
void Create_InitialState(ResourceId id, ID3D12DeviceChild *live, bool hasData);
|
||||
void Apply_InitialState(ID3D12DeviceChild *live, const D3D12InitialContents &data);
|
||||
void Apply_InitialState(ID3D12DeviceChild *live, D3D12InitialContents &data);
|
||||
rdcarray<ResourceId> InitialContentResources();
|
||||
|
||||
WrappedID3D12Device *m_Device;
|
||||
|
||||
@@ -1920,7 +1920,7 @@ void GLResourceManager::Create_InitialState(ResourceId id, GLResource live, bool
|
||||
}
|
||||
}
|
||||
|
||||
void GLResourceManager::Apply_InitialState(GLResource live, const GLInitialContents &initial)
|
||||
void GLResourceManager::Apply_InitialState(GLResource live, GLInitialContents &initial)
|
||||
{
|
||||
if(live.Namespace == eResBuffer)
|
||||
{
|
||||
|
||||
@@ -333,7 +333,7 @@ private:
|
||||
void PrepareTextureInitialContents(ResourceId liveid, ResourceId origid, GLResource res);
|
||||
|
||||
void Create_InitialState(ResourceId id, GLResource live, bool hasData);
|
||||
void Apply_InitialState(GLResource live, const GLInitialContents &initial);
|
||||
void Apply_InitialState(GLResource live, GLInitialContents &initial);
|
||||
|
||||
void MarkFBOAttachmentsReferenced(ResourceId id, GLResourceRecord *record, FrameRefType ref,
|
||||
bool markDirty);
|
||||
|
||||
@@ -1220,7 +1220,7 @@ public:
|
||||
bool Serialise_InitialState(SerialiserType &ser, ResourceId id, VkResourceRecord *record,
|
||||
const VkInitialContents *initial);
|
||||
void Create_InitialState(ResourceId id, WrappedVkRes *live, bool hasData);
|
||||
void Apply_InitialState(WrappedVkRes *live, const VkInitialContents &initial);
|
||||
void Apply_InitialState(WrappedVkRes *live, VkInitialContents &initial);
|
||||
|
||||
void RemapQueueFamilyIndices(uint32_t &srcQueueFamily, uint32_t &dstQueueFamily);
|
||||
uint32_t GetQueueFamilyIndex() const { return m_QueueFamilyIdx; }
|
||||
|
||||
@@ -1777,7 +1777,7 @@ void WrappedVulkan::Create_InitialState(ResourceId id, WrappedVkRes *live, bool)
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedVulkan::Apply_InitialState(WrappedVkRes *live, const VkInitialContents &initial)
|
||||
void WrappedVulkan::Apply_InitialState(WrappedVkRes *live, VkInitialContents &initial)
|
||||
{
|
||||
if(HasFatalError())
|
||||
return;
|
||||
|
||||
@@ -1028,7 +1028,7 @@ void VulkanResourceManager::Create_InitialState(ResourceId id, WrappedVkRes *liv
|
||||
return m_Core->Create_InitialState(id, live, hasData);
|
||||
}
|
||||
|
||||
void VulkanResourceManager::Apply_InitialState(WrappedVkRes *live, const VkInitialContents &initial)
|
||||
void VulkanResourceManager::Apply_InitialState(WrappedVkRes *live, VkInitialContents &initial)
|
||||
{
|
||||
return m_Core->Apply_InitialState(live, initial);
|
||||
}
|
||||
|
||||
@@ -508,7 +508,7 @@ private:
|
||||
bool Serialise_InitialState(WriteSerialiser &ser, ResourceId id, VkResourceRecord *record,
|
||||
const VkInitialContents *initial);
|
||||
void Create_InitialState(ResourceId id, WrappedVkRes *live, bool hasData);
|
||||
void Apply_InitialState(WrappedVkRes *live, const VkInitialContents &initial);
|
||||
void Apply_InitialState(WrappedVkRes *live, VkInitialContents &initial);
|
||||
rdcarray<ResourceId> InitialContentResources();
|
||||
|
||||
// dummy handle to use - starting from near highest valid pointer to minimise risk of overlap with real handles
|
||||
|
||||
Reference in New Issue
Block a user