vidya/Cargo.toml
janis 5e4bc0ccf0
rendergraph: correct transient-resource aliasing with pooled placement
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
2026-10-27 01:57:27 +01:00

92 lines
2.6 KiB
TOML

[package]
name = "vidya"
version = "0.1.0"
edition = "2024"
[workspace]
resolver = "2"
members = [
"crates/renderer",
"crates/renderer/renderer_macros",
"crates/window",
"crates/game",
"crates/text",
"crates/bevy_vulkan_render", "crates/renderer_device", "crates/renderer_resources", "crates/renderer_rendergraph",
]
[dependencies]
bevy_vulkan_render = { path = "crates/bevy_vulkan_render" }
[dev-dependencies]
bevy = { workspace = true }
[profile.debug-release]
inherits = "release"
opt-level = 2
debug = true
[workspace.dependencies]
anyhow = "1.0.89"
thiserror = "2.0"
derive_more = { version = "1.0.0", features = ["deref", "debug", "deref_mut"] }
tracing = "0.1"
tracing-subscriber = {version ="0.3", features = ["env-filter"]}
glam = {version = "0.33", features = ["bytemuck"]}
rand = "0.9"
bitflags = "2.6"
thread_local = "1.1.8"
ash = "0.38.0"
ash-window = "0.13.0"
vk-mem = "0.5.0"
rectangle-pack = "0.4.2"
# vk-sync = "0.1.6"
arrayvec = "0.7.6"
tinyvec = "1.8"
indexmap = "2"
petgraph = "0.7"
fixedbitset = "0.5"
# itertools = "0.14.0"
ahash = "0.8"
# for non-cryptographic hashing of resources like pipelines, e.g. for caching
md-5 = "0.11.0"
parking_lot = "0.12.3"
bytemuck = { version = "1.21.0", features = ["derive"] }
# tokio = "1.42"
# futures = "0.3"
smol = "2.0"
# rayon = "1.10"
winit = {version = "0.30.5", features = ["rwh_06"]}
raw-window-handle = "0.6"
egui = "0.32"
egui_winit_platform = "0.27"
bevy = { path = "/var/code/bevy-engine/bevy" }
bevy_app = { path = "/var/code/bevy-engine/bevy/crates/bevy_app" }
bevy_asset = { path = "/var/code/bevy-engine/bevy/crates/bevy_asset" }
bevy_derive = { path = "/var/code/bevy-engine/bevy/crates/bevy_derive" }
bevy_ecs = { path = "/var/code/bevy-engine/bevy/crates/bevy_ecs" }
bevy_log = { path = "/var/code/bevy-engine/bevy/crates/bevy_log" }
# bevy_math = { path = "/var/code/bevy-engine/bevy/crates/bevy_math" }
bevy_platform = { path = "/var/code/bevy-engine/bevy/crates/bevy_platform" }
bevy_reflect = { path = "/var/code/bevy-engine/bevy/crates/bevy_reflect" }
bevy_tasks = { path = "/var/code/bevy-engine/bevy/crates/bevy_tasks" }
bevy_time = { path = "/var/code/bevy-engine/bevy/crates/bevy_time" }
# bevy_transform = { path = "/var/code/bevy-engine/bevy/crates/bevy_transform" }
bevy_utils = { path = "/var/code/bevy-engine/bevy/crates/bevy_utils" }
bevy_window = { path = "/var/code/bevy-engine/bevy/crates/bevy_window" }
# bevy_winit = { path = "/var/code/bevy-engine/bevy/crates/bevy_winit" }
[[example]]
name = "bevy_integration"
path = "examples/bevy_integration.rs"