Generalise progress tracking to allow multiple progress updates

* We track the progress through making a capture as well as the progress
  we already tracked loading a capture.
* Also incidentally fix a copy-paste bug that was calculating the wrong
  progress for loading captures by applying FileInitialRead instead of
  FrameEventsRead for the frame replay.
This commit is contained in:
baldurk
2017-12-29 14:25:33 +00:00
parent 332e9b70a3
commit ed98925eef
14 changed files with 173 additions and 62 deletions
+7 -7
View File
@@ -110,7 +110,7 @@ D3D12DebugManager::D3D12DebugManager(WrappedID3D12Device *wrapper)
RDCEraseEl(m_TileMinMaxPipe);
RDCEraseEl(m_HistogramPipe);
RenderDoc::Inst().SetProgress(DebugManagerInit, 0.0f);
RenderDoc::Inst().SetProgress(LoadProgress::DebugManagerInit, 0.0f);
m_pFactory = NULL;
@@ -281,7 +281,7 @@ D3D12DebugManager::D3D12DebugManager(WrappedID3D12Device *wrapper)
m_DebugList->Close();
}
RenderDoc::Inst().SetProgress(DebugManagerInit, 0.2f);
RenderDoc::Inst().SetProgress(LoadProgress::DebugManagerInit, 0.2f);
// create fixed samplers, point and linear
D3D12_CPU_DESCRIPTOR_HANDLE samp;
@@ -310,7 +310,7 @@ D3D12DebugManager::D3D12DebugManager(WrappedID3D12Device *wrapper)
m_RingConstantBuffer = MakeCBuffer(bufsize);
m_RingConstantOffset = 0;
RenderDoc::Inst().SetProgress(DebugManagerInit, 0.4f);
RenderDoc::Inst().SetProgress(LoadProgress::DebugManagerInit, 0.4f);
bool success = LoadShaderCache("d3d12shaders.cache", m_ShaderCacheMagic, m_ShaderCacheVersion,
m_ShaderCache, ShaderCache12Callbacks);
@@ -525,7 +525,7 @@ D3D12DebugManager::D3D12DebugManager(WrappedID3D12Device *wrapper)
SAFE_RELEASE(root);
RenderDoc::Inst().SetProgress(DebugManagerInit, 0.6f);
RenderDoc::Inst().SetProgress(LoadProgress::DebugManagerInit, 0.6f);
D3D12_GRAPHICS_PIPELINE_STATE_DESC pipeDesc;
RDCEraseEl(pipeDesc);
@@ -703,7 +703,7 @@ D3D12DebugManager::D3D12DebugManager(WrappedID3D12Device *wrapper)
histogramhlsl += GetEmbeddedResource(debugcommon_hlsl);
histogramhlsl += GetEmbeddedResource(histogram_hlsl);
RenderDoc::Inst().SetProgress(DebugManagerInit, 0.7f);
RenderDoc::Inst().SetProgress(LoadProgress::DebugManagerInit, 0.7f);
D3D12_COMPUTE_PIPELINE_STATE_DESC compPipeDesc;
RDCEraseEl(compPipeDesc);
@@ -986,7 +986,7 @@ D3D12DebugManager::D3D12DebugManager(WrappedID3D12Device *wrapper)
m_WrappedDevice->CreateUnorderedAccessView(m_MinMaxResultBuffer, NULL, &tileDesc, uav);
}
RenderDoc::Inst().SetProgress(DebugManagerInit, 0.8f);
RenderDoc::Inst().SetProgress(LoadProgress::DebugManagerInit, 0.8f);
// font rendering
{
@@ -1262,7 +1262,7 @@ D3D12DebugManager::D3D12DebugManager(WrappedID3D12Device *wrapper)
SAFE_RELEASE(TextPS);
}
RenderDoc::Inst().SetProgress(DebugManagerInit, 1.0f);
RenderDoc::Inst().SetProgress(LoadProgress::DebugManagerInit, 1.0f);
m_CacheShaders = false;
}