Skip to content

robtfm/naga_oil_cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

40211af · Aug 2, 2024

History

4 Commits
Aug 2, 2024
Jan 7, 2024
Jan 7, 2024
Jan 7, 2024
Jan 7, 2024
Jan 7, 2024

Repository files navigation

Construct standalone shaders from modules and definitions using naga_oil (https://github.com/bevyengine/naga_oil)

Usage: naga_oil_cli.exe [OPTIONS] <SHADER>

Arguments:
  <SHADER>
          The shader containing the target entry point

Options:
  -n, --no-validation
          Disable checking invariance of variable names when regenerating wgsl or gsls from naga modules.
          It may be necessary to disable naga_oil's validation for features which are unsupported by naga::back::{glsl, wgsl}.

          [env: NAGA_OIL_NO_VALIDATION=]

  -i, --include <INCLUDE>
          Paths to check for included modules. Defaults to `.` if unspecified.

          If the argument resolves to a filename, the module will be made available to the composer.
          If the argument resolves to a folder, all shader files in the folder and subfolders are made available to the composer.
          If located modules contain a `#define_import_path` directive, this is used. Otherwise the module can be imported with the quoted filename relative to the path root, e.g. `#import "module.wgsl"` or `#import "subfolder/submodule.glsl"`
          This argument may be repeated to include multiple paths, or split with semicolons (`one.wgsl;two.wgsl`).

          [env: NAGA_OIL_INCLUDE_PATH=]

  -d, --defs <DEFS>
          Shader definitions, specified as semicolon-separated names or name=value pairs.

          Raw names will be defined in the shader compilation with value Bool(true), useful for `#ifdef` and `#if def == true` directives.
          Other values can be specified with `name=value` where value should be
          - `true` or `false` for a bool value (e.g. `--defs MY_SETTING`)
          - a numeric literal for an i32 value (e.g. `--defs MY_NUMBER=-123`)
          - a non-negative numeric literal with a trailing `u` for a u32 value (e.g. `-d MY_NUMBER=123u`)
          This argument may be repeated to specify multiple defs, or split with semicolons (`-d ONE;TWO=123`).

          [env: NAGA_OIL_DEFS=]

  -a, --additional-defs <ADDITIONAL_DEFS>
          Additional shader definitions, added to or overwriting definitions provided with --defs. potentially useful for supplying additional defs when a base set is supplied via `--defs` or `NAGA_OIL_DEFS`

          [env: NAGA_OIL_ADDITIONAL_DEFS=]

  -f, --format <FORMAT>
          Output format. one of `WGSL`, `GLSL`, `NAGA` (serde_json serialized), `SPV`. If not specified, then if an ouptut filename is specified, attempts to determine the output based on the extension:

          `wgsl` => WGSL 
          `frag`, `vert` => GLSL 
          `bin`, `spv` => SPV 
          `json` => NAGA

          Otherwise defaults to `WGSL`.

          For other output formats, you can pipe the output into naga's own cli tool

          [env: NAGA_OIL_FORMAT=]

  -o, --output <OUTPUT>
          Output file. if unspecified, output is written to stdout

          [env: NAGA_OIL_OUTPUT=]

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages