Inherits AZ::RHI::DeviceImagePoolBase.
Inherited by AZ::DX12::StreamingImagePool, AZ::Metal::StreamingImagePool, AZ::Null::StreamingImagePool, and AZ::Vulkan::StreamingImagePool.
Public Types | |
| using | LowMemoryCallback = AZStd::function< bool(size_t targetMemoryUsage)> |
Public Member Functions | |
| AZ_RTTI (DeviceStreamingImagePool, "{C9F1E40E-D852-4515-ADCC-E2D3AB4B56AB}", DeviceImagePoolBase) | |
| ResultCode | Init (Device &device, const StreamingImagePoolDescriptor &descriptor) |
| Initializes the pool. The pool must be initialized before images can be registered with it. | |
| ResultCode | InitImage (const DeviceStreamingImageInitRequest &request) |
| Initializes the backing resources of an image. | |
| ResultCode | ExpandImage (const DeviceStreamingImageExpandRequest &request) |
| ResultCode | TrimImage (DeviceImage &image, uint32_t targetMipLevel) |
| const StreamingImagePoolDescriptor & | GetDescriptor () const override final |
| Returns the resource pool descriptor. | |
| void | SetLowMemoryCallback (LowMemoryCallback callback) |
| bool | SetMemoryBudget (size_t newBudget) |
| bool | SupportTiledImage () const |
| Return if it supports tiled image feature. | |
Public Member Functions inherited from AZ::RHI::DeviceImagePoolBase | |
| AZ_RTTI (DeviceImagePoolBase, "{6353E390-C5D2-42FF-8AA9-9AFCD1F2F1B5}", DeviceResourcePool) | |
Public Member Functions inherited from AZ::RHI::DeviceResourcePool | |
| AZ_RTTI (DeviceResourcePool, "{757EB674-25DC-4D00-9808-D3DAF33A4EFE}", DeviceObject) | |
| void | Shutdown () override final |
| Shuts down the pool. This method will shutdown all resources associated with the pool. | |
| 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. | |
| ResourcePoolResolver * | GetResolver () |
| Returns the resolver for this pool. | |
| const ResourcePoolResolver * | GetResolver () const |
| const HeapMemoryUsage & | GetHeapMemoryUsage (HeapMemoryLevel heapMemoryLevel) const |
| Returns the memory used by this pool for a specific heap type. | |
| const PoolMemoryUsage & | GetMemoryUsage () const |
| Returns the memory used by this pool. | |
Public Member Functions inherited from AZ::RHI::DeviceObject | |
| AZ_RTTI (DeviceObject, "{17D34F71-944C-4AF5-9823-627474C4C0A6}", Object) | |
| bool | IsInitialized () const |
| Returns whether the device object is initialized. | |
| Device & | GetDevice () 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. | |
Static Public Attributes | |
| static const uint64_t | ImagePoolMininumSizeInBytes = 16ul * 1024 * 1024 |
Protected Attributes | |
| LowMemoryCallback | m_memoryReleaseCallback = nullptr |
Protected Attributes inherited from AZ::RHI::DeviceResourcePool | |
| PoolMemoryUsage | m_memoryUsage |
Protected Attributes inherited from AZ::RHI::Object | |
| AZStd::atomic_int | m_useCount = 0 |
Additional Inherited Members | |
Protected Types inherited from AZ::RHI::DeviceResourcePool | |
| using | PlatformMethod = AZStd::function< RHI::ResultCode()> |
| A simple functor that returns a result code. | |
Protected Member Functions inherited from AZ::RHI::DeviceImagePoolBase | |
| ResultCode | InitImage (DeviceImage *image, const ImageDescriptor &descriptor, PlatformMethod platformInitResourceMethod) |
Protected Member Functions inherited from AZ::RHI::DeviceResourcePool | |
| void | OnFrameBegin () override |
| void | OnFrameCompile () override |
| void | OnFrameEnd () override |
| void | SetResolver (AZStd::unique_ptr< ResourcePoolResolver > &&resolvePolicy) |
| virtual void | ComputeFragmentation () const =0 |
| ResultCode | Init (Device &device, const ResourcePoolDescriptor &descriptor, const PlatformMethod &initMethod) |
| ResultCode | InitResource (DeviceResource *resource, const PlatformMethod &initResourceMethod) |
| bool | ValidateIsRegistered (const DeviceResource *resource) const |
| bool | ValidateIsUnregistered (const DeviceResource *resource) const |
| bool | ValidateIsInitialized () const |
| Validates that the resource pool is initialized and ready to service requests. | |
| bool | ValidateNotProcessingFrame () const |
| Validates that we are not in the frame processing phase. | |
Protected Member Functions inherited from AZ::RHI::DeviceObject | |
| void | Init (Device &device) |
| The derived class should call this method to assign the device. | |
Protected Member Functions inherited from AZ::RHI::Object | |
| void | add_ref () const |
| void | release () const |
| using AZ::RHI::DeviceStreamingImagePool::LowMemoryCallback = AZStd::function<bool(size_t targetMemoryUsage)> |
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.
| ResultCode AZ::RHI::DeviceStreamingImagePool::ExpandImage | ( | const DeviceStreamingImageExpandRequest & | request | ) |
Expands a streaming image with new mip chain data. The expansion can be performed asynchronously or synchronously depends on @m_waitForUpload in @DeviceStreamingImageExpandRequest. Upon completion, the views will be invalidated and map to the newly streamed mip levels.
|
finaloverridevirtual |
Returns the resource pool descriptor.
Implements AZ::RHI::DeviceResourcePool.
| bool AZ::RHI::DeviceStreamingImagePool::SetMemoryBudget | ( | size_t | newBudget | ) |
Set memory budget Return true if the pool was set to new memory budget successfully
| ResultCode AZ::RHI::DeviceStreamingImagePool::TrimImage | ( | DeviceImage & | 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.