linebender / linebender/vello

Performance issue with rendering large images using Vello Classic

Open
#1,545 13 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Hi :) I'm having a performance issue with Vello Classic. I'm filling a full-screen rectangle with a 1835 by 8192 image on an iPad Pro 2025 13", and I'm unable to sustain 120 FPS. I'm not doing anything else with the GPU.

If I scale the image down (proportionally) to a height of 4096, the frame rate recovers to 120 (the display's refresh rate). However if I scale it to 4097, the problem persists, suggesting some kind of threshold at 4096 pixels. What could be going wrong here?

Two other less significant issues:
- `ImageQuality::High` does not yield bicubic filtering.
- Image sizes of more than 8192 silently fail to render. I'd expect an error somewhere.

Tested with revision Vello commit `ea2a935d4c502c` and `--release`.

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 by reproducing the full-screen image case in Vello Classic at heights of 4096 and 4097, using commit ea2a935d4c502c and a --release build. Investigate the behavior around ImageQuality::High and images above 8192; done means explaining the threshold and addressing the confirmed performance, filtering, and error-reporting issues.

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.