linebender / linebender/vello

Bunnymark performance

Open
#1,427 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

C-sparse-strips performance
Dominant language
Rust
Stars
4.3k
Forks
300
Avg merge
2d 13h
Merged PRs (30d)
61

Description

The AnyRender repository has a "bunnymark" benchmark (as an interactive cargo example which logs frame times). It consists of a scene which renders the same small (26 x 37px) image of a bunny many times (configurable), setup in such a way that the all instances of the image are a single `peniko::ImageData` with the same `Blob` and `id`.

Currently with 10000 bunnies, frame times on my machine are:

- Vello CPU ST: 70ms
- Vello CPU MT: 26ms
- Vello Hybrid 36ms
- Vello Classic: 14ms
- Skia Ganesh: 8.3ms (capped at 120fps by vsync)
- Skia CPU: 273ms

## To reproduce

- Clone https://github.com/DioxusLabs/anyrender
- Optional: uncomment the `patch.crates-io` section in the root `Cargo.toml` to patch in local Vello
- Run `cargo run -rp bunnymark`
- Click to add 100 bunnies
- Press space to switch between renderers
- The current renderer and frame time are printed to the console on each frame

You can run Vello CPU ST (Single Threaded) by removing the `multithreading` feature in the bunnymark Cargo.toml.

## Notes

- This is affected by the `ImageQuality` setting. This can be changed in `bunny.rs`.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the bunnymark Cargo example and bunny.rs, then run `cargo run -rp bunnymark` to reproduce the frame-time output across renderers. Compare the results with the ImageQuality setting and the optional root Cargo.toml patch; the issue does not define a target or specific completion condition, so that needs clarification.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.