From 00219a5bdbe63aee3957de193fe640f499f01eb4 Mon Sep 17 00:00:00 2001 From: assiduous Date: Sat, 13 Mar 2021 18:11:59 -0800 Subject: Renamed Align to AlignUp --- .../include/BufferD3D11Impl.hpp | 30 +++++++++++----------- .../include/ShaderResourceCacheD3D11.hpp | 1 + .../GraphicsEngineD3D11/src/BufferD3D11Impl.cpp | 12 ++++++--- .../src/ShaderResourceCacheD3D11.cpp | 17 ++++++------ 4 files changed, 33 insertions(+), 27 deletions(-) (limited to 'Graphics/GraphicsEngineD3D11') diff --git a/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.hpp b/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.hpp index 2f523ea5..99afb43f 100644 --- a/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.hpp +++ b/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.hpp @@ -30,33 +30,33 @@ /// \file /// Declaration of Diligent::BufferD3D11Impl class +#include "EngineD3D11ImplTraits.hpp" #include "BufferD3D11.h" -#include "RenderDeviceD3D11.h" #include "BufferBase.hpp" -#include "BufferViewD3D11Impl.hpp" -#include "RenderDeviceD3D11Impl.hpp" namespace Diligent { +class RenderDeviceD3D11Impl; + /// Buffer object implementation in Direct3D11 backend. class BufferD3D11Impl final : public BufferBase { public: using TBufferBase = BufferBase; - BufferD3D11Impl(IReferenceCounters* pRefCounters, - FixedBlockMemoryAllocator& BuffViewObjMemAllocator, - class RenderDeviceD3D11Impl* pDeviceD3D11, - const BufferDesc& BuffDesc, - const BufferData* pBuffData = nullptr); - - BufferD3D11Impl(IReferenceCounters* pRefCounters, - FixedBlockMemoryAllocator& BuffViewObjMemAllocator, - class RenderDeviceD3D11Impl* pDeviceD3D11, - const BufferDesc& BuffDesc, - RESOURCE_STATE InitialState, - ID3D11Buffer* pd3d11Buffer); + BufferD3D11Impl(IReferenceCounters* pRefCounters, + FixedBlockMemoryAllocator& BuffViewObjMemAllocator, + RenderDeviceD3D11Impl* pDeviceD3D11, + const BufferDesc& BuffDesc, + const BufferData* pBuffData = nullptr); + + BufferD3D11Impl(IReferenceCounters* pRefCounters, + FixedBlockMemoryAllocator& BuffViewObjMemAllocator, + RenderDeviceD3D11Impl* pDeviceD3D11, + const BufferDesc& BuffDesc, + RESOURCE_STATE InitialState, + ID3D11Buffer* pd3d11Buffer); ~BufferD3D11Impl(); diff --git a/Graphics/GraphicsEngineD3D11/include/ShaderResourceCacheD3D11.hpp b/Graphics/GraphicsEngineD3D11/include/ShaderResourceCacheD3D11.hpp index cb39652d..fd238c16 100644 --- a/Graphics/GraphicsEngineD3D11/include/ShaderResourceCacheD3D11.hpp +++ b/Graphics/GraphicsEngineD3D11/include/ShaderResourceCacheD3D11.hpp @@ -34,6 +34,7 @@ #include "ShaderResourceCacheCommon.hpp" #include "TextureBaseD3D11.hpp" #include "BufferD3D11Impl.hpp" +#include "BufferViewD3D11Impl.hpp" #include "SamplerD3D11Impl.hpp" #include "PipelineResourceAttribsD3D11.hpp" diff --git a/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp index 7568006c..3166c4aa 100644 --- a/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp @@ -26,15 +26,19 @@ */ #include "pch.h" -#include #include "BufferD3D11Impl.hpp" + +#include + #include "RenderDeviceD3D11Impl.hpp" #include "DeviceContextD3D11Impl.hpp" -#include "D3D11TypeConversions.hpp" #include "BufferViewD3D11Impl.hpp" + +#include "D3D11TypeConversions.hpp" #include "GraphicsAccessories.hpp" #include "EngineMemory.h" +#include "Align.hpp" namespace Diligent { @@ -67,8 +71,8 @@ BufferD3D11Impl::BufferD3D11Impl(IReferenceCounters* pRefCounters, if (m_Desc.BindFlags & BIND_UNIFORM_BUFFER) { - Uint32 AlignmentMask = 15; - m_Desc.uiSizeInBytes = (m_Desc.uiSizeInBytes + AlignmentMask) & (~AlignmentMask); + static constexpr Uint32 Alignment = 16; + m_Desc.uiSizeInBytes = AlignUp(m_Desc.uiSizeInBytes, Alignment); } D3D11_BUFFER_DESC D3D11BuffDesc; diff --git a/Graphics/GraphicsEngineD3D11/src/ShaderResourceCacheD3D11.cpp b/Graphics/GraphicsEngineD3D11/src/ShaderResourceCacheD3D11.cpp index 52b2e638..a254d526 100755 --- a/Graphics/GraphicsEngineD3D11/src/ShaderResourceCacheD3D11.cpp +++ b/Graphics/GraphicsEngineD3D11/src/ShaderResourceCacheD3D11.cpp @@ -28,6 +28,7 @@ #include "pch.h" #include "ShaderResourceCacheD3D11.hpp" + #include "TextureBaseD3D11.hpp" #include "BufferD3D11Impl.hpp" #include "SamplerD3D11Impl.hpp" @@ -45,10 +46,10 @@ size_t ShaderResourceCacheD3D11::GetRequriedMemorySize(const TResourceCount& Res auto SamplerCount = ResCount[DESCRIPTOR_RANGE_SAMPLER]; auto UAVCount = ResCount[DESCRIPTOR_RANGE_UAV]; size_t MemSize = 0; - MemSize = Align(MemSize + (sizeof(CachedCB) + sizeof(BindPointsD3D11) + sizeof(ID3D11Buffer*)) * CBCount, MaxAlignment); - MemSize = Align(MemSize + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11ShaderResourceView*)) * SRVCount, MaxAlignment); - MemSize = Align(MemSize + (sizeof(CachedSampler) + sizeof(BindPointsD3D11) + sizeof(ID3D11SamplerState*)) * SamplerCount, MaxAlignment); - MemSize = Align(MemSize + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11UnorderedAccessView*)) * UAVCount, MaxAlignment); + MemSize = AlignUp(MemSize + (sizeof(CachedCB) + sizeof(BindPointsD3D11) + sizeof(ID3D11Buffer*)) * CBCount, MaxAlignment); + MemSize = AlignUp(MemSize + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11ShaderResourceView*)) * SRVCount, MaxAlignment); + MemSize = AlignUp(MemSize + (sizeof(CachedSampler) + sizeof(BindPointsD3D11) + sizeof(ID3D11SamplerState*)) * SamplerCount, MaxAlignment); + MemSize = AlignUp(MemSize + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11UnorderedAccessView*)) * UAVCount, MaxAlignment); // clang-format on VERIFY(MemSize < InvalidResourceOffset, "Memory size exeed the maximum allowed size."); return MemSize; @@ -80,10 +81,10 @@ void ShaderResourceCacheD3D11::Initialize(const TResourceCount& ResCount, IMemor VERIFY(UAVCount == m_UAVCount, "UAVs count (", UAVCount, ") exceeds maximum representable value"); // m_CBOffset = 0 - m_SRVOffset = static_cast(Align(m_CBOffset + (sizeof(CachedCB) + sizeof(BindPointsD3D11) + sizeof(ID3D11Buffer*)) * CBCount, MaxAlignment)); - m_SamplerOffset = static_cast(Align(m_SRVOffset + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11ShaderResourceView*)) * SRVCount, MaxAlignment)); - m_UAVOffset = static_cast(Align(m_SamplerOffset + (sizeof(CachedSampler) + sizeof(BindPointsD3D11) + sizeof(ID3D11SamplerState*)) * SamplerCount, MaxAlignment)); - size_t BufferSize = static_cast(Align(m_UAVOffset + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11UnorderedAccessView*)) * UAVCount, MaxAlignment)); + m_SRVOffset = static_cast(AlignUp(m_CBOffset + (sizeof(CachedCB) + sizeof(BindPointsD3D11) + sizeof(ID3D11Buffer*)) * CBCount, MaxAlignment)); + m_SamplerOffset = static_cast(AlignUp(m_SRVOffset + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11ShaderResourceView*)) * SRVCount, MaxAlignment)); + m_UAVOffset = static_cast(AlignUp(m_SamplerOffset + (sizeof(CachedSampler) + sizeof(BindPointsD3D11) + sizeof(ID3D11SamplerState*)) * SamplerCount, MaxAlignment)); + size_t BufferSize = static_cast(AlignUp(m_UAVOffset + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11UnorderedAccessView*)) * UAVCount, MaxAlignment)); // clang-format on VERIFY_EXPR(m_pResourceData == nullptr); -- cgit v1.2.3