João Capucho
1aaf77489b
[glsl-in] Improve error api and make more errors deferred
2021-08-09 10:51:15 -04:00
João Capucho
a8a316da15
[glsl-in] API revamp
...
The new api allows for reuse while keeping some allocations and to
please the borrow checker in future work, it also splits the parser into
logical modules to make it easier to work on.
2021-08-09 10:51:15 -04:00
Dzmitry Malyshau
7c3cc904a0
[spv-in] fix storage buffer access decorations
2021-08-05 12:59:19 -04:00
Gordon-F
4080bfe502
Add vec select to operators snapshot
2021-08-05 09:43:47 -04:00
João Capucho
a1395ddb99
[glsl-in] Fix matrix constructor with a scalar
...
Glsl defines that if a matrix constructor is called with only a scalar
it's result will be the matrix where the scalar is used if the row and
column are equal and everywhere else a zero
2021-08-04 12:39:36 -04:00
João Capucho
de6399a9c7
[glsl-in] Follow spec when choosing default layout
2021-08-04 12:39:36 -04:00
Dzmitry Malyshau
6f21004369
Allow mixing on a scalar selector
2021-08-04 12:09:05 -04:00
João Capucho
a90aa9817b
[glsl-in] Add support for non constant global init
...
Glsl allows things such as
```glsl
layout (location = 0) in vec4 a;
vec4 b = a;
```
In this case `b` depends on `a` which can't be known at compile time,
so it's necessary to add a small prologue to the entry point to
initialize it.
2021-08-04 12:07:17 -04:00
João Capucho
057dc3100d
[glsl-in] Remove support for multiple entry points
2021-08-04 11:06:57 -04:00
João Capucho
56ce439ff5
[glsl-in] Implement layouting for composite types
2021-07-31 23:25:22 -04:00
pyrotechnick
2f516c0932
[wgsl] Storage buffer/texture access ( #1142 )
...
* Resurrect texture_storage_* tests
* Test parsing of `var<storage,write>`
* Default storage textures to READ
* Restore default features
* Fix glsl/hlsl/msl/spv front and back ends
* Add missing test outputs
* All-around fixes for the storage access
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-07-28 01:47:18 -04:00
João Capucho
677e040462
[glsl-in] Long form matrix support
2021-07-27 11:35:47 -04:00
Dzmitry Malyshau
a7ac13a61d
hlsl: special constants for base vertex/index
2021-07-27 01:49:03 -04:00
Gordon-F
d3243bd774
[glsl-out] Enable access snapshot testing
2021-07-26 13:53:48 -04:00
Dzmitry Malyshau
e97c8f9441
hlsl: fix storage offset, continuing statement
2021-07-26 01:29:42 -04:00
Dzmitry Malyshau
a5c2cef9ab
hlsl: transpose storage matrices
2021-07-26 01:29:42 -04:00
Dzmitry Malyshau
284cfcce47
hlsl: storage writes
2021-07-26 01:29:42 -04:00
Dzmitry Malyshau
4b6846d5da
hlsl: storage reads support, array length
2021-07-26 01:29:42 -04:00
Gordon-F
526a29e2b8
[glsl-out] Fix array type writing and zero initialization for local variables
2021-07-24 17:53:24 -04:00
Dzmitry Malyshau
bbfa9a0f9e
hlsl: remove the boolean casts for unary operators
2021-07-23 10:41:36 -04:00
Dzmitry Malyshau
cc91c77f7a
hlsl: fix vector multiplication
2021-07-23 02:11:32 -04:00
Dzmitry Malyshau
c526383cf8
hlsl-out: write StructuredBuffer
2021-07-22 15:44:26 -04:00
Dzmitry Malyshau
20c4d2c3d1
Add MSAA depth texture type
2021-07-22 10:39:24 -04:00
Gordon-F
82b2fe4410
[glsl-out] Fix zero initialization
2021-07-20 16:28:44 -04:00
Gordon-F
e017cb402e
[glsl-out] Add stage postfix for block structs
2021-07-20 16:28:44 -04:00
Zicklag
34b486f74b
Add Explicit Int Precision for GLSL ES Backend
2021-07-20 10:16:33 -04:00
Dzmitry Malyshau
7b9b56a6ab
hlsl-out: use * for vector by vector multiplication
2021-07-20 09:57:59 -04:00
Gordon-F
3c98cc5ae1
[hlsl-out] Validate all entry points in Makefile
2021-07-20 01:03:58 -04:00
Jim Blandy
f3c7537609
Add tests for sampling mipmapped and multisampled images.
...
Prior to this change, nothing in the test suite exercised the SPIR-V backend
code for generating LOD or Sample arguments to OpImageFetch instructions.
2021-07-20 01:01:55 -04:00
Dzmitry Malyshau
39eaa57a77
hlsl-out: implement constant buffer support
2021-07-18 02:21:01 -04:00
Dzmitry Malyshau
16206f2eb2
hlsl-out: unlock globals.wgsl test, override skybox bindings
2021-07-18 02:21:01 -04:00
Dzmitry Malyshau
0d94b76d1e
hlsl-out: rewrite texture coordinate construction
2021-07-18 02:21:01 -04:00
Dzmitry Malyshau
51fb9bb77a
hlsl-out: remap bindings
2021-07-18 02:21:01 -04:00
Dzmitry Malyshau
2a253ab838
hlsl-out: derive register based on storage class
2021-07-18 02:21:01 -04:00
Jasper St. Pierre
c7dd717b4c
wgsl: Don't output interpolate(flat) for non-float arguments ( #1103 )
2021-07-17 01:19:11 -04:00
Dzmitry Malyshau
8f71a368ef
Validate the exact MSL version ( #1101 )
2021-07-16 23:56:15 -04:00
Jim Blandy
337e40a2be
Enable logging in WGSL and SPIR-V tests. ( #1098 )
...
Use env_logger::try_init to avoid complaints about repeated initialization. This
function is thread-safe.
2021-07-16 23:09:48 -04:00
Dzmitry Malyshau
e76824aba3
glsl-out: fix emission of location/binding attributes ( #1100 )
2021-07-16 23:04:55 -04:00
initial-algebra
602368d9f0
Support builtin(primitive_index)
( #1097 )
...
* Hack in support for PrimitiveID on Vulkan
* Rename to PrimitiveIndex and add preliminary support for GLSL, HLSL and MSL
* Implement as an extra WGSL built-in
* Update extra.wgsl outputs
* Run rustfmt; fix WGSL writer
* Add rustfmt changes I forgot
* Update extra.wgsl test output for WGSL fix
* Bump macOS version to 10.15 in validate-msl to support primitive_index
2021-07-16 22:18:20 -04:00
Dzmitry Malyshau
8eef784416
WGSL: Flip true/false arguments of select()
2021-07-16 11:42:12 -04:00
Gordon-F
4ef754bb9d
[hlsl-out] Enable image snapshot
2021-07-16 10:31:01 -04:00
Gordon-F
2716d368a1
[hlsl-out] Implement barrier statement
2021-07-16 10:31:01 -04:00
Jasper St. Pierre
0995c7161e
[glsl-in] Keep around extra linkage variables
...
WGSL will require this. Note that this still might
cause some issues with multi-entry-point GLSL
that I didn't know how to handle. That is, we will
handle unused builtin inputs but not unused
builtin outputs correctly right now. This is an existing
issue though, not a regression.
This is also provided as an option, but I feel like
the more correct approach is to never strip linkage
variables. We'll see though.
2021-07-14 17:48:54 -04:00
Jasper St. Pierre
0b69aa8b8a
Init env_logger in snapshots tests
...
For debugging. Maybe there's a way to do it for all tests,
not sure...
2021-07-14 17:48:54 -04:00
pyrotechnick
1d1aea243f
Improve WGSL interpolation attributes ( #1083 )
...
* [wgsl-in] Map interpolate(..., center) to Sampling::Center
* [wgsl-out] Improve interpolation attributes
* [wgsl] Fix tests/in/interpolate.wgsl typo/format
* [wgsl] Snapshot WGSL artefacts
* [wgsl-out] Stack-only writing of interpolation
2021-07-13 21:57:52 -04:00
Gordon-F
ccf3fe9707
Fix type info of texture dimensions function with texture cube parameter
2021-07-13 17:28:09 -04:00
Dzmitry Malyshau
458db0b522
[hlsl-out] expose profile string conversions
2021-07-11 23:14:07 -04:00
João Capucho
105a2ae5e1
[glsl-in] Check type dimensions in function calls
2021-07-07 12:59:20 -04:00
Gordon-F
9e61390626
[hlsl-out] Zero initialize variables. Write interpolation and sampling qualifier
2021-07-07 10:57:28 -04:00
João Capucho
ee1004d443
[glsl-in] Use cast for implicit conversion
...
Previously this was a bitcast
2021-07-06 11:24:05 -04:00