Commit Graph

1845 Commits

Author SHA1 Message Date
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
teoxoy
4366e65609 add support for unary vector operators 2022-04-15 11:21:51 +02:00
teoxoy
e4c017cb7c add more tests for operators 2022-04-15 11:21:51 +02:00
Jakob Hellermann
6427a661f7
add methods on the error types for reusability in wgsl-analyzer (#1827) 2022-04-15 11:13:39 +02:00
Jim Blandy
ba58ef5176 Document Naga's promises around validation and panics. 2022-04-14 13:47:41 -07:00
teoxoy
dd75579d7c fix typos 2022-04-14 13:47:18 -07:00
Jim Blandy
bdbf821c32 Test matrix-typed uniform globals. 2022-04-14 11:54:47 -07:00
Jim Blandy
97fffccac7 [spv-out] Emit required decorations on wrapper struct types, too.
Fixes #1810.
2022-04-14 11:54:47 -07:00
Jim Blandy
1a0a48fd69 [spv-out] Decorate array and struct type layouts unconditionally.
Remove the `decorate_layout` variable, which is unconditionally set to
`true` anyway.
2022-04-14 11:54:47 -07:00
Jim Blandy
27d0fee2e7 More tests for non-struct global types. 2022-04-14 11:45:42 -07:00
Jim Blandy
5d631d9e2d [glsl-out] Generate GLSL for arbitrary global types, per Naga IR.
Delete `GlobalTypeKind`.

Break out `Writer::write_global`'s code into two new functions,
`write_simple_global` and `write_interface_block`. This introduces
some repeated code, but the way we need to produce interface blocks
and normal globals are sufficiently different that I think it's
clearer overall to just separate them entirely. Much of the details
are handled by their callees.

Loosen the interface block code to support arbitrary types.
2022-04-14 11:45:42 -07:00
Jim Blandy
cf1869016f [glsl-out] Rename glsl_storage_class to glsl_storage_qualifier.
"Storage qualifier" is the term used in the GLSL ES specification.
2022-04-14 11:45:42 -07:00
Jim Blandy
896e884802 [glsl-out] Use exhaustive match in AddressSpace::initializable.
No change in behavior. Exhaustive matches aid error detection, and are
clearer when the number of match arms isn't excessive.
2022-04-14 11:45:42 -07:00
Jim Blandy
438a750967 Introduce TypeInner::is_dynamically_sized helper function.
Use it in HLSL and GLSL back ends.
2022-04-14 11:45:42 -07:00
Jim Blandy
f11d27af6f
Reject empty struct types. (#1826) 2022-04-14 09:36:53 -07:00
Jim Blandy
170faab6db
Move invariant bit from Binding::Builtin to Builtin::Position. (#1822)
Use the type system to enforce the rule that the invariant attribute
may only appear on `Position` builtins.
2022-04-13 14:57:05 -07:00
Jim Blandy
78975f25da [msl-out] Permit invariant qualifier on vertex shader outputs. 2022-04-12 22:22:20 +02:00
Jim Blandy
4e4d918d39 [msl-out] Introduce finer distinctions to LocationMode.
Distinguish between vertex shader outputs and fragment shader inputs.
This change should have no visible effect.
2022-04-12 22:22:20 +02:00
Jim Blandy
8afa5fe5e3 [glsl-out] Document and flatten back::glsl::Writer::write_varying. 2022-04-12 14:22:50 +01:00
Teodor Tanasoaia
bd62887a13
[hlsl-out] Add more padding when necessary (#1814)
* [hlsl-out] add padding at the end of structs and after struct members of type matrix and array (when necessary)

* use wrapped constructor fn for constants

* add array as fn arg test

* fix glsl array fn arg

* add wrapped constructor for arrays

* [glsl-out] support multidimensional arrays

* address comments
2022-04-11 20:34:06 -07:00
teoxoy
0e77d26241 cast packed vec3's to vec3 for expressions that require it 2022-04-11 20:30:00 -07:00
teoxoy
32cdb27230 add better tests for msl packed vec3 2022-04-11 20:30:00 -07:00
teoxoy
d7f4c340a7 add matrix vector multiplication test 2022-04-11 20:30:00 -07:00
teoxoy
1688a767bb fix packed vec3 stores 2022-04-11 20:30:00 -07:00
teoxoy
1f797fdc2f add more packed vec3 load/stores to test 2022-04-11 20:30:00 -07:00
João Capucho
954c1f6f4b
glsl-in: Add tests for constants NaN handling (#1817) 2022-04-11 16:53:03 -07:00
Shohei Jinno
b21634ac61
[glsl-in] Implement MathFunction::Clamp (#1502)
* Implement Clamp function.

* Fix the return error type.

Change `ConstantSolvingError::InvalidMathArg` to `ConstantSolvingError::NotImplemented`
for the clamp function with the input of unimplemented types.

Unimplemented types:
    - vec2
    - vec3
    - vec4

* [glsl-in] Add helpers that implement the glsl's `max` and `min` functions.

Co-authored-by: JCapucho <jcapucho7@gmail.com>

* Fix grammar.

Co-authored-by: JCapucho <jcapucho7@gmail.com>
2022-04-11 12:02:34 -07:00
Shohei Jinno
8f5d8f61a8
glsl-in: better errors for bad constant expression (#1501)
Co-authored-by: JCapucho <jcapucho7@gmail.com>
2022-04-11 11:22:04 -07:00
Teodor Tanasoaia
7aaac25fbf
[hlsl-out] fix matCx2 translation for uniform buffers (#1802)
* [hlsl-out] fix matCx2 translation

* fix msl validation (warning: unused variable)

* fix msl buffer declaration

* address comments
2022-04-10 22:29:11 -07:00
teoxoy
5ba2d4d079 [spv-in] error on unsupported matrix stride 2022-04-10 22:27:32 -07:00
teoxoy
6ee1fd4929 fix MSL issue 2022-04-10 21:49:23 -07:00
teoxoy
d3957c1186 implement invariant attribute 2022-04-10 21:49:23 -07:00
Teodor Tanasoaia
fa44d9d536
[glsl-in] error on a matCx2 used with the std140 layout (#1806) 2022-04-10 21:42:02 -07:00
Noel Tautges
a3d968e795
[hlsl-out] Don't output interpolation modifier if it's the default (#1809)
* hlsl-out: don't output interpolation modifier if it's the default (linear/`Interpolation::Perspective`)

* Remove linear interpolation modifiers from HLSL output tests
2022-04-09 22:36:36 -07:00