Closed andyzukunft closed 3 months ago
What do you mean by "far more annoying framedrop" when using display-resample
? That shouldn't be dropping any frames!
Well, beforehand the motion was blurry and perception depended on video panning, now I get hard framedrops and image distortions. Please see my example videos for an added example. Similar result with 120 Hz display refresh rate.
Example videos (recorded with 60 fps camera) https://drive.google.com/drive/folders/1FdRWZKdzFX_cztwKKqjZSbAbSLRkEA2Y?usp=sharing
Active mpv.conf for the video Amdgpu_VideoIssue_1_24hz_videosync_displayresample.mp4:
# Video Hardware
vo=gpu
profile=gpu-hq
hwdec=auto
gpu-api=vulkan
vulkan-swap-mode=mailbox
video-sync=display-resample
I think we may have found a problem with the vulkan video output. If I set my config to
# Video Hardware
vo=gpu
profile=gpu-hq
hwdec=auto
video-sync=display-resample
at 24 Hz the video looks mostly smooth however it has some distortion (but far less often). Maybe this is tearing - which also shouldn't happen with video sync to display? At 120 Hz it looks as my original example video with a lot of judder.
That shouldn't be dropping any frames!
It does, when the device can't handle it. The cost of display-resample
, dither
and osd/sub render
more than expected.
Are them rendered in scaled resolution?or native resolution? I'm guessing this because only high-resolution video would produce such a result
sample: https://www.youtube.com/watch?v=oYqGt4zrpUE 8k60p AV1
Thats a fair question. The video in question has a 1080p resolution. Sooo a modern AMD iGPU should handle this. Of course I actually checked this.
Benchmark /w Vulkan
# Video Hardware
vo=gpu
profile=gpu-hq
hwdec=auto
gpu-api=vulkan
vulkan-swap-mode=mailbox
# PERFORMANCE BENCHMARK
video-sync=display-desync
osd-msg1="FPS: ${estimated-display-fps}"
Can't check without Vulkan as it seems it is locked to screen refresh rate. But maybe you can tell me how to do it with additional details as you did.
Btw, your youtube link just crashes my mpv.
[Edit] I pondered your question some more.
Are them rendered in scaled resolution?
It seems this is the key question. There is not sufficient performance (quiet unbelievable) to keep stable fps in gpu-hq in fullscreen. The video render size seems different depending on the window size. So the most impact is visible in fullscreen (requiring 4k resolution).
I will test some more "today" during the day.
Wait, why are you using vulkan-swap-mode=mailbox
on X11? You should be using fifo
!
Did using --vulkan-swap-mode=fifo
fix the issue?
I changed mode from mailbox
to fifo
and it provides more performance now. Just to be safe I removed profile=gpu-hq
because it was at the limit for 4k video. The problem is I can't benchmark properly because fifo provides vsync just as the default configuration (without specifying gpu-api=vulkan
).
As far as I can tell it looks like this: hwdec=no
≈ non-vulkan (perhaps opengl?)
> vulkan,fifo
> vulkan,mailbox
Thanks for your help. I have one more question before closing the thread. Is using video-sync=display-resample
sufficient or is it still recommended to set the display frame rate to n-times (int) the video frame rate?
If the monitor refresh rate is sufficiently large I don't see that being helpful. 120 Hz should be fine, just make sure you enable interpolation.
I have to retract some of my statements. It seems one of the TV changes (the input type naming) actually enabled some image processing in the TV. That's the reason the video was smooth / the judder was removed.
If I deactivate the TV settings (again), the video returns to being judder-heavy. It doesn't matter whether I use Vulkan or not, whether the display refresh rate is set to 24, 60 or 120 Hz or whether I try to counter with video-sync=display-resample
or autospeed
.
- configuring
video-sync=display-resample
changes the behaviour, stuttering less often however with a far more annoying frame drop
Comparing the Vram buffer set in the BIOS 512MB vs 1024MB vs 2048MB vs 4096MB on Ryzen Mobile APU with AMD 23.9.3 driver I get a lot of framedrop when the Vram allocation resource is maxed out. If there's still a lot of Vram left, the result is zero framedrop except when switching into different resolution it's strange.
--vo=gpu-next --gpu-api=vulkan --hwdec=vulkan --vulkan-swap-mode=fifo --video-sync=display-resample --osd-msg1="FPS: ${estimated-display-fps} Output: ${frame-drop-count}"
I also have an AMD CPU with iGPU running EOS and tearing/ judder problems, but only when in fullscreen (double click mpv window) this tearing does not appear when I have mpv in a window !
so my quick and dirty workaround is to remove titlebar and borders and maximize the window, looks the same like fullscreen without the tearing..
Haruna for example has no issue playing same video in fullscreen, as I understand it uses libmpv.. don't know what they do differently ..
(I am using the default mpv config for video)
Greetings !
Hey everyone,
I have a huge problem with video judder. At least I think it's video judder. It took me quiet some time to name it. I bought a new TV (Samsung QN90A 85") in September 2021 and I have problems with video judder ever since (depending on the movie/series/anime more or less).
Example videos (120 Hz monitor refresh rate, ~24 Hz video, recording with 60 Hz, no special mpv.conf)
https://drive.google.com/drive/folders/1FdRWZKdzFX_cztwKKqjZSbAbSLRkEA2Y?usp=sharing
In my opinion those videos show you nicely what I see on the screen.
Hardware / software setup
Basic mpv.conf
Working solution (but flawed)
My example video reports a frame rate of 23.809525 fps (which sounds weird). Setting my display to 24 fps does not solve judder (which is logical if the reported frame rate is correct). After days of searching I found the name for my problem (-> judder) and a working solution:
Setting my display to 24 fps and
video-sync=display-resample
changes the behaviour, stuttering less often however with a far more annoying frame dropautospeed
and configuring it withscript-opts=autospeed-xrandr=false,autospeed-speed=true,autospeed-display=auto,autospeed-exitmode=auto,autospeed-minspeed=0.9,autospeed-maxspeed=1.1,autospeed-osd=true,autospeed-estfps=false
HOWEVER: it has to be 24 fps. If I set it to 120 fps (multiple of 24) the juddering is still there.
Trying VRR (and failing)
I tried enabling VRR which is nice as changing the refresh rate with autospeed works neatless. However I keep on having judder independently of the set refresh rate (24, 72). The autospeed OSD reports the correct data (e.g. 72 Hz display, 23.x fps video, speedup video to 24 fps). The display refresh rate matches the OSD of my TV (e.g. 60 Hz before video start, 72 after autospeed changed it).
Interpolation doesn't help I have experimented with
interpolation
with optionsoversample
,triangle
andsphinx
(of course withvideo-sync=display-resample
) but it doesn't solve my issue.mpv.conf additions for interpolation
Journey continues? The multimedia PC I am using in the living room is also used for other things, and having it at 24 fps and setting it manually is uncomfortable. Setting
autospeed-xrandr=true
is switching to 120 Hz (-> doesn't help me).This leads me to the questions: