#include <Resource.h>
Inherits AZ::RHI::MultiDeviceObject.
Inherited by AZ::RHI::Buffer, AZ::RHI::Image, AZ::RHI::Query, and AZ::RHI::ShaderResourceGroup.
Public Member Functions | |
| 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. | |
| virtual void | Shutdown () override=0 |
| Shuts down the resource by detaching it from its parent pool. | |
| const ResourcePool * | GetPool () const |
| ResourcePool * | 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 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. | |
Protected Member Functions | |
| Ptr< ImageView > | GetResourceView (const ImageViewDescriptor &imageViewDescriptor) const |
| Returns view based on the descriptor and keeps a raw pointer in a local cache. | |
| Ptr< BufferView > | GetResourceView (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 |
Friends | |
| class | FrameAttachment |
| class | ResourcePool |
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 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 |
Resource is a base class for pooled, multi-device RHI resources (Image / Buffer / ShaderResourceGroup, etc). It provides some common lifecycle management semantics. Resource creation is separate from initialization. Resources are created separate from any pool, but its backing platform data is associated at initialization time on a specific pool.
| const ResourcePool * AZ::RHI::Resource::GetPool | ( | ) | const |
Returns the parent pool this resource is registered on. Since resource creation is separate from initialization, this will be null until the resource is registered on a pool.
| uint32_t AZ::RHI::Resource::GetVersion | ( | ) | const |
Returns the version number. This number is monotonically increased anytime new platform memory is assigned to the resource. Any dependent resource is valid so long as the version numbers match.
| void AZ::RHI::Resource::InvalidateViews | ( | ) |
Invalidates all views referencing this resource. Invalidation is handled implicitly on a Shutdown / Init cycle from the pool. For example, it is safe to create a resource, create a view to that resource, and then Shutdown / Re-Init the resource. InvalidateViews is called to synchronize views (and shader resource groups which hold them) to the new data.
Platform back-ends which invalidate GPU-specific data on the resource without an explicit shutdown / re-initialization will need to call this method explicitly.
|
overridepure virtual |
Shuts down the resource by detaching it from its parent pool.
Reimplemented from AZ::RHI::MultiDeviceObject.
Implemented in AZ::RHI::Buffer, AZ::RHI::Image, AZ::RHI::Query, and AZ::RHI::ShaderResourceGroup.