Skip to content

ludus::graphics::rhi::StorageLimits

Ludus Wiki · API overview · Browse API

Struct

Copied R6 storage maxima and explicit byte budgets. Configure before startup. Counts are limits, not reservations; creation may fail under byte/allocation pressure. Defaults admit overlapping multi-pass generations. The fullscreen facade is separate. Counts must be nonzero and below UINT32_MAX; byte budgets must be nonzero. Stable metadata pages persist across device restart; startup rejects a host budget smaller than already committed metadata. Native resources still retire on shutdown.

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

#include <ludus/graphics/rhi/profile.h>
struct ludus::graphics::rhi::StorageLimits final

Fields

ResourcesPerKind

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::ResourcesPerKind = DEFAULT_RESOURCE_RECORD_COUNT
Maximum live/pending/retained records of each general raster/compute resource kind.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

BindingDescriptors

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::BindingDescriptors = DEFAULT_BINDING_DESCRIPTOR_COUNT
Maximum allocated binding descriptors across live, pending and retained snapshots. Independent of set-record capacity; exhausted creation publishes no ownership.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

DescriptorsPerSet

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::DescriptorsPerSet = 256
Requested maximum allocated descriptors per snapshot, backend-clamped at admission. Payload storage grows only during creation and consumes HostBytes; no draw allocation.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

RayResourcesPerKind

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::RayResourcesPerKind = 64
Maximum live/pending/retained records of each optional RT0 resource kind. Native metadata uses stable budgeted pages, independent of raster resource counts.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

RayInstances

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::RayInstances = 256
Requested maximum static TLAS instances; RayCapabilities reports the backend-clamped limit. Instance inputs, opacity metadata, structures and scratch also require explicit byte budgets.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

DrawsPerFrame

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::DrawsPerFrame = 1024
Maximum accepted direct/indirect packets in one frame.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

Batches

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::Batches = 4
Maximum independently retained command batches.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

DrawsPerPlan

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::DrawsPerPlan = DEFAULT_GRAPH_PACKET_COUNT
Maximum packets per batch or graph, including culled packets.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

Graphs

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::Graphs = 4
Maximum independently owned graph plans.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

ResourcesPerGraph

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::ResourcesPerGraph = DEFAULT_GRAPH_RESOURCE_COUNT
Maximum imported/transient logical resources per graph.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

PassesPerGraph

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::PassesPerGraph = DEFAULT_GRAPH_PASS_COUNT
Maximum authored passes and resource versions per graph.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

DependenciesPerGraph

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::DependenciesPerGraph = DEFAULT_GRAPH_DEPENDENCY_COUNT
Maximum semantic dependency entries per graph.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

TransientTextures

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::TransientTextures = 8
Maximum retained transient texture-pool entries.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

RasterPassStates

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::RasterPassStates = 192
Maximum cached format/load/store/depth render-pass combinations on Vulkan. Other backends encode this state directly and do not consume these records.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

Submissions

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::Submissions = 64
Maximum simultaneous submission completion records on callback backends.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

TransferSlices

ludus::foundation::uint32 ludus::graphics::rhi::StorageLimits::TransferSlices = 4
R8 simultaneous requests per transfer direction, including cancelled in-flight slices; 1..4.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

TransferBytes

ludus::foundation::usize ludus::graphics::rhi::StorageLimits::TransferBytes = ludus::foundation::usize{256} * 1024
R8 bytes per staging slice; four-byte aligned, 256..256 KiB. Separate from ResourceBytes.

Related types: ludus::foundation::usize

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

HostBytes

ludus::foundation::usize ludus::graphics::rhi::StorageLimits::HostBytes = ludus::foundation::usize{64} * 1024 * 1024
Host storage budget in bytes: registry/backend metadata, plans, scratch and index copies. Includes retained page slack and growth overlap; excludes allocator overhead and driver allocations.

Related types: ludus::foundation::usize

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h

ResourceBytes

ludus::foundation::uint64 ludus::graphics::rhi::StorageLimits::ResourceBytes = ludus::foundation::uint64{512} * 1024 * 1024
Logical buffer/texture byte budget, including pending/detached records and private depth. Excludes native padding, driver allocation metadata, facade targets and transfer-ring staging.

Related types: ludus::foundation::uint64

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/profile.h