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

#include <ShaderResourceGroup.h>

Inherits AZ::RHI::Resource.

Public Types

using CompileMode = DeviceShaderResourceGroup::CompileMode
 

Public Member Functions

 AZ_CLASS_ALLOCATOR (ShaderResourceGroup, AZ::SystemAllocator, 0)
 
 AZ_RTTI (ShaderResourceGroup, "{6C1B42AA-51A9-482F-9203-6415CA9373B7}", Resource)
 
 AZ_RHI_MULTI_DEVICE_OBJECT_GETTER (ShaderResourceGroup)
 
void Compile (const ShaderResourceGroupData &shaderResourceGroupData, CompileMode compileMode=CompileMode::Async)
 
ShaderResourceGroupPoolGetPool ()
 Returns the shader resource group pool that this group is registered on.
 
const ShaderResourceGroupPoolGetPool () const
 
const ShaderResourceGroupDataGetData () 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 Shutdown () override final
 Shuts down the resource by detaching it from its parent pool.
 
- Public Member Functions inherited from AZ::RHI::Resource
 AZ_RTTI (Resource, "{613AED98-48FD-4453-98F8-6956D2133489}", MultiDeviceObject)
 
 AZ_RHI_MULTI_DEVICE_OBJECT_GETTER (Resource)
 
bool IsAttachment () const
 Returns whether the resource is currently an attachment on a frame graph.
 
const ResourcePoolGetPool () const
 
ResourcePoolGetPool ()
 
uint32_t GetVersion () const
 
const FrameAttachmentGetFrameAttachment () const
 Returns the frame attachment associated with this image (if it exists).
 
void InvalidateViews ()
 
bool IsInResourceCache (const ImageViewDescriptor &imageViewDescriptor)
 Returns true if the ResourceView is in the cache.
 
bool IsInResourceCache (const BufferViewDescriptor &bufferViewDescriptor)
 
void EraseResourceView (ResourceView *resourceView) const
 
- 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.
 

Friends

class ShaderResourceGroupPool
 

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 Member Functions inherited from AZ::RHI::Resource
Ptr< ImageViewGetResourceView (const ImageViewDescriptor &imageViewDescriptor) const
 Returns view based on the descriptor and keeps a raw pointer in a local cache.
 
Ptr< BufferViewGetResourceView (const BufferViewDescriptor &bufferViewDescriptor) const
 
- 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
 

Detailed Description

This class is a platform-independent base class for a multi-device shader resource group. It has a pointer to the multi-device resource group pool, if the user initialized the group onto a pool.

Member Function Documentation

◆ Compile()

void AZ::RHI::ShaderResourceGroup::Compile ( const ShaderResourceGroupData 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.

◆ Shutdown()

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

Shuts down the resource by detaching it from its parent pool.

Implements AZ::RHI::Resource.


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