- Add BeginRendering/EndRendering commands with imported/created attachment
views, view plumbing, and aspect-gated depth/stencil slots
- Derive and validate render-pass spans at compile time; contract spans into
single DAG nodes before hazard analysis; hoist cross-boundary barriers to
pass begins with in-pass policy and created-view resolution
- Replace the four-pass ordering pipeline with a single command walk
(build_command_orderings): span derivation, validation, lifetime-only
injection, dependency edges, and Kahn batching in one pass; batches are
ranges into execution_order and RenderPassSpan keeps only begin/end
- Perf: node-collapsed frontier analysis, dense command/resource indexing
(no SipHash on hot paths), inline barrier storage, exact preallocation,
lazy Kahn ready heap, scoped barrier fast paths
- Scope buffer and image alias barriers to the incoming resource per the
Vulkan resource-memory-aliasing rules (availability unscoped, visibility
scoped to the new owner)
- Add criterion compile benchmarks (two_pass/{no_pass,pass}/per_{20,50,100})
23 lines
633 B
TOML
23 lines
633 B
TOML
[package]
|
|
name = "renderer_rendergraph"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[dependencies]
|
|
ash.workspace = true
|
|
fixedbitset.workspace = true
|
|
tinyvec.workspace = true
|
|
renderer_device = { path = "../renderer_device" }
|
|
renderer_resources = { path = "../renderer_resources" }
|
|
ash-formats = { git = "https://github.com/janis-bhm/ash-formats", branch = "main" }
|
|
bitflags.workspace = true
|
|
|
|
[dev-dependencies]
|
|
criterion = { workspace = true }
|
|
renderer_resources = { path = "../renderer_resources", features = ["testing"] }
|
|
renderer_device = { path = "../renderer_device", features = ["testing"] }
|
|
|
|
[[bench]]
|
|
name = "compile"
|
|
harness = false
|