-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Remove the CPU's AVX extension requirement on the macOS build #14069
Comments
We had to raise the mimimum supported macOS version to 11. And according to Apple, macOS 11 is only available for computers with AVX or ARM. |
According to the Apple marketing or sales department probably not, according to many owners and users of old Apple models yes. I installed macOS via OCLP: https://github.com/dortania/OpenCore-Legacy-Patcher OpenCore Legacy Patcher helps users to install maintained macOS versions on now unsupported devices by Apple mainly through the injection of missing drivers (that were made by Apple and included in former builds) to support old Macs. OCLP user's base is still growing. I used the official macOS installer published by Apple, OCLP helped me install macOS Monterey on this old device, drivers have been added to boot but you can consider the build to be clean as no modification have been made to the system. I run a lot of modern and updated apps on this Mac, everything works except programs that need a Metal supported GPU or programs that rely on AVX instructions (which are pretty rare). On less obsolete hardware, OCLP allows users to run the latest versions with no missing feature. Mine has an old CPU and GPU that can't be upgraded and OCLP can't fix anything for that purpose. On this same machine I also have a Windows 10 boot partition and Mixxx 2.5.0 runs fine. Hence my doubt about the need to make Mixxx require AVX instructions support on the macOS build if it does not really relies on AVX instructions in its code internally. |
It would be good to have a backtrace so we know where the AVX instruction occurs. If it happens in Qt for example, there is not much we can realistically do about it short of compiling Qt and many other components from scratch. That would not be realistic. Regardless, your machine is still very old. I wouldn't expect mixxx to be much fun on a CPU that slow. |
Have a look at the wiki for finding out how to create a backtrace: https://github.com/mixxxdj/mixxx/wiki/Creating%20Backtraces |
No backtrace needed, we set the flags intentionally according the Apple documentation. |
The flag of question is here: @alxlve It would be easy to remove it in a non avx branch and create the vcpkg environment. Than use is for Mixxx. You may do it in a private branch, because officialy maintaining it is probably not beneficial for us as a project. I think we never did abc benchmarks. It could be interesting how auto vectorization will use avx. It will have an effect on the Mixxx latency, but is it significant? If it is a case we may consider to enable AVX for all targets and make it conditional. Do you have interest to push this forward? |
Bug Description
After upgrading from
2.4.2
to2.5.0
I get this launch error:[1] 76088 illegal hardware instruction ./Mixxx
It seems that the new build uses AVX instructions. I use an old MacBook7,1 to run Mixxx as I don't want to bring a shiny device to parties or even at home with friends. Damaging on old computer playing music (which is still power sufficient to run Mixxx) would get me sad. Furthermore spilling accidentally a liquid on a shiny unit would get me mad. Hence I keep using a worthless device to run with.
The CPU of this computer has no AVX extension and can not run Mixxx anymore. I do believe that I won't be the only user restrained from using their old laptop with the new Mixxx releases and not their current work one.
I see no benefit using AVX instructions for Mixxx (unless there is now with the new features) and maybe this AVX requirement came out from the upgraded dependencies of the project. If there is a way to compile the project and its dependencies with a no AVX flag please do and distribute a non-AVX Mixxx release for macOS.
Version
2.5.0
OS
macOS Monterey 12.7.6
The text was updated successfully, but these errors were encountered: