shinchiro/mpv-winbuild-cmake

mpv not opening after updating to 20230924.

Closed this issue ยท 92 comments

After installing latest version mpv-x86_64-20230924-git-140d018.7z using updater.bat, mpv is not opening, nor the video files are opening. And after that for some reason opening the updater giving me a "Cannot index into a null array" error. So I downgraded mpv to mpv-x86_64-20230917-git-181eddc.7z and it is working fine.
Is something wrong with my system or it is something else?

What CPU, what Windows Version?

What CPU, what Windows Version?

Pentium G645, Windows 10 22H2 Build 19045.2846

https://github.com/zhongfly/mpv-winbuild/releases/download/2023-09-24-652a1dd/mpv-x86_64-20230924-git-652a1dd.7z

Is this working fine?

No, same problem.
Is it because my cpu doesn't have a lot of features?
image

The compilers are different, maybe clang defines -march=x86-64 differently than gcc and then crashes due to missing ISA features. You can try clang i686 build.

So what can I do to run that latest clang build? Do I have to use the 32-bit version?

If this is a llvm problem then you are out of luck, if it is a mpv-winbuild-cmake problem, will try to fix this. If you're unlucky, you may have to keep using gcc build.

I would suspect this might be caused by excessive polly optimization or that fcf-protection thing

https://www.intel.com/content/www/us/en/docs/cpp-compiler/developer-guide-reference/2021-8/fcf-protection-qcf-protection.html

Intelยฎ CET protections are enforced on processors that support Intelยฎ CET. They are ignored on processors that do not support Intelยฎ CET, so they are safe to use in programs that might run on a variety of processors.

I think the problem is more likely Polly or cfguard.

This is also happening to me to on the latest build after using the updater.bat an hour ago. mpv is not opening, and the updater now gives me "Cannot index into a null array." I'm running Windows 10 on a Macbook Pro with an Intel i7-3720QM CPU. I'll try the other builds you suggest above.

It seems that the CPUs with this problem are *Bridge families? Are there any *Lake families or AMD that have this problem?

Kaby Lake here, mpv runs fine.
Intel Core i5 7200U, Windows 11 22H2

It seems that the CPUs with this problem are *Bridge families? Are there any *Lake families or AMD that have this problem?

AMD R5-3600 and R7-6800H works fine.

Haswell (i5 4690) can run clang's x86_64 and x86_64-v3 build without problem too.

The problem was there after update to 20230924 and persists even after update to 20230925 on AMD FX-6300.
I'm using umpvw, to mimic the single instance, and see umpvw in process explorer after double clicking on a video file but mpv refuses to open.
After reverting to 20230923 I needed to run mpv's installer and then umpvw's installer to make it work as it did before.

I'm always updating with updater.bat and it didn't give me problems before 20230924 update.

You don't actually need to run the updater, just replace mpv.exe.

So any ancient CPU will crash. Need to wait for someone to build a mpv with CFI/OPT disabled. can anyone get backtrace?

@sunnysoren
try these

It is not working. Still using the 20230917 version in the meantime.

@sunnysoren
try these

It is not working. Still using the 20230917 version in the meantime.

Do all four of these not working?

On my sandybrige notebook, all four of these don't work either.
But my clang build works fine.
@sunnysoren Can you try my build?
https://github.com/eko5624/mpv-winbuild/releases/download/2023-09-24/static-mpv-20230924.7z

My clang toolchain repo is here: https://github.com/eko5624/toolchain

Do all four of these not working?

Yeah, Sorry I didn't clarify earlier

@sunnysoren Can you try my build?

I tried. It is running, but with lags and minor unresponsiveness. I'm not sure if it is the UI or the build.

@sunnysoren Can you try my build?

I tried. It is running, but with lags and minor unresponsiveness. I'm not sure if it is the UI or the build.

Try to add profile=fast to the first line in mpv.conf. Or just remove portable_config directory, and retry.

Do all four of these not working?

I have the same problem on A6-5400B and none of the builds open for me. The last build I was able to get to work is 20230923

Try to add profile=fast to the first line in mpv.conf.

@eko5624 Yeah I added profile=fast in protable_config/mpv.conf, now it's working. Your build is fine.

Working for me as well.

Since all four working fine, it doesn't seem to be a CFI/OPT problem. Maybe some sort of build cache problem is causing the x86-64 and x86-64-v3 caches to get mixed up? only the device without AVX crashes.

No issue with caches. What I see, polly optimization doesnt work well with mguard+fcf-protection (for older cpu)

Can try with this build a while to see whether it will crash or not? This build is with polly optimization+mguard
https://github.com/shinchiro/mpv-winbuild-cmake/suites/16531318651/artifacts/944562759

No issue with caches. What I see, polly optimization doesnt work well with mguard+fcf-protection (for older cpu)

Can try with this build a while to see whether it will crash or not? This build is with polly optimization+mguard https://github.com/shinchiro/mpv-winbuild-cmake/suites/16531318651/artifacts/944562759

This build also works fine.

@eko5624's toolchain also has cfguard+fcf-protection+polly, but everything working fine.

eko5624/toolchain@3189b15#diff-498c69cbb220ee89374e2b9a3d1b03bea90ac848056b668fdb934c1ff34f5d42R7

But slow & unresponsive?

@sunnysoren Can you try my build?

I tried. It is running, but with lags and minor unresponsiveness. I'm not sure if it is the UI or the build.

I suspect it's because mpv recently changed the default profile, profile=fast solved the problem.

Try to add profile=fast to the first line in mpv.conf.

@eko5624 Yeah I added profile=fast in protable_config/mpv.conf, now it's working. Your build is fine.

No issue with caches. What I see, polly optimization doesnt work well with mguard+fcf-protection (for older cpu)

Can try with this build a while to see whether it will crash or not? This build is with polly optimization+mguard https://github.com/shinchiro/mpv-winbuild-cmake/suites/16531318651/artifacts/944562759

This is working fine in my setup even without profile=fast

Check https://mpv.io/manual/master/#gpu-renderer-options

The default scale has been changed from bilinear to lanczos , higher configuration requirements, not friendly to low-end computers.

Can anyone with older cpu reconfirm again today's release fix this issue?

I downloaded the bootstrapper and did a fresh install (which used mpv-x86_64-20230926-git-90e0828.7z). It did not work, failing in the same way as originally described.

Can try with this build a while to see whether it will crash or not? This build is with polly optimization+mguard https://github.com/shinchiro/mpv-winbuild-cmake/suites/16531318651/artifacts/944562759

This one does work fine for me.

https://github.com/shinchiro/mpv-winbuild-cmake/suites/16531330046/artifacts/944454133 https://github.com/shinchiro/mpv-winbuild-cmake/suites/16531326567/artifacts/944454798 https://github.com/shinchiro/mpv-winbuild-cmake/suites/16531322557/artifacts/944492344 https://github.com/shinchiro/mpv-winbuild-cmake/suites/16531318651/artifacts/944562759
Try these build. Previous builds, I forgot to wipe older cache

These 4 also work fine.
Again, I'm an Intel i7-3720QM (Ivy Bridge) CPU.

Not working for me.

20230926 is no go on AMD FX-6300 (Win10 Edu 22H2)

How about this one? https://github.com/shinchiro/mpv-winbuild-cmake/suites/16589118431/artifacts/947908698

no go.
from what I see in process explorer, something named WerFault.exe opens briefly after mpv.exe and then both close.

AMD FX-6300 (Win10 Edu 22H2)

Can anyone experiencing this problem try local build in WSL?

Can anyone experiencing this problem try local build in WSL?

Tried with 20230926, still doesn't work.

Try this one? (for older cpu) https://github.com/shinchiro/mpv-winbuild-cmake/suites/16664918190/artifacts/952299110

On my SandyBridge laptop, it works now.

Try this one? (for older cpu) https://github.com/shinchiro/mpv-winbuild-cmake/suites/16664918190/artifacts/952299110

working, but video lags a bit when playing 1080p 60fps videos on my crap cpu. Still using that 20230917 version, plays alright.

Try this one? (for older cpu) https://github.com/shinchiro/mpv-winbuild-cmake/suites/16664918190/artifacts/952299110

working, but video lags a bit when playing 1080p 60fps videos on my crap cpu. Still using that 20230917 version, plays alright.

https://github.com/zhongfly/mpv-winbuild/suites/16665039662/artifacts/952294208
Does this have the same lags problem?

This version is compiled with gcc. So this is caused by upstream changed the default profile, there is nothing we can do about it, you have to change the default profile, e.g. profile=fast.

This version is compiled with gcc. So this is caused by upstream changed the default profile, there is nothing we can do about it, you have to change the default profile, e.g. profile=fast.

Yeah changed the default profile, it's fixed. Working fine.

Try this one? (for older cpu) https://github.com/shinchiro/mpv-winbuild-cmake/suites/16664918190/artifacts/952299110

Works fine on AMD FX-6300 (Win10 Edu 22H2)

Same here, last 20230924 doesn't work. But the previous packet yes mpv-x86_64-20230917-git-181eddc.7z

Try this one? (for older cpu) https://github.com/shinchiro/mpv-winbuild-cmake/suites/16664918190/artifacts/952299110

Works fine on AMD FX-6300 (Win10 Edu 22H2)

It doesn't work in my case, Windows 7 64 bits

What's your CPU?

What's your CPU?

Sadly my system is old. I haven't been able to buy something more up-to-date.
Pentium Dual-Core E5300 2.60 GHz

@jimmy-1000 Can you try my build? https://github.com/eko5624/mpv-winbuild/releases/download/2023-09-24/static-mpv-20230924.7z

It doesn't work, mpv doesn't open. OS says something like GetSystemTimePreciseAsFileTime is not found at Kernel32.dll

It doesn't work, mpv doesn't open. OS says something like GetSystemTimePreciseAsFileTime is not found at Kernel32.dll

Windows 7? MPV now only support windows 10 or later.

It doesn't work, mpv doesn't open. OS says something like GetSystemTimePreciseAsFileTime is not found at Kernel32.dll

Windows 7? MPV now only support windows 10 or later.

When is now? The previous to 20230924 works. It was posted on 17 September.

GetSystemTimePreciseAsFileTime

https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getsystemtimepreciseasfiletime :
Minimum supported client: Windows 8

Since MPV only offers support for Windows 10 or later(said in mpv's readme), it's okay if there are builds that don't run in windows 7.

GCC build supports windows 7 for now, but clang build doesn't.

It doesn't work, mpv doesn't open. OS says something like GetSystemTimePreciseAsFileTime is not found at Kernel32.dll

Try the gcc build if it works or not?
https://github.com/shinchiro/mpv-winbuild-cmake/suites/16697299955/artifacts/954184055

I think it's time to drop Win 7 support too. mpv has already dropped Win 7, more dependency packages will drop Win 7 support in the future, the number of patches needed to build Win 7 support will grow and eventually become a mountain of shit.

It doesn't work, mpv doesn't open. OS says something like GetSystemTimePreciseAsFileTime is not found at Kernel32.dll

Try the gcc build if it works or not? https://github.com/shinchiro/mpv-winbuild-cmake/suites/16697299955/artifacts/954184055

Correct. It works, thanks Shinchiro ๐Ÿ‘Œ

I think it's time to drop Win 7 support too. mpv has already dropped Win 7, more dependency packages will drop Win 7 support in the future, the number of patches needed to build Win 7 support will grow and eventually become a mountain of shit.

Did you know that according to statistics there are still millions of users around the world using Windows 7.
Some estimate 200 000 000. Windows 10 is different, not many like it.

I think it's time to drop Win 7 support too. mpv has already dropped Win 7, more dependency packages will drop Win 7 support in the future, the number of patches needed to build Win 7 support will grow and eventually become a mountain of shit.

Did you know that according to statistics there are still millions of users around the world using Windows 7. Some estimate 200 000 000. Windows 10 is different, not many like it.

You should ask the mpv developers to continue to support windows 7 .
It's perfectly reasonable for the downstream to give up spending the extra effort and time to be compatible with windows 7 when the upstream gives up support.
And you can still build mpv with gcc on your own, and gcc builds still work on windows 7.

I'll include gcc 64bit release later though I dont know how long it will usable until mpv breaks it

Did you know that according to statistics there are still millions of users around the world using Windows 7.
Some estimate 200 000 000. Windows 10 is different, not many like it.

Did you know if you are using outdated/obsolete operating system, you can also use outdated/obsolete media player that is compatible with it?

Also considering that mpv was crashing on Windows 7 for half a year and current stable is also not working and we got only one guy who reported it, I would assume that user base of mpv users on Windows 7 is very small.

If you don't like newer Windows, please, please change to other OS instead of using unsupported one, without security updates (even in all major web browsers), for your safety and your data.

GCC build supports windows 7 for now, but clang build doesn't.

In fact mpv technically doesn't support Windows 7 since 6 years ago mpv-player/mpv@257a2b9#diff-97ecccf15335157bea5b340e73d3239a64b63b52bbea870798e3db8d97db589aR55 when _WIN32_WINNT was changed and it was working as a "happy accident" only.

I think the problem is more likely Polly or cfguard.

Frankly I'm surprised you are using Polly at all. It is very rarely stable except some small projects. It is not widely used/tested.

Frankly I'm surprised you are using Polly at all. It is very rarely stable except some small projects that. It is not widely used/tested.

A few codecs do benefit from polly, at least on my device, llvm 17 polly is quite stable.

If you want to support Windows 7, need to set _WIN32_WINNT for it during llvm build.

It uses things conditional on target Windows version https://github.com/llvm/llvm-project/blob/d222c5ec47a09a3e120000e4a1006f4da7741256/libcxx/src/chrono.cpp#L70-L92

But I'd really like we don't target Windows 7 anymore...

Just for the visibility, mingw-w64-headers since this commit mingw-w64/mingw-w64@f3c53a5 uses Windows 10 as default _WIN32_WINNT value.

That's why default build of libc++ requires the mentioned above function, inherited from std::chrono. GCC build is not affected, because libstdc++ doesn't use this function and apparently it still works.

So like I said, we can fix it by setting --with-default-win32-winnt=VER when building mingw-w64 headers. But the question is how badly you want to keep supporting Windows 7.

Windows 10 is different, not many like it.

Whenever people criticize Windows as an OS from the outside (like from the UNIX community), I feel like the main thing they complain about is that Windows isn't different enough and has been the same shit for decades on the outside, for better or worse. I wouldn't be surprised if running Windows software through compatibility layers like WINE is more frictionless than trying to run modern software on Windows 7 nowadays.

WINE is more frictionless than trying to run modern software on Windows 7 nowadays.

hehe, I'm surprised that no one ever complained that MPC-HC doesn't work on wine. But I guess, MPC-HC users are primary Windows only and at the point that they know what wine is, they would already use mpv.

20231001 has fixed this issue on my end.

setting --with-default-win32-winnt=VER when building mingw-w64 headers

Setting --with-default-win32-winnt=0x601 when building mingw-w64 headers works on Windows 7.

Below is my clang build, can you try it? @jimmy-1000
https://github.com/eko5624/mpv-winbuild/releases/download/2023-10-02/static-mpv-20231002.7z

setting --with-default-win32-winnt=VER when building mingw-w64 headers

Setting --with-default-win32-winnt=0x601 when building mingw-w64 headers works on Windows 7.

Below is my clang build, can you try it? @jimmy-1000 https://github.com/eko5624/mpv-winbuild/releases/download/2023-10-02/static-mpv-20231002.7z

It works! ๐Ÿ‘Œ

All the issues have been acknowledged dealt with, so im closing the issue.

Please note that mpv is about to drop Windows 7 support completely, so even gcc builds will not run on Windows 7.

It seems @shinchiro's GCC builds no longer work on Windows 7. MPV can officially be declared the media player of the golden billion from now on, the rest of us are welcome to use MPC-HC and other players that are still being developed to ease the burden of the less privileged, fortunate, and Windows10nightmare-minded.

But at least find the dignity to publish the latest compatible version, they're waiting.

Update

@eko5624 still has the balls to compile Windows 7 x64 compatible builds. Get it!

@eko5624 still has the balls to compile Windows 7 x64 compatible builds. Get it!

Unfortunately it is not exactly the same mpv.
I had to go back to mpv-x86_64-20230917-git-181eddc.7z

Unfortunately it is not exactly the same mpv.

@jimmy-1000, what do you mean? If you mean that the window looks different, then it's affected by the author's configuration (inside portable_config sub-folder), which can be removed or replaced with your own. Otherwise, this is a regular package with mpv.com, mpv.exe and d3dcompiler_43.dll, compiled in MSYS2 on Windows.

There is even a basic package with mpv.com and mpv.exe only.

Unfortunately it is not exactly the same mpv.

@jimmy-1000, what do you mean? If you mean that the window looks different, then it's affected by the author's configuration (inside portable_config sub-folder), which can be removed or replaced with your own. Otherwise, this is a regular package with mpv.com, mpv.exe and d3dcompiler_43.dll, compiled in MSYS2 on Windows.

There is even a basic package with mpv.com and mpv.exe only.

I understand all what you say. But this mpv.exe doesn't' understand one script I have, osc.lua with an extra button. It indicates me if the container has one or more video-tracks inside and I can change between them. I know this feature is not very important and the mpv team refused to add this to the original mpv. Do you want to try? Of course you need a multitrack video to see it, otherwise you will see a faded button (and it indicates only one videotrack in the container)
Remember --no-osc in mpv.conf

osc.lua.txt

@jimmy-1000, try this build of 2023-11-15.

@jimmy-1000, try this build of 2023-11-15.

XrAO.7z works, thanks.