mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-21 14:06:45 +00:00
Store API pipeline states in the replay controller
* Instead of storing the API pipeline states in the replay driver and returning pointers, we store them in the replay controller and write into it from the replay driver. * This will allow us to remove the replay driver and still keep any previously obtained references/pointers to the pipeline state valid.
This commit is contained in:
@@ -66,10 +66,6 @@ public:
|
||||
m_Resources[0].resourceId = m_TextureID;
|
||||
m_Resources[0].autogeneratedName = false;
|
||||
m_Resources[0].name = get_basename(m_Filename);
|
||||
|
||||
m_PipelineState.outputMerger.renderTargets.resize(1);
|
||||
m_PipelineState.outputMerger.renderTargets[0].resourceResourceId = m_TextureID;
|
||||
m_PipelineState.outputMerger.renderTargets[0].viewFormat = m_TexDetails.format;
|
||||
}
|
||||
|
||||
virtual ~ImageViewer()
|
||||
@@ -211,7 +207,14 @@ public:
|
||||
// handle a couple of operations ourselves to return a simple fake log
|
||||
APIProperties GetAPIProperties() { return m_Props; }
|
||||
FrameRecord GetFrameRecord() { return m_FrameRecord; }
|
||||
const D3D11Pipe::State *GetD3D11PipelineState() { return &m_PipelineState; }
|
||||
void SetPipelineStates(D3D11Pipe::State *d3d11, D3D12Pipe::State *d3d12, GLPipe::State *gl,
|
||||
VKPipe::State *vk)
|
||||
{
|
||||
d3d11->outputMerger.renderTargets.resize(1);
|
||||
d3d11->outputMerger.renderTargets[0].resourceResourceId = m_TextureID;
|
||||
d3d11->outputMerger.renderTargets[0].viewFormat = m_TexDetails.format;
|
||||
}
|
||||
|
||||
// other operations are dropped/ignored, to avoid confusion
|
||||
ReplayStatus ReadLogInitialisation(RDCFile *rdc, bool storeStructuredBuffers)
|
||||
{
|
||||
@@ -236,9 +239,6 @@ public:
|
||||
return ret;
|
||||
}
|
||||
rdcarray<GPUDevice> GetAvailableGPUs() { return {}; }
|
||||
const D3D12Pipe::State *GetD3D12PipelineState() { return NULL; }
|
||||
const GLPipe::State *GetGLPipelineState() { return NULL; }
|
||||
const VKPipe::State *GetVulkanPipelineState() { return NULL; }
|
||||
void ReplayLog(uint32_t endEventID, ReplayLogType replayType) {}
|
||||
rdcarray<uint32_t> GetPassEvents(uint32_t eventId) { return rdcarray<uint32_t>(); }
|
||||
rdcarray<EventUsage> GetUsage(ResourceId id) { return rdcarray<EventUsage>(); }
|
||||
|
||||
Reference in New Issue
Block a user