Commit Graph

966 Commits

Author SHA1 Message Date
Frizi
e6d142f28f [glsl-in] treat const globals as constants allow them in array size exprs 2021-06-17 15:21:47 -04:00
Frizi
7c8fbb4377 [glsl-in] support more math functions and builitns 2021-06-17 15:21:47 -04:00
Frizi
bff8b18a01 [glsl-in] lower swizzle store to per-component stores 2021-06-17 15:21:47 -04:00
Frizi
a7d3b604dc [wgsl-in] fix clippy warnings on to_wgsl methods 2021-06-17 11:50:03 -04:00
Frizi
337014786c [wgsl-in] use AccessIndex for accesses using constant index 2021-06-17 11:34:58 -04:00
Igor Shaposhnik
b29e853a86 Update wgsl-out status in README 2021-06-17 11:11:36 -04:00
Jim Blandy
b79d4c5d85 Validator::validate: Remove bogus comment.
This comment claims that the following work is being done after global
validation, but it actually appears before global validation.
2021-06-17 11:05:27 -04:00
Gordon-F
96b37aff1f [hlsl-out] Reduce heap allocation 2021-06-16 14:03:50 -04:00
Gordon-F
1b468edaa4 Makefile. Move dxc params into a variable 2021-06-16 14:03:50 -04:00
Igor Shaposhnik
b1ce49a217 Remove features from lazy CI task 2021-06-16 13:59:23 -04:00
Jim Blandy
fd83816945 Add . to the workspace's default members. Test with no features.
Naga is now a workspace with `naga` and `cli` as its two members. The default
package for cargo commands is `cli`, so that `cargo run` will just run the CLI.

However, this has a few unexpected consequences:

- Now `cargo test` will just try to run `cli`'s tests, of which there are none.
  Adding `"."` to the `default-members` list in the workspace's `Cargo.toml`
  seems to fix this, without breaking `cargo run`.

- Even with `"."` added to `default-members`, `cargo test` will build `naga` by
  default with the features requested for it in `cli/Cargo.toml`: all the front
  and back ends, but no `serialize` or `deserialize`. This means that our CI job
  meant to verify no-feature builds isn't doing that job any more. We need to
  pass `--package naga` to `cargo test` to make it test naga directly.
2021-06-16 13:53:00 -04:00
Gordon-F
822c68067c Remove all features from README 2021-06-15 21:08:05 -04:00
Gordon-F
92a11d0978 [hlsl-out] More improvements. Enable quad snapshot testing 2021-06-15 21:08:05 -04:00
Gordon-F
7430a43c36 [wgsl-out] Write constant names with namer 2021-06-15 21:08:05 -04:00
Gordon-F
d1f9575ed1 [glsl-out] Write space after if keyword 2021-06-15 21:08:05 -04:00
Jim Blandy
976ae3a9ff Makefile: Make validate-wgsl target use new 'cli' sub-package. 2021-06-14 13:15:55 -04:00
Igor Shaposhnik
343f786492 Fix testing infrastructure 2021-06-13 11:25:23 -04:00
Gordon-F
54d7d7d2a3 Improve hlsl-out 2021-06-13 11:15:42 -04:00
Evgeny Proydakov
753e9608d3 Fixed compile-time error in spv fuzzer test. (#967)
* Fixed compile-time error in spv fuzzer test.

error[E0061]: this function takes 2 arguments but 1 argument was supplied
   --> fuzz_targets/spv_parser.rs:7:19
    |
7   |     let _result = Parser::new(data.into_iter()).parse();
    |                   ^^^^^^^^^^^ ---------------- supplied 1 argument
    |                   |
    |                   expected 2 arguments
    |
note: associated function defined here
   --> /Users/evgeny.proydakov/repository/naga/src/front/spv/mod.rs:411:12
    |
411 |     pub fn new(data: I, options: &Options) -> Self {
    |            ^^^

error: aborting due to previous error

* Code review. Group imports
2021-06-12 19:46:33 -04:00
Jakob Hellermann
4224d14a08 move bin/naga.rs to a separate crate in workspace (#938)
* move bin/naga.rs to a separate crate

* enable all shader languages for naga binary

* [naga-cli] add env logger

* [naga-cli] remove unneccessary code

* [naga-cli]enable glsl-validate feature

* move naga-cli to cli, add trailing newline

* remove commented env_logger dependency
2021-06-12 19:24:01 -04:00
Dzmitry Malyshau
af022ed21e Add Hash to ResourceBinding 2021-06-10 14:19:41 -04:00
João Capucho
10422c6b4a Regenerate quad-glsl shader 2021-06-09 13:06:36 -04:00
João Capucho
06c8588fcd [glsl-in] Add collatz shader and test quad shader 2021-06-09 12:54:58 -04:00
João Capucho
fb71e49501 [glsl-in] Implicit cast mod function 2021-06-09 12:54:58 -04:00
João Capucho
b15b0b6862 [glsl-in] Use local for mutable non pointer args 2021-06-09 12:54:58 -04:00
João Capucho
605bab12e3 [glsl-in] Don't load unsized types 2021-06-09 12:54:58 -04:00
João Capucho
a2ecd8ecff [glsl-in] Refractor global and blocks handling 2021-06-09 12:54:58 -04:00
João Capucho
15c846cd0e [glsl-in] Fix panic when calculating global use 2021-06-09 12:54:58 -04:00
João Capucho
d8dc12e47b [glsl-in] Add gl_GlobalInvocationID builtin 2021-06-09 12:54:58 -04:00
João Capucho
2023b1a72c [glsl-in] Implicit convert initializers 2021-06-09 12:54:58 -04:00
João Capucho
a9dad25b0f [glsl-in] Implement increment and decrement ops 2021-06-09 12:54:58 -04:00
João Capucho
a5b2486a9b [glsl-in] Add mod function 2021-06-09 12:54:58 -04:00
João Capucho
803cb31fb0 [glsl-in] Add support for buffer class 2021-06-09 12:54:58 -04:00
João Capucho
0184e1c875 [glsl-in] Add parsing for some modifiers
Adds support for workgroup size and early fragment tests definitions
2021-06-09 12:54:58 -04:00
Igor Shaposhnik
54af830855 Fix nightly clippy suggestions 2021-06-09 10:17:20 -04:00
João Capucho
be2231f6d9 [wgsl-out] Write global initializers 2021-06-09 10:14:46 -04:00
Dzmitry Malyshau
38f6a79917 [spv-out] fix image sampling ops, add more tests 2021-06-08 17:38:42 -04:00
Igor Shaposhnik
b299a59bb5 [wgsl-out] Simplify code for writing named expression 2021-06-08 17:38:14 -04:00
Igor Shaposhnik
4af035edb7 [glsl-out] Simplify code for writing named expression 2021-06-08 17:38:14 -04:00
Igor Shaposhnik
575304a50c [msl-out] Implement named expression generation (#957) 2021-06-08 12:09:46 -04:00
Jim Blandy
9dcfe8fa4b [spv-out]: Don't have write_expression_pointer return a storage class. (#958)
Nobody uses that value. This lets us simplify `GlobalVariable` and
`write_global_variable` as well.
2021-06-08 10:16:10 -04:00
Igor Shaposhnik
be6a4172c5 Fix Expression::Load generating (#925)
* [glsl-out] Fix writing named expressions with array types

* [wgsl-out] Remove unsupported builtin from baked expression

* [glsl-out] Add a newline between globals for readability

* Set bake_ref_count to 1 for Expression::Load

* Update snapshot data
2021-06-08 10:15:26 -04:00
Jim Blandy
bfa2bbe590 Snapshot quad-glsl to WGSL, not SPIR-V and IR.
In tests/out, stop generating the uncommitted files quad-glsl.ron and
quad-glsl.spvasm, and add the snapshot quad-glsl.wgsl.
2021-06-07 17:27:09 +01:00
Matus Talcik
94cdaf685d [spv-in] CFG: add break statements in switch selections (#951) 2021-06-05 20:09:41 -04:00
Jim Blandy
a2a35f2eb3 Permit dynamic indexing of arrays and matrices only behind a pointer. (#949)
This makes Naga IR validation impose the restrictions added to WGSL in
gpuweb/gpuweb#1801.

Remove code in the SPIR-V writer to spill arrays to temporary variables in order
to index them dynamically. If such IR is encountered, treat it as a failure of
validation.
2021-06-04 12:57:20 -04:00
João Capucho
1c3baf4557 [glsl-in] Allow field selection behind pointers (#948) 2021-06-03 16:09:20 -04:00
João Capucho
87748a2fe3 [glsl-in] Add integration tests to CI (#943)
* [glsl-in] Add glsl snapshots folder

* [glsl-in] Fix incorrect angle brackets parsing

* [glsl-in] Temporarily remove wgsl snapshot output
2021-06-03 15:34:54 -04:00
João Capucho
db3dd63bdd [glsl-in] Don't output empty struct in entry point 2021-06-03 15:32:46 -04:00
Igor Shaposhnik
ce88c9d537 Exclude bin and tests from publishing 2021-06-03 13:06:45 -04:00
Gordon-F
90c2cf6aa6 Add ability to generate named expressions 2021-06-03 10:40:59 -04:00