diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2021-03-14 02:11:59 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2021-03-19 00:38:22 +0000 |
| commit | 00219a5bdbe63aee3957de193fe640f499f01eb4 (patch) | |
| tree | 5bb5cddda4b76861fe5f0e8d2120f9b085bd2173 /Graphics/GraphicsEngineD3D11 | |
| parent | Direct3D11: added BindPointsD3D11 instead of TBindPoints and TBindPointsAndAc... (diff) | |
| download | DiligentCore-00219a5bdbe63aee3957de193fe640f499f01eb4.tar.gz DiligentCore-00219a5bdbe63aee3957de193fe640f499f01eb4.zip | |
Renamed Align to AlignUp
Diffstat (limited to 'Graphics/GraphicsEngineD3D11')
4 files changed, 33 insertions, 27 deletions
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<EngineD3D11ImplTraits> { public: using TBufferBase = BufferBase<EngineD3D11ImplTraits>; - 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 <atlbase.h> #include "BufferD3D11Impl.hpp" + +#include <atlbase.h> + #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<OffsetType>(Align(m_CBOffset + (sizeof(CachedCB) + sizeof(BindPointsD3D11) + sizeof(ID3D11Buffer*)) * CBCount, MaxAlignment));
- m_SamplerOffset = static_cast<OffsetType>(Align(m_SRVOffset + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11ShaderResourceView*)) * SRVCount, MaxAlignment));
- m_UAVOffset = static_cast<OffsetType>(Align(m_SamplerOffset + (sizeof(CachedSampler) + sizeof(BindPointsD3D11) + sizeof(ID3D11SamplerState*)) * SamplerCount, MaxAlignment));
- size_t BufferSize = static_cast<OffsetType>(Align(m_UAVOffset + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11UnorderedAccessView*)) * UAVCount, MaxAlignment));
+ m_SRVOffset = static_cast<OffsetType>(AlignUp(m_CBOffset + (sizeof(CachedCB) + sizeof(BindPointsD3D11) + sizeof(ID3D11Buffer*)) * CBCount, MaxAlignment));
+ m_SamplerOffset = static_cast<OffsetType>(AlignUp(m_SRVOffset + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11ShaderResourceView*)) * SRVCount, MaxAlignment));
+ m_UAVOffset = static_cast<OffsetType>(AlignUp(m_SamplerOffset + (sizeof(CachedSampler) + sizeof(BindPointsD3D11) + sizeof(ID3D11SamplerState*)) * SamplerCount, MaxAlignment));
+ size_t BufferSize = static_cast<OffsetType>(AlignUp(m_UAVOffset + (sizeof(CachedResource) + sizeof(BindPointsD3D11) + sizeof(ID3D11UnorderedAccessView*)) * UAVCount, MaxAlignment));
// clang-format on
VERIFY_EXPR(m_pResourceData == nullptr);
|
