Hasan Ali
934fa16919
Implement reverseBits and countOneBits for SPIR-V ( #1897 )
...
* Implement reverseBits and countOneBits for spir-v
* Update tests
* Fix type error for glsl countOneBits implementation
2022-05-09 23:24:28 +02:00
João Capucho
cf32c2b7f3
glsl-out: Fix feature search in expressions
...
It was also searching in all entry points instead of only in the current
one.
All samples queries need the ARB_shader_texture_image_samples extension
so we need to check if any samples queries are made and if so request
the extension.
2022-05-05 19:06:33 +01:00
teoxoy
1869c6831e
[hlsl-out] zero init struct constructor
2022-05-03 19:51:51 +02:00
Mehmet Oguz Derin
9c8a51830c
Use Unicode 14 for WGSL
...
The unicode-xid crate just had a release with Unicode 14 data, which the WGSL spec requires.
2022-05-02 15:34:13 +02:00
Jim Blandy
57e1793143
Properly check that user-defined IO uses IO-shareable types.
...
Only numeric scalars and vectors, and structs whose members are such
values, are permitted as the types of user-defined IO.
2022-05-02 10:28:16 +02:00
Jim Blandy
dec07027ee
Split out check_one_validation
macro from check_validation
.
...
The new `check_one_validation` macro permits the source code to be a
computed expression, not just a string literal. This also cleans up
some of the handling of the optional guard expression.
2022-05-02 10:28:16 +02:00
Jim Blandy
a8e1e11437
Rename check_validation_error
macro to check_validation
.
...
The macro can check for both success and failure, so the new name is
more accurate, and shorter.
2022-05-02 10:28:16 +02:00
João Capucho
883a88580f
glsl-in: Apply comments
2022-05-01 13:52:04 -07:00
João Capucho
6a62d009ea
glsl-in: Improve the context emitter interface
...
Adds a new method `emit_restart` to perform the common operation of flushing
the `emitter` to the body and starting it again.
Adds documentation to all context emitter related methods
2022-05-01 13:52:04 -07:00
João Capucho
1c02de537b
glsl-in: Fix the ternary to behave as an if
...
The GLSL specification defines that only one of the branches should be
evaluated making the ternary operator syntatic sugar for an `if`.
2022-05-01 13:52:04 -07:00
Jim Blandy
2571039af0
Factor out code for deciding which pointers can be arguments.
2022-05-01 12:27:40 -07:00
teoxoy
0d3b9bfe45
update readme
2022-05-01 12:16:10 -07:00
Jim Blandy
fae939f537
[glsl-in] Simplify control flow in search for main
.
2022-05-01 00:29:17 +01:00
Jim Blandy
115a810981
[glsl-in] Use std::mem::take
as appropriate. ( #1878 )
2022-04-30 15:09:35 -04:00
Noel Tautges
a99fc27dc1
Change !0
to <type>::MAX
or -1
, depending on signedness
2022-04-30 10:36:00 -07:00
Jim Blandy
7b8d257043
Correct error message for Handle
index overflow.
...
This function is used from both `Arena` and `UniqueArena`. When its
code moved from `Arena` to `Handle`, the error message was adapted
incorrectly.
2022-04-30 10:18:19 -07:00
Jim Blandy
e8723219b7
Validate ValuePointer
exactly like a Pointer
to a Scalar
.
...
A `ValuePointer` type should always be handled exactly like the
equivalent `Pointer` to `Scalar` type. To this end:
- Adjust the handling of `TypeFlags::ARGUMENT`.
- Neither `Pointer` nor `ValuePointer` types are ever `DATA`.
2022-04-30 10:17:05 -07:00
Jim Blandy
5f4a070504
Simplify type handling in VaryingContext.
...
When `VaryingContext::validate` discovers that it needs to examine
each member of a struct, pass the type as an argument to `validate`
and `validate_impl`, rather than mutating `self.ty` on each iteration
of the loop. This matches the way we're handling the binding, and
avoids stashing per-iteration state in a surprising place.
This should have no effect on execution.
2022-04-30 10:12:43 -07:00
Jim Blandy
a06b604b80
Rename type flags to better align with the current WGSL spec.
...
TypeFlags::INTERFACE -> TypeFlags::IO_SHARED
(WGSL §4.4.4's "IO-shareable types")
TypeFLags::HOST_SHARED -> TypeFlags::HOST_SHAREABLE
(WGSL §4.4.5's "Host-shareable types")
2022-04-29 15:25:22 -07:00
Igor Shaposhnik
f76af4e53a
[wgsl] Remove buffer, texture, in, out, input, output from reserved keywords
2022-04-29 20:06:09 +02:00
Teodor Tanasoaia
f2e7818e71
[wgsl-in] implement firstTrailingBit/firstLeadingBit u32 overloads ( #1865 )
...
* [wgsl-in] implement firstTrailingBit/firstLeadingBit u32 overloads
* fix MSL type issue
reverts b9162e443d
2022-04-26 22:25:53 -07:00
teoxoy
062b66ca31
implement phony assignment
2022-04-26 21:40:31 -07:00
Jim Blandy
01212b24b9
Document TypeInner::BindingArray
.
2022-04-25 23:42:11 -07:00
Noel Tautges
9b7fe8803d
Clarify accepted types for Expression::AccessIndex
( #1862 )
...
* Clarify accepted types for `AccessIndex` and remove `Constant` fragment
* Remove spaces
Will I ever learn to run `cargo fmt` before pushing? The answer is probably yes, after this repeated embarrassment
2022-04-25 21:31:10 -07:00
Connor Fitzgerald
1aa9154964
Binding arrays play nice with bounds checks ( #1855 )
2022-04-25 04:17:51 +00:00
Connor Fitzgerald
ad28396851
Implement Binding Arrays ( #1845 )
2022-04-19 14:23:07 -04:00
teoxoy
850565243d
replace unicode-id with unicode-xid
2022-04-18 13:03:37 -07:00
Jim Blandy
0aa6b6902b
[hlsl-out] Flesh out matrix handling documentation.
2022-04-18 08:36:51 -07:00
teoxoy
94467c770f
fix bitflags min version
2022-04-18 08:08:22 -07:00
teoxoy
0e2bb0194b
refactor consume_token fn body
2022-04-17 21:01:01 -07:00
teoxoy
90b3c18fae
fix being able to match ~=
as LogicalOperation
2022-04-17 21:01:01 -07:00
teoxoy
340bfcc33a
remove unused code
2022-04-17 21:01:01 -07:00
teoxoy
743c8aa387
update lexer to match more unicode characters
2022-04-17 21:01:01 -07:00
teoxoy
bddfc34299
fix minimal-versions of dependencies
2022-04-17 20:59:59 -07:00
teoxoy
88fff4c028
add minimal-versions check to CI
2022-04-17 20:59:59 -07:00
Teodor Tanasoaia
dc075e66e3
[wgsl-in] Update reserved keywords ( #1847 )
2022-04-17 15:56:54 +02:00
Teodor Tanasoaia
7ce98dcc7d
Make use of new language features ( #1841 )
...
* use strip_prefix
* make fn const (resolving TODO)
* make use of nested OR patterns in match arms
* warn on clippy::missing_const_for_fn
* constify functions
* ignore clippy::missing_const_for_fn for into_inner functions
2022-04-17 03:39:54 -04:00
Jim Blandy
ef387f73a6
[hlsl-out] Emit row_major
qualifier on matrix uniform globals.
...
Fixes #1836 .
2022-04-16 23:50:17 -07:00
teoxoy
c942a9011b
update doc of clamp fn
2022-04-16 08:32:31 -07:00
teoxoy
33085863b7
update msrv to 1.56
2022-04-16 08:32:31 -07:00
Igor Shaposhnik
1720725014
[wgsl-out] Update entry point stage attributes
2022-04-15 18:02:48 +01:00
Igor Shaposhnik
fbb77aa0dc
[wgsl-in] Update entry point stage attributes
2022-04-15 18:02:48 +01:00
Teodor Tanasoaia
c93a5ede71
update hlsl-out
status in README
2022-04-15 13:25:49 +02:00
teoxoy
8584507fb6
[glsl-out] remove redundant space from unary ops
2022-04-15 11:21:51 +02:00
teoxoy
7f4e07e5cd
[glsl-out] add support for boolean vector ~
, |
and &
ops
2022-04-15 11:21:51 +02:00
teoxoy
d3b37dcdb1
add tests for remaining vector - scalar ops
2022-04-15 11:21:51 +02:00
teoxoy
95b84c4403
[spv-out] add support for int vector scalar mult
2022-04-15 11:21:51 +02:00
teoxoy
2cda40396a
comment out problematic negative int
2022-04-15 11:21:51 +02:00
teoxoy
6e6daad4d4
[hlsl-out] fix bool splat
2022-04-15 11:21:51 +02:00
teoxoy
4ea7dc3381
[spv-out] add support for matrix add and sub
2022-04-15 11:21:51 +02:00