From 2a47a15f03a56dafe6dfe44b8d8bf79cbd13214a Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Tue, 12 Sep 2023 13:04:47 -0700 Subject: [PATCH] cli: Populate dot backend options in Parameters early. This is a step towards having the output loop depend only on `params`, rather than both `params` and `args`. --- cli/src/bin/naga.rs | 11 ++++------- src/back/dot/mod.rs | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/cli/src/bin/naga.rs b/cli/src/bin/naga.rs index 8bd73b87f2..3e3d85400c 100644 --- a/cli/src/bin/naga.rs +++ b/cli/src/bin/naga.rs @@ -161,6 +161,7 @@ struct Parameters<'a> { entry_point: Option, keep_coordinate_space: bool, spv_block_ctx_dump_prefix: Option, + dot: naga::back::dot::Options, spv: naga::back::spv::Options<'a>, msl: naga::back::msl::Options, glsl: naga::back::glsl::Options, @@ -273,6 +274,8 @@ fn run() -> Result<(), Box> { } params.keep_coordinate_space = args.keep_coordinate_space; + params.dot.cfg_only = args.dot_cfg_only; + let (module, input_text) = match Path::new(&input_path) .extension() .ok_or(CliError("Input filename has no extension"))? @@ -519,13 +522,7 @@ fn run() -> Result<(), Box> { "dot" => { use naga::back::dot; - let output = dot::write( - &module, - info.as_ref(), - naga::back::dot::Options { - cfg_only: args.dot_cfg_only, - }, - )?; + let output = dot::write(&module, info.as_ref(), params.dot.clone())?; fs::write(output_path, output)?; } "hlsl" => { diff --git a/src/back/dot/mod.rs b/src/back/dot/mod.rs index d92fe39e4a..1556371df1 100644 --- a/src/back/dot/mod.rs +++ b/src/back/dot/mod.rs @@ -18,7 +18,7 @@ use std::{ }; /// Configuration options for the dot backend -#[derive(Default)] +#[derive(Clone, Default)] pub struct Options { /// Only emit function bodies pub cfg_only: bool,