Commit graph

49 commits

Author SHA1 Message Date
Chad Brokaw 9d7c4f00d8
rev fello (again) (#353) 2023-08-07 17:07:45 -04:00
Chad Brokaw 5ee5eb69d5 Update fello version
This brings in experimental CFF/CFF2 support.
2023-08-06 23:59:40 -04:00
Bruce Mitchener fba1b46971 Update to wgpu 0.17. 2023-08-05 07:25:14 +07:00
Bruce Mitchener 3dd62a56e1 Use SPDX 2.1 license expression.
This improves the usage of automated tooling which consumes the
license information.
2023-07-23 10:56:53 +07:00
Bruce Mitchener ccd745364a Remove direct dep on parking_lot, smallvec.
Both of these are used transitively, but not directly by `vello`,
so we don't need to list them here.
2023-07-03 16:42:14 +07:00
Daniel McNab 6d57093cc2
Add GPU profiling (#304)
* Add GPU profiling

* Fix conditional compilation for `headless`

* Add full profiling

* Productionise

* Fix MacOS trace file

* Try to make it easier to tell what's important

* Resolve CI issues
2023-06-01 16:10:27 +01:00
Arman Uguray b442ba550b Update wgpu version badge in README 2023-04-24 15:56:46 -07:00
Arman Uguray bb117da352 Enable wasm-bindgen feature of instant crate 2023-04-23 16:00:01 -07:00
Arman Uguray 8a35c51289 Roll wgpu to 0.16 2023-04-23 12:02:39 -07:00
Arman Uguray db2fefdc8f [vello_encoding] Move the encoding module into its own crate
This change moves the vello encoding logic to a new crate under
crates/encoding. Combined with the `vello_shaders` crate, this enables
lightweight integration of the Vello pipelines into renderers that don't
depend on wgpu (or perhaps written in languages other than Rust).

The Scene/Fragment API currently remain the vello crate.
2023-04-18 14:46:14 -07:00
Chad Brokaw 315ce5a372 pin tested revs 2023-04-14 09:00:06 -04:00
Chad Brokaw 9934adf94c
Fix fello deps
I let a transitive dependency get away from me. This should hopefully fix #308
2023-04-14 07:11:01 -04:00
Arman Uguray 0a6a6e2c21 [vello_shaders] Move vello_shaders to crates/shaders 2023-03-29 12:24:28 -07:00
Chad Brokaw 0db71153ad Playing with shader permutations and AOT compilation 2023-03-29 10:38:10 -07:00
Chad Brokaw eb8cc5275f Replace font backend
This replaces the old moscato font backend with one that has proper support for variable fonts.
2023-03-21 19:27:21 -04:00
Daniel McNab 17096ad878
Update for Bevy 0.10 and other dependencies (#290) 2023-03-16 15:44:10 +00:00
Chad Brokaw 165b3a083b Let's add images 2023-03-09 17:18:03 -05:00
Chad Brokaw 69dd838d09 post rebase fixups 2023-03-06 11:41:12 -05:00
Chad Brokaw 5e06a4f1c1 update peniko dependency for Sync + Send on Blob 2023-03-06 11:12:23 -05:00
Chad Brokaw 82391534c0 small fixes
* make SimpleText::add_run accept glyph_transform and style parameters so it doesn't unconditionally do oblique strokes
* replace fill/stroke methods on DrawGlyphs with a single draw method that accepts either fill or stroke styles
* update peniko rev to access the new style types used above
* for now, change glyph cache to only cache non-zero fills. Prior to this, style was ignored in the key which could lead to incorrect rendering.
2023-02-24 16:13:48 -05:00
Daniel McNab 65a7970382 Setup infra for headless examples 2023-02-07 12:52:22 +00:00
Daniel McNab ef44c17f92
Update dependencies, and add more metadata (#272) 2023-02-06 20:12:46 +00:00
Daniel McNab 020a7f5c01
Split the examples into frontends with a shared scene repository (#262) 2023-02-03 10:22:39 +00:00
Daniel McNab f84e244fd7
Update to wgpu 0.15 (#263) 2023-01-31 16:07:03 +00:00
David Himmelstrup 9ba85075d4
example: SVG viewer based on usvg (#260) 2023-01-21 18:20:56 +00:00
Chad Brokaw 5f6f9f444d bump peniko rev 2023-01-17 13:00:19 -05:00
Chad Brokaw 672f21cca7 pin moscato dep as well 2023-01-17 12:48:26 -05:00
Chad Brokaw 516fd6c981 Update for peniko changes
This applies updates for the gradient API in peniko and pins the git dependency so prevent further breakage. Also removes Cargo.lock.
2023-01-17 12:31:57 -05:00
Daniel McNab ed60031185
Add hot reloading of shaders to the winit example (#252) 2023-01-16 17:24:48 +00:00
Daniel McNab db4fc4e449
Give buffers names when buffer_labels feature is enabled (#254) 2023-01-16 17:16:45 +00:00
Duane Johnson 3e8a4813f0
Update references to piet-gpu where it makes sense (#240) 2023-01-08 16:15:51 +00:00
Daniel McNab ff59839737
Move the vello crate to the workspace root (#231)
* Move the vello crate to the root of the crate

* Add warning that README is work in progress

* Add newline in warning

* Move the unlicense into the shader folder

* Fixup wgsl-analyzer include paths
2023-01-05 09:32:09 +00:00
Daniel McNab dfde0936e5
Add an example bevy integration (#226) 2022-12-16 18:01:51 +00:00
Chad Brokaw 628bc9566d Rename piet-wgsl to vello!
Also drops the scene crate and moves the code to the main project.
2022-12-09 13:23:03 -05:00
Raph Levien 340ac1d69c Hacky attempt to get running in browser 2022-11-29 19:36:05 -08:00
Daniel McNab c689767782
Remove the old pipeline (#209)
Remove the old hal and pipeline. 

Update the README to reflect this
2022-11-27 16:02:16 +00:00
Chad Brokaw 016f9de05f Libify piet-wgsl
This creates a new Renderer type that offers fairly simple render_to_texture and render_to_surface methods, the latter of which handles the final blit internally. Also adds a util module with some helpers for device and surface creation.

There is a new winit example in piet-wgsl/examples/winit that shows how to make use of it all. This should be fairly trivial to adapt to glazier/xilem.
2022-11-26 14:27:19 -05:00
Raph Levien 911dee23cd Address review feedback
Cleans up some of the immediate issue, but still hacky and has a bunch
of stuff hard-coded.
2022-10-25 09:03:13 -07:00
Raph Levien b6c4963d4c Initial commit of piet-wgsl
Starting an experimental port to WGSL shader language, using wgpu to run the examples. As of this commit, it's quite hacky and takes some shortcuts, but does render paths to a grayscale texture.
2022-10-24 15:08:14 -07:00
Daniel McNab 28cbc8f199 Make pgpu-render compile on non apple platforms
Also add `resolver="2"` to the entire workspace, in case we gain a wgpu
dependency
2022-06-25 14:11:13 +01:00
Chad Brokaw 532b6ee808 Add C api for glyph rendering
First cut at a public C api that supports glyph rendering on Metal targets.
2022-05-10 03:56:06 -04:00
Chad Brokaw 753b97c342 Rebase on radial branch 2022-04-11 05:30:08 -04:00
Raph Levien 33d7b25a92 Start testing framework
This adds a prefix sum test. This patch is also trying to get a little
more serious about structuring both the test runner (toward the goal of
collecting proper statistics) and pipeline stages for the tests.

Still WIP but giving good results.
2021-11-06 11:24:34 -07:00
Raph Levien 8d01aba237 Update to piet 0.13
Get rid of kurbo patch, as we now use kurbo through piet. Also clean up
some warnings.
2020-05-12 08:26:48 -07:00
Raph Levien e1c0e448ef Encode stroke in scene
This just adds the first step of polyline stroking, which is adding it
to the scene. Also just a bit of cleaning up of dimensions into one
header file.
2020-04-25 08:24:46 -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 86e52a3f47 Start image rendering
Populates the piet-gpu subdir, with an extremely simple renderer. The
main program saves the image to a PNG.

Contains a few fixes (I was confused about the need for multiple
bindings, as opposed to multiple descriptors within a binding).
2020-04-16 14:04:40 -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
Raph Levien 1b0248fbbf Starting piet-gpu repo
This brings in a bunch of code from vk-toy but doesn't yet do anything.
2020-04-05 15:17:26 -07:00