IPP Missing in Plugin Export
-
Hello everyone,
There have been some changes in how ipp installs since all the HISE documentation was written, and I'm very confused on how to get the HISE export function to include the ipp library. I installed ipp using the intel oneAPI Base Toolkit installer, and made sure the Visual Studio 2017 integration was enabled.
When compiling HISE, I save and open in IDE, but it will not build by default. In Visual Studio I have to go to HISE Standalone_App Properties, enable IPP in there, then build, and it works fine. However, exporting a plugin from HISE results in a string of "cannot open include file: 'ipp.h'" errors.
I have hopelessly searched in the forum, documentation, projucer settings, Visual Studio settings, and HISE itself, but I'm in a little over my head. Any advice?
-
@Zorpley
results in a string of "cannot open include file: 'ipp.h'" errors.
Where is it looking for the file? (I expect the full file path is included in the error message).
Once you know where it's looking for the file, move the file to where it's looking :) -
Well yes, that was my first thought as well. However, it's the include that fails, so it doesn't point to a specific path.
I won't pretend to fully understand what's going on, but it seems that when exporting I need some way to do whatever enabling IPP in this window does.
-
Open the .jucer file for your project, in the Visual Studio section you'll see the paths for the IPP, this is where the files need to go. You can try changing the paths in the jucer file but in my experience it doesn't work.
Also, if you don't need the IPP for your plugin you could just disable it. It's only needed if you're using the FFT routines (convolution, analysers, etc.).
-
I am trying to build a plugin with a convolution reverb, hence trying to get it working with ipp.
Do you mean the .jucer file for building HISE, the one in projects\standalone\HISE Standalone.jucer? That one doesn't include a path to the ipp libraries anywhere that I can see, except for the Apple builds where the path is specified as /opt/intel/ipp/lib. Nor is there an ipp path option when opening the file in Projucer.
Or is there some intermediate jucer file that's generated when exporting a plugin I should take a look at?
-
@Zorpley There should be paths in there, check under the "Release" section. But actually I meant the .jucer file for your project (it's generated by HISE when you export).
-
Fooound it :D Will let you know if it works in a sec.
-
The path there appears to be correct, however it still cannot find ipp.h unless I open it in Visual Studio, go to properties for both SharedCode and VST, and enable IPP there.
Now I'm running into some other compile errors but I guess I'll tackle those separately.
Should there be a difference between opening HISE, selecting Export, Export as Instrument, vs opening the project .jucer, opening it in Visual Studio, and building from there?
-
@Zorpley
Should there be a difference between opening HISE, selecting Export, Export as Instrument, vs opening the project .jucer, opening it in Visual Studio, and building from there?
Yes, I think HISE does some setting up. You can see exactly what it does by looking in the bat file it generates.
-
Yup, it's pretty minimal though. The issue really seems to be that "enable" option that needs to happen in Visual Studio GUI, and I've no idea how to get around that. I've been trying to add it to environment variables but with no luck.
-
@Zorpley Did you set that path in the .jucer screenshot above?
-
This is a relevant thread I found on using ipp from the command line: https://community.intel.com/t5/Intel-Integrated-Performance/Is-it-possible-to-use-IPP-by-command-line-parameter-to-compiler/td-p/1109403
The info linked there looks like a complete nightmare to set up.
What I don't understand is why I'm the only one with this issue. Surely others have installed HISE recently? How does everyone else have ipp set up so it can just be included without going through that Visual Studio configuration dialog?
-
@d-healey No, it was there, correctly, by default. The problem is that pointing at ipp.h doesn't actually work on its own. Apparently you also need a VS environment where you can go to this configuration dialog and enable it.
Actually, I wonder what happens if I install ipp without the Visual Studio integration.
-
@Zorpley said in IPP Missing in Plugin Export:
The problem is that pointing at ipp.h doesn't actually work on its own. Apparently you also need a VS environment where you can go to this configuration dialog and enable it.
I've never touched that. It's weird that you had that path by default. Did you change it in the HISE jucer project before you built HISE?
-
Ok I was getting confused with MacOS. Under Visual Studio >> Release there should be no IPP paths at all. Those boxes should be empty, except for the semi-colon. It's strange that yours isn't, I wonder if this is something that VS did.
-
This post is deleted! -
I did not change anything regarding ipp paths when opening the HISE standalone .jucer. I did however have to enable IPP using the Visual Studio properties dialog box.
-
@Zorpley Yeah I guess it must be something to do with the changes you made in VS studio that has added those paths to the jucer file. Try deleting the path since it should be empty (leave the semi-colon).
-
Without setting that option in Visual Studio, HISE standalone itself will not build at all.
If I delete that path from the project .jucer and leave only the semicolon it does not appear to make a difference. ipp.h still cannot be found, because that GUI option must be set in VS.
Where has everyone else been getting ipp from? How is it set up? Someone mentioned that the 2019 ipp worked, but intel has made legacy versions completely impossible to obtain as far as I can tell.
-
@Zorpley
intel has made legacy versions completely impossible to obtain as far as I can tell.
Yeah Intel keep screwing things up with their installers. I haven't reinstalled IPP since 2019 so I don't know exactly what to do with the current setup. But as far as I'm aware no-one has mentioned having to change GUI options in Visual Studio.