Closed Areteic closed 4 years ago
Can you post another log with --gpu-debug
enabled? The first error I see is VK_ERROR_DEVICE_LOST
on vkQueueSubmit
.
Here is log with --gpu-debug
log_gpu-debug.txt
Windows event log shows Nvidia driver crash here.
Having a bit closer look at your logs, I can take away the following points:
--async-transfer=no
should fix it--hwdec=no
should make it error for non-AV1 videos as wellIt seems that the offending combination is us using timers on the transfer queue. This works fine for me on AMD during testing, and it doesn't trigger the validation layers for me either, and the spec says it's fine as long as timestampValidBits
is non-zero - and we explicitly check that condition. It also surprises me because I remember that nvidia used to report 0 here in the past.
Maybe some nvidia driver revision introduced timer support on the transfer queue but it was never fully tested and now you're hitting this bug? Anyway, almost definitely not an mpv issue. As a work-around you could probably just disable async transfer for now.
Edit: Actually, I managed to hit a case in which the validation layers do trigger for me.
Seems the issue is that, while vkCmdWriteTimestamp
is fine to run on transfer queues, vkCmdResetQueryPool
is not. That's.. incredibly annoying. But fixable.
Tried your suggestions and can confirm it behaves exactly as you described:
--hwdec=no
makes it so all videos behave in the same problematic manner --vulkan-async-transfer=no
indeed makes video play normallyAnyway I pushed a fix to libplacebo for the time being, that simply disables timers on async transfer queues. But in theory on vulkan 1.2 I could support them again. I'll write the code for that when I'm less preoccupied
Important Information
Provide following Information:
mpv version mpv 0.32.0-497-g20403abcfa Copyright © 2000-2020 mpv/MPlayer/mplayer2 projects built on Wed May 20 15:27:20 +05 2020 FFmpeg library versions: libavutil 56.46.100 libavcodec 58.86.100 libavformat 58.43.100 libswscale 5.6.101 libavfilter 7.82.100 libswresample 3.6.100 FFmpeg version: git-2020-05-20-86822cfc
Windows Version Windows 10 10.0.18363
Source of the mpv binary Compiled myself on Ubuntu 20.04 following this guide -> https://github.com/shinchiro/mpv-winbuild-cmake
If known which version of mpv introduced the problem First noticed on build mpv-x86_64-20200517-git-152b0e2.7z which is hosted on Sourceforge
Possible screenshot or video of visual glitches
All of the black space (except cmd window) is actually mpv. OSC that you see is frozen and was not resized to match window dimensions
If you're not using git master or the latest release, update. Releases are listed here: https://github.com/mpv-player/mpv/releases
Reproduction steps
Launching mpv with --no-config allows it to play video as normally since it defaults to d3d11 output.
Describe the reproduction steps as precise as possible. It's very likely that the bug you experience wasn't reproduced by the developer because the workflow differes from your own.
Expected behavior
mpv will play both video and audio with no problems
Actual behavior
mpv will resize window to match dimensions of video but fail to actually show any video output. Audio will play for a 2-3 seconds then pause for another 2-3 seconds. After that mpv window resizes trying to match video dimensions but it just gets bigger. After window has been resized audio will continue to play without any video output.
Log file
log.txt
Sample files
Basically any videofile with AV1 videocodec. For generating log I used youtube video: https://www.youtube.com/watch?v=ibXKKllz4xQ