GhostNaN / mpvpaper

A video wallpaper program for wlroots based wayland compositors.
GNU General Public License v3.0
713 stars 21 forks source link

'*' Does not select any output for some NVIDIA users #54

Closed Hressa closed 3 months ago

Hressa commented 8 months ago

Hello, I'm having a strange issue, I cannot seem to get mpvpaper to play to all outputs using the '*' option.

I can select either of my monitors just fine with either HDMI-A-1 or HDMI-A-2, which will play the video as expected. However, if i use '' (i.e. mpvpaper '' /path/to/video) i get this message:

:/ sorry about this but we can't seem to find any output.

I'm not sure if it is relevant, but I am using the NVIDIA version included in the latest release. The normal version would just drop all frames. I'm using hyprland on Arch.

Am I using the * option wrong? I tried everything I could think of, but it seems to me that I am copying the command from the readme exactly.

Just for clarity, this works fine for me (same for HDMI-A-2):

$ mpvpaper -v HDMI-A-1 /d/walls/mvtest.mp4 
[!] Output HDMI-A-2 (Ancor Communications Inc VC279 F6LMRS000492) not selected
[*] Output HDMI-A-1 (Iiyama North America PL2783Q 1142964701489) selected
[*] OpenGL 4.6 EGL context created
 (+) Video --vid=1 (*) (h264 1920x1080 60.000fps)
 (+) Audio --aid=1 (*) (aac 2ch 48000Hz)
[*] Loaded /d/walls/mvtest.mp4
AO: [pulse] 48000Hz stereo 2ch float
VO: [libmpv] 1920x1080 yuv420p
AV: 00:00:10 / 00:00:53 (20%) A-V:  0.000 Cache: 42s/104MB

but this fails:

$ mpvpaper -v '*' /d/walls/mvtest.mp4 
[!] Output HDMI-A-2 (Ancor Communications Inc VC279 F6LMRS000492) not selected
[!] Output HDMI-A-1 (Iiyama North America PL2783Q 1142964701489) not selected
[-] :/ sorry about this but we can't seem to find any output.

The asterisk should select both outputs right?

GhostNaN commented 8 months ago

Yeah.... about that. After multi-monitor support was added, mpvpaper broke for some NVIDIA users. Especially users who used the proprietary NVIDIA driver. There is no way I could find to rectify this issue. So the workaround is just using a build of mvpaper before the new render loop was added after this commit https://github.com/GhostNaN/mpvpaper/commit/f65700a3ecc9ecd8ca501e18a807ee18845f9441 Sorry for the confusion.

Hressa commented 8 months ago

Ah that is unfortunate, mpvpaper looks exactly like what I was looking for. Thanks for taking the time to reply! Do you mind if I leave this issue open?

GhostNaN commented 8 months ago

Do you mind if I leave this issue open?

If you wish, although I feel like this is a "sit and wait for NVIDIA to fix" issue. Unless some GPU wizard knows a workaround for the issue.

GhostNaN commented 4 months ago

If you can/want, could you look at this? https://github.com/GhostNaN/mpvpaper/issues/65#issuecomment-1989490605

Hressa commented 4 months ago

My arch install is currently dead, once I get it back up and running I'll jump in and try that. I'll let you know what I find. Thanks for letting me know, I appreciate it!

GhostNaN commented 4 months ago

I committed the fix to the main repo here: https://github.com/GhostNaN/mpvpaper/commit/b8354a751d18f7177812e4012c6232d2c5b48299 Feel free to try if you can.

TheM1Stery commented 4 months ago

I committed the fix to the main repo here: b8354a7 Feel free to try if you can.

Hello! Thanks for this amazing app. I tried the latest version to see if NVIDIA works. It seems like it didn't and then i got this error and the frames were dropping: [libmpv_render] after creating texture: OpenGL error INVALID_OPERATION.

There was no error when i tried before the fix, so it looks like there's progress.

I don't know if this will help somehow, but my GPU is RTX 3060 and i was on the latest version of proprietary driver(550)

GhostNaN commented 4 months ago

Please run this: mpvpaper -v -o "--log-file=output.txt" DP-3 /my/video.mp4 I need someone to give me the log file.

TheM1Stery commented 4 months ago

Please run this: mpvpaper -v -o "--log-file=output.txt" DP-3 /my/video.mp4 I need someone to give me the log file.

Here are the log files. mpvpaper.txt

GhostNaN commented 4 months ago

That error might not mean anything, as the texture is created and is even resized later on with no issue. "mpv_render_context_render() not being called or stuck." This is the issue I was afraid of as it's as if nothing has been fixed after all. My fix doesn't help with this issue even forceing glDrawBuffer(GL_NONE) does not show this error.

For some reason the render() function is just not getting called. Either because mpv is not calling render_update_callback() Or because the wl_display_dispatch is getting stuck.

Sorry for the tech jargon, I'm just getting my thoughts down.

GhostNaN commented 3 months ago

Please try the latest commits and compile from master. I believe this is now solved.

TheM1Stery commented 3 months ago

Please try the latest commits and compile from master. I believe this is now solved.

Hey, i just checked out the last commit from master. Everything works great!

Here are the logs, in case there are some errors lingering: output-mpvpaper.txt

GhostNaN commented 3 months ago

While not perfect, as of this commit: https://github.com/GhostNaN/mpvpaper/commit/408092d371fd1ec772d5297da429540520d77ba6 I can say this is solved now.