Go to the documentation of this file.
60 ID3D12Resource* pd3d12Buffer);
65 #ifdef DILIGENT_DEVELOPMENT
76 Uint64 DataStartByteOffset = 0;
78 VERIFY(DataStartByteOffset == 0,
"0 offset expected");
92 #ifdef DILIGENT_DEVELOPMENT
93 DvpVerifyDynamicAllocation(pCtx);
95 return m_DynamicData[ContextId].GPUAddress;
114 void CreateUAV(
struct BufferViewDesc& UAVDesc, D3D12_CPU_DESCRIPTOR_HANDLE UAVDescriptor);
115 void CreateSRV(
struct BufferViewDesc& SRVDesc, D3D12_CPU_DESCRIPTOR_HANDLE SRVDescriptor);
116 void CreateCBV(D3D12_CPU_DESCRIPTOR_HANDLE CBVDescriptor);
121 static constexpr
size_t CacheLineSize = 64;
129 Uint8 Padding[CacheLineSize -
sizeof(D3D12DynamicAllocation)];
131 static_assert(
sizeof(CtxDynamicData) == CacheLineSize,
"Unexpected sizeof(CtxDynamicData)");
135 std::vector<CtxDynamicData, STDAllocatorRawMem<D3D12DynamicAllocation>> m_DynamicData;
Buffer view description.
Definition: BufferView.h:88
DeviceObjectBase & operator=(const DeviceObjectBase &)=delete
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:44
__forceinline D3D12_GPU_VIRTUAL_ADDRESS GetGPUAddress()
Definition: BufferD3D12Impl.hpp:103
virtual void SetD3D12ResourceState(D3D12_RESOURCE_STATES state) override final
Implementation of IBufferD3D12::SetD3D12ResourceState().
Definition: BufferD3D12Impl.cpp:415
virtual D3D12_RESOURCE_STATES GetD3D12ResourceState() const override final
Implementation of IBufferD3D12::GetD3D12ResourceState().
Definition: BufferD3D12Impl.cpp:420
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:50
BufferDesc m_Desc
Object description.
Definition: DeviceObjectBase.hpp:182
virtual void * GetNativeHandle() override final
Implementation of IBuffer::GetNativeHandle().
Definition: BufferD3D12Impl.hpp:73
@ USAGE_DYNAMIC
A resource that can be read by the GPU and written at least once per frame by the CPU....
Definition: GraphicsTypes.h:161
Template class implementing base functionality of the buffer object.
Definition: BufferBase.hpp:59
Buffer object implementation in Direct3D12 backend.
Definition: BufferD3D12Impl.hpp:44
BufferD3D12Impl(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &BuffViewObjMemAllocator, RenderDeviceD3D12Impl *pDeviceD3D12, const BufferDesc &BuffDesc, const BufferData *pBuffData=nullptr)
Definition: BufferD3D12Impl.cpp:44
Render device implementation in Direct3D12 backend.
Definition: RenderDeviceD3D12Impl.hpp:70
#define IMPLEMENT_QUERY_INTERFACE_IN_PLACE(InterfaceID, ParentClassName)
Definition: ObjectBase.hpp:59
#define DILIGENT_CALL_TYPE
Definition: CommonDefinitions.h:45
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
D3D12_CPU_DESCRIPTOR_HANDLE GetCpuHandle(Uint32 Offset=0) const
Definition: DescriptorHeap.hpp:162
Buffer description.
Definition: Buffer.h:74
~BufferD3D12Impl()
Definition: BufferD3D12Impl.cpp:306
D3D12_CPU_DESCRIPTOR_HANDLE GetCBVHandle()
Definition: BufferD3D12Impl.hpp:109
Device context interface.
Definition: DeviceContext.h:1460
Device context implementation in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.hpp:59
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:53
#define VERIFY_EXPR(...)
Definition: DebugUtilities.hpp:79
virtual void CreateViewInternal(const struct BufferViewDesc &ViewDesc, IBufferView **ppView, bool bIsDefaultView) override
Definition: BufferD3D12Impl.cpp:312
#define VERIFY(...)
Definition: DebugUtilities.hpp:76
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.hpp:56
USAGE Usage
Buffer usage, see Diligent::USAGE for details.
Definition: Buffer.h:88
Definition: D3D12DynamicHeap.hpp:40
RESOURCE_STATE
Resource usage state.
Definition: GraphicsTypes.h:2814
Buffer view interface.
Definition: BufferView.h:155
Describes the buffer initial data.
Definition: Buffer.h:155
Definition: DescriptorHeap.hpp:67
Base implementation of a D3D12 resource.
Definition: D3D12ResourceBase.hpp:37
ID3D12Resource * GetD3D12Resource() const
Definition: D3D12ResourceBase.hpp:43
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37
virtual ID3D12Resource * GetD3D12Buffer(Uint64 &DataStartByteOffset, IDeviceContext *pContext) override final
Implementation of IBufferD3D12::GetD3D12Buffer().
Definition: BufferD3D12Impl.cpp:382