From 8b773afe71775ff72f14fd07093f38e47fc7b2ed Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 20 Apr 2015 13:46:27 +0200 Subject: [PATCH] Align D3D buffer memory to 32-byte boundary, for AVX instrs. Refs #133 --- renderdoc/driver/d3d11/d3d11_device_wrap.cpp | 2 ++ renderdoc/driver/d3d11/d3d11_manager.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d11/d3d11_device_wrap.cpp b/renderdoc/driver/d3d11/d3d11_device_wrap.cpp index 02d467dd2..fdc491d1b 100644 --- a/renderdoc/driver/d3d11/d3d11_device_wrap.cpp +++ b/renderdoc/driver/d3d11/d3d11_device_wrap.cpp @@ -159,6 +159,8 @@ HRESULT WrappedID3D11Device::CreateBuffer( SCOPED_SERIALISE_CONTEXT(CREATE_BUFFER); Serialise_CreateBuffer(pDesc, pInitialData, &wrapped); + scope.SetAlignment(32); + chunk = scope.Get(); } diff --git a/renderdoc/driver/d3d11/d3d11_manager.h b/renderdoc/driver/d3d11/d3d11_manager.h index d3946e7b2..7804e58b8 100644 --- a/renderdoc/driver/d3d11/d3d11_manager.h +++ b/renderdoc/driver/d3d11/d3d11_manager.h @@ -62,8 +62,8 @@ struct D3D11ResourceRecord : public ResourceRecord { if(ShadowPtr[ctx][0] == NULL) { - ShadowPtr[ctx][0] = Serialiser::AllocAlignedBuffer(size + sizeof(markerValue)); - ShadowPtr[ctx][1] = Serialiser::AllocAlignedBuffer(size + sizeof(markerValue)); + ShadowPtr[ctx][0] = Serialiser::AllocAlignedBuffer(size + sizeof(markerValue), 32); + ShadowPtr[ctx][1] = Serialiser::AllocAlignedBuffer(size + sizeof(markerValue), 32); memcpy(ShadowPtr[ctx][0] + size, markerValue, sizeof(markerValue)); memcpy(ShadowPtr[ctx][1] + size, markerValue, sizeof(markerValue));