Commit Graph

418 Commits

Author SHA1 Message Date
Pelle Johnsen
8c48ae51ce
[glsl-in] consolidate tests (#206)
* [glsl-in] consolidate tests

- remove simple lex test as was covered by others
- combine related tests to single function
- remove redundant prefix in test names

* [glsl-in] Consolidtae lex tests further
2020-09-22 11:50:56 -04:00
Dzmitry Malyshau
0651eb8fab Complete expression/statement support in MSL, refactor conversion methods in WGSL, and remove Statement::Empty 2020-09-19 16:16:17 -04:00
Dzmitry Malyshau
ca492e43e6
[glsl] write the entry point (#207) 2020-09-18 17:26:32 -04:00
Timo de Kort
40f37c5c8c
[spv-out] Combined all instruction spec tests to one test (#208) 2020-09-18 17:02:00 -04:00
João Capucho
0aae8ae6f8
glsl-out: More glsl versions (#191)
* Added support for glsl core version up to 400

* Added 330 to the list supported versions

* Added links to all extensions and fixed a extension being wrongfully activated

* Cleanup and check for image formats

* Removed useless extension and location on layout

* Added support for external functions and fixed global names

* Typefier allow Scalars in distance and length

* Addressed comments

* Fixed extension appearing after body

* Fixed entry point not being generated
2020-09-18 17:01:05 -04:00
Dzmitry Malyshau
d25ab1b1e8 Refactor image sampling arguments, add textureLoad support to WGSL 2020-09-18 10:53:26 -04:00
Dzmitry Malyshau
0aa91927b2 [wgsl] extend and refactor lexer tests 2020-09-18 10:01:56 -04:00
Dzmitry Malyshau
aa7005fdf3 [ir] Move scalar kind into the Sampled image class variant 2020-09-18 10:01:56 -04:00
Dzmitry Malyshau
7aff39784b [wgsl] texture operations 2020-09-18 10:01:56 -04:00
Dzmitry Malyshau
14feb9ac01 Validation of global variables and entry points 2020-09-17 16:12:56 -04:00
Pelle Johnsen
1c3f4513de [glsl.in] Implement field lookup 2020-09-17 14:11:09 -04:00
Dzmitry Malyshau
081b90f117 Consolidate rosetta tests 2020-09-17 10:16:32 -04:00
Dzmitry Malyshau
2ebaadaf0c Refactor entry point IR 2020-09-17 10:08:49 -04:00
Dzmitry Malyshau
74c4a3ce18 Add ArrayLength expression 2020-09-16 09:29:26 -04:00
Pelle Johnsen
bcd3db2dad [glsl-in] Add unifroms and structs 2020-09-15 12:45:09 -04:00
Dzmitry Malyshau
a561c7cacb validator: try resolving the types 2020-09-15 07:51:45 -04:00
Dzmitry Malyshau
d6cc17f051 Refactor feature names 2020-09-15 07:51:45 -04:00
Dzmitry Malyshau
e99c715160 glsl: use typifier in the backend 2020-09-15 07:51:45 -04:00
Dzmitry Malyshau
fb2c60b31c msl: use typifier in the backend 2020-09-15 07:51:45 -04:00
Dzmitry Malyshau
f04a07c86c proc: make typifier work with gaps in the type graph 2020-09-15 07:51:45 -04:00
Pelle Johnsen
094e4fdd17
Fix lexer operator issues (with tests) (#188)
* Fix lexer operator issues (with tests)

* [glsl-in] Don't convet to string in lexer tests

* [glsl-in] cleanup lexer tests further

- Consolidate use statements

- Iterate lex directly, check for None at end
2020-09-14 01:16:12 -04:00
Pelle Johnsen
a9355f928f
[glsl-in] Add gl_VertexIndex (#189)
* [glsl-in] Add gl_VertexIndex

Refactor variable handling out of parser.rs

* [glsl-in] Fixes for gl_VertexIndex

- Make lookup_variable a method of Program

- Try to cleanup conditional logic

* [glsl-in] Error on gl_ builtin in wrong stage

Wrapped in glsl-validate feature
2020-09-13 21:20:46 -04:00
Dzmitry Malyshau
089d0dd4f8
Minor fixes in feature checks (#194) 2020-09-13 21:03:00 -04:00
Pelle Johnsen
0235c4a86c
[glsl-in] Fix unused braces in parser.rs (#190) 2020-09-13 00:22:06 -04:00
Dzmitry Malyshau
b278e10ea7
[spirv-in] make pointers totally transparent (#187) 2020-09-11 12:19:55 -04:00
João Capucho
0129aa2ca6
[glsl-out]: combined image sampler (#177)
* Added generation of the texture mappings to the glsl backend

* Added a temporary workaround for the spirv shaders
Fixed some parts that were using vulkan glsl

* Made texture mapping not require a sampler

* Used interface to build the texture map

* Made global names mandatory except for sampler ones

* Addressed more comments

* Removed the temp fix for the spirv frontend

* Addressed the comments
2020-09-10 14:14:03 -04:00
Dzmitry Malyshau
e64f28375e ir: bitcast expression 2020-09-10 13:19:17 -04:00
Pelle Johnsen
2ea0310b63
[glsl] Promote glsl-new to glsl (#184)
* [glsl] Promote glsl-new to glsl

* [glsl-in] rename feature glsl > glsl-in
2020-09-10 01:11:52 -04:00
Pelle Johnsen
2fa8eb596d
[spv-out] Add initial Rosetta test (#181)
* [spv-out] Add initial Rosetta test

For now just check that spv-out succeeds

* [spv-out] Check spv output has len > 0
2020-09-10 00:32:02 -04:00
João Capucho
e1e116537e
Extended Interface to be used in more places (#183)
* Extended Interface to be used in more places

* Applied comments and added tests

* Removed the statement visitor

* Fixed remaining comments
2020-09-09 17:22:13 -04:00
Dzmitry Malyshau
c122e064a7
Move storage class from image type into the global declaration (#182) 2020-09-09 13:59:29 -04:00
Pelle Johnsen
789d624710
[rosetta] Add explicit return (#180) 2020-09-08 01:18:07 -04:00
Pelle Johnsen
43bad8ee50
[glsl-new] Add jump statements (#179)
* [glsl-new] Add jump statements

- continue
- break
- return
- discard

* [glsl-new] Fix clippy error for return statement
2020-09-07 01:28:13 -04:00
Timo de Kort
a3bac5ee0f
[Spirv-out] Move instructions to own module (#174)
* [spirv-out] Move instructions to own module

* [spirv-out] Fix wrong function use of some instructions

* [spirv-out] Update instruction parameters

* [spirv-out] Update current instruction tests

* [spirv-out] Order current instruction tests

* [spirv-out] Add missing instruction tests
2020-09-06 00:35:59 -04:00
Pelle Johnsen
2cdb54e266
[glsl-new] Update last exprs to ExpressionRule (#173)
* [glsl-new] Update last exprs to ExpressionRule

Refactor out binary_expr to keep parser.rs 'small' and readable

* [glsl-new] Change binary_expr to method on Program

* [glsl-new] Make binary_expr a proper method
2020-09-02 01:34:39 -04:00
Timo de Kort
9ba075c990 [spirv-out] Implement FunctionCall 2020-09-01 23:56:43 -04:00
Timo de Kort
c56013b46e [spirv-out] Implement FunctionParameter 2020-09-01 23:56:43 -04:00
Timo de Kort
b7d834ed33 [spirv-out] Implement return value for functions 2020-09-01 23:56:43 -04:00
Timo de Kort
dc38fc115b [spirv-out] Add OpFunctionParameter 2020-09-01 23:56:43 -04:00
Pelle Johnsen
f97c62b0e6
[glsl-new] Add bool consts, update logical exprs (#171) 2020-09-01 00:52:07 -04:00
Matus Talcik
b67739034e
Implement Execution Modes (#169)
Add documentation, make clippy happy


Compilation errors


Add some more docs


Few more compilation errors


Changes based on the review


glsl-new parser fix


Set default local size to (0, 0, 0)


final cleanup


Last design


New design
2020-08-31 14:34:38 -04:00
Dzmitry Malyshau
dc442343d6 Make TypeInner to be non-clonable 2020-08-28 19:37:39 -04:00
Dzmitry Malyshau
d370686351 proc: support parameter types in Typifier 2020-08-28 19:37:39 -04:00
Matus Talcik
7a43c78e29
Add storage formats (#167)
Add GLSL backend


Add SPIR-V back + front
2020-08-28 14:55:30 -04:00
Pelle Johnsen
c824287fd5
[glsl-new] Refactor type handling (#166)
* [glsl-new] Refactor type handling

* [glsl-new] Fix clippy error
2020-08-28 12:09:57 -04:00
Dzmitry Malyshau
1b17030d05
Split wgsl into sub-modules, and gate by a feature (#165) 2020-08-27 23:30:53 -04:00
João Capucho
73204d094c
glsl-out: fixes (#164)
* Fixed not generating wrong op on booleans
Correctly handle storage images and sampled images

* Fixed comments
2020-08-27 18:01:19 -04:00
Matúš Talčík
447e2483f9 Format, clippy
pub(super)
2020-08-27 17:08:25 -04:00
Dzmitry Malyshau
bd9efe5915 Allow struct members without an origin 2020-08-27 11:49:38 -04:00
Dzmitry Malyshau
b5d99e133b [spirv] fix binary operators, support more extensions 2020-08-27 11:49:38 -04:00