-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
vo: move vo_gpu_next above vo_gpu in probe order #13620
base: master
Are you sure you want to change the base?
Conversation
Download the artifacts for this pull request: |
throwing this one into the ring: mpv-android/mpv-android#855 (not android-specific but unlikely to apply on desktop) |
Another thing that |
mpv-player/mpv/issues/11862 still appears to be a problem, so many users may end up with color banding on default configuration even though the intended default is to have dithering. |
fwiw the issue you linked (or at least, in the form the OP originally described it) is more or less a non-issue. [ 0.063][v][vo/gpu-next/libplacebo] Available surface configurations:
[ 0.063][v][vo/gpu-next/libplacebo] 0: VK_FORMAT_R8G8B8A8_UNORM VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
[ 0.063][v][vo/gpu-next/libplacebo] 1: VK_FORMAT_B8G8R8A8_UNORM VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
[ 0.063][v][vo/gpu-next/libplacebo] 2: VK_FORMAT_R8G8B8A8_SRGB VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
[ 0.063][v][vo/gpu-next/libplacebo] 3: VK_FORMAT_B8G8R8A8_SRGB VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
[ 0.063][v][vo/gpu-next/libplacebo] Picked surface configuration 0: VK_FORMAT_R8G8B8A8_UNORM + VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
...
[ 0.197][v][vo/gpu-next/libplacebo] Dithering to 8 bit depth As for d3d11, it selects the incorrect bit-depth because d3d11 always uses a 10-bit surface, but the driver already applies its own dithering correctly on d3d11, so you're not going to see banding regardless. But yes, if you disable dithering on vulkan, you're going to see banding. |
If so, firstly you should rewrite the manual. |
I cannot reproduce this, for me it selects 10bit and I get banding.
Not true, I tested this and d3d11 also produces banding without manually setting output depth to the correct value. Fwiw I tested across Nvidia, AMD, and Intel on Windows - all of them had the output bitdepth set erroneously to 10bit resulting in banding regardless of gpu-api. |
Huh, I was under the impression that gpu-next stopped accepting bogus surface formats after haasn/libplacebo@4d20c8b. At the very least, it stopped doing so on my system (Windows+AMD+8bit-depth, identical to the OP). I guess this is still an issue that |
Only the d3d11 swapchain uses it at the moment and that too only when the right This was never actually hooked up to mpv, so it doesn't do anything here. |
My bad. I retried an older build from when the issue was first created, and libplacebo doesn't choose a 16bit format anymore, it chooses an 8bit format and dithers with vulkan. I must've conflated a system/driver update with that commit and unknowingly pulled a "werks on my machine". In which case, I agree with @wiwaz that #11862 is probably worthy of being a "show stopper" if this is still an issue on certain system configurations. |
I agree but I don't see any actionable prescription for this issue except not using 10/16 bit backbuffers for SDR content. |
As |
no, since you explicitly set vo=libmpv. |
We should also prioritize Vulkan over OpenGL in this case. |
Though in general Vulkan works better on gpu-next than OpenGL does. |
Small suggestion that isn't really worth making a new issue for... Unlike vo_gpu, vo_gpu_next currently defaults to To keep the visuals consistent, the default |
Based on irc discussion, this also moves vulkan contexts above opengl contexts in the probe order now. |
Updated documentation |
Some more issues not mentioned here. Many issues mentioned that
|
The first issue is, once again, Nvidia specific :\ All the other issues I can't reproduce, and specifically for the third item I recall there being a fix somewhere. |
Opening a PR to track discussion on this instead of retreading the same topics repeatedly each time we discuss it.
vo_gpu_next
is already much better than the defaultvo_gpu
, and the latter doesn't receive many bug fixes or testing from maintainers making changes elsewhere in the codebase. It doesn't make much sense to keep a default that doesn't receive much or any testing at all due to almost none of the mpv contributors using it.There are multiple steps to doing this:
Just move gpu-next above gpu in the probe order and change nothing else as this PR is doing. Receive user testing and feedback before the next step.
Rename
gpu-next
togpu
, renamegpu
togpu-legacy
orgpu-old
, aliasgpu-next
togpu
. And deprecategpu-legacy
.Potential show stoppers:
High Priority: #13108, #11499
Medium Priority:
#11925,#9551(#13303/#12517)Low Priority: #12462
Various other issues