
A look at pathfinder - throwupaway123
https://nical.github.io/posts/a-look-at-pathfinder.html
======
pcwalton
Main author of Pathfinder here--feel free to ask any questions. :)

Thanks to Nical for the excellent writeup!

~~~
iTokio
Is there still a need to cache results in a texture or is it practical to
render from scratch each frame?

~~~
nical
If you know that the result will not change over frames, blitting a cached
image will always be faster than re-rendering. It's not necessarily a need,
just an improvement. That said pathfinder is fast enough already that it can
deal with rendering interesting workloads every frames at 60fps, and will keep
getting better at it, I think that there is room for improvement in the tiling
phase.

------
cerberusss
So if I read this correctly, it's an algorithm that Firefox could use when it
handles the HTML canvas tag. For instance to draw SVG or text. Is that
correct? And the good thing here, is that it uses GPU instructions to
determine occlusion, and thus speed up the drawing process.

What I don't get: if that's the case, shouldn't it be integrated at a lower
level, i.e. not just for drawing SVG or text, but the whole of the canvas tag?
Because that's where occlusion also could take place?

~~~
pcwalton
Yes, it would make sense to use Pathfinder for canvas as well. Some care is
necessary to avoid regressing apps that read canvas data back from GPU to CPU
frequently, to avoid thrashing the I/O bus, but in general it should be
doable.

In fact, Pathfinder offers a subset of the HTML canvas API which you can use
in your Rust apps right now. Here's an example:
[https://github.com/pcwalton/pathfinder/blob/master/examples/...](https://github.com/pcwalton/pathfinder/blob/master/examples/canvas_minimal/src/main.rs)

