Optimization in AllocatorPimpl::GetResourceAllocationInfo
diff --git a/src/D3D12MemAlloc.cpp b/src/D3D12MemAlloc.cpp
index bf8b43d..d5ad4b0 100644
--- a/src/D3D12MemAlloc.cpp
+++ b/src/D3D12MemAlloc.cpp
@@ -5180,6 +5180,22 @@
 

 D3D12_RESOURCE_ALLOCATION_INFO AllocatorPimpl::GetResourceAllocationInfo(D3D12_RESOURCE_DESC& inOutResourceDesc) const

 {

+    /* Optional optimization: Microsoft documentation says:

+    https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12device-getresourceallocationinfo

+    

+    Your application can forgo using GetResourceAllocationInfo for buffer resources

+    (D3D12_RESOURCE_DIMENSION_BUFFER). Buffers have the same size on all adapters,

+    which is merely the smallest multiple of 64KB that's greater or equal to

+    D3D12_RESOURCE_DESC::Width.

+    */

+    if(inOutResourceDesc.Alignment == 0 &&

+        inOutResourceDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER)

+    {

+        return {

+            AlignUp<UINT64>(inOutResourceDesc.Width, D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT), // SizeInBytes

+            D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT}; // Alignment

+    }

+

 #if D3D12MA_USE_SMALL_RESOURCE_PLACEMENT_ALIGNMENT

     if(inOutResourceDesc.Alignment == 0 &&

         inOutResourceDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE2D &&