Linux Ubuntu 16.04 - exported standalone / plugins not starting
-
@d-healey I didn´t make that work yet. It gets a failure. But any hour now.
Do you know what system max SSE instructions will be included in the "legacy mode"? SSE2? 3?
-
@andioak Shouldn't use any SSE at all, but I'm sure this is only for AMD CPUs - https://forum.hise.audio/topic/1639/who-uses-amd-cpus
-
@d-healey AAaaahh, now I remember. I was in on this conversation Yeah Hart removed the entire line of SSE instructions. But building my own yesterday yielded the same unwanted results, nothing. No startup on my xeon X56xx system. Tried on 2 OS:es. But I kept IPP on, which is probably the issue, since it wants SSE 4.1. Building now without it, let´s see.
Update: Built it again using "Legacy cpu support" on and IPP off. No dice. Doesn´t start on my older machine, also tried setting correct permissions and
chmod +x
, nothing. In terminal it says "Illegal instruction (core dumped)". That means there are non supported instruction sets involved, if I got it correctly.My testing cpu is an Intel Xeon X5667, Westmere EP, that has SSE 4.2, and all others the other xeons have, except for AVX and newer ones. looks like it may be one of those who are still going in there, even after @Christoph-Hart removed the SSE altogether?
Min the .jucer project file the setting for Architecture is "native", which if
HI_ENABLE_LEGACY_CPU_SUPPORT
doesn´t change that setting will export the AVX, because I have it on my i3 ivy bridge cpu in my build machine and it is most likely used by JUCE and g++. I understand that it is supposed to work with that set to enabled, but it is not working.Perhaps you have a "legacy build" of CollaB3 for me to try with along side my own?
-
Finally made it work, but not with
HI_ENABLE_LEGACY_CPU_SUPPORT
! That never worked. Instead I changed the .jucer file, under Linux Makefile -> Release -> "Architecture = m64". That reduces the instruction set to SSE and SSE2, according to this thread. No other setting has worked as long as I had "Architecture = native", which is what HISE Scriptnode exports. That´s what is in the .jucer file, no matter the setting.And it makes sens of course, unless you add compiler flags, it is just going to use the native set available on the cpu that is building it. Aka, your computer. If it is new, so is the set. That´s how it seems now.
-
But the Xeon X56xx supports SSE up to 4.2
-
@d-healey said in Linux Ubuntu 16.04 - exported standalone / plugins not starting:
But the Xeon X56xx supports SSE up to 4.2
Exactly, it´s most peculiar. Either the legacy cpu flag is not working, or my hise is not doing what it´s supposed to. In any case, the exported .jucer file has none of the compiler flags that would adjust the cpu instruction sets used. There are no flags in "extra compiler flags".
-
But it shouldn't need the legacy flag at all, it supports all the instruction sets, you sure you don't have an old AMD in there :p
-
@d-healey Well the sets are not correct, SSE 4.2 is NOT the highest or newest that HISE uses. Most likely AVX and AVX2 aswell. Or indeed I would have to dig out that old spiked-on AMD cpu in my intel machine.
Architecture = "native" is the issue. It over-rides any setting you make in hise. It uses your build-cpu´s sets available to do the best enhancements available. And whoever said IPP is the only thing in need of higher sets hasnt read the amount of issues on this topic over at the juce forums.
Setting Architecture to x64 in the .jucer project is the ONLY thing I was able to start my instrument build with. That flattens it to x86_64, which is basic original specs of the first 64-bit cpus, so no SSE3 or above, most likely.