Inherits AZ::Component, and AZ::RHI::Factory.
Public Member Functions | |
AZ_COMPONENT (SystemComponent, "{63A5BE62-43F4-45B9-93FE-E1C6371C457D}") | |
void | Activate () override |
void | Deactivate () override |
Name | GetName () override |
Returns the name of the Factory. | |
RHI::APIType | GetType () override |
Returns the APIType of the factory. | |
RHI::APIPriority | GetDefaultPriority () override |
Returns the default priority of the factory in case there's no priorities set in the FactoryManager. | |
uint32_t | GetAPIUniqueIndex () const override |
bool | SupportsXR () const override |
Returns true if the factory supports XR api. | |
RHI::PhysicalDeviceList | EnumeratePhysicalDevices () override |
RHI::Ptr< RHI::Buffer > | CreateBuffer () override |
RHI::Ptr< RHI::BufferPool > | CreateBufferPool () override |
RHI::Ptr< RHI::BufferView > | CreateBufferView () override |
RHI::Ptr< RHI::Device > | CreateDevice () override |
RHI::Ptr< RHI::Fence > | CreateFence () override |
RHI::Ptr< RHI::FrameGraphCompiler > | CreateFrameGraphCompiler () override |
RHI::Ptr< RHI::FrameGraphExecuter > | CreateFrameGraphExecuter () override |
RHI::Ptr< RHI::Image > | CreateImage () override |
RHI::Ptr< RHI::ImagePool > | CreateImagePool () override |
RHI::Ptr< RHI::ImageView > | CreateImageView () override |
RHI::Ptr< RHI::StreamingImagePool > | CreateStreamingImagePool () override |
RHI::Ptr< RHI::PipelineLibrary > | CreatePipelineLibrary () override |
RHI::Ptr< RHI::PipelineState > | CreatePipelineState () override |
RHI::Ptr< RHI::Scope > | CreateScope () override |
RHI::Ptr< RHI::ShaderResourceGroup > | CreateShaderResourceGroup () override |
RHI::Ptr< RHI::ShaderResourceGroupPool > | CreateShaderResourceGroupPool () override |
RHI::Ptr< RHI::SwapChain > | CreateSwapChain () override |
RHI::Ptr< RHI::TransientAttachmentPool > | CreateTransientAttachmentPool () override |
RHI::Ptr< RHI::QueryPool > | CreateQueryPool () override |
RHI::Ptr< RHI::Query > | CreateQuery () override |
RHI::Ptr< RHI::IndirectBufferSignature > | CreateIndirectBufferSignature () override |
RHI::Ptr< RHI::IndirectBufferWriter > | CreateIndirectBufferWriter () override |
RHI::Ptr< RHI::RayTracingBufferPools > | CreateRayTracingBufferPools () override |
RHI::Ptr< RHI::RayTracingBlas > | CreateRayTracingBlas () override |
RHI::Ptr< RHI::RayTracingTlas > | CreateRayTracingTlas () override |
RHI::Ptr< RHI::RayTracingPipelineState > | CreateRayTracingPipelineState () override |
RHI::Ptr< RHI::RayTracingShaderTable > | CreateRayTracingShaderTable () override |
RHI::Ptr< RHI::DispatchRaysIndirectBuffer > | CreateDispatchRaysIndirectBuffer () override |
![]() | |
AZ_TYPE_INFO (Factory, "{2C0231FD-DD11-4154-A4F5-177181E26D8E}") | |
AZ_DISABLE_COPY_MOVE (Factory) | |
Static Public Member Functions | |
static void | GetProvidedServices (AZ::ComponentDescriptor::DependencyArrayType &provided) |
static void | GetRequiredServices (ComponentDescriptor::DependencyArrayType &required) |
static void | GetDependentServices (ComponentDescriptor::DependencyArrayType &dependent) |
static void | Reflect (AZ::ReflectContext *context) |
![]() | |
static uint32_t | GetComponentService () |
Returns the component service name CRC used by the platform RHI system component. | |
static uint32_t | GetManagerComponentService () |
Returns the component service name CRC used by the Factory manager component. | |
static uint32_t | GetPlatformService () |
Returns the component service name CRC used by the platform RHI system component. | |
static void | Register (Factory *instance) |
Registers the global factory instance. | |
static void | Unregister (Factory *instance) |
Unregisters the global factory instance. | |
static bool | IsReady () |
Returns whether the factory is initialized and active in this module. | |
static Factory & | Get () |
Access the global factory instance. | |
static bool | UsingWarpDevice () |
Returns true if Warp is enabled. | |
|
overridevirtual |
Factory Creation Methods:
Returns the platform-specific derived variant of the RHI type. All instances are created in an uninitialized state; the operation simply allocates the memory for the appropriate platform type and returns the pointer.
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Implements AZ::RHI::Factory.
|
overridevirtual |
Collects the set of physical devices on the system and returns a list of them. Physical devices represent the hardware attached to the system. Physical devices can be grouped into nodes for linked setups (e.g. SLI / Crossfire). They can also represent software reference implementations. Check the PhysicalDeviceType on the descriptor to inspect this information.
Implements AZ::RHI::Factory.
|
inlineoverridevirtual |
Purpose: The API Unique Index will be encoded in the 2 Most Significant Bits of a ShaderVariantAsset ProductSubId (a 32bits integer). Returns a number in the range [0..3]. In theory any given AssetBuilderSdk::PlatformInfo can support several RHI::APITypes. In reality "pc" only supports DX12 & Vulkan. "ios" supports only Metal. "mac" supports only Metal. "android" supports only Vulkan. So, for all practical purposes, a single PlatformInfo won't support more than 2 ShaderPlatformInterfaces, but for the sake of hedging our bets into the future We assume no more than 4 ShaderPlatformInterfaces will ever be supported for any given PlatformInfo. REMARK: It is the responsibility of the Factory subclass to return a unique number between 0...3. For example DX12 can return 0, while Vulkan should return 1 (Satisfies "pc", "android" and "linux"). Metal can return 0 because it is the only ShaderPlatformInterface for "ios", "mac" and "appletv". See AZ::RHI::Limits::APIType::PerPlatformApiUniqueIndexMax.
Implements AZ::RHI::Factory.
|
overridevirtual |
Returns the default priority of the factory in case there's no priorities set in the FactoryManager.
Implements AZ::RHI::Factory.
|
overridevirtual |
Returns the name of the Factory.
Implements AZ::RHI::Factory.
|
overridevirtual |
Returns the APIType of the factory.
Implements AZ::RHI::Factory.
|
overridevirtual |
Returns true if the factory supports XR api.
Implements AZ::RHI::Factory.