Commit Graph

265 Commits

Author SHA1 Message Date
Pelle Johnsen
0f98357223 [glsl-in] Skip gl_PerVertex 2020-11-20 09:54:01 +01:00
Dzmitry Malyshau
7c7702c9d8 [mtl] move writer into a separate module 2020-11-19 23:19:26 -05:00
Dzmitry Malyshau
fa36ef194c [mtl] move keywords into a separate file 2020-11-19 23:19:26 -05:00
Dzmitry Malyshau
0f7b6e3e76 [mtl] dont include the std namespace 2020-11-19 23:19:26 -05:00
Dzmitry Malyshau
36bc6b8596 [mtl] populate reserved words more 2020-11-19 23:19:26 -05:00
Dzmitry Malyshau
d0f3450564 [msl make backend a folder module 2020-11-19 23:19:26 -05:00
Dzmitry Malyshau
c19bcbe89c Allow manual strip for clippy, temporarily 2020-11-19 23:19:10 -05:00
Dzmitry Malyshau
4ed91330cf Derive PartialEq for validation errors 2020-11-19 23:19:10 -05:00
Timo de Kort
929e07ff0c [spv-out] Add support for vector with vector multiplication 2020-11-18 17:37:52 +01:00
Timo de Kort
27ec95a238 [spv-out] Load variables when using CompositeConstruct (#284) 2020-11-16 16:52:51 -05:00
Timo de Kort
820dc51e2f [spv-out] Fix annotations not getting added to output (#281) 2020-11-16 16:49:35 -05:00
Pelle Johnsen
437b33d536 [glsl-in] use TypeInner::scalar_kind for casts (#279)
* [glsl-in] use TypeInner::scalar_kind for casts

* [glsl-in] Use .ok_or for casts
2020-11-16 11:57:34 -05:00
Pelle Johnsen
9041cd4b10 [glsl-in] Handle simple casts 2020-11-16 12:58:19 +01:00
Timo de Kort
022b42c44b [spv-out] Reduce BinaryOperator::Multiply indentation 2020-11-15 13:05:21 -05:00
Timo de Kort
d0de2faa73 [spv-out] Add and implement bitwise_and 2020-11-14 12:40:02 -05:00
Timo de Kort
cbcdcf470f [spv-out] Add and implement i_sub and f_sub 2020-11-14 11:03:07 -05:00
Timo de Kort
a1dc8c2d28 [spv-out] Fix duplicate scalar OpType 2020-11-13 19:55:18 +01:00
Dzmitry Malyshau
4d4e1cd4cb [spv] support GLSL's Distance 2020-11-12 12:38:35 -05:00
Dzmitry Malyshau
5e77653c55 [ir] select expression 2020-11-12 17:43:33 +01:00
Dzmitry Malyshau
8b56f3ef96 [ir] support function argument names (#270) 2020-11-11 21:34:37 +01:00
Dzmitry Malyshau
a54800afc1 Naming processor, used for [msl] 2020-11-11 12:39:42 -05:00
Dzmitry Malyshau
ac5e91b31a Fix and refactor the constant array sizes 2020-11-11 08:02:06 -05:00
Pelle Johnsen
249e0bd4ac [glsl-in] Make sure functions ends with return 2020-11-11 08:01:43 -05:00
Timo de Kort
f8876dac73 [spv-out] Add AccessChain and AccessIndex instructions 2020-11-09 15:29:30 -05:00
Dzmitry Malyshau
41b3865e5b Make variable initializers to be const 2020-11-04 16:38:55 -05:00
Dzmitry Malyshau
b61b100fa3 [ir] LocalVariableError 2020-11-04 16:38:55 -05:00
Pelle Johnsen
6480370a19 [spv-out] Handle ImageSample (#261) 2020-11-03 21:18:30 +01:00
Kristoffer Søholm
bb5c9567b5 [glsl-in] Add xor, small refactor 2020-11-02 19:34:01 -05:00
Kristoffer Søholm
973cfbc5d3 [glsl-in] Add support for interface blocks 2020-11-02 19:34:01 -05:00
Kristoffer Søholm
8618a8a207 [ir] Make the interface visitor traverse local variable initializers
Otherwise the backends will panic on e.g. `vec4 local = Global;` if the global
isn't used anywere else in the function.
2020-11-02 19:34:01 -05:00
Kristoffer Søholm
a89191c234 [glsl-out] Handle initializers for locals
This pretty trivial change unfortunately required a loop to mutably borrow both
builder and manager at the same time, so I had to separate them. Perhaps a
cleaner solution would be to use an object with internal state instead of free
functions.
2020-11-02 18:15:06 -05:00
Pelle Johnsen
0101ea7319 [glsl-in] Handle assign ops: +=, *=, etc 2020-11-02 10:06:01 -05:00
Pelle Johnsen
602367c062 [glsl-in] Add initial texture handling 2020-11-01 14:52:11 -05:00
Matúš Talčík
173bb0de42 spv-in: more loop fixes 2020-10-31 10:02:47 -04:00
Dzmitry Malyshau
0893d912be [msl] fix floating point modulo, return value from compute entry point 2020-10-30 23:08:20 -04:00
Dzmitry Malyshau
f811b69aa8 [msl] avoid bad identifiers 2020-10-30 23:08:20 -04:00
Kristoffer Søholm
4a10aab5f6 [glsl-in] Add iteration statements
while, do-while and for loops
2020-10-30 21:29:53 -04:00
Kristoffer Søholm
3b8b7e28dd [glsl-in] Add selection statements
i.e. if-else and switch-case
2020-10-30 21:29:53 -04:00
Dzmitry Malyshau
80bdd23fd4 Add scalar_kind() accessor to IR Type (#251) 2020-10-30 21:25:55 -04:00
Matus Talcik
871139431a spv-in: fix while loop traverse (#253) 2020-10-30 20:58:29 -04:00
João Capucho
d45d11e4c5 msl-out: Use io::Write instead of fmt::Write (#250)
* msl-out: Use io::Write instead of fmt::Write

* msl-out: merge std use
2020-10-30 16:51:50 -04:00
Dzmitry Malyshau
529225ce4c Option to dump spirv flow graphs (#249) 2020-10-30 16:44:59 -04:00
Matus Talcik
4b43e282fc spv-in: fix flowgraph (#247)
Header blocks were incorrectly overwritten.
format
2020-10-29 10:43:12 -04:00
Dzmitry Malyshau
587dc01a2c [msl] refactor the options, add override stages 2020-10-28 00:30:22 -04:00
Dzmitry Malyshau
ce49afa391 Clean up the storage classes (#245) 2020-10-27 09:10:55 -04:00
Dzmitry Malyshau
c1830901c7 Simplify bitshift IR (#244) 2020-10-27 09:05:14 -04:00
João Capucho
a718992acb Added new external functions to the glsl backend to make it on par with the typifier (#240) 2020-10-19 09:40:30 -04:00
Pelle Johnsen
78c9e45182 [glsl-in] Add initial pre-processor (#238)
* [glsl-in] Add initial pre-processor

* [glsl-in] Tweak preprocessor after review

- Add IfState struct
- Use FastHashMap to pre-defines
- Use ok-or() for some errors

* [glsl-in] Remove Option in defines arg
2020-10-15 13:38:02 -04:00
Pelle Johnsen
6fb195cdc8 [clippy] Fix clippy issues after upgrading to 1.47 (#237)
* [clippy] disable match_like_matches_macro for now

* [wgsl-in] Return error instead of panic

* [typifier] Convert panics to return error

Still one panic in clone impl for Resolution,
disabled clippy for that one

* [spv-in] REturn error instead of panic'ing

* [spv-out] Return error instead of panic'ing

* [typifier] Use IncompatibleOperand(s) error

Instead of just Other

* [typifier] Use Expression for op in Error

For IncompatibleOperands

* [typifier] revert last commit
2020-10-13 17:14:40 -04:00
João Capucho
b76dff9d9c Added the new method to the msl Writer (#236) 2020-10-12 11:49:53 -04:00