Raph Levien
17907893af
Create Render struct
...
Separate coarse and fine stages as separate methods of Render struct.
2023-01-24 17:42:53 -08:00
Raph Levien
e47c5777cc
Make bind_map persistent
...
We'll be persisting some buffers across recordings, so make the mapping from id to actual resource scoped to the engine rather than a single `run_recording` call.
Part of the change is being explicit about which buffers to free and when. That will enable more fine-grained reuse of buffers, including within a recording.
2023-01-24 17:42:29 -08:00
Daniel McNab
bf523e8845
Do another pass on the README ( #258 )
2023-01-23 16:27:42 +00:00
jneem
942da778a3
Merge pull request #261 from jneem/main
...
Allow selecting GPU from env
2023-01-21 15:33:42 -06:00
Joe Neeman
338bd30870
Allow selecting GPU from env
2023-01-21 14:30:40 -06:00
David Himmelstrup
9ba85075d4
example: SVG viewer based on usvg
( #260 )
2023-01-21 18:20:56 +00:00
Chad Brokaw
b83642bf0c
Merge pull request #257 from linebender/robust-redux
...
Robust memory redux (GPU side only)
2023-01-19 12:00:07 -05:00
Chad Brokaw
0c0c61dc82
Address review feedback
...
* Add counts to offsets when comparing against buffer size limits
* Remove multiplication by 4 in blend buffer allocation (we use units of u32)
* Move buffer sizes from BumpAllocators to Config
* Add comments about early exit
2023-01-18 21:36:32 -05:00
Spencer C. Imbleau, M.Sc. (he/him)
f36e455a90
ignore all target directories ( #248 )
2023-01-18 16:34:16 +00:00
Chad Brokaw
db7d93b85c
remove unnecessary limit adjustment
2023-01-17 22:56:52 -05:00
Chad Brokaw
f0587b6770
add comment about syncing BumpAllocators struct
2023-01-17 22:51:46 -05:00
Chad Brokaw
c66e7a270c
add comments for buffer sizes
...
Co-authored-by: Daniel McNab <36049421+DJMcNab@users.noreply.github.com>
2023-01-17 22:48:53 -05:00
Chad Brokaw
1f7ba765e9
comment typo
...
Co-authored-by: Daniel McNab <36049421+DJMcNab@users.noreply.github.com>
2023-01-17 22:48:11 -05:00
Chad Brokaw
1e8d194b6a
initial GPU side work for robust memory
...
This should handle everything on the GPU side except for blend stack loading/storing in fine.
2023-01-17 14:08:20 -05:00
Chad Brokaw
3933c159a8
Merge pull request #256 from linebender/peniko-updates
...
Update for peniko changes and pin git rev
2023-01-17 13:01:11 -05: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
ed28a6796f
add Cargo.lock to .gitignore
2023-01-17 12:33:11 -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
3902e65618
Fix missing barriers in the pathtag_scan
s ( #255 )
...
Co-authored-by: Raph Levien <raph.levien@gmail.com>
Co-authored-by: Raph Levien <raph.levien@gmail.com>
2023-01-16 20:20:20 +00:00
Daniel McNab
44058a8578
Improve the svg parser ( #247 )
...
* Improve the svg parser
* Handle `opacity`
* Double the segments buffer
* Rotate the multiplication
This matches firefox's output, although it is contrary to my use
of 3d transformation matrices
* Double ptcl size
Seems to be required to show entire scene at 4k
2023-01-16 18:22:35 +00: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
Spencer C. Imbleau, M.Sc. (he/him)
c428e650d0
Merge pull request #249 from simbleau/clippy
...
Clippy fixes
2023-01-14 11:14:20 -05:00
Spencer C. Imbleau
4fc94a1d4b
clippy fixes
2023-01-14 11:07:07 -05:00
Daniel McNab
eec111c633
Support click and drag for svgs, as well as scene fragment caching ( #244 )
...
* Support caching the image, and click and drag motion
* Remove debug print
* Clean up examples to have command line parsing
* Address review comments
2023-01-13 19:30:08 +00:00
Raph Levien
02d8b28439
Merge pull request #245 from linebender/reuse_buf
...
Prototype of buffer reuse
2023-01-13 11:18:03 -08:00
Raph Levien
96bf4f377e
Merge pull request #246 from linebender/fix_even_odd
...
Fix even-odd rule
2023-01-13 09:28:43 -08:00
Raph Levien
ed437f7ffc
Rustfmt
2023-01-12 21:11:54 -08:00
Raph Levien
5c469013c7
Fix even-odd rule
...
This works with winding numbers even larger than 2.
2023-01-12 21:08:51 -08:00
Raph Levien
4907186de4
Prototype of buffer reuse
...
This helps performance but not all performance issues have been resolved. Nontrivial CPU goes into write_buffer, and it's also possible that there isn't enough overlapping between CPU and GPU work.
2023-01-12 20:43:58 -08:00
Chad Brokaw
a9aa3f9cab
Merge pull request #242 from linebender/evenodd
...
Support even-odd fill rule
2023-01-11 14:13:24 -05:00
Raph Levien
3003e42acb
Merge pull request #235 from linebender/large_pathtag
...
Support for larger pathtags
2023-01-11 07:56:15 -08:00
Chad Brokaw
c6ac5bf590
Support even-odd fill rule
...
Add logic for handling the even-odd fill rule to `SceneBuilder` and the coarse and fine shaders.
2023-01-10 15:22:04 -05:00
Raph Levien
5f45c2bdfb
Merge pull request #238 from linebender/roadmap
...
Draft roadmap
2023-01-10 11:19:15 -08:00
Raph Levien
89fd94e020
Better summary in introduction
2023-01-10 08:19:03 -08:00
Raph Levien
e59a87c281
Editing improvements in response to feedback
...
This addresses most of the feedback other than the need to rework the opening paragraphs to be clearer to a casual observer.
2023-01-09 18:24:02 -08:00
Chad Brokaw
c57db1d25b
Merge pull request #227 from rosefromthedead/multiadapter
...
Multi-adapter support
2023-01-09 17:29:14 -05:00
Rose Hudson
c5401e777e
Update winit example to use new multi-adapter API
2023-01-09 13:00:00 +00:00
Rose Hudson
f0faadc356
Add multi-adapter support
...
some `RenderContext` stuff is now `DeviceHandle` stuff, and device
handles are created alongside surfaces to ensure compatibility, but are
reused if possible.
Fixes #224 wgpu Adapter and Surface might not be compatible
2023-01-09 13:00:00 +00:00
Chad Brokaw
3ea8eef839
Merge pull request #239 from linebender/new-encoding
...
Public encoding API
2023-01-08 18:41:09 -05:00
Chad Brokaw
3606184cf6
better naming
2023-01-08 18:36:14 -05:00
Chad Brokaw
ec956d859b
add function to render directly from an encoding
2023-01-08 18:34:22 -05:00
Chad Brokaw
520f6d0d41
Address review feedback.
...
* remove area clamp in fine (now in #241 )
* make DrawTag::info_size() const fn
* document DrawColor rgba field
* change Monoid type parameter to an associated type and describe the additional Default constraint
* consistent parens in PathTag::is_subpath_end
* add comments for 32-bit path segment types in PathTag
* also adds low level encoding functions for the three currently supported brushes
2023-01-08 17:10:05 -05:00
Raph Levien
080277bcd9
Merge pull request #241 from linebender/fine_fixes
...
Fixes to fine rasterization
2023-01-08 13:50:51 -08:00
Duane Johnson
3e8a4813f0
Update references to piet-gpu where it makes sense ( #240 )
2023-01-08 16:15:51 +00:00
Raph Levien
29a16eb210
Fixes to fine rasterization
...
The area bug was found and fixed by @dfrg, and is adapted from #239 . I wanted to move it to a separate PR so that one would be more focused on API.
The other bug is currently silent because the two quantities swapped are both 4, but it is triggered when experimenting with tuning for performance.
2023-01-08 07:41:01 -08:00
Raph Levien
cd92a64ea0
Color code "train diagram"
...
Also add a bit of explanation.
2023-01-06 20:17:17 -08:00
Raph Levien
96a64f8abb
typo fix
...
Co-authored-by: Vincent Isambart <vincent.isambart@gmail.com>
2023-01-06 20:15:41 -08:00
Raph Levien
767997e80a
Typo and link #239
2023-01-06 14:06:07 -08:00