Skip to content

Commit 8aa42d0

Browse files
committed
Set the correct number of elements in LaneBuffer
1 parent c756cbe commit 8aa42d0

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

renderdoc/driver/d3d12/d3d12_shaderdebug.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1694,13 +1694,14 @@ ID3D12Resource *D3D12Replay::CreateInputFetchBuffer(DXDebug::InputFetcher &fetch
16941694
rdesc.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER;
16951695
rdesc.Width = fetcher.hitBufferStride * (DXDebug::maxPixelHits + 1);
16961696

1697+
const uint32_t countLaneElements =
1698+
(fetcher.laneDataBufferStride > 0) ? fetcher.numLanesPerHit * (DXDebug::maxPixelHits + 1) : 0;
16971699
// if we have separate lane data, allocate that at the end
16981700
if(fetcher.laneDataBufferStride > 0)
16991701
{
17001702
rdesc.Width = AlignToMultiple(rdesc.Width, (uint64_t)fetcher.laneDataBufferStride);
17011703
laneDataOffset = rdesc.Width;
1702-
rdesc.Width +=
1703-
(fetcher.laneDataBufferStride * fetcher.numLanesPerHit) * (DXDebug::maxPixelHits + 1);
1704+
rdesc.Width += fetcher.laneDataBufferStride * countLaneElements;
17041705
}
17051706

17061707
// Create storage for MSAA evaluations captured in pixel shader
@@ -1756,7 +1757,7 @@ ID3D12Resource *D3D12Replay::CreateInputFetchBuffer(DXDebug::InputFetcher &fetch
17561757
uavDesc.ViewDimension = D3D12_UAV_DIMENSION_BUFFER;
17571758
uavDesc.Buffer.FirstElement = laneDataOffset / fetcher.laneDataBufferStride;
17581759
uavDesc.Buffer.StructureByteStride = fetcher.laneDataBufferStride;
1759-
uavDesc.Buffer.NumElements = DXDebug::maxPixelHits + 1;
1760+
uavDesc.Buffer.NumElements = countLaneElements;
17601761

17611762
uav = m_pDevice->GetDebugManager()->GetCPUHandle(SHADER_DEBUG_LANEDATA_UAV);
17621763
m_pDevice->CreateUnorderedAccessView(dataBuffer, NULL, &uavDesc, uav);

0 commit comments

Comments
 (0)