- 01 Jan, 2022 1 commit
-
-
Martin Beľa authored
-
- 13 Oct, 2021 1 commit
-
-
Dzmitry Malyshau authored
-
- 12 Oct, 2021 2 commits
-
-
Dzmitry Malyshau authored
-
Dzmitry Malyshau authored
-
- 08 Oct, 2021 1 commit
-
-
Dzmitry Malyshau authored
-
- 07 Oct, 2021 2 commits
-
-
Igor Shaposhnik authored
-
Connor Fitzgerald authored
-
- 06 Oct, 2021 3 commits
-
-
Jim Blandy authored
The original pointer access test used SPIR-V for its input because WGSL didn't have a working pointer indirection operator at the time. Now that it does, we can just write this test in WGSL directly. Fixes #1432.
-
Dzmitry Malyshau authored
-
Connor Fitzgerald authored
-
- 05 Oct, 2021 2 commits
-
-
Igor Shaposhnik authored
-
João Capucho authored
-
- 04 Oct, 2021 1 commit
-
-
João Capucho authored
-
- 03 Oct, 2021 2 commits
-
-
João Capucho authored
-
João Capucho authored
-
- 01 Oct, 2021 2 commits
-
-
Jim Blandy authored
Require the `accept` and `reject` arguments to `select` to be scalars or vectors, per WGSL spec.
-
Jim Blandy authored
WGSL says: > - The last member of the structure type defining the store type for a variable > ... may be a runtime-sized array. > > - A runtime-sized array must not be used as the store type or contained within > a store type in any other cases. Thus, a struct whose final member is a struct whose final member is a runtime-sized array is verboten.
-
- 30 Sep, 2021 2 commits
-
-
Jim Blandy authored
-
Jim Blandy authored
Replace uses of `call_unique` with uses of `call` and `call_or`, which becomes public. It's not clear when `call_unique` is correct to use, and avoiding a few numeric suffixes here and there isn't worth it.
-
- 29 Sep, 2021 2 commits
-
-
Jim Blandy authored
Eliminate `Namer::namespace_index` and remove namespace indices from `Namer::unique` keys. Instead, implement `Namer::namespace` by just swapping in a fresh table for the duration of the call. Create the fresh hash table with the right initial capacity. The prior implementation did manage to avoid allocations by sharing a hash table, and we'd like to not lose that advantage entirely. This has no effect on generated code.
-
Igor Shaposhnik authored
* Remove unused petgraph dependency from glsl-out * Emit std430 layout qualifiers for storage buffers
-
- 28 Sep, 2021 4 commits
-
-
Jim Blandy authored
-
Jim Blandy authored
-
Dzmitry Malyshau authored
-
Dzmitry Malyshau authored
* Update WGSL grammar for pointer access. Comes with a small test, which revealed a number of issues in the backends. * Validate pointer arguments to functions to only have function/private/workgroup classes. Comes with a small test. Also, "pointer-access.spv" test is temporarily disabled.
-
- 27 Sep, 2021 11 commits
-
-
João Capucho authored
Automatically spills to a local variable function call arguments to parameters expecting a pointer where the argument storage class isn't function since the storage classes wouldn't match.
-
João Capucho authored
-
Jim Blandy authored
Treat expressions in `Function::named_expressions` like WGSL `let` declarations, assuming that the Load Rule was applied to the rhs of the declaration, meaning that their values are always `Indirection::Ordinary`. Split `write_expr_plain_form` out from `write_expr_with_indirection`, to clean up the parenthesis generation: no more `opened_paren` variable, just function calls. This makes the early return for named expressions neater. Fixes #1382.
-
Jim Blandy authored
-
Jim Blandy authored
Treat `TypeInner::ValuePointer` and `TypeInner::Pointer` as equivalent by converting them to a canonical form before comparison. Support `ValuePointer` in WGSL type output. Fixes #1318.
-
Jim Blandy authored
`UniqueArena::fetch_or_append` becomes `insert`. `UniqueArena::try_get` becomes `get_handle`, by analogy with `get`, that takes a type as a key.
-
Jim Blandy authored
Ensure that each distinct type occurs only once in `Module::types`, so that we can use `Eq` on `Type` or `TypeInner` for type equivalence, without being confused by differing `Handle<Type>` values that point to identical types. This removes a number of duplicate types from the ir snapshots. Fixes #1385.
-
Jim Blandy authored
-
Jim Blandy authored
-
Jim Blandy authored
Replace `Module::apply_common_default_interpolation` with a simpler function that handles a single `Binding` at a time. In exchange for the simplicity, the function must be called at each point function arguments, function results, and struct members are prepared. (Any missed spots will be caught by the verifier.) This approach no longer requires mutating types in the arena, a prerequisite for properly handling type identity. Applying defaults to struct members when the struct declaration is parsed does have a disadvantage, compared to the old whole-module pass: at struct parse time, we don't yet know which pipeline stages the struct will be used in. The best we can do is apply defaults to anything with a `Location` binding. This causes needless qualifiers to appear in some output. However, it seems that our back end languages all tolerate such qualifiers.
-
João Capucho authored
Previously the typifier flagged all relational functions as producing a scalar boolean but with the exception of `all` and `any`, according to the wgsl spec, all other relational functions output a type the same size as the input.
-
- 23 Sep, 2021 1 commit
-
-
João Capucho authored
-
- 22 Sep, 2021 2 commits
-
-
João Capucho authored
-
João Capucho authored
-
- 21 Sep, 2021 1 commit
-
-
João Capucho authored
-