Open 3D Engine Atom Gem API Reference 25.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::RHI::BufferDescriptor Struct Reference

#include <BufferDescriptor.h>

Inherited by AZ::Vulkan::BufferMemory::Descriptor.

Public Member Functions

 AZ_TYPE_INFO (BufferDescriptor, "{05321516-CDE4-451D-80A2-3D179AB3DB5D}")
 
 BufferDescriptor (BufferBindFlags bindFlags, size_t byteCount)
 
AZ::HashValue64 GetHash (AZ::HashValue64 seed=AZ::HashValue64{ 0 }) const
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 

Public Attributes

AZ::u64 m_byteCount = 0
 
AZ::u64 m_alignment = 0
 
BufferBindFlags m_bindFlags = BufferBindFlags::None
 Union of all bind points for this buffer.
 
HardwareQueueClassMask m_sharedQueueMask = HardwareQueueClassMask::All
 The mask of queue classes supporting shared access of this resource.
 
AZStd::optional< int > m_ownerDeviceIndex
 

Detailed Description

A buffer corresponds to a region of linear memory and used for rendering operations. Its lifecycle is managed by buffer pools.

Member Data Documentation

◆ m_alignment

AZ::u64 AZ::RHI::BufferDescriptor::m_alignment = 0

[GFX TODO] we need to reconsider where is the best place to propagate a buffer alignment to backend Provide the higher level code to provide a desired alignment for backend allocators to use when allocate memory for this buffer. For example, this value need to be set as its buffer view descriptor's m_elementSize
for dx12 to create SRV or UAV properly. If it set to 0, the default alignment defined internally will be used.

◆ m_byteCount

AZ::u64 AZ::RHI::BufferDescriptor::m_byteCount = 0

Number of bytes in the buffer. Does not need to adhere to alignment requirements by the hardware (that is done for you internally). This type can't be size_t since it's reflected data and size_t is a different size depending on the platform.

◆ m_ownerDeviceIndex

AZStd::optional<int> AZ::RHI::BufferDescriptor::m_ownerDeviceIndex

Settings for enabling cross device buffers If set the Buffer will only be allocated on the owner device On all other devices the Buffer from the owner device will be exported and then imported again on their own devices Check DeviceFeatures::m_crossDeviceDeviceMemory and DeviceFeatures::m_crossDeviceHostMemory before setting the owner device All devices the buffer will be created for must have the respective device feature


The documentation for this struct was generated from the following file: