summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineD3D11
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-03-14 02:11:59 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-03-19 00:38:22 +0000
commit00219a5bdbe63aee3957de193fe640f499f01eb4 (patch)
tree5bb5cddda4b76861fe5f0e8d2120f9b085bd2173 /Graphics/GraphicsEngineD3D11
parentDirect3D11: added BindPointsD3D11 instead of TBindPoints and TBindPointsAndAc... (diff)
downloadDiligentCore-00219a5bdbe63aee3957de193fe640f499f01eb4.tar.gz
DiligentCore-00219a5bdbe63aee3957de193fe640f499f01eb4.zip
Renamed Align to AlignUp
Diffstat (limited to 'Graphics/GraphicsEngineD3D11')
-rw-r--r--Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.hpp30
-rw-r--r--Graphics/GraphicsEngineD3D11/include/ShaderResourceCacheD3D11.hpp1
-rw-r--r--Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp12
-rwxr-xr-xGraphics/GraphicsEngineD3D11/src/ShaderResourceCacheD3D11.cpp17
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);