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

vello_hybrid: fast-path premultiplied color matrices#1625
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.

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.

1 participant