* Windows: start Direct3D 12 first, and Vulkan only without a D3D12 GPU wgpu started Vulkan, D3D12 and OpenGL together and preferred Vulkan, so every Windows start loaded all installed Vulkan drivers. An old Intel Vulkan driver (igvk64.dll) crashed 0.10.1 at startup inside the driver. The app now probes D3D12, then Vulkan, then OpenGL, one backend at a time, and starts only the first with a hardware adapter (WARP when none has one). WGPU_BACKEND still wins; graphics.json's "backend" sets the order by hand; the software renderer (safe mode, the retry) uses D3D12 alone. A new Windows CI job starts the real app under several settings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * CI: a test filter YAML parses Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * CI: the startup smoke test writes graphics.json where the app reads it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * CI: run the WARP shader tests one at a time WARP's shader JIT (d3d10warp.dll) crashed twice in 124 runs of the gpu tests with four test threads, with a null read inside its own optimizer while several devices compiled compute pipelines at once. Serial runs did not crash. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
57 lines
2.3 KiB
TOML
57 lines
2.3 KiB
TOML
[package]
|
|
name = "solidcraft"
|
|
description = "SolidCraft desktop app"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
publish = false
|
|
default-run = "solidcraft"
|
|
|
|
# The workspace lints, except unsafe_code: denied, not forbidden, so that src/open_documents.rs can
|
|
# allow it (macOS file-open events have no safe API). Keep the rest in sync with [workspace.lints].
|
|
[lints.rust]
|
|
unsafe_code = "deny"
|
|
|
|
[lints.clippy]
|
|
dbg_macro = "warn"
|
|
todo = "warn"
|
|
too_many_arguments = "allow"
|
|
type_complexity = "allow"
|
|
neg_cmp_op_on_partial_ord = "allow"
|
|
|
|
[dependencies]
|
|
solidcraft-engine = { workspace = true }
|
|
solidcraft-ui-egui = { workspace = true }
|
|
eframe = { workspace = true, features = ["default_fonts", "wgpu", "accesskit", "wayland", "x11", "links"] }
|
|
egui = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
log = { workspace = true }
|
|
rfd = { workspace = true }
|
|
# Checks eframe's settings file (app.ron) before eframe reads it (src/startup.rs).
|
|
ron = "0.12"
|
|
# Waits for wgpu's adapter list when choosing the graphics backend before the window opens.
|
|
pollster = { workspace = true }
|
|
getrandom = "0.3"
|
|
# The update check (docs/updates.md): HTTPS with rustls, certificates from the operating system.
|
|
ureq = { version = "3.4", default-features = false, features = ["rustls-no-provider", "platform-verifier"] }
|
|
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12", "logging"] }
|
|
|
|
[target.'cfg(any(target_os = "windows", target_os = "linux"))'.dependencies]
|
|
quick-xml = { workspace = true }
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
hidapi = { version = "2.6.7", default-features = false, features = ["windows-native"] }
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
# Files opened from Finder and the Dock (src/open_documents.rs); all already come with eframe and rfd.
|
|
objc2 = "0.6"
|
|
objc2-app-kit = { version = "0.3", default-features = false, features = ["std", "NSApplication", "NSResponder"] }
|
|
objc2-foundation = { version = "0.3", default-features = false, features = ["std", "block2", "NSArray", "NSNotification", "NSOperation", "NSString", "NSURL"] }
|
|
block2 = "0.6"
|
|
|
|
[target.'cfg(all(unix, not(target_os = "macos")))'.dependencies]
|
|
winit = { version = "0.30", default-features = false, features = ["x11"] }
|
|
|
|
[build-dependencies]
|
|
embed-resource = "3.0.11"
|