-
-
Notifications
You must be signed in to change notification settings - Fork 747
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
Support native YUV 4:4:4 encoding (Windows-only for now) #2533
base: master
Are you sure you want to change the base?
Conversation
b64cf43
to
2598f91
Compare
Cool, didn't realize NVENC supported that (even though AV1 is still software only right?). |
Yes, no hardware encoding for AV1 4:4:4 on current generation of gpus
I'm not against the idea of supporting lossless encoding options (NVENC can do it for H.264 and HEVC, not AV1), but current netcode imposes hard limit on maximum video packet size, and this limit is very easy to hit on lossless. So need to improve the netcode first. |
Supposedly.. it may even be possible to dynamically switch between lossy and lossless? |
You're describing near lossless encoding, or including both DCT transform and quantization bypasses into rate control assessment. As far as I know, NVENC is not capable of this (quantization can be dynamically lossless when rate control selects QP=4, but DCT transform bypass is static on/off switch). |
dd157c0
to
f2b674a
Compare
c652d57
to
e961b3c
Compare
Should be more or less done. |
Ah, and I still have no idea if Intel encoder works correctly since I don't have supported hardware at hand right now. |
Resolved the CUDA bug, only minor stuff is left. |
We have some new patterns for docs which help produce cleaner doxygen docs. https://docs.lizardbyte.dev/projects/sunshine/en/master/source_code/source_code.html |
Alright, I will update the comments to what the codebase will be using at the time of merge. Currently this PR is held back at moonlight side, and merging one without the other is pointless. |
Description
Adds support for YUV 4:4:4 encoding, requires changes on moonlight side. Windows-only for now.
moonlight-common-c pull request: moonlight-stream/moonlight-common-c#91 merged
moonlight-qt pull request: moonlight-stream/moonlight-qt#1282 draft
Current state
nvenc in cuda mode leaks cpu memory on decoder destruction (nvenc-mapped cuda surfaces can't be unmapped and unregistered)Screenshot
Issues Fixed or Closed
Type of Change
.github/...
)Checklist
Branch Updates
LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.