Open 3D Engine AzCore API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::IO::ReadSplitterConfig Struct Referencefinal

Inherits AZ::IO::IStreamerStackConfig.

Public Types

enum  SplitSize : u32 { MaxTransfer = AZStd::numeric_limits<u32>::max() , MemoryAlignment = MaxTransfer - 1 }
 

Public Member Functions

 AZ_RTTI (AZ::IO::ReadSplitterConfig, "{EDDD6CE5-D7BC-4FAB-8EBA-68F5C0390B05}", IStreamerStackConfig)
 
 AZ_CLASS_ALLOCATOR (ReadSplitterConfig, AZ::SystemAllocator)
 
AZStd::shared_ptr< StreamStackEntryAddStreamStackEntry (const HardwareInformation &hardware, AZStd::shared_ptr< StreamStackEntry > parent) override
 
- Public Member Functions inherited from AZ::IO::IStreamerStackConfig
 AZ_RTTI (AZ::IO::IStreamerStackConfig, "{97266736-E55E-4BF4-9E4A-9D5A9FF4D230}")
 
 AZ_CLASS_ALLOCATOR (IStreamerStackConfig, SystemAllocator)
 
virtual AZStd::shared_ptr< StreamStackEntryAddStreamStackEntry (const HardwareInformation &hardware, AZStd::shared_ptr< StreamStackEntry > parent)=0
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 
- Static Public Member Functions inherited from AZ::IO::IStreamerStackConfig
static void Reflect (ReflectContext *context)
 

Public Attributes

u32 m_bufferSizeMib { 5 }
 The size of the internal buffer that's used if reads need to be aligned.
 
SplitSize m_splitSize { 20 }
 
bool m_adjustOffset { true }
 
bool m_splitAlignedRequests { true }
 

Member Enumeration Documentation

◆ SplitSize

Dynamic options for the split size. It's possible to set static sizes or use the names from this enum to have AZ::IO::Streamer automatically fill in the sizes. Fixed sizes are set through the Settings Registry with "SplitSize": 524288, while dynamic values are set like "SplitSize": "MemoryAlignment". In the latter case AZ::IO::Streamer will use the available hardware information and fill in the actual value.

Enumerator
MemoryAlignment 

The size of the minimal memory requirement of the storage device.

Member Function Documentation

◆ AddStreamStackEntry()

AZStd::shared_ptr< StreamStackEntry > AZ::IO::ReadSplitterConfig::AddStreamStackEntry ( const HardwareInformation hardware,
AZStd::shared_ptr< StreamStackEntry parent 
)
overridevirtual

Member Data Documentation

◆ m_adjustOffset

bool AZ::IO::ReadSplitterConfig::m_adjustOffset { true }

If set to true the read splitter will adjust offsets to align to the required size alignment. This should be disabled if the read splitter is in front of a cache like the block cache as it would negate the cache's ability to cache data.

◆ m_splitAlignedRequests

bool AZ::IO::ReadSplitterConfig::m_splitAlignedRequests { true }

Whether or not to split reads even if they meet the alignment requirements. This is recommended for devices that can't cancel their requests.

◆ m_splitSize

SplitSize AZ::IO::ReadSplitterConfig::m_splitSize { 20 }

The size at which reads are split. This can either be a fixed value that's explicitly supplied or a dynamic value that's retrieved from the provided hardware.


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