Latest IPP 2021.10 Build Issues
-
I'm setting up a new machine and HISE build fails because it can't find IPP. But it's there, I installed it.
So I go digging and find that the juce_dsp.cpp macro that references the IPP location for includes references
C:\Program Files (x86)\Intel\oneAPI\ipp\2021.10\include
.On my older PC this is 2021.9.0 in the path and the directory itself looks like this:
However on the new version, this include folder only contains an ipp.h which is different from the one here, and all of these files along with the iw folders are inside a folder called ipp (so include/ipp).
I think this results in juce_dsp.cpp not being able to find ippcore.h, even though it's visible and can be opened from External Dependencies in the solution explorer.
also the
C:\Program Files (x86)\Intel\oneAPI\ipp\2021.9.0\lib
folder changed, where it no longer contains the intel64 folder, but the files and folders from there are now directly in the lib folder itself. -
@aaronventure The OneAPI version I was lasting bulding is 2023.2. Thankfully Intel's uninstaller lets you download the installer package of the version you're using, so I was able to actually download the 2023.2 installer and install IPP 2021.9 on the new PC.
This confirms the issue is with the latest 2021.10 version of IPP and it only fixes the issue for me; IPP license doesn't let me distribute it via the link.
So everyone else who's installing IPP from Dec 2023 onwards is kinda fucked unless they have an older version installed somewhere which lets them download the installer of the version they have.
This essentially breaks IPP usage on Windows for new users.
-
@aaronventure said in Latest IPP 2021.10 Build Issues:
This essentially breaks IPP usage on Windows for new users.
This seems to happen every few versions.
-
This is good to know information - I have been struggling to get IPP working on Windows. I found in old forum posts where someone made a ipp linker for old versions (Links no longer work) and I found where someone posted a dropbox (deadlink)and link to "Internet archive" (Link works https://archive.org/details/intel-ipp for the older 2020 version. I have a few things with the convo reverb I would love to see working in my DAW.
Windows 10, both tried in Develop current version and master. As new to HSIE jsut a few months I had the 2021.10.2 and tried the older 2020 ipp's i could find.
Context - i am able to export the fx plugin with out ipp enabled and I made with a switch to turn off the Convo reverb and you can hear sound when disabled and when enabled no sound. I thought maybe this was the audio files not being embedded at first as the PC I use to export sometimes work. but any other PC i bring to is no sound with the CR engaged
- it is correct IPP is needed when exporting on Windows for the CR to function?
- Does anyone have a link or copy of the IPP install that works? It would be grately appreciated.
- Is there a magic combination when compiling HISE with Projucer in either VS 2017 or 2022 that works?
Thank you again!!!
-
1: No, and if you're releasing a project under the GNU GPL you can use FFTW3 instead of IPP.
-
@d-healey Thank you!!! OK so know I do not need to use ipp for the CR to work? So this then leads me to think it is just the IR samples not embedding.
I have them in my audio files folder and i have checked the embed audio files in pref
I have two convolution reverbs each using only one ir sample and they are in the audio folder.
i also added this "Engine.loadAudioFilesIntoPool();" to the oninit
Dumb question time: Do i need to put anything in between the () and what would that look like to point to the audio file directory?
yes and I am releasing under GPL. I will look into FFTW3 I will research how to compile HISE with that.
-
@WaterSpoon said in Latest IPP 2021.10 Build Issues:
Do i need to put anything in between the () and what would that look like to point to the audio file directory?
No. I think you should make a new thread.
@WaterSpoon said in Latest IPP 2021.10 Build Issues:
I will look into FFTW3 I will research how to compile HISE with that.
I made a video about it, currently only available on Patreon - https://www.patreon.com/posts/how-to-use-fftw3-79166125.
-
@d-healey Will do!!! and love being a Patreon keep up the great work!!!
-
@d-healey said in Latest IPP 2021.10 Build Issues:
I made a video about it, currently only available on Patreon - https://www.patreon.com/posts/how-to-use-fftw3-79166125.
This Video was great and I was able to get it compiled with no issues. Last question. is there a Doc or video that explains how to export your FX Plugin and enable the FFTW or would this automatically be applied? I do not see a check box like the one to enable IIP.
-
@WaterSpoon All you need to do is add
AUDIOFFT_FFTW3=1
as a preprocessor definition in HISE preferences for each platform you're using FFTW3 on. -
@d-healey said in Latest IPP 2021.10 Build Issues:
thank you!!! To confirm...
-
@WaterSpoon Yeah
-
@d-healey Perfect. Thanks!!!
-
Alright folks, inspired by the latest post I went digging a bit more. And I figured it out. It's simpler than you think.
Open the projucer project, and in Visual Studio 2022 > Release (or Debug if you're compiling that one), find Header Search Paths and add
C:\Program Files (x86)\Intel\oneAPI\ipp\2021.11.0\include\ipp
or whatever your path is (the version might differ).Basically go into PF(x86)/Intel/OneAPI/ipp/version/include and make sure the path of the directory you're pasting is the one with all the header files as seen in my first post. From 2021.10 onwards, that's the ipp subfolder in the
/include/
directory.I downloaded the latest OneAPI, tried to build, it failed. I added the new directory to the header include paths and it builds successfully.
Funky should probably bake that in.
-
@aaronventure This seems promising, thank you so much for exploring and sharing this!!! When I can i am going to rebuild with this and check it out!!! Have you had any IPP errors when exporting?
-
@WaterSpoon I haven't checked but HISE builds successfully, I think that's about it? IPP isn't directly referenced when exporting VST but I may be wrong (because the convolution reverb is already compiled)
-
@aaronventure Awesome!!! I have a plugin design with 3 IR's I am still testing and am curious the difference in performance and CPU usage discussed here and in other forum posts about IPP and FFTW. That really it I guess. I look forward to trying your work around soon!!! If anything earth shattering happens trying it with different exports I will let ya know.
-
@WaterSpoon Nice! Let's us know about the performance differences as well!
-
@aaronventure Woohoo! This works, thank you!!
One thing: I tried exporting a plugin with IPP enabled and it failed, so I added this same path to the autogenerated Projucer file and compiled in VS. That appears to have worked fine! Takes a bit of extra time, but man am I relieved it works
-
@ally ah right. Exporting still requires pointing to HISE source, so the change needs to be made in juce_dsp.cpp.
If you double click on the error in VS2022 it'll take you to the offending lines. You can just add a direct path there.
As for everyone else, I'll leave it to Chris to fix it in a way that also doesn't break existing IPP installations, if such thing is possible.
While I don't think it's an issue to request everyone update to the latest IPP, changing the existing path for $IPPInclude or whatever its called will break reverting HISE to any commit before that as you cannot rollback IPP versions without buying the OneAPI premium license.