Open 3D Engine Atom Gem API Reference 23.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::BufferPoolDescriptor Class Reference

Inherits AZ::RHI::ResourcePoolDescriptor.

Inherited by AZ::DX12::BufferPoolDescriptor, and AZ::Metal::BufferPoolDescriptor.

Public Member Functions

 AZ_RTTI (BufferPoolDescriptor, "{53074556-41D1-4246-8BF0-E5B096997C65}", ResourcePoolDescriptor)
 
- Public Member Functions inherited from AZ::RHI::ResourcePoolDescriptor
 AZ_RTTI (ResourcePoolDescriptor, "{C4B9BF83-B171-4DB9-93D6-0879C7CEF5C2}")
 
 AZ_CLASS_ALLOCATOR (ResourcePoolDescriptor, SystemAllocator)
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 
- Static Public Member Functions inherited from AZ::RHI::ResourcePoolDescriptor
static void Reflect (AZ::ReflectContext *context)
 

Public Attributes

HeapMemoryLevel m_heapMemoryLevel = HeapMemoryLevel::Device
 
HostMemoryAccess m_hostMemoryAccess = HostMemoryAccess::Write
 
BufferBindFlags m_bindFlags = BufferBindFlags::None
 
AZ::u64 m_largestPooledAllocationSizeInBytes = 0
 
HardwareQueueClassMask m_sharedQueueMask = HardwareQueueClassMask::All
 The mask of queue classes supporting shared access of this pool.
 
- Public Attributes inherited from AZ::RHI::ResourcePoolDescriptor
AZ::u64 m_budgetInBytes = 0
 

Member Data Documentation

◆ m_bindFlags

BufferBindFlags AZ::RHI::BufferPoolDescriptor::m_bindFlags = BufferBindFlags::None

The set of buffer bind flags supported by this pool. Buffers must be initialized with the exact bind flags as the parent pool.

◆ m_heapMemoryLevel

HeapMemoryLevel AZ::RHI::BufferPoolDescriptor::m_heapMemoryLevel = HeapMemoryLevel::Device

The memory heap to store final buffer allocations. Currently, there are two supported options:

  • 'Device' memory is stored local to GPU hardware. On certain platforms this may require a transfer from Host memory through a DMA controller. In this scenario, Host memory will be used to stage the transfer.
  • 'Host' memory is stored local to the CPU. This guarantees fast CPU access and will not require an explicit staging transfer. However, GPU read access will be slower as a result.

◆ m_hostMemoryAccess

HostMemoryAccess AZ::RHI::BufferPoolDescriptor::m_hostMemoryAccess = HostMemoryAccess::Write

If the heap memory type is host memory, this specifies the CPU access pattern from the user in system memory.

  • Host 'Write' pools are written by the CPU and read by the GPU.
  • Host 'Read' pools are written by the GPU and read by the CPU.

If the Device heap is used, this value must be 'Write', as only 'Write' operations are permitted for Map operations. Attempting to assign 'Read' when the 'Device' heap is specified will result in an error.

◆ m_largestPooledAllocationSizeInBytes

AZ::u64 AZ::RHI::BufferPoolDescriptor::m_largestPooledAllocationSizeInBytes = 0

Specifies the largest allocation required of the pool. Useful if you are allocating buffers larger than the RHI default page size.


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