XII Release 0.1.0
Loading...
Searching...
No Matches
xiiGALBufferD3D12 Class Referencefinal
Inheritance diagram for xiiGALBufferD3D12:
[legend]

Public Member Functions

XII_ALWAYS_INLINE ID3D12Resource * GetD3D12Buffer () const
XII_ALWAYS_INLINE xiiD3D12Allocation GetAllocationDescription () const
xiiUInt64 GetD3D12BufferGPUVirtualAddress () const
virtual void FlushMappedRange (xiiUInt64 uiStartOffset, xiiUInt64 uiSize) override final
virtual void InvalidateMappedRange (xiiUInt64 uiStartOffset, xiiUInt64 uiSize) override final
virtual xiiGALSparseBufferProperties GetSparseProperties () const override final
 This returns the sparse buffer memory properties.
Public Member Functions inherited from xiiGALBuffer
XII_ALWAYS_INLINE const xiiGALBufferCreationDescription & GetDescription () const
 This returns the creation description for this object.
XII_ALWAYS_INLINE xiiBitflags< xiiGALExternalMemoryKind > GetExternalMemoryKind () const
 This returns the external memory kind flags for this buffer.
XII_ALWAYS_INLINE xiiUInt64 GetSize () const
 This returns the buffer size.
virtual XII_ALWAYS_INLINE xiiUInt64 GetMemoryConsumption () const
 Returns the calculated memory consumption for buffer.
xiiSharedPtr< xiiGALBufferView > GetDefaultView (xiiEnum< xiiGALBufferViewType > viewType)
XII_ALWAYS_INLINE xiiBitflags< xiiGALMemoryPropertyFlags > GetMemoryProperties () const
xiiSharedPtr< xiiGALBufferView > CreateView (xiiGALBufferViewCreationDescription &description)
Public Member Functions inherited from xiiGALResource
virtual void SetResourceState (xiiBitflags< xiiGALResourceStateFlags > stateFlags)
virtual XII_ALWAYS_INLINE xiiBitflags< xiiGALResourceStateFlags > GetResourceState () const
 This returns the buffer state.
XII_ALWAYS_INLINE bool IsInKnownState () const
 This returns true if the resource is in known state by the engine.
XII_ALWAYS_INLINE bool CheckState (xiiBitflags< xiiGALResourceStateFlags > resourceState) const
 This returns true if the given resource state is set.
XII_ALWAYS_INLINE bool CheckAnyState (xiiBitflags< xiiGALResourceStateFlags > resourceState) const
 This returns true if any of the given resource state are set.
Public Member Functions inherited from xiiGALDeviceObject
XII_ALWAYS_INLINE xiiSharedPtr< xiiGALDevice > GetDevice () const
Public Member Functions inherited from xiiGALObject
XII_ALWAYS_INLINE xiiStringView GetDebugName () const
 Returns the debug name of this resource.
void SetDebugName (xiiStringView sDebugName) const
 Sets the debug name for this resource.
Public Member Functions inherited from xiiReflectedClass
virtual const xiiRTTI * GetDynamicRTTI () const
bool IsInstanceOf (const xiiRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
template<typename T>
XII_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
Public Member Functions inherited from xiiRefCounted
virtual ~xiiRefCounted ()=default
 Adds a virtual destructor.
Public Member Functions inherited from xiiRefCountingImpl
 xiiRefCountingImpl ()=default
 Constructor.
 xiiRefCountingImpl (const xiiRefCountingImpl &rhs)
void operator= (const xiiRefCountingImpl &rhs)
xiiUInt32 AddRef () const
 Increments the reference counter. Returns the new reference count.
bool TryAddRef () const
xiiUInt32 ReleaseRef () const
 Decrements the reference counter. Returns the new reference count.ywat.
bool IsReferenced () const
 Returns true if the reference count is greater than 0, false otherwise.
xiiUInt32 GetRefCount () const
 Returns the current reference count.

Protected Member Functions

 xiiGALBufferD3D12 (xiiSharedPtr< xiiGALDeviceD3D12 > pDeviceD3D12, const xiiGALBufferCreationDescription &creationDescription)
virtual xiiResult InitPlatform (const xiiGALBufferData *pInitialData, xiiBitflags< xiiGALExternalMemoryKind > externalMemoryKind) override final
virtual xiiInternal::NewInstance< xiiGALBufferView > CreateViewPlatform (const xiiGALBufferViewCreationDescription &description) override
virtual void SetDebugNamePlatform (xiiStringView sName) const override final
Protected Member Functions inherited from xiiGALBuffer
 xiiGALBuffer (xiiSharedPtr< xiiGALDevice > pDevice, const xiiGALBufferCreationDescription &creationDescription)
void VerifyFlushMappedRangeArguments (xiiUInt64 uiStartOffset, xiiUInt64 uiSize) const
void VerifyInvalidateMappedRangeArguments (xiiUInt64 uiStartOffset, xiiUInt64 uiSize) const
Protected Member Functions inherited from xiiGALResource
 xiiGALResource (xiiSharedPtr< xiiGALDevice > pDevice)
Protected Member Functions inherited from xiiGALDeviceObject
 xiiGALDeviceObject (xiiSharedPtr< xiiGALDevice > pDevice)
 Copyright (c) Theophilus Eriata. All Rights Reserved.
Protected Member Functions inherited from xiiGALObject
 xiiGALObject ()
 Copyright (c) Theophilus Eriata. All Rights Reserved.

Protected Attributes

ID3D12Resource * m_pD3D12Buffer = nullptr
xiiD3D12Allocation m_BufferAllocation = nullptr
bool m_bHostVisibleBuffer = false
bool m_bReadbackBuffer = false
Protected Attributes inherited from xiiGALBuffer
xiiGALBufferCreationDescription m_Description
xiiBitflags< xiiGALExternalMemoryKind > m_ExternalMemoryKind
xiiBitflags< xiiGALMemoryPropertyFlags > m_MemoryPropertyFlags
xiiGALBufferView * m_DefaultBufferViews [xiiGALBufferViewType::ENUM_COUNT] = {}
Protected Attributes inherited from xiiGALResource
xiiBitflags< xiiGALResourceStateFlags > m_ResourceState
Protected Attributes inherited from xiiGALDeviceObject
xiiSharedPtr< xiiGALDevice > m_pDevice

Friends

class xiiMemoryUtils
class xiiGALDeviceD3D12

Additional Inherited Members

Static Public Member Functions inherited from xiiNoBase
static const xiiRTTI * GetStaticRTTI ()

Member Function Documentation

◆ CreateViewPlatform()

xiiInternal::NewInstance< xiiGALBufferView > xiiGALBufferD3D12::CreateViewPlatform ( const xiiGALBufferViewCreationDescription & description)
overrideprotectedvirtual

Implements xiiGALBuffer.

◆ FlushMappedRange()

void xiiGALBufferD3D12::FlushMappedRange ( xiiUInt64 uiStartOffset,
xiiUInt64 uiSize )
finaloverridevirtual

This flushes the specified range of non-coherent memory from the host cache to make it available to the GPU.

Parameters
uiStartOffset- The offset in bytes from the beginning of the buffer to the start of the memory range to flush.
uiSize- The size in bytes of the memory range to flush.

This method should only be used for persistently-mapped buffers that do not report the xiiGALMemoryProperties::HostCoherent property. After an application modifies a mapped memory range on the CPU, it must flush the range to make it available to the GPU.

Note
This method must not be called for Dynamic buffers. When a mapped buffer is unmapped, it is automatically flushed by the engine if necessary.

Implements xiiGALBuffer.

◆ GetSparseProperties()

xiiGALSparseBufferProperties xiiGALBufferD3D12::GetSparseProperties ( ) const
finaloverridevirtual

This returns the sparse buffer memory properties.

Implements xiiGALBuffer.

◆ InitPlatform()

xiiResult xiiGALBufferD3D12::InitPlatform ( const xiiGALBufferData * pInitialData,
xiiBitflags< xiiGALExternalMemoryKind > externalMemoryKind )
finaloverrideprotectedvirtual

Implements xiiGALBuffer.

◆ InvalidateMappedRange()

void xiiGALBufferD3D12::InvalidateMappedRange ( xiiUInt64 uiStartOffset,
xiiUInt64 uiSize )
finaloverridevirtual

This invalidates the specified range of non-coherent memory modified by the GPU to make it visible to the CPU.

Parameters
uiStartOffset- The offset in bytes from the beginning of the buffer to the start of the memory to invalidate.
uiSize- The size in bytes of the memory range to invalidate.

This method should only be used for persistently-mapped buffers that do not report the xiiGALMemoryProperties::HostCoherent property. After an application modifies a mapped memory range on the CPU, it must invalidate the range to make it visible to the CPU.

Note
This method must not be called for Dynamic buffers. When a mapped buffer is unmapped, it is automatically flushed by the engine if necessary.

Implements xiiGALBuffer.

◆ SetDebugNamePlatform()

void xiiGALBufferD3D12::SetDebugNamePlatform ( xiiStringView sName) const
finaloverrideprotectedvirtual

Reimplemented from xiiGALObject.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsD3D12/Resources/BufferD3D12.h
  • /home/runner/work/XII/XII/Source/Engine/GraphicsD3D12/Resources/Implementation/BufferD3D12.cpp