teoxoy
6854b0ab4f
disallow ptr to workgroup fn arguments
2023-10-16 19:03:14 -07:00
teoxoy
d71f2541a3
remove IsFinite & IsNormal completely
2023-10-16 16:24:52 -07:00
teoxoy
04562dea26
Split UnaryOperator::Not into UnaryOperator::LogicalNot & UnaryOperator::BitwiseNot
...
since it should not be valid to use the logical and bitwise not operators interchangeably
also, don't allow `UnaryOperator::Negate` to operate on booleans (no frontend/backend supports this)
2023-10-16 16:22:06 -07:00
teoxoy
841d360f06
[valid] avoid OOM with large sparse resource bindings
2023-10-16 14:23:05 -07:00
teoxoy
f7e15bf391
[valid] check local variable initializer is const
2023-10-12 13:13:26 +02:00
teoxoy
a77f6ff51c
[const-eval] error on NaN and infinite floats
2023-10-12 13:13:26 +02:00
teoxoy
3fb4c333a7
use LocalVariable init
2023-10-12 13:13:26 +02:00
teoxoy
a730236b68
[wgsl-in] eagerly evaluate const-expressions
...
[wgsl-in] support const-expressions in attributes
allow `Splat` as an evaluated const-expression type
2023-10-12 13:13:26 +02:00
Jim Blandy
fe484b3a1b
Require that Function and Private variables be CONSTRUCTIBLE.
...
Change the validator to enforce WGSL's requirement that all variables
in the `function` and `private` address spaces must have constructible
types.
Mark the `RayQuery` type as `CONSTRUCTIBLE`, since it is intended to
be used for local variables.
Add a regression test.
2023-10-09 12:27:05 +02:00
Jim Blandy
c6716033da
Improve docs for FunctionInfo::process_expression.
2023-10-06 18:43:22 +02:00
Jim Blandy
31f547580c
Remove expression argument to FunctionInfo::process_expression.
...
We're already passing the handle and the arena, so it's superfluous.
2023-10-06 18:43:22 +02:00
Teodor Tanasoaia
4d6e0005f4
[valid] Disallow NaNs and infinities ( #2508 )
...
* [valid] disallow NaNs and infinities
* document literal float constraints
2023-10-05 12:50:36 -07:00
teoxoy
e6a47ba262
disable uniformity analysis for the fragment stage
2023-09-28 20:33:11 +02:00
teoxoy
ee236e6c9b
[valid] make sure textureSampleBias is only used in the fragment stage
2023-09-28 20:33:11 +02:00
Teodor Tanasoaia
f72489be00
validate variable initializer for address spaces ( #2513 )
2023-09-28 20:32:46 +02:00
andriyDev
d8b7573b9e
Prevent using multiple push constant variables in one entry point. ( #2484 )
2023-09-19 12:59:32 +02:00
Bruce Mitchener
266634e822
clippy: Fix unnecessary_mut_passed warning. ( #2476 )
...
The `ModuleInfo` was not used mutably.
2023-09-13 16:11:10 +02:00
Jim Blandy
cc87b8f9eb
Don't warn about unused mut in tests when "validate" feature is off. ( #2466 )
2023-09-11 11:59:14 +02:00
Fredrik Fornwall
a0eb1f5462
[wgsl-in] Allow sign() to take int argument ( #2463 )
2023-09-06 09:29:35 -07:00
Fredrik Fornwall
978e6df645
Use || instead of |
2023-09-05 18:05:13 -07:00
Fredrik Fornwall
5329aa2bd5
[wgsl-in] Handle modf and frexp ( #2454 )
2023-09-02 08:55:35 +02:00
Fredrik Fornwall
f49314dbbd
Fix validation and glsl parsing of ldexp ( #2449 )
...
Fixes #1908 .
2023-09-01 18:44:48 +02:00
Frederik Magnus Johansen Vestre
0491d39232
Support dual source blending ( #2427 )
...
Co-authored-by: teoxoy <28601907+teoxoy@users.noreply.github.com >
2023-08-30 21:00:35 +02:00
teoxoy
f92340cd03
validate binding_array variable address space
2023-08-04 10:45:36 -04:00
Teodor Tanasoaia
46951a09c0
Validate storage buffer access ( #2415 )
...
* validate storage buffer access
* remove GLSL writeonly buffer test
2023-07-31 15:59:17 +02:00
Jim Blandy
63bc66bc70
Reject constant/initializer cycles in handle validation.
2023-07-17 16:26:08 -07:00
teoxoy
d348d843e1
implement const-expressions (phase 1)
2023-07-17 16:26:08 -07:00
Jim Blandy
b7da0057a0
Don't use std::opsIndex, used only when "validate" is on. ( #2383 )
...
In `src/valid/expresion.rs`, use the full path `std::ops::Index` when
implementing the trait on `ExpressionTypeResolver`. This
implementation is `#[cfg(feature = "validate")]`, so the `use`
directive becomes unnecessary when that feature is not enabled,
triggering warnings.
2023-06-15 14:40:13 +02:00
teoxoy
08105461ce
omit non referenced expressions
2023-06-12 17:49:06 -07: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
Teodor Tanasoaia
62b287e761
Change type of constant sized arrays to NonZeroU32 ( #2337 )
2023-05-12 14:38:50 +02:00
teoxoy
d842d6688d
Introduce GlobalCtx
2023-05-11 09:52:40 -07:00
Jim Blandy
02ddf6532c
Introduce Expression::Literal.
2023-05-11 07:09:53 -07:00
Teodor Tanasoaia
dcc8615c5b
Introduce Expression::ZeroValue.
2023-05-10 19:30:03 -07:00
Erich Gubler
dd54aaf260
refactor(valid)!: remove unneeded ConstantError::Unresolved{Component,Size} ( #2330 )
...
Resolves #2329 .
2023-05-09 22:10:09 -07:00
Dzmitry Malyshau
37b3c36a8f
Support array bindings of buffers ( #2282 )
...
* Support buffer resource arrays in IR, wgsl-in, and spv-out
* spv-out: refactor non-uniform indexing semantics to support buffers
* Update the doc comment on BindingArray type
* Improve TypeInfo restrictions on binding arrays
* Strip DATA out of binding arrays
* Include suggested documentation, more binding array tests, enforce structs
2023-04-24 21:30:49 -07:00
Erich Gubler
1421a5e1ab
refactor(valid)!: remove TypeError::UnresolvedBase ( #2308 )
...
Resolves #2303 .
2023-04-20 19:39:38 +02:00
teoxoy
b9c5cb5a78
validate vertex stage returns the position built-in
2023-04-12 10:48:18 -07:00
daxpedda
f59668ccfa
Allow array_index to be unsigned ( #2298 )
2023-04-07 16:01:55 +02:00
Dzmitry Malyshau
024c197cc8
ray query: validation, better test
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
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
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