pathfinder/resources
Patrick Walton ac83f79d94 Add a compute shader path, optimize GPU memory management, and switch from SDL
to `surfman`.

This is a large commit; explanations of each change follow.

This adds an optional compute shader path, off by default, for rendering fills
to alpha masks. It usually does not improve performance at present, but it
provides a good baseline for further optimizations. Later improvements will
likely aim to avoid writes to the mask texture entirely. Supporting
infrastructure for compute shader has been added to `pathfinder_gpu` for the
OpenGL and Metal backends.

The Metal backend has been optimized to avoid unneccessary buffer allocations
and reflection. As part of this, argument buffers have been removed, as the
current SPIRV-Cross compiler no longer requires them.

The GPU renderer has been improved to avoid stalls. Now, separate buffers are
allocated for each fill batch and for each frame. This can be extended in the
future to allow for separate buffers for tile draw operations as well.

SDL usage has been removed in favor of the native Rust `surfman` and `winit`.
Because `surfman` allows for selection of the integrated GPU on multi-GPU
system, it is chosen by default. The demo supports a new
`--high-performance-gpu` option to opt into the discrete GPU.
2020-04-30 13:33:29 -07:00
..
debug-fonts Add an Android port 2019-03-12 13:55:26 -07:00
fonts Improve ergonomics of the canvas font interface, and use the right fonts in the 2020-04-01 16:25:13 -07:00
shaders Add a compute shader path, optimize GPU memory management, and switch from SDL 2020-04-30 13:33:29 -07:00
src Add an embedded resource loader that places resources directly in the binary. 2020-02-28 17:10:53 -08:00
svg Make the backgrounds of the demo SVGs off-white 2019-06-07 12:23:55 -05:00
swf Move the SWF assets into `resources/`. 2019-06-21 09:32:48 -07:00
textures Fix spriting imperfections in the thumbnails in the NanoVG 2020-04-09 12:15:39 -07:00
Cargo.toml Publish `pathfinder_resources` to crates.io 2020-04-17 12:33:22 -07:00
MANIFEST Add missing `tile_clip` shader to `resources`. 2020-04-22 09:13:42 -07:00
build.rs Add an embedded resource loader that places resources directly in the binary. 2020-02-28 17:10:53 -08:00