Add xenia-ui crate; switch analysis store to DuckDB

Workspace gains a new xenia-ui member that owns the winit/wgpu
window, the Xenos display pipeline (xenos_pipeline + render +
texture_cache_host), HUD font/blit shaders, and the input-bridge
plumbing the app uses to surface guest framebuffers and overlays.

Workspace dependencies grow accordingly: rusqlite is replaced with
duckdb (analysis pipeline now writes DuckDB stores), and tracing /
metrics / pprof / winit / wgpu / gilrs / pollster / crossbeam /
bytemuck are added at workspace level so xenia-ui and xenia-app
share versions. Cargo.lock regenerated.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
MechaCat02
2026-05-01 16:26:48 +02:00
parent f166d061be
commit e2b8860e10
13 changed files with 7534 additions and 42 deletions

View File

@@ -12,6 +12,7 @@ members = [
"crates/xenia-hid",
"crates/xenia-debugger",
"crates/xenia-analysis",
"crates/xenia-ui",
"crates/xenia-app",
]
@@ -33,10 +34,17 @@ xenia-apu = { path = "crates/xenia-apu" }
xenia-hid = { path = "crates/xenia-hid" }
xenia-debugger = { path = "crates/xenia-debugger" }
xenia-analysis = { path = "crates/xenia-analysis" }
xenia-ui = { path = "crates/xenia-ui" }
# External dependencies
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "registry"] }
tracing-appender = "0.2"
tracing-chrome = "0.7"
tracing-error = "0.2"
metrics = "0.24"
metrics-util = "0.19"
pprof = { version = "0.14", features = ["flamegraph", "protobuf-codec"] }
bitflags = "2"
byteorder = "1"
thiserror = "2"
@@ -44,4 +52,13 @@ anyhow = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
aes = "0.8"
rusqlite = { version = "0.31", features = ["bundled"] }
duckdb = { version = "1", features = ["bundled"] }
# UI / rendering / input (used by xenia-ui and xenia-app with --ui)
winit = "0.30"
wgpu = "22"
gilrs = "0.11"
pollster = "0.3"
crossbeam-utils = "0.8"
crossbeam-channel = "0.5"
bytemuck = { version = "1", features = ["derive"] }