Raph Levien
70a9c17e23
Continue building out pipeline
...
Plumbs the new tiling scheme to k4. This works (stroke only) but still
has some performance issues.
2020-06-03 12:21:09 -07:00
Raph Levien
294f6fd1db
Experiment with new sorting scheme
...
Path segments are unsorted, but other elements are using the same
sort-middle approach as before.
This is a checkpoint. At this point, there are unoptimized versions
of tile init and coarse path raster, but it isn't wired up into a
working pipeline. Also observing about a 3x performance regression in
element processing, which needs to be investigated.
2020-06-03 09:29:25 -07:00
Raph Levien
f3cb904f86
Add command line args for loading svg
2020-05-31 09:57:25 -07:00
Raph Levien
121f29fef6
Merge one segment at a time
...
No parallelism yet, but seems to improve performance.
2020-05-30 08:51:52 -07:00
Raph Levien
894ef156e1
Change to new merge strategy in binning
...
WIP
We get "device lost" on NV :/
2020-05-29 20:06:16 -07:00
Raph Levien
8eaf49a04d
Checkpoint parallel output
...
Parallel segment output seems to be working for strokes.
2020-05-25 12:14:18 -07:00
Raph Levien
24b3def0a1
Start work on parallel segment output
...
Output of segments is in parallel. Getting closer, some problems with
chaining but mostly correct.
2020-05-24 21:02:19 -07:00
Raph Levien
a616b4d010
Rework right_edge computation in elements
...
Trying to fit it into the fancy monad doesn't really work, so use a
more straightforward approach to compute it from the aggregate.
Also add yEdge logic (basically copying piet-metal). With a fix to
ELEMENT_BINNING_RATIO (which I had simply gotten wrong), the example
renders almost correctly, with small bounding box artifacts.
2020-05-21 10:00:56 -07:00
Raph Levien
ed4ed30708
Adding backdrop logic
...
Calculation of backdrops kinda works but with issues, so WIP.
2020-05-20 16:03:27 -07:00
Raph Levien
03da52cff8
Start implementing fills
...
This should get the "right_edge" value for each segment plumbed through
to the binning phase. It also needs to be plumbed to coarse raster and
wired up there.
Also considering WIP because none of this logic has been tested yet.
2020-05-19 20:40:04 -07:00
Raph Levien
9bb06ec340
Correct rendering (on Intel)
...
Handle multiple passes in coarse raster. Doesn't work on NV, WIP to
find out why.
2020-05-16 06:43:31 -07:00
Raph Levien
93044b469b
Fix prefix sum
...
First, add decoupled lookback.
Second, fix problem with monoid that was overly aggressive in resetting
the bbox.
2020-05-15 20:09:39 -07:00
Raph Levien
1240da3870
Delete old-style kernels and buffers
...
Pave the way for the coarse raster pass to write to the ptcl buffer.
2020-05-15 15:24:37 -07:00
Raph Levien
3a6428238b
Start writing tiles
...
This is the first checkpoint where it actually runs a pipeline end to
end, though it's far from accurate.
2020-05-15 14:31:52 -07:00
Raph Levien
cc89d0e285
Starting coarse rasterizer
...
Working down the pipeline.
WIP
2020-05-13 21:39:47 -07:00
Raph Levien
343e4c3075
Binning stage
...
Adds a binning stage. This is a first draft, and a number of loose ends
exist.
2020-05-12 17:34:15 -07:00
Raph Levien
736f883f66
Store annotated elements
...
Apply transform to paths and annotate with computed linewidth and
bounding box information, storing the result.
2020-05-12 12:13:39 -07:00
Raph Levien
9a8854ffab
Experimenting with sort-middle
...
Starting a prototype that explores the sort-middle approach. This
commit has a prefix sum pass computing state per element.
2020-05-12 08:54:09 -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
msiglreith
e2ed54361d
Fix rebase issues and split into library and cli/winit binaries
2020-05-04 17:05:54 +02:00