Evan Mark Hopkins
5f8e4f6dea
[spv] Fix OpImageQueries to allow Uints ( #2404 )
2023-07-24 21:25:45 +02:00
Jim Blandy
e7cd4ffbaa
[wgsl-in] Document ExpressionContextType, ExpressionContext.
2023-07-17 16:26:08 -07:00
Jim Blandy
a3dff6b840
Document front::wgsl::lower::ExpressionContextType and friends.
2023-07-17 16:26:08 -07:00
teoxoy
d348d843e1
implement const-expressions (phase 1)
2023-07-17 16:26:08 -07:00
Fredrik Fornwall
dfd88ee485
[glsl-in] Support commas in structure definitions ( #2400 )
2023-07-17 16:22:25 +01:00
daxpedda
b7f4006e46
Bump bitflags to v2 ( #2358 )
2023-06-01 15:40:47 +02:00
Daniel McNab
907b7c7cda
Workgroup uniform load ( #2201 )
...
Implement the WGSL `workgroupUniformLoad` function.
2023-05-26 13:32:22 -07:00
Shaye Garg
1c17fa82d4
[wgsl-in] Error on param redefinition ( #2342 )
...
* error on param redefinition
* also fix #2312
2023-05-25 13:13:27 +02:00
Jim Blandy
201c0e2999
[spv-in] Improve documentation for SPIR-V control flow parsing. ( #2324 )
2023-05-25 13:06:21 +02:00
Ashley
ce48588d74
[front/spir-v] Obey the is_depth field of OpTypeImage ( #2341 )
...
* [front/spir-v] Obey the is_depth field of OpTypeImage
* Add changed tests
2023-05-22 09:35:58 -07:00
Eduard-Mihai Burtescu
423a069dcd
[spv-in] Convert conditional backedges to break if.
2023-05-12 13:59:08 -07:00
Teodor Tanasoaia
62b287e761
Change type of constant sized arrays to NonZeroU32 ( #2337 )
2023-05-12 14:38:50 +02:00
teoxoy
405413452d
Correct type of index and flush the emitter
2023-05-11 12:57:28 -07:00
teoxoy
d842d6688d
Introduce GlobalCtx
2023-05-11 09:52:40 -07:00
Jim Blandy
d763fb31e2
[spv-in] Generate Expression::Literal in some limited cases.
2023-05-11 07:09:53 -07:00
Jim Blandy
959c84f039
[glsl-in] Generate Expression::Literal.
2023-05-11 07:09:53 -07:00
Jim Blandy
412d5aa62e
[wgsl-in] Generate Expression::Literal.
2023-05-11 07:09:53 -07:00
Jim Blandy
02ddf6532c
Introduce Expression::Literal.
2023-05-11 07:09:53 -07:00
Teodor Tanasoaia
4d87401fac
Use Expression::ZeroValue in SPIR-V and WGSL front ends.
2023-05-10 19:30:03 -07:00
Teodor Tanasoaia
dcc8615c5b
Introduce Expression::ZeroValue.
2023-05-10 19:30:03 -07:00
Christopher Fleetwood
7c00548075
[wgsl] Use alias instead of type for type aliases ( #2299 )
2023-04-04 12:35:32 +02:00
Jim Blandy
53d62b9ede
Clean up handling of RayDesc builtin type, somewhat.
2023-03-22 17:23:07 -07:00
Dzmitry Malyshau
c34eed5e47
Address Jim's review notes, use typegen module for atomic struct
2023-03-22 17:23:07 -07:00
Jim Blandy
18710fee1e
Expand on the documentation for ray-tracing features.
2023-03-22 17:23:07 -07:00
Dzmitry Malyshau
22e341b039
wgsl: handle RayDesc/RayIntersection at the type decl level instead of an AST constructor
2023-03-22 17:23:07 -07:00
Dzmitry Malyshau
ab9c36441f
fill up the ray query intersection struct
2023-03-22 17:23:07 -07:00
Dzmitry Malyshau
13ee4369cc
clippy fixes
2023-03-22 17:23:07 -07:00
Dzmitry Malyshau
67d31b8e8c
spv-out: basic ray query support
2023-03-22 17:23:07 -07:00
Dzmitry Malyshau
b856625821
Ray query expressions and special types
2023-03-22 17:23:07 -07:00
Dzmitry Malyshau
e46c53d212
Add ray query statements to the IR
2023-03-22 17:23:07 -07:00
Dzmitry Malyshau
432b4990a7
Add ray query types to the IR
2023-03-22 17:23:07 -07:00
Evan Mark Hopkins
6db8da72ca
Add partial derivative builtins ( #2277 )
...
* Add partial derivative builtins
* [dot] emit derivative control
* Fix fmt
---------
Co-authored-by: Teodor Tanasoaia <28601907+teoxoy@users.noreply.github.com >
2023-03-17 00:15:44 +01:00
teoxoy
6b0c2a532a
enable clippy::match_wildcard_for_single_variants lint
2023-03-16 15:51:59 +01:00
teoxoy
bdc25dd689
fix rust 1.68 lints
2023-03-16 15:51:59 +01:00
Teodor Tanasoaia
63e91faecb
Skip gl_PerVertex unused builtins in the SPIR-V frontend ( #2272 )
...
Co-authored-by: Jim Blandy <jimb@red-bean.com >
2023-03-15 18:46:25 +01:00
Evan Mark Hopkins
7f829c6ac6
[glsl-in] Switch implicit type conversion ( #2273 )
2023-03-14 10:11:03 +01:00
Evan Mark Hopkins
8a72b7a8ad
Differentiate between i32 and u32 in switch ( #2269 )
...
* Differentiate between i32 and u32 in switch
* Use similar wording to other error messages
* Remove duplicate enum
2023-03-10 17:53:11 +01:00
Mauro Gentile
810e9d26fc
Add countTrailingZeros ( #2243 )
...
Co-authored-by: Teodor Tanasoaia <28601907+teoxoy@users.noreply.github.com >
2023-02-20 20:40:59 +01:00
Evan Mark Hopkins
7422ace934
[wgsl-in] Add predeclared vector and matrix type aliases ( #2251 )
2023-02-16 15:49:54 -08:00
Jim Blandy
dce689cf58
[glsl-in]: Document some fields of naga::front::glsl::context::Context. ( #2244 )
2023-02-16 23:18:13 +00:00
Evan Mark Hopkins
1ad47f732d
Fix texture built-ins where u32 was expected ( #2245 )
...
- The Typifier was updated to expect `uint`
- Both `glsl` and `spv` frontends where updated to cast the result to `sint`.
- Both `glsl` and `spv` backends where updated to cast the result to `uint`.
- Remove cast in `msl` backend.
2023-02-13 14:13:58 +01:00
João Capucho
0a2e93c098
glsl-in: Perform output parameters implicit casts
...
Glsl defines under `Function Definitions` (Paragraph 6.1 in glsl 4.60),
the following:
> When function calls are resolved, an exact type match for all
> the arguments is sought.
> (...)
> If no exact match is found, then the implicit conversions in
> section “Implicit Conversions” will be applied to find a match.
> (...)
> Mismatched types on output parameters (out or inout) must have a
> conversion from the formal parameter type to the calling argument type.
The glsl frontend wasn't performing this implicit cast for output parameters.
This commit fixes that by using a proxy write, this
creates a spill variable with the correct type and in the call
prologue a conversion is made back to the original type and the
value is stored in the original variable.
2023-02-08 11:39:09 +00:00
João Capucho
fc81a20f53
spv-in: Don't apply interpolation to fragment shaders outputs ( #2239 )
...
SPIR-V doesn't allow the `Flat`, `NoPerspective`, `Sample` or
`Centroid` decorations on fragment shaders outputs, but the spirv
frontend was applying default interpolation to all outputs
unconditionally.
This wasn't an issue for most shaders since they output floats and the
default values for them don't interfere with SPIR-V semantics, but if
the shader returned a uint or int the interpolation would be set to
`Flat` which as stated above is disallowed.
This commit fixes the issue by only running the default interpolation
code when constructing the entry point and if the stage/IO allow it.
2023-02-03 11:48:23 +01:00
SparkyPotato
dcfd5c6f4a
improve invalid assignment diagnostic
2023-02-01 12:28:31 +01:00
SparkyPotato
231af68386
expect semicolons wherever required
2023-02-01 12:28:31 +01:00
SparkyPotato
e6bd2e9071
fix panic on invalid zero array size
2023-02-01 12:28:31 +01:00
SparkyPotato
bb20ae8e79
check for leading { while parsing a block
2023-02-01 12:28:31 +01:00
Evan Mark Hopkins
6be394dac3
Add countLeadingZeros ( #2226 )
...
* Add countLeadingZeros
* [glsl-out] Bake countLeadingZeros
* [hlsl-out] Bake countLeadingZeros
* [hlsl-out] Update Baked expressions
* Remove unnecessary bake for sints
* [glsl-out] CountLeadingZeros without findMSB
* Don't check negatives when uint
* Perform the type conv after mix
* use log2
* fix clippy lints
---------
Co-authored-by: teoxoy <28601907+teoxoy@users.noreply.github.com >
2023-01-31 21:31:05 +01:00
teoxoy
a2b39e45bf
[hlsl-out] clear named_expressions inserted by duplicated blocks
...
changed the type of `named_expressions` from `HashMap` to `IndexMap` so that insertion order is preserved
2023-01-31 10:43:02 -08:00
Shaye Garg
67ea8f0c06
[wgsl-in] Split into multiple files ( #2207 )
...
Make changes suggested in #2075 , but put off to a separate PR because they would interfere with reviewing the change:
- Split the new WGSL front end into modules in a logical way.
- Rename `Parser` to `Frontend`.
2023-01-31 07:17:58 -08:00