Open 3D Engine Atom Gem API Reference 25.05.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::RHI::RHISystem Class Referencefinal

Inherits AZ::RHI::RHISystemInterface, and AZ::RHI::RHIMemoryStatisticsInterface.

Public Types

using FrameGraphCallback = AZStd::function< void(RHI::FrameGraphBuilder &)>
 An external callback to build the frame graph.
 

Public Member Functions

ResultCode InitDevices (int deviceCount=1)
 
void Init (RHI::Ptr< RHI::ShaderResourceGroupLayout > bindlessSrgLayout=nullptr)
 
void Shutdown ()
 
void FrameUpdate (FrameGraphCallback frameGraphCallback)
 Invokes the frame scheduler. The provided callback is invoked prior to compilation of the graph.
 
bool RegisterXRSystem (XRRenderingInterface *xrRenderingInterface)
 Register/Unregister xr system.
 
void UnregisterXRSystem ()
 
void SetNumActiveRenderPipelines (uint16_t numActiveRenderPipelines)
 Get/Set functions for the number of active pipelines in use in a frame.
 
uint16_t GetNumActiveRenderPipelines () const override
 
RHI::DeviceGetDevice (int deviceIndex=MultiDevice::DefaultDeviceIndex) override
 
const RHI::DeviceGetDevice (int deviceIndex=MultiDevice::DefaultDeviceIndex) const override
 
AZStd::optional< int > AddVirtualDevice (int deviceIndexToVirtualize=MultiDevice::DefaultDeviceIndex) override
 Add a new virtual device (referencing the same physical device as an existing device marked by deviceIndexToVirtualize)
 
int GetDeviceCount () override
 
MultiDevice::DeviceMask GetRayTracingSupport () override
 
RHI::DrawListTagRegistryGetDrawListTagRegistry () override
 
RHI::PipelineStateCacheGetPipelineStateCache () override
 
void ModifyFrameSchedulerStatisticsFlags (RHI::FrameSchedulerStatisticsFlags statisticsFlags, bool enableFlags) override
 
double GetCpuFrameTime () const override
 
const AZStd::unordered_map< int, TransientAttachmentPoolDescriptor > * GetTransientAttachmentPoolDescriptor () const override
 
ConstPtr< PlatformLimitsDescriptorGetPlatformLimitsDescriptor (int deviceIndex=MultiDevice::DefaultDeviceIndex) const override
 
void QueueRayTracingShaderTableForBuild (DeviceRayTracingShaderTable *rayTracingShaderTable) override
 
XRRenderingInterfaceGetXRSystem () const override
 
void SetDrawListTagEnabledByDefault (DrawListTag drawListTag, bool enabled) override
 
const AZStd::vector< DrawListTag > & GetDrawListTagsDisabledByDefault () const override
 
bool GpuMarkersEnabled () const override
 
bool CanMergeSubpasses () const override
 Returns true is the RHI supports merging Subpasses.
 
AZStd::unordered_map< int, TransientAttachmentStatisticsGetTransientAttachmentStatistics () const override
 
const RHI::MemoryStatisticsGetMemoryStatistics () const override
 
void WriteResourcePoolInfoToJson (const AZStd::vector< RHI::MemoryStatistics::Pool > &pools, rapidjson::Document &doc) const override
 
AZ::Outcome< void, AZStd::string > LoadResourcePoolInfoFromJson (AZStd::vector< RHI::MemoryStatistics::Pool > &pools, AZStd::vector< RHI::MemoryStatistics::Heap > &heaps, rapidjson::Document &doc, const AZStd::string &fileName) const override
 
void TriggerResourcePoolAllocInfoDump () const override
 
- Public Member Functions inherited from AZ::RHI::RHISystemInterface
 AZ_RTTI (RHISystemInterface, "{B70BB184-D7D5-4C15-9C82-C9459F552F13}")
 
 AZ_DISABLE_COPY_MOVE (RHISystemInterface)
 
- Public Member Functions inherited from AZ::RHI::RHIMemoryStatisticsInterface
 AZ_RTTI (RHIMemoryStatisticsInterface, "{C3789EE2-7922-434D-AC19-8A2D80194C0E}")
 
 AZ_DISABLE_COPY_MOVE (RHIMemoryStatisticsInterface)
 

Additional Inherited Members

- Static Public Member Functions inherited from AZ::RHI::RHISystemInterface
static RHISystemInterfaceGet ()
 
- Static Public Member Functions inherited from AZ::RHI::RHIMemoryStatisticsInterface
static RHIMemoryStatisticsInterfaceGet ()
 

Member Function Documentation

◆ AddVirtualDevice()

AZStd::optional< int > AZ::RHI::RHISystem::AddVirtualDevice ( int  deviceIndexToVirtualize = MultiDevice::DefaultDeviceIndex)
overridevirtual

Add a new virtual device (referencing the same physical device as an existing device marked by deviceIndexToVirtualize)

Implements AZ::RHI::RHISystemInterface.

◆ CanMergeSubpasses()

bool AZ::RHI::RHISystem::CanMergeSubpasses ( ) const
overridevirtual

Returns true is the RHI supports merging Subpasses.

Implements AZ::RHI::RHISystemInterface.

◆ GetCpuFrameTime()

double AZ::RHI::RHISystem::GetCpuFrameTime ( ) const
overridevirtual

◆ GetDevice() [1/2]

const RHI::Device * AZ::RHI::RHISystem::GetDevice ( int  deviceIndex = MultiDevice::DefaultDeviceIndex) const
overridevirtual

◆ GetDevice() [2/2]

RHI::Device * AZ::RHI::RHISystem::GetDevice ( int  deviceIndex = MultiDevice::DefaultDeviceIndex)
overridevirtual

◆ GetDeviceCount()

int AZ::RHI::RHISystem::GetDeviceCount ( )
overridevirtual

◆ GetDrawListTagRegistry()

RHI::DrawListTagRegistry * AZ::RHI::RHISystem::GetDrawListTagRegistry ( )
overridevirtual

◆ GetDrawListTagsDisabledByDefault()

const AZStd::vector< DrawListTag > & AZ::RHI::RHISystem::GetDrawListTagsDisabledByDefault ( ) const
overridevirtual

◆ GetMemoryStatistics()

const RHI::MemoryStatistics * AZ::RHI::RHISystem::GetMemoryStatistics ( ) const
overridevirtual

◆ GetNumActiveRenderPipelines()

uint16_t AZ::RHI::RHISystem::GetNumActiveRenderPipelines ( ) const
overridevirtual

◆ GetPipelineStateCache()

RHI::PipelineStateCache * AZ::RHI::RHISystem::GetPipelineStateCache ( )
overridevirtual

◆ GetPlatformLimitsDescriptor()

ConstPtr< PlatformLimitsDescriptor > AZ::RHI::RHISystem::GetPlatformLimitsDescriptor ( int  deviceIndex = MultiDevice::DefaultDeviceIndex) const
overridevirtual

◆ GetRayTracingSupport()

MultiDevice::DeviceMask AZ::RHI::RHISystem::GetRayTracingSupport ( )
overridevirtual

◆ GetTransientAttachmentPoolDescriptor()

const AZStd::unordered_map< int, TransientAttachmentPoolDescriptor > * AZ::RHI::RHISystem::GetTransientAttachmentPoolDescriptor ( ) const
overridevirtual

◆ GetTransientAttachmentStatistics()

AZStd::unordered_map< int, TransientAttachmentStatistics > AZ::RHI::RHISystem::GetTransientAttachmentStatistics ( ) const
overridevirtual

◆ GetXRSystem()

XRRenderingInterface * AZ::RHI::RHISystem::GetXRSystem ( ) const
overridevirtual

◆ GpuMarkersEnabled()

bool AZ::RHI::RHISystem::GpuMarkersEnabled ( ) const
overridevirtual

◆ Init()

void AZ::RHI::RHISystem::Init ( RHI::Ptr< RHI::ShaderResourceGroupLayout bindlessSrgLayout = nullptr)

This function initializes the rest of the RHI/RHI backend. bindlessSrgLayout in this case is layout associated with the bindless srg (Bindless.azsli).

◆ InitDevices()

ResultCode AZ::RHI::RHISystem::InitDevices ( int  deviceCount = 1)

This function just initializes the native devices and RHI::Device as a result. We can use these devices to then query for device capabilities.

◆ LoadResourcePoolInfoFromJson()

AZ::Outcome< void, AZStd::string > AZ::RHI::RHISystem::LoadResourcePoolInfoFromJson ( AZStd::vector< RHI::MemoryStatistics::Pool > &  pools,
AZStd::vector< RHI::MemoryStatistics::Heap > &  heaps,
rapidjson::Document &  doc,
const AZStd::string &  fileName 
) const
overridevirtual

Utility function to load previously captured pool statistics from json. The function clears the passed pools and heaps vectors.

Implements AZ::RHI::RHIMemoryStatisticsInterface.

◆ ModifyFrameSchedulerStatisticsFlags()

void AZ::RHI::RHISystem::ModifyFrameSchedulerStatisticsFlags ( RHI::FrameSchedulerStatisticsFlags  statisticsFlags,
bool  enableFlags 
)
overridevirtual

◆ QueueRayTracingShaderTableForBuild()

void AZ::RHI::RHISystem::QueueRayTracingShaderTableForBuild ( DeviceRayTracingShaderTable rayTracingShaderTable)
overridevirtual

◆ SetDrawListTagEnabledByDefault()

void AZ::RHI::RHISystem::SetDrawListTagEnabledByDefault ( DrawListTag  drawListTag,
bool  enabled 
)
overridevirtual

◆ TriggerResourcePoolAllocInfoDump()

void AZ::RHI::RHISystem::TriggerResourcePoolAllocInfoDump ( ) const
overridevirtual

Utility function to write the current state of all resource pools to a json file Useful for programmatically triggered dumps.

Implements AZ::RHI::RHIMemoryStatisticsInterface.

◆ WriteResourcePoolInfoToJson()

void AZ::RHI::RHISystem::WriteResourcePoolInfoToJson ( const AZStd::vector< RHI::MemoryStatistics::Pool > &  pools,
rapidjson::Document &  doc 
) const
overridevirtual

Utility function to write the state of the provided pool statistics to json. The function assumes the pool data will not be modified while it is being converted.

Implements AZ::RHI::RHIMemoryStatisticsInterface.


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