forked from 1b-agent/fieldcraft-upstream
solve.fluid: backend "cpu" (the default) or "gpu"
The CPU stays the default, so every existing result and fixture is bit-identical; "gpu" steps on the device FIELDCRAFT_GPU picks through the registered backend, and is an error when the build has none. The desktop app and the CLI (hence the MCP server) register fieldcraft-lbm-gpu at start; the summary names what stepped. Hostile values are errors. Part of #529.
This commit is contained in:
1 parent
b123f31d47
commit
48cc80bef5
8 files changed
+26
-2
No files matched your search
@@ -10,6 +10,7 @@ workspace = true
|
||||
|
||||
[dependencies]
|
||||
fieldcraft-engine = { workspace = true }
|
||||
fieldcraft-lbm-gpu = { workspace = true }
|
||||
fieldcraft-gpu = { workspace = true }
|
||||
fieldcraft-render = { workspace = true }
|
||||
fieldcraft-io = { workspace = true }
|
||||
|
||||
@@ -63,6 +63,8 @@ usage:
|
||||
const MAX_SCRIPT_BYTES: u64 = 256 * 1024 * 1024;
|
||||
|
||||
fn main() -> ExitCode {
|
||||
// The lattice Boltzmann GPU backend, for `solve.fluid` with `backend: "gpu"` (scripts and MCP).
|
||||
fieldcraft_lbm_gpu::register();
|
||||
let args: Vec<String> = std::env::args().skip(1).collect();
|
||||
let result = match args.first().map(String::as_str) {
|
||||
Some("commands") if args.get(1).map(String::as_str) == Some("--json") => {
|
||||
|
||||
@@ -21,6 +21,7 @@ neg_cmp_op_on_partial_ord = "allow"
|
||||
|
||||
[dependencies]
|
||||
fieldcraft-engine = { workspace = true }
|
||||
fieldcraft-lbm-gpu = { workspace = true }
|
||||
fieldcraft-ui-egui = { workspace = true }
|
||||
fieldcraft-io = { workspace = true }
|
||||
fieldcraft-update = { workspace = true }
|
||||
|
||||
@@ -224,6 +224,8 @@ fn parse_args(args: impl IntoIterator<Item = String>, env_port: Option<String>)
|
||||
}
|
||||
|
||||
fn main() -> eframe::Result {
|
||||
// The lattice Boltzmann GPU backend, for `solve.fluid` with `backend: "gpu"`.
|
||||
fieldcraft_lbm_gpu::register();
|
||||
let args = match parse_args(std::env::args().skip(1), std::env::var("FIELDCRAFT_CONTROL_PORT").ok()) {
|
||||
Ok(Some(a)) => a,
|
||||
Ok(None) => return Ok(()),
|
||||
|
||||
Reference in new issue
Block a user