Evan Mark Hopkins
5f8e4f6dea
[spv] Fix OpImageQueries to allow Uints ( #2404 )
2023-07-24 21:25:45 +02:00
Jim Blandy
409239c0e2
[glsl-out] Various doc fixes.
2023-07-17 16:26:08 -07:00
Jim Blandy
e7cd4ffbaa
[wgsl-in] Document ExpressionContextType, ExpressionContext.
2023-07-17 16:26:08 -07:00
Jim Blandy
63bc66bc70
Reject constant/initializer cycles in handle validation.
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
Jim Blandy
c7490b9832
Document constant and override expressions.
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
Nicolas Silva
7624d6c78e
[glsl-out] textureSize level must be a signed integer. ( #2397 )
2023-07-04 15:53:29 +02:00
Teodor Tanasoaia
a550b0b499
Split image bounds check policy ( #2265 )
2023-06-29 14:59:37 +00:00
wicast
3ca8b4997d
fix(spv-out-debug): fix debug options ( #2394 )
2023-06-29 13:31:26 +02:00
wicast
25e4f17a69
add debug info for spv-out ( #2379 )
2023-06-28 14:30:25 +02:00
Joe O'Connor
614da63366
Expose early depth test field ( #2393 )
2023-06-27 15:25:55 +02:00
Elabajaba
adf1cca68d
Implement Pack/Unpack for HLSL ( #2353 )
2023-06-23 15:52:22 +02:00
Teodor Tanasoaia
ffe2308a60
rename allow_point_size to allow_and_force_point_size ( #2280 )
2023-06-22 06:36:54 -07:00
Eduard-Mihai Burtescu
f915d39a87
[spv-out] Use IndexSet instead of HashSet for iterated sets (capabilities/extensions).
2023-06-21 13:30:01 -07:00
Igor Shaposhnik
304ba5805c
[glsl-out] Fix functions with array return type
2023-06-15 14:53:19 +02: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
76003dc003
remove unnecessary macro parameters
2023-06-13 15:08:05 -07:00
teoxoy
08105461ce
omit non referenced expressions
2023-06-12 17:49:06 -07:00
teoxoy
763ec5d1a5
complete HLSL reserved symbols
2023-06-12 17:41:53 -07:00
teoxoy
dbb6d8e814
avoid allocating
2023-06-12 17:41:53 -07:00
daxpedda
b7f4006e46
Bump bitflags to v2 ( #2358 )
2023-06-01 15:40:47 +02:00
Pieter-Jan Briers
544ccf88da
Handle case insensitive FXC HLSL keywords. ( #2347 )
...
There are a few keywords like "pass" in HLSL that are actually case-insensitive for FXC. This can be disabled with strict mode, but even if you do that FXC will continue to give an error if you try to use them in identifiers (at all, with any casing).
This changes the namer code to escape these keywords even if the casing is different.
If you're wondering where I got the list from: I looked at the list of strings in D3DCompiler_47.dll.
2023-05-31 15:00:23 +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
baed251cb1
Document which expressions are in scope for a break_if expression. ( #2326 )
2023-05-25 13:08:24 +02:00
Jim Blandy
201c0e2999
[spv-in] Improve documentation for SPIR-V control flow parsing. ( #2324 )
2023-05-25 13:06:21 +02:00
Erich Gubler
4b41e07a99
refactor: add several clippy lints ( #2296 )
2023-05-24 17:23:24 +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
Erich Gubler
dd54aaf260
refactor(valid)!: remove unneeded ConstantError::Unresolved{Component,Size} ( #2330 )
...
Resolves #2329 .
2023-05-09 22:10:09 -07:00
Jim Blandy
59a2441a43
[msl-out] Revert af4d989 since #764 removes the need for it ( #2331 )
...
Assigning arrays by value works fine since all arrays are now wrapped by a struct.
Co-authored-by: teoxoy <28601907+teoxoy@users.noreply.github.com >
2023-05-09 16:20:15 -07:00
Ashley
da3f43394f
[wgsl-out] Simplify map_binding_to_attribute to always return an interpolate attribute ( #2318 )
2023-05-02 13:50:59 +02:00
Evan Mark Hopkins
9befaed7e9
[hlsl-out] Fix return type for firstbitlow/high ( #2315 )
2023-04-25 14:49:26 +02: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
Erich Gubler
99a7773e65
fix(hlsl-out): use Interlocked<op> intrinsic for atomic integers ( #2294 )
...
We currently assume that we are using raw `RWByteAddressBuffer` methods for all atomic operations (`<pointer>.Interlocked<op>(<raw_byte_offset>, …)`), which is only true when we use `var<storage, read_write>` globals. For `var<workgroup>` globals, we need `Interlocked<op>(<pointer>, …)`, using the original expression as the first argument.
Fix this by branching on the `pointer`'s address space in `Atomic` statements, and implementing the workgroup address space case with intrinsics.
Remove atomic ops from `access`, add new `atomicOps` test.
Fixes #2284
2023-04-05 19:37:22 -07:00
Christopher Fleetwood
7c00548075
[wgsl] Use alias instead of type for type aliases ( #2299 )
2023-04-04 12:35:32 +02:00