Commit graph

9 commits

Author SHA1 Message Date
Brian Merchant 818d5b2047
Merge branch 'master' into master 2020-04-21 15:18:51 -07:00
Brian Merchant 3270ee64c2 Add f16 support.
Handling f16 requires special work, compared to other scalars, as the minimum conversion operation for u32->f16 in GLSL (unpackHalf2x16) loads two f16s from one u32. This means that in order to minimize unnecessary calls to unpackHalf2x16, we should look-ahead to see if the current f16 has already been extracted in the process of dealing with the last f16. Similar considerations exist for write operations, where we want to pack, when possible, two f16s in one go (using packHalf2x16).
2020-04-21 15:03:06 -07:00
Raph Levien 2ed89dd65e First draft of kernel 1
Output of kernel 1 is validated by simple inspection, next step is to
wire it up properly.
2020-04-20 18:07:18 -07:00
Raph Levien 957f710b91 Render random circles
Poor performance but it renders something.
2020-04-17 21:18:39 -07:00
Raph Levien 228bfc88cd Add scene types
This patch adds a module that contains both scene and ptcl types (very
lightly adapted from piet-metal), as well as infrastructure for encoding
Rust-side.

WIP, it's not wired up in either the shader or on the Rust side.
2020-04-16 18:19:58 -07:00
Raph Levien 6a3f890b58 [derive] Add Rust encoding of structs
This also requires some traits and structs in an `encode` module (the
one in piet-metal/piet-gpu-types works, and was used to test).
2020-04-14 20:47:41 -07:00
Raph Levien e86ea9eff4 [derive] Add writers, enums
This adds shader generation of writers (and cleans up some other
things) and much better support for enums.
2020-04-14 15:06:49 -07:00
Raph Levien 265d990cbe [derive] Add layout
Add a layout pass to the struct derive logic.
2020-04-12 16:44:28 -07:00
Raph Levien afd47a7edd Start piet-gpu-derive
This version will be similar but somewhat different to what's in
piet-metal now. Hopefully a little simpler to use (no distinction
between packed and unpacked structs) and better structured.
2020-04-07 21:44:48 -07:00