#include <AliasedHeap.h>
Inherits AZ::RHI::ResourcePool.
Inherited by AZ::DX12::AliasedHeap, AZ::Metal::AliasedHeap, AZ::Null::AliasedHeap, AZ::RHI::Internal::NoAllocationAliasedHeap, and AZ::Vulkan::AliasedHeap.
Public Member Functions | |
AZ_CLASS_ALLOCATOR (AliasedHeap, AZ::SystemAllocator) | |
AZ_RTTI (AliasedHeap, "{9C4BB24D-3B76-4584-BA68-600BC7E2A2AA}") | |
ResultCode | Init (Device &device, const AliasedHeapDescriptor &descriptor) |
Initialize an Aliased Heap. | |
void | Begin (const RHI::TransientAttachmentPoolCompileFlags compileFlags) |
ResultCode | ActivateBuffer (const TransientBufferDescriptor &descriptor, Scope &scope, Buffer **activatedBuffer) |
Begin the use of a buffer resource. | |
void | DeactivateBuffer (const AttachmentId &bufferAttachment, Scope &scope) |
Ends the use of a previously activated buffer. | |
ResultCode | ActivateImage (const TransientImageDescriptor &descriptor, Scope &scope, Image **activatedImage) |
Begin the use of an image resource. | |
void | DeactivateImage (const AttachmentId &imageAttachment, Scope &scope) |
Ends the use of a previously activated image. | |
void | End () |
Ends the use of an Aliased Heap in a frame. | |
const AliasedHeapDescriptor & | GetDescriptor () const override |
Returns the descriptor. | |
const TransientAttachmentStatistics::Heap & | GetStatistics () const |
Returns the heap statistics of the frame when the Aliased Heap was began with the GatherStatistics flag. | |
void | RemoveFromCache (RHI::AttachmentId attachmentId) |
Remove the entry related to the provided attachmentId from the cache as it is probably stale now. | |
Public Member Functions inherited from AZ::RHI::ResourcePool | |
AZ_RTTI (ResourcePool, "{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 |
virtual const ResourcePoolDescriptor & | GetDescriptor () const =0 |
Returns the resource pool descriptor. | |
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. | |
Protected Member Functions | |
void | ComputeFragmentation () const override |
Protected Member Functions inherited from AZ::RHI::ResourcePool | |
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 (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. | |
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. | |
void | Shutdown () override |
Clears the current bound device to null. | |
Protected Member Functions inherited from AZ::RHI::Object | |
void | add_ref () const |
void | release () const |
Additional Inherited Members | |
Protected Types inherited from AZ::RHI::ResourcePool | |
using | PlatformMethod = AZStd::function< RHI::ResultCode()> |
A simple functor that returns a result code. | |
Protected Attributes inherited from AZ::RHI::ResourcePool | |
PoolMemoryUsage | m_memoryUsage |
Protected Attributes inherited from AZ::RHI::Object | |
AZStd::atomic_int | m_useCount = 0 |
An Aliased Heap is a resource pool that uses a heap of memory that allow aliasing of resources. Two resources are aliased when they use the same portion of memory. Aliased Heaps are used for allocating transient attachments (resources that are valid only during the duration of a frame). and they will reuse memory whenever possible, and will also track the necessary barriers that need to be inserted when aliasing happens. Aliased Heaps do not support aliased resources being used at the same time (even if the resources are compatible).
void AZ::RHI::AliasedHeap::Begin | ( | const RHI::TransientAttachmentPoolCompileFlags | compileFlags | ) |
Begin the use of an Aliased Heap in a frame. Resets all previous resource uses.
compileFlags | Flags that modify behavior of the heap. |
|
overrideprotectedvirtual |
Compute the memory fragmentation for each constituent heap and store the results in m_memoryUsage. This method is invoked when memory statistics gathering is active.
Implements AZ::RHI::ResourcePool.
|
overridevirtual |
Returns the descriptor.
Implements AZ::RHI::ResourcePool.
Reimplemented in AZ::DX12::AliasedHeap, and AZ::Vulkan::AliasedHeap.