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::StreamingImagePool Class Reference

Inherits AZ::RHI::ImagePoolBase.

Public Types

using LowMemoryCallback = DeviceStreamingImagePool::LowMemoryCallback
 

Public Member Functions

 AZ_CLASS_ALLOCATOR (StreamingImagePool, AZ::SystemAllocator, 0)
 
 AZ_RTTI (StreamingImagePool, "{466B4368-79D6-4363-91DE-3D0001159F7C}", ImagePoolBase)
 
 AZ_RHI_MULTI_DEVICE_OBJECT_GETTER (StreamingImagePool)
 
ResultCode Init (const StreamingImagePoolDescriptor &descriptor)
 Initializes the pool. The pool must be initialized before images can be registered with it.
 
ResultCode InitImage (const StreamingImageInitRequest &request)
 Initializes the backing resources of an image.
 
ResultCode UpdateImageDeviceMask (const StreamingImageDeviceMaskRequest &request)
 Updates the device mask of an image instance created from this pool.
 
ResultCode ExpandImage (const StreamingImageExpandRequest &request)
 
ResultCode TrimImage (Image &image, uint32_t targetMipLevel)
 
const StreamingImagePoolDescriptorGetDescriptor () const override final
 Returns the resource pool descriptor.
 
void SetLowMemoryCallback (LowMemoryCallback callback)
 
bool SetMemoryBudget (size_t newBudget)
 
const HeapMemoryUsageGetHeapMemoryUsage (HeapMemoryLevel heapMemoryLevel) const
 Returns the maximum memory used by one of its pools for a specific heap type.
 
bool SupportTiledImage () const
 Return if it supports tiled image feature.
 
void Shutdown () override final
 Shuts down the pool. This method will shutdown all resources associated with the pool.
 
- Public Member Functions inherited from AZ::RHI::ImagePoolBase
 AZ_RTTI (ImagePoolBase, "{CAC2167A-D65A-493F-A450-FDE2B1A883B1}", ResourcePool)
 
- Public Member Functions inherited from AZ::RHI::ResourcePool
 AZ_RTTI (ResourcePool, "{BAE5442C-A312-4133-AE80-1200753A7C3E}", MultiDeviceObject)
 
template<typename ResourceType >
void ForEach (AZStd::function< void(ResourceType &)> callback)
 
template<typename ResourceType >
void ForEach (AZStd::function< void(const ResourceType &)> callback) const
 
uint32_t GetResourceCount () const
 Returns the number of resources in the pool.
 
- Public Member Functions inherited from AZ::RHI::MultiDeviceObject
 AZ_RTTI (MultiDeviceObject, "{17D34F71-944C-4AF5-9823-627474C4C0A6}", Object)
 
bool IsInitialized () const
 Returns whether the device object is initialized.
 
AZ_FORCE_INLINE bool IsDeviceSet (int deviceIndex) const
 
MultiDevice::DeviceMask GetDeviceMask () const
 
- Public Member Functions inherited from AZ::RHI::Object
 AZ_RTTI (Object, "{E43378F1-2331-4173-94B8-990ED20E6003}")
 
void SetName (const Name &name)
 Sets the name of the object.
 
const Name & GetName () const
 Returns the name set on the object by SetName.
 
uint32_t use_count ()
 Returns the current use count of the object.
 

Additional Inherited Members

- Static Public Member Functions inherited from AZ::RHI::MultiDeviceObject
template<typename T >
static AZ_FORCE_INLINE void IterateDevices (MultiDevice::DeviceMask deviceMask, T callback)
 
- Protected Types inherited from AZ::RHI::ResourcePool
using PlatformMethod = AZStd::function< RHI::ResultCode()>
 //!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//
 
- Protected Member Functions inherited from AZ::RHI::ImagePoolBase
ResultCode InitImage (Image *image, const ImageDescriptor &descriptor, PlatformMethod platformInitResourceMethod)
 
- Protected Member Functions inherited from AZ::RHI::ResourcePool
ResultCode Init (MultiDevice::DeviceMask deviceMask, const PlatformMethod &initMethod)
 
ResultCode InitResource (Resource *resource, const PlatformMethod &initResourceMethod)
 
bool ValidateIsRegistered (const Resource *resource) const
 
bool ValidateIsUnregistered (const Resource *resource) const
 
bool ValidateIsInitialized () const
 Validates that the resource pool is initialized and ready to service requests.
 
- Protected Member Functions inherited from AZ::RHI::MultiDeviceObject
void Init (MultiDevice::DeviceMask deviceMask)
 The derived class should call this method to assign the device.
 
template<typename T >
AZ_FORCE_INLINE void IterateDevices (T callback)
 Helper method that will iterate over all selected devices and call the provided callback.
 
template<typename T , typename U >
AZ_FORCE_INLINE decltype(auto) IterateObjects (U callback)
 
template<typename T , typename U >
AZ_FORCE_INLINE decltype(auto) IterateObjects (U callback) const
 
template<typename T >
AZ_FORCE_INLINE Ptr< T > GetDeviceObject (int deviceIndex) const
 
- Protected Member Functions inherited from AZ::RHI::Object
void add_ref () const
 
void release () const
 
- Protected Attributes inherited from AZ::RHI::MultiDeviceObject
AZStd::unordered_map< int, Ptr< DeviceObject > > m_deviceObjects
 A map of all device-specific objects, indexed by the device index.
 
- Protected Attributes inherited from AZ::RHI::Object
AZStd::atomic_int m_useCount = 0
 

Member Typedef Documentation

◆ LowMemoryCallback

Set a callback function that is called when the pool is out of memory for new allocations User could provide such a callback function which releases some resources from the pool If some resources are released, the function may return true. If nothing is released, the function should return false.

Member Function Documentation

◆ ExpandImage()

ResultCode AZ::RHI::StreamingImagePool::ExpandImage ( const StreamingImageExpandRequest request)

Expands a streaming image with new mip chain data. The expansion can be performed asynchronously or synchronously depends on @m_waitForUpload in @StreamingImageExpandRequest. Upon completion, the views will be invalidated and map to the newly streamed mip levels.

◆ GetDescriptor()

const StreamingImagePoolDescriptor & AZ::RHI::StreamingImagePool::GetDescriptor ( ) const
finaloverridevirtual

Returns the resource pool descriptor.

Implements AZ::RHI::ResourcePool.

◆ SetMemoryBudget()

bool AZ::RHI::StreamingImagePool::SetMemoryBudget ( size_t  newBudget)

Set memory budget for all device pools Return true if the pool was set to new memory budget successfully

◆ Shutdown()

void AZ::RHI::StreamingImagePool::Shutdown ( )
finaloverridevirtual

Shuts down the pool. This method will shutdown all resources associated with the pool.

Implements AZ::RHI::ResourcePool.

◆ TrimImage()

ResultCode AZ::RHI::StreamingImagePool::TrimImage ( Image image,
uint32_t  targetMipLevel 
)

Trims a streaming image down to (and including) the target mip level. This occurs immediately. The newly evicted mip levels are no longer accessible by image views and the contents are considered undefined.


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