Commit Graph

1190 Commits

Author SHA1 Message Date
João Capucho
2ff7dcb417 [glsl-in] Fix mix ordering for boolean selector
The mix builtin is defined with the inverse order for it's arguments
compared to the IR when the selector is a boolean vector.
2021-08-04 12:39:36 -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
151a36352e [glsl-in] Be more conservative with vector resizes 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
João Capucho
5ec129bbf0 [glsl-in] Lower the for loop init expression 2021-08-04 12:39:36 -04:00
João Capucho
ec0d97d961 [glsl-in] Respect user defined interpolation 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
6f476eeafe [glsl-in] Fix span of gvec3 in layouter 2021-08-03 13:58:25 -04:00
João Capucho
c084e2cfa8 [glsl-in] Handle Pow in constant evaluation 2021-08-03 13:58:25 -04:00
João Capucho
da77e1f847 [glsl-in] Accept precision in local variable 2021-08-03 13:58:25 -04:00
João Capucho
bcfe1f6f28 [glsl-in] Parse some more memory qualifiers 2021-08-03 13:58:25 -04:00
João Capucho
08302b5078 [glsl-in] Fix missing implicit conversion in mix 2021-08-03 13:58:25 -04:00
João Capucho
fde91c1d94 [glsl-in] Implicit splat min builtin 2021-08-03 13:58:25 -04:00
João Capucho
9742f6820a [glsl-in] Invalidate the expression in sampled_to_depth 2021-08-03 13:11:31 -04:00
João Capucho
bd16bf90d0 [glsl-in] Unify depth_set and qualifiers 2021-08-03 13:11:31 -04:00
João Capucho
244d58e8ff [glsl-in] Add support for depth_ref 2021-08-03 13:11:31 -04:00
João Capucho
717063eb21 [glsl-in] Convert Sampled image to depth image 2021-08-03 13:11:31 -04:00
João Capucho
d6643086f3 Check documentation errors in CI 2021-08-02 22:46:06 -04:00
João Capucho
d39f6780a7 Documentation fixes 2021-08-02 22:46:06 -04:00
Jim Blandy
b7a4ee1d2d [spv-out] Document back::spv::Writer::write_varying. 2021-08-02 22:34:52 -04:00
Jim Blandy
e4931e106d Document EntryPoint. 2021-08-02 22:33:32 -04:00
Gordon-F
8e17c29644 [glsl-out] Add inout qualifier for pointer function arguments 2021-07-31 23:59:06 -04:00
João Capucho
e58d1649c3 Fix clippy lints 2021-07-31 23:28:13 -04:00
João Capucho
223016a418 [glsl-in] Implement textureGrad 2021-07-31 23:28:13 -04:00
João Capucho
65e915f998 [glsl-in] Implicit convert texture functions 2021-07-31 23:28:13 -04:00
João Capucho
56ce439ff5 [glsl-in] Implement layouting for composite types 2021-07-31 23:25:22 -04:00
João Capucho
e0e840b22c [glsl-in] Implement std140 and std430 layouts
Structs are not yet implemented
2021-07-31 23:25:22 -04:00
Arnaud Golfouse
e0efe34402 Fix typo in error message (#1150) 2021-07-29 22:57:27 -04:00
Jakob Hellermann
fa05f0d0d9 [glsl-out] split reflection_names into a map for types and another for globals (#1144)
* split reflection_names into a map for types and another for globals

* reflection_names_structs -> reflection_names_uniforms
2021-07-29 00:17:01 -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
6303af225f [glsl-in] Add implicit conversion for initializer 2021-07-27 20:16:05 -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
46d2d6819e Fix matrix size computation 2021-07-26 10:40:47 -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
e7502d0a9b hlsl: factor storage logic into a separate module 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
Gordon-F
9bd0abb987 [hlsl-out] Fix local variable writing with array type 2021-07-24 17:53:24 -04:00
Gordon-F
7dd9e14a3d Add note about sint array size in comment 2021-07-24 17:53:24 -04:00
Gordon-F
7bb28201dd Allow to translate from bool to another type in validator 2021-07-24 17:53:24 -04:00
Gordon-F
3000232844 [hlsl-out] Write sint array size 2021-07-24 17:53:24 -04:00
Igor Shaposhnik
ff14f04734 [glsl-out] Fix bitcast operation for the same types 2021-07-23 11:47:46 -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