#include <DeviceShaderResourceGroup.h>
Inherits AZ::RHI::DeviceResource.
Inherited by AZ::DX12::ShaderResourceGroup, AZ::Metal::ShaderResourceGroup, AZ::Null::ShaderResourceGroup, and AZ::Vulkan::ShaderResourceGroup.
Public Types | |
| enum class | CompileMode : uint8_t { Async , Sync } |
| Defines the compilation modes for an SRG. | |
Public Member Functions | |
| AZ_RTTI (DeviceShaderResourceGroup, "{91B217A5-EFEC-46C5-82DA-B4C77931BC1A}", DeviceResource) | |
| void | Compile (const DeviceShaderResourceGroupData &shaderResourceGroupData, CompileMode compileMode=CompileMode::Async) |
| DeviceShaderResourceGroupPool * | GetPool () |
| Returns the shader resource group pool that this group is registered on. | |
| const DeviceShaderResourceGroupPool * | GetPool () const |
| void | ReportMemoryUsage (MemoryStatisticsBuilder &builder) const override |
| const DeviceShaderResourceGroupData & | GetData () const |
| Returns the data currently bound on the shader resource group. | |
| uint32_t | GetBindingSlot () const |
| Returns the binding slot specified by the layout associated to this shader resource group. | |
| bool | IsQueuedForCompile () const |
| Returns whether the group is currently queued for compilation. | |
| void | DisableCompilationForAllResourceTypes () |
| Resets the update mask after m_updateMaskResetLatency number of compiles. | |
| bool | IsAnyResourceTypeUpdated () const |
| Returns true if any of the resource type has been enabled for compilation. | |
| bool | IsResourceTypeEnabledForCompilation (uint32_t resourceTypeMask) const |
| Returns true if a specific resource type has been enabled for compilation. | |
| void | EnableRhiResourceTypeCompilation (const DeviceShaderResourceGroupData::ResourceTypeMask resourceTypeMask) |
| Update the m_rhiUpdateMask for a given resource type which will ensure we will compile that type for the current frame. | |
| void | ResetResourceTypeIteration (const DeviceShaderResourceGroupData::ResourceType resourceType) |
| HashValue64 | GetViewHash (const AZ::Name &viewName) |
| Return the view hash stored within m_viewHash. | |
| void | UpdateViewHash (const AZ::Name &viewName, const HashValue64 viewHash) |
| Update the view hash within m_viewHash. | |
Public Member Functions inherited from AZ::RHI::DeviceResource | |
| AZ_RTTI (DeviceResource, "{9D02CDAC-80EB-4B77-8E62-849AC6E69206}", DeviceObject) | |
| bool | IsAttachment () const |
| Returns whether the resource is currently an attachment on a frame graph. | |
| void | Shutdown () override final |
| Shuts down the buffer by detaching it from its parent pool. | |
| const DeviceResourcePool * | GetPool () const |
| DeviceResourcePool * | GetPool () |
| uint32_t | GetVersion () const |
| const FrameAttachment * | GetFrameAttachment () const |
| Returns the frame attachment associated with this image (if it exists). | |
| void | InvalidateViews () |
| bool | IsInResourceCache (const ImageViewDescriptor &imageViewDescriptor) |
| Returns true if the DeviceResourceView is in the cache. | |
| bool | IsInResourceCache (const BufferViewDescriptor &bufferViewDescriptor) |
| void | EraseResourceView (DeviceResourceView *resourceView) const |
| Removes the provided DeviceResourceView from the cache. | |
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. | |
Friends | |
| class | DeviceShaderResourceGroupPool |
Additional Inherited Members | |
Protected Member Functions inherited from AZ::RHI::DeviceResource | |
| Ptr< DeviceImageView > | GetResourceView (const ImageViewDescriptor &imageViewDescriptor) const |
| Returns view based on the descriptor. | |
| Ptr< DeviceBufferView > | GetResourceView (const BufferViewDescriptor &bufferViewDescriptor) const |
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 |
Protected Attributes inherited from AZ::RHI::Object | |
| AZStd::atomic_int | m_useCount = 0 |
This class is a platform-independent base class for a shader resource group. It has a pointer to the resource group pool, if the user initialized the group onto a pool.
| void AZ::RHI::DeviceShaderResourceGroup::Compile | ( | const DeviceShaderResourceGroupData & | shaderResourceGroupData, |
| CompileMode | compileMode = CompileMode::Async |
||
| ) |
Compiles the SRG with the provided data. When using Async compile mode, it queues a request that the parent pool compile this group (compilation is deferred). When using Sync compile mode the SRG compilation will happen immediately.
|
overridevirtual |
This implementation does not report any memory usage. Platforms may override to report more accurate usage metrics.
Implements AZ::RHI::DeviceResource.
| void AZ::RHI::DeviceShaderResourceGroup::ResetResourceTypeIteration | ( | const DeviceShaderResourceGroupData::ResourceType | resourceType | ) |
Reset the iteration counter to 0 for a resource type which will ensure that the given type will be compiled for another m_updateMaskResetLatency number of Compile calls