Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use GPU based transfer to do chroma conversions of native decoder output #7682

Merged
merged 13 commits into from
Oct 11, 2024

Conversation

Wumpf
Copy link
Member

@Wumpf Wumpf commented Oct 10, 2024

What


Fixes performance issues with our previous inefficient cpu based chroma conversion:

image

... and fixes color space issues:

Top left: now
Top right: before
Bottom: VLC
image


There was an oversight in the conversion pipeline that if fixed now: It only allowed for creating new textures.
Now it can also update existing textures! This means that it takes a target texture from the outside. Naturally, there's some constraints on what the target texture looks like and as a consequence I added some validation for that. Could be more, but I think this is solid enough for our purposes :)

Checklist

  • I have read and agree to Contributor Guide and the Code of Conduct
  • I've included a screenshot or gif (if applicable)
  • I have tested the web demo (if applicable):
  • The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG
  • If applicable, add a new check to the release checklist!
  • If have noted any breaking changes to the log API in CHANGELOG.md and the migration guide

To run all checks from main, comment on the PR with @rerun-bot full-check.

@Wumpf Wumpf added exclude from changelog PRs with this won't show up in CHANGELOG.md 🎞️ video labels Oct 10, 2024
@Wumpf Wumpf force-pushed the andreas/av1-chroma-upsampling-gpu2 branch from 84ae3ba to df56fe4 Compare October 11, 2024 10:36
@Wumpf Wumpf marked this pull request as ready for review October 11, 2024 10:46
@emilk emilk self-requested a review October 11, 2024 11:13
Copy link
Member

@emilk emilk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome-sauce!

crates/store/re_video/Cargo.toml Outdated Show resolved Hide resolved
crates/store/re_video/src/decode/av1.rs Outdated Show resolved Hide resolved
crates/store/re_video/src/decode/av1.rs Show resolved Hide resolved
crates/store/re_video/src/decode/av1.rs Outdated Show resolved Hide resolved
crates/store/re_video/src/decode/av1.rs Outdated Show resolved Hide resolved
Comment on lines +213 to +219
dav1d::pixel::YUVRange::Limited => YuvRange::Limited,
dav1d::pixel::YUVRange::Full => YuvRange::Full,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice

crates/store/re_video/src/decode/av1.rs Show resolved Hide resolved
crates/store/re_video/src/decode/av1.rs Outdated Show resolved Hide resolved
crates/store/re_video/src/decode/av1.rs Outdated Show resolved Hide resolved
@Wumpf Wumpf force-pushed the andreas/av1-chroma-upsampling-gpu2 branch from ae423ad to 5f872b3 Compare October 11, 2024 14:52
@Wumpf Wumpf merged commit bf26fb6 into main Oct 11, 2024
9 of 16 checks passed
@Wumpf Wumpf deleted the andreas/av1-chroma-upsampling-gpu2 branch October 11, 2024 15:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
exclude from changelog PRs with this won't show up in CHANGELOG.md 🎞️ video
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants