From 57b5309a97ab6edd2b0d14a6d2934fc09a63b628 Mon Sep 17 00:00:00 2001 From: Michael Rennie Date: Fri, 16 Sep 2016 13:47:02 +0100 Subject: [PATCH] D3D11 RDCERR assumes size is 16byte aligned, as buffers are created so. Fixes crash in Mesh Viewer. --- renderdoc/driver/d3d11/d3d11_replay.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d11/d3d11_replay.cpp b/renderdoc/driver/d3d11/d3d11_replay.cpp index f7ff7c62c..eb0b0c00e 100644 --- a/renderdoc/driver/d3d11/d3d11_replay.cpp +++ b/renderdoc/driver/d3d11/d3d11_replay.cpp @@ -1853,7 +1853,7 @@ ResourceId D3D11Replay::CreateProxyBuffer(const FetchBuffer &templateBuf) D3D11_BUFFER_DESC desc; // D3D11_BIND_CONSTANT_BUFFER size must be 16-byte aligned. - desc.ByteWidth = AlignUp((UINT)templateBuf.length, 16u); + desc.ByteWidth = AlignUp16((UINT)templateBuf.length); desc.CPUAccessFlags = 0; desc.MiscFlags = 0; desc.Usage = D3D11_USAGE_DEFAULT; @@ -1914,7 +1914,7 @@ void D3D11Replay::SetProxyBufferData(ResourceId bufid, byte *data, size_t dataSi D3D11_BUFFER_DESC desc; buf->GetDesc(&desc); - if(dataSize < desc.ByteWidth) + if(AlignUp16(dataSize) < desc.ByteWidth) { RDCERR("Insufficient data provided to SetProxyBufferData"); return;