Lifetimes derive from the real dependency ordering (retained DAG + compile-time happens-before closure), not command-index intervals. Aliasing is restricted to the single-queue contract; alias reuse is synchronized with memory/image barriers anchored at first-use commands. - renderer_device: aliasable shared allocations (CAN_ALIAS), memory- requirements queries incl. dedicated hints, offset-aware bind_buffer/image_memory2, grouped bind under one allocator lock - renderer_resources: unallocated resource creation, requirements cached in Allocation::Unmanaged (OnceLock), MemoryGroup pooling with intersecting memoryTypeBits, bind-time validation - renderer_rendergraph: retained dependency DAG, happens_before closure, batch lifetimes, Placement type, plan_placements with pooled aliasing (first-fit over offset-sorted ranges, pool classes split by bufferImageGranularity), alias-barrier construction, placement/bind error variants - perf: quadratic compile/resolve paths eliminated (per-resource indexing, frontier caching, backward-scan prune, cached recording index, recorder scratch reuse); single requirements query per resource through plan/validate/bind - design plan + GPU-gated validation tests
16 lines
505 B
TOML
16 lines
505 B
TOML
[package]
|
|
name = "renderer_rendergraph"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[dependencies]
|
|
ash.workspace = true
|
|
fixedbitset.workspace = true
|
|
renderer_device = { path = "../renderer_device" }
|
|
renderer_resources = { path = "../renderer_resources" }
|
|
ash-formats = { git = "https://github.com/janis-bhm/ash-formats", branch = "main" }
|
|
|
|
[dev-dependencies]
|
|
renderer_resources = { path = "../renderer_resources", features = ["testing"] }
|
|
renderer_device = { path = "../renderer_device", features = ["testing"] }
|