Commit graph

7 commits

Author SHA1 Message Date
Raph Levien 3039a2ac39 Merge branch 'master' into bufwrite 2021-11-30 10:31:16 -08:00
Raph Levien 9fb2ae91eb Access buffer data through mapping
This patch includes a number of changes to encourage reading and writing
buffers through mapping rather than copying data as before.

This includes a new `BufWrite` abstraction which is designed for filling
buffers. It behaves much like a Vec<u8>, but with fixed capacity.
2021-11-25 21:27:08 -08:00
Raph Levien 47f8812e2f Start work on new element pipeline
There's a bit of reorganizing as well. Shader stages are made available
from piet-gpu to the test rig, config is now a proper structure
(marshaled with bytemuck).

This commit just has the transform stage, which is a simple monoid scan
of affine transforms.

Progress toward #119
2021-11-24 08:01:43 -08:00
Raph Levien 0762cc763c Implement clear_buffers on Metal
Since clearing functionality is not built-in, use a compute shader.

Simplify tests greatly; they don't need the workaround.
2021-11-20 22:24:52 -08:00
Raph Levien 657f219ce8 Better DX12 descriptor management
Reduce allocation of descriptor heaps. This change also enables clearing
of buffers, as the handles are needed at command dispatch time.

Also updates the tests to use clear_buffers on DX12. Looking forward to
being able to get rid of the compute shader workaround on Metal.

This is a followup on #125, and progress toward #95
2021-11-20 16:36:43 -08:00
Raph Levien 27bedd9ef1 Add README
Also verify linked list results.
2021-11-12 15:23:31 -08:00
Raph Levien c6965de557 Add linked list test
Measure bandwidth of building linked lists with atomics.
2021-11-12 10:23:31 -08:00