linebender / linebender/vello

[Hybrid] Slow rendering of https://old.reddit.com/r/rust

Open
#1,380 21 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

### Problem

When rendering https://old.reddit.com/r/rust with Blitz, I'm getting frame times of:

- ~110ms with Vello Hybrid
- ~36ms with Vello CPU
- ~18ms with Vello Classic
- ~6ms with Skia (although there is one 215ms frame right at the start)

These frame times are only for the "paint pass" (constructing the scene, submitting it, and waiting on presentation). They do not include style, layout or any other non-rendering work.

### To reproduce

- Clone https://github.com/DioxusLabs/blitz
- Checkout commit `bdbe4d3f2a1d8bd3e7b77cd163bb4de280738550` (Vello Hybrid is broken for commits beyond that point for some reason that seems to be related to the WInit 0.31 upgrade,)
- Run `cargo run -rp browser --no-default-features --features floats,incremental,cookies,cache,log_frame_times,hybrid`
- Navigate to https://old.reddit.com/r/rust using the URL bar
- Resize the window to be approx 1000x1000 (on my macbook laptop I have it full height, and approximately square)
- Remain scrolled to the top of the webpage and move mouse over the page to generate new frames
- The `hybrid` on the end of that command can be replaced with `vello`, `cpu`, or `skia` to run with those renderers for comparison

### Screenshot

Image

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

Reproduce the report at commit bdbe4d3f2a1d8bd3e7b77cd163bb4de280738550 with the browser command and old.reddit.com/r/rust at roughly 1000x1000. Compare the hybrid, vello, cpu, and skia renderer runs using the documented flags and frame-time logging. Done means the source of the hybrid renderer's slow paint pass is identified and the reported comparison is improved or explained.

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
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.