Skip to content

vello_hybrid: fast-path premultiplied color matrices - #1625

Draft
waywardmonkeys wants to merge 4 commits into
linebender:mainfrom
waywardmonkeys:filter/hybrid-colormatrix-premul
Draft

waywardmonkeys wants to merge 4 commits into
linebender:mainfrom
waywardmonkeys:filter/hybrid-colormatrix-premul

Conversation

@waywardmonkeys

Copy link
Copy Markdown
Collaborator

This adds a vello_hybrid shader fast path for color matrices that can be applied directly in premultiplied-alpha space.

For RGB-only, alpha-preserving matrices with no RGB offsets, ColorMatrix no longer needs to unpremultiply each sampled pixel, apply the matrix in straight-alpha space, then premultiply again. Instead, hybrid marks those matrices in the encoded filter header and the shader applies the RGB rows directly to premultiplied RGB, clamps the result to [0, alpha], and preserves alpha.

This covers matrices such as grayscale and sepia while keeping the existing general path for matrices with RGB offsets, alpha reads, or alpha changes.

@waywardmonkeys

Copy link
Copy Markdown
Collaborator Author

This was done with the assistance of Codex (GPT 5.5, xhigh).

@waywardmonkeys

Copy link
Copy Markdown
Collaborator Author

This is a draft as it builds upon PR #1623, adding an optimization present there for the CPU renderer to the Hybrid renderer.

@grebmeg
grebmeg removed their request for review September 24, 2026 06:44
@grebmeg

grebmeg commented Sep 24, 2026

Copy link
Copy Markdown
Collaborator

I think this PR is quite obsolete now, and I’m curious what the blocker was for merging it. Should we close it for now and reimplement it on top of the latest main when needed?

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants