|
| AZ_CLASS_ALLOCATOR (MergedShaderResourceGroupPool, AZ::SystemAllocator) |
|
| AZ_RTTI (MergedShaderResourceGroupPool, "{9CBCF750-0BE7-410E-9828-ACA55ED828AD}", Base) |
|
MergedShaderResourceGroup * | FindOrCreate (const ShaderResourceGroupList &shaderResourceGroupList) |
|
| AZ_CLASS_ALLOCATOR (ShaderResourceGroupPool, AZ::SystemAllocator) |
|
| AZ_RTTI (ShaderResourceGroupPool, "593C5F3B-67FD-415C-8305-8C5D272649B7", Base) |
|
| AZ_RTTI (ShaderResourceGroupPool, "{9AAB5A85-4063-4BAE-9A9C-E25640F18FFA}", ResourcePool) |
|
ResultCode | Init (Device &device, const ShaderResourceGroupPoolDescriptor &descriptor) |
| Initializes the shader resource group pool.
|
|
ResultCode | InitGroup (ShaderResourceGroup &srg) |
|
ResultCode | CompileGroup (ShaderResourceGroup &shaderResourceGroup, const ShaderResourceGroupData &shaderResourceGroupData) |
| Compile Shader Resource Group with the associated ShaderResourceGroupData.
|
|
const ShaderResourceGroupPoolDescriptor & | GetDescriptor () const override |
| Returns the descriptor passed at initialization time.
|
|
const ShaderResourceGroupLayout * | GetLayout () const |
| Returns the SRG layout used when initializing the pool.
|
|
void | CompileGroupsBegin () |
|
void | CompileGroupsEnd () |
| Ends compilation of the pool. Must be preceeded by a CompileGroupsBegin() call.
|
|
void | CompileGroupsForInterval (Interval interval) |
| Compiles an interval [min, max) of groups.
|
|
uint32_t | GetGroupsToCompileCount () const |
| Returns the total number of groups that need to be compiled.
|
|
bool | HasConstants () const |
| Returns whether layout in this pool has constants.
|
|
bool | HasImageGroup () const |
| Returns whether groups in this pool have an image table.
|
|
bool | HasBufferGroup () const |
| Returns whether groups in this pool have a buffer table.
|
|
bool | HasSamplerGroup () const |
| Returns whether groups in this pool have a sampler table.
|
|
| 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.
|
|
| AZ_RTTI (DeviceObject, "{17D34F71-944C-4AF5-9823-627474C4C0A6}", Object) |
|
bool | IsInitialized () const |
| Returns whether the device object is initialized.
|
|
Device & | GetDevice () const |
|
| 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.
|
|
|
using | PlatformMethod = AZStd::function< RHI::ResultCode()> |
| A simple functor that returns a result code.
|
|
void | OnFrameEnd () override |
|
void | ComputeFragmentation () const override |
|
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.
|
|
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.
|
|
void | add_ref () const |
|
void | release () const |
|
PoolMemoryUsage | m_memoryUsage |
|
AZStd::atomic_int | m_useCount = 0 |
|
ShaderResourceGroup resource pool for creating and managing MergedShaderResouceGroups. MergedShaderResourceGroups can only be created through this pool since we want to be able to reuse them as much as possible. The pool contains an object cache to carry a number of MergedShaderResourceGroups for re usability. A merged ShaderResourceGroupLayout must be provided at initialization time.