From 2e8b758fefd340243baddd13e9b55f7362419977 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 21 Sep 2016 15:05:55 +0200 Subject: [PATCH] Don't create a full empty array of viewports/scissors, just those set --- renderdoc/driver/d3d12/d3d12_replay.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_replay.cpp b/renderdoc/driver/d3d12/d3d12_replay.cpp index e3ed008f5..712327710 100644 --- a/renderdoc/driver/d3d12/d3d12_replay.cpp +++ b/renderdoc/driver/d3d12/d3d12_replay.cpp @@ -974,26 +974,17 @@ void D3D12Replay::MakePipelineState() src.ConservativeRaster == D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON; } - size_t i = 0; - create_array_uninit(state.m_RS.Scissors, - D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE); - for(i = 0; i < rs.scissors.size(); i++) + create_array_uninit(state.m_RS.Scissors, rs.scissors.size()); + for(size_t i = 0; i < rs.scissors.size(); i++) state.m_RS.Scissors[i] = D3D12PipelineState::Rasterizer::Scissor( rs.scissors[i].left, rs.scissors[i].top, rs.scissors[i].right, rs.scissors[i].bottom); - for(; i < D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE; i++) - state.m_RS.Scissors[i] = D3D12PipelineState::Rasterizer::Scissor(0, 0, 0, 0); - - create_array_uninit(state.m_RS.Viewports, - D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE); - for(i = 0; i < rs.views.size(); i++) + create_array_uninit(state.m_RS.Viewports, rs.views.size()); + for(size_t i = 0; i < rs.views.size(); i++) state.m_RS.Viewports[i] = D3D12PipelineState::Rasterizer::Viewport( rs.views[i].TopLeftX, rs.views[i].TopLeftY, rs.views[i].Width, rs.views[i].Height, rs.views[i].MinDepth, rs.views[i].MaxDepth); - for(; i < D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE; i++) - state.m_RS.Viewports[i] = D3D12PipelineState::Rasterizer::Viewport(0, 0, 0, 0, 0, 0); - ///////////////////////////////////////////////// // Output Merger /////////////////////////////////////////////////