Commit Graph

732 Commits

Author SHA1 Message Date
Dzmitry Malyshau
09032695b0 Barrier follow-up fixes 2021-05-06 14:48:55 -04:00
Dzmitry Malyshau
84eac75f71 Fix new clippy errors 2021-05-06 12:38:34 -04:00
Matúš Talčík
0960d1162f [spv-in] multiple improvements
- added constructs
- added loop detection
- some logic from Tint borrowed for selection constructs
2021-05-06 10:49:09 -04:00
Dzmitry Malyshau
63afb9a215 Add Capabilities bitset for validation 2021-05-05 21:39:41 -04:00
Gordon-F
3a0f014411 [glsl-out] Add clip distance feature 2021-05-05 15:16:42 -04:00
Dzmitry Malyshau
990fd2d3a3 Allow matrix indexing behind a pointer 2021-05-05 09:34:12 -04:00
Dzmitry Malyshau
be00a05fa5 [spv-in] default output builtins 2021-05-04 22:54:33 -04:00
Dzmitry Malyshau
9fe75ed7f1 Barriers 2021-05-04 22:16:24 -04:00
Ashley
3ffc361724 [spv-in,spv-out] Handle outer product 2021-05-04 15:37:06 -04:00
Ashley
04c639c3f1 [spv-in] Handle Glo::MatrixInverse 2021-05-04 15:35:34 -04:00
Ashley
b3c29871a7 [spv-in] Handle Op::LogicalEqual 2021-05-04 15:34:33 -04:00
Igor Shaposhnik
1476ef84ff [spv-in] Fix empty gl_PerVertex name 2021-05-04 10:45:39 -04:00
Gordon-F
9fbe681316 [spv-in] Give entry point function the same name as entry point itself 2021-05-04 10:45:39 -04:00
Lachlan Sneff
f6da21f8dd Unify back::msl push constants map and sizes buffer (#825)
* Unify back::msl push constants map and sizes buffer

* Fix clippy warning

* Actually remove PushConstantsMap

* Update snapshots
2021-05-03 21:51:44 -04:00
Gordon-F
dbfc11a196 [glsl-out] Fix writing identifiers starting with gl_ 2021-05-03 21:47:16 -04:00
Dzmitry Malyshau
b8649b3848 Fix struct layouts for WGSL and SPIRV 2021-05-03 17:27:12 -04:00
Dzmitry Malyshau
bb7ebed23a [spv-in] null initialization for matrices 2021-05-03 00:55:47 -04:00
Gordon-F
3537bffad3 [glsl-out] Fix scalar arrays writing 2021-05-02 23:51:49 -04:00
Dzmitry Malyshau
46a244fff0 [wgsl-in] remove lifetime from ParseError 2021-05-02 23:49:34 -04:00
Dzmitry Malyshau
e78f5e69ce [spv-in] derive Error 2021-05-02 23:49:34 -04:00
Timo de Kort
05d3608737 HLSL CI (#788)
* Add validation-windows yml for HLSL

Add workgroup size to hlsl-out

* Update Readme with Make target information

* Change runs on to windows-latest

* Remove snapshot file
2021-05-02 11:29:35 -04:00
Lachlan Sneff
232fd65ec7 Add support for retrieving array length in msl backend (#806)
* Add support for arrayLength to the wgsl frontend

* Fix clippy warning

* Add draft support for array length to the msl backend

* Finalize support for array length in msl

* Convert buffer size to array length in msl backend

* Fix clippy warning

* Fix misleading documentation

* Changes based on review of PR

* Use a fake binding for sizes buffer in msl backend if necessary

* Only generate the msl buffer size structure if globals are present that have unsized arrays

* Make sure to generate separators

* Replace uses_unsized_buffers with !self.runtime_sized_buffers.is_empty()

* Clear self.runtime_sized_buffers

* Run snapshot of shadow.msl

* Add Expression::ArrayLength support to the spirv backend

* Remove wgsl target from the access snapshot test

* Update access.msl snapshot

* Update stack size for msl backend

* Update stack size again for msl backend
2021-04-30 22:40:32 -04:00
Lachlan Sneff
960551f952 Add support for arrayLength to the wgsl frontend (#805)
* Add support for arrayLength to the wgsl frontend

* Fix clippy warning
2021-04-30 00:20:09 -04:00
Lachlan Sneff
37a6ff7bfe Add several additional ops to the spirv frontend. (#803)
* Add support for int8, int16, and int64 as well as null constant structs

* Add support for OpArrayLength to the spirv frontend

* Add hacky OpCopyMemory support to spirv frontend

* Add OpInBoundsAccessChain to spirv frontend

* Add OpLogical(Not)Equal to spirv frontend

* Fix several of the issues raised in the pr

* Fix the Op::ArrayLength match

* Validate accessing structs through pointers

* Remove extraneous type check
2021-04-29 19:45:49 -04:00
Ashley
881c8a7abc [spv-in] Impl GLOp::Radians and GLOp::Degrees (#797)
* Implement GLOp::Radians and GLOp::Degrees

* Simplify and inline

* Change comment

* Generate constant on demand

* Fix 180/pi/180
2021-04-29 10:19:30 -04:00
Dzmitry Malyshau
fd561da44c [msl] derive access qualifier based on the global variable flags (#798) 2021-04-28 20:37:42 -04:00
Ashley
d21dded649 [msl-out] wrap arrays in structs so that they can be returned by functions (#764)
* [msl-out] wrap arrays in structs so that they can be returned by functions

* Fix clippy problems

* use a raw array for output fields

* Fix clippy problems

* Apply suggestions

* Remove put_initialization_component

* Check if the array is a constant size

* Don't use the pointer class
2021-04-28 10:26:17 -04:00
Dzmitry Malyshau
d9171dbc61 [wgsl-in] fix composition of a single element 2021-04-27 11:11:28 -04:00
Dzmitry Malyshau
120fc22e9f Support unary not in WGSL 2021-04-27 01:24:21 -04:00
Ashley Ruglys
33003d8ea2 Add MathFunction::Refract 2021-04-26 14:14:30 -04:00
Dzmitry Malyshau
4a5ff9a053 Validate that used expressions are emitted 2021-04-26 09:59:54 -04:00
Dzmitry Malyshau
bb29f8e142 [spv-in] emit the cast expression for builtin signness 2021-04-26 00:44:16 -04:00
Gordon-F
dd1d9fe290 [wgsl-out] More improvements. Enable quad snapshot testing for wgsl backend 2021-04-26 00:20:01 -04:00
Dzmitry Malyshau
117d729ff8 [spv-in] allow non-strict check for capabilities 2021-04-25 18:32:34 -04:00
Dzmitry Malyshau
3049e3a4ac [spv-out] allow capabilities to be derived 2021-04-25 13:34:16 -04:00
Dzmitry Malyshau
f77abdb156 [spv-out] generate LogicalNot for bools 2021-04-25 12:57:59 -04:00
Dzmitry Malyshau
e8c5242cc7 Fix relational expression type width 2021-04-25 12:57:59 -04:00
Dzmitry Malyshau
4ab9150411 [spv-out] fix image operands 2021-04-25 12:57:59 -04:00
Dzmitry Malyshau
76685fba69 [spv-out] issue DepthReplacing execution mode 2021-04-25 12:57:59 -04:00
Dzmitry Malyshau
e8f6d55356 [spv-out] implement some of the relational functions 2021-04-25 12:57:59 -04:00
Dzmitry Malyshau
0548437ab9 [spv-out] don't cache pointer function arguments 2021-04-25 12:57:59 -04:00
Gordon-F
4f5b6c5270 Share some functions between backends 2021-04-25 11:18:31 -04:00
Gordon-F
0459470986 [wgsl-out] Implement writing for more value types 2021-04-25 11:18:31 -04:00
Gordon-F
41e91739ac [wgsl-out] Return Err instead of panic for unimplemented cases 2021-04-25 11:18:31 -04:00
Dzmitry Malyshau
ecffe37456 Enforce sampled types to be Float 2021-04-25 02:24:17 -04:00
Dzmitry Malyshau
28cba79452 [spv-out] deduplicate sampler types 2021-04-25 01:07:59 -04:00
Dzmitry Malyshau
7ec90512a8 [spv-out] deduplicate image types 2021-04-25 01:07:59 -04:00
Dzmitry Malyshau
1cc770a7d8 [spv-out] return Null by default 2021-04-25 01:07:59 -04:00
Dzmitry Malyshau
77a64da189 [spv-out] support function arguments as pointers 2021-04-24 01:54:48 -04:00
Dzmitry Malyshau
34b830da17 [spv-in] work around sign differences in OpIAdd and OpISubtract 2021-04-24 01:00:33 -04:00