#include <MultiDeviceResource.h>
Inherits AZ::RHI::MultiDeviceObject.
Inherited by AZ::RHI::MultiDeviceQuery.
Public Member Functions | |
AZ_RTTI (MultiDeviceResource, "{613AED98-48FD-4453-98F8-6956D2133489}", MultiDeviceObject) | |
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 MultiDeviceResourcePool * | GetPool () const |
MultiDeviceResourcePool * | GetPool () |
uint32_t | GetVersion () const |
const FrameAttachment * | GetFrameAttachment () const |
Returns the frame attachment associated with this image (if it exists). | |
virtual void | InvalidateViews ()=0 |
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. | |
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 | FrameAttachment |
class | MultiDeviceResourcePool |
Additional Inherited Members | |
Protected Member Functions inherited from AZ::RHI::MultiDeviceObject | |
void | Init (MultiDevice::DeviceMask deviceMask) |
The derived class should call this method to assign the device. | |
void | Shutdown () override |
Clears the current bound device to null. | |
template<typename T > | |
void | IterateDevices (T callback) |
Helper method that will iterate over all selected devices and call the provided callback. | |
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 |
MultiDeviceResource is a base class for pooled, multi-device RHI resources (MultiDeviceImage / MultiDeviceBuffer / MultiDeviceShaderResourceGroup, etc). It provides some common lifecycle management semantics. MultiDeviceResource 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 MultiDeviceResourcePool * AZ::RHI::MultiDeviceResource::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::MultiDeviceResource::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.
|
pure virtual |
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.
Implemented in AZ::RHI::MultiDeviceQuery.
|
overridepure virtual |
Shuts down the resource by detaching it from its parent pool.
Reimplemented from AZ::RHI::MultiDeviceObject.
Implemented in AZ::RHI::MultiDeviceQuery.