Skip to content

Instantly share code, notes, and snippets.

@PoignardAzur
Last active February 11, 2024 21:55
Show Gist options
  • Save PoignardAzur/056cdd403f1e6d1477fae4556a89527e to your computer and use it in GitHub Desktop.
Save PoignardAzur/056cdd403f1e6d1477fae4556a89527e to your computer and use it in GitHub Desktop.
My recommendations for Vello in 2024 (WIP)

My recommendations for Vello in 2024

Basic Documentation:

  • Write a main function.
  • Point to the SceneBuilder types.

All the following come after shipping 0.1.

  • Implement WebGL compatibility

    • ???
  • Make the SceneBuilder API closer to PostScript/WebCanvas, by adding pushTransform and popTransform methods and matching them in the encoding.

  • Re-structure the Vello repository:

    • Move Scene/SceneFragment/SceneBuilder into vello-encoding.
    • Rename vello-encoding to vello-core
    • Split out the wgpu backend into a vello-wgpu crate.
  • Improve Vello's documentation

    • Add basic example
    • Improve vello architecture diagram
  • Document Vello's limits and guarantees:

    • What are the maximum sizes you can send it?
    • What happens if you go over these sizes?
    • What happens if you send NaNs?
    • What happens if you send invalid indices, unmatched push/pops, etc?
  • Formalize test suite

    • Have repository with list of test files.
    • Add more test files.
    • Figure out some kind of snapshot testing that isn't vulnerable to subtle platform changes.
    • Look at fuzzing suites (see lcamtuf.blogspot.com) for interesting test files.
  • Implement testing

    • Factor out prefix scan stuff
    • Implement fuzzing for all the deterministic stages of the pipelines.
    • Implement sanity checks for the GPU-stuff. (eg check that there are not WAR hazards, that kind of thing.)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment