Go to file
Chad Brokaw 4fea305883 Hodgepodge of small fixes
This just a collection of minor fixes to various things I noticed while looking over the code.

Adds a `Device::poll` call to the winit example.
Removes some lingering unnecessary `<f32>`s in the blit shaders.
Removes a duplicated bbox entry in the shared shader inclusion code and collapses nested `concat!`s.

Finally, it reintroduces the computation of separated alpha in the output of fine which I removed in a previous PR. This allows the `render_to_texture` mode to be useful for generating images that can be properly blended over other content. The blit shader has been changed to accommodate this.
2022-11-28 00:03:02 -05:00
.github/workflows Remove the old pipeline (#209) 2022-11-27 16:02:16 +00:00
.vscode Remove all wgsl-analyzer errors (#210) 2022-11-25 16:43:21 +00:00
doc Doc improvements 2022-07-13 12:07:55 -07:00
piet-scene address review feedback 2022-11-23 16:51:30 -05:00
piet-wgsl Hodgepodge of small fixes 2022-11-28 00:03:02 -05:00
.gitattributes Address review feedback 2022-10-25 09:03:13 -07:00
.gitignore Remove generated shaders from dev branch 2022-07-13 12:22:11 -07:00
Cargo.lock Hodgepodge of small fixes 2022-11-28 00:03:02 -05:00
Cargo.toml Remove the old pipeline (#209) 2022-11-27 16:02:16 +00:00
LICENSE-APACHE Licenses and README 2020-04-15 08:56:39 -07:00
LICENSE-MIT Licenses and README 2020-04-15 08:56:39 -07:00
README.md Remove the old pipeline (#209) 2022-11-27 16:02:16 +00:00
UNLICENSE Clarify licensing for WGSL shaders (#205) 2022-11-19 16:45:42 +00:00

piet-gpu

This repo contains the new prototype for a new compute-centric 2D GPU renderer.

It succeeds the previous prototype, piet-metal.

The latest version is a middleware for wgpu. This is used as the rendering backend for xilem, a UI toolkit.

Goals

The main goal is to answer research questions about the future of 2D rendering:

  • Is a compute-centered approach better than rasterization (Direct2D)? How much so?

  • To what extent do "advanced" GPU features (subgroups, descriptor arrays) help?

  • Can we improve quality and extend the imaging model in useful ways?

Blogs and other writing

Much of the research progress on piet-gpu is documented in blog entries. See doc/blogs.md for pointers to those.

There is a much larger and detailed vision that explains the longer-term goals of the project, and how we might get there.

History

A prior incarnation used a custom cross-API hal. An archive of this version can be found in the branches custom-hal-archive-with-shaders and custom-hal-archive.

License and contributions.

The piet-gpu project is dual-licensed under both Apache 2.0 and MIT licenses.

In addition, the shaders are provided under the terms of the Unlicense. The intent is for this research to be used in as broad a context as possible.

The dx12 backend was adapted from piet-dx12 by Brian Merchant.

Contributions are welcome by pull request. The Rust code of conduct applies.