Chowdhury-DSP / BYOD

Build-your-own guitar distortion!
GNU General Public License v3.0
436 stars 22 forks source link

[BUG] Build error: no matching function for call to ResampledRNNAccelerated #334

Open jony543 opened 11 months ago

jony543 commented 11 months ago

Hi, I'm trying to build on mx linux (debian 11) and getting the following error:

[ 47%] Building CXX object CMakeFiles/BYOD.dir/src/processors/drive/MetalFace.cpp.o In file included from /home/jonathan/Plugins/chowdsp/BYOD/src/processors/drive/MetalFace.h:3, from /home/jonathan/Plugins/chowdsp/BYOD/src/processors/drive/MetalFace.cpp:1: /home/jonathan/Plugins/chowdsp/BYOD/src/processors/drive/neural_utils/ResampledRNNAccelerated.h: In instantiation of ‘void ResampledRNNAccelerated<numIns, hiddenSize, RecurrentLayerType>::process(const juce::dsp::AudioBlock<float>&, std::span<const float>) [with bool useResiduals = false; int numIns = 1; int hiddenSize = 28; int RecurrentLayerType = 1]’: /home/jonathan/Plugins/chowdsp/BYOD/src/processors/drive/MetalFace.cpp:57:38: required from here /home/jonathan/Plugins/chowdsp/BYOD/src/processors/drive/neural_utils/ResampledRNNAccelerated.h:59:31: error: no matching function for call to ‘ResampledRNNAccelerated<1, 28>::process<false>(std::enable_if_t<true, nonstd::span_lite::span<float, 18446744073709551615> >, std::span<const float>&)’ 59 | process<useResiduals> (bufferView.getWriteSpan (0), condition_data); | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/jonathan/Plugins/chowdsp/BYOD/src/processors/drive/neural_utils/ResampledRNNAccelerated.h:20:10: note: candidate: ‘void ResampledRNNAccelerated<numIns, hiddenSize, RecurrentLayerType>::process(std::span<float>, std::span<const float>) [with bool useResiduals = false; int numIns = 1; int hiddenSize = 28; int RecurrentLayerType = 1]’ 20 | void process (std::span<float> block, std::span<const float> condition_data = {}) noexcept | ^~~~~~~ /home/jonathan/Plugins/chowdsp/BYOD/src/processors/drive/neural_utils/ResampledRNNAccelerated.h:20:36: note: no known conversion for argument 1 from ‘std::enable_if_t<true, nonstd::span_lite::span<float, 18446744073709551615> >’ {aka ‘nonstd::span_lite::span<float, 18446744073709551615>’} to ‘std::span<float>’ 20 | void process (std::span<float> block, std::span<const float> condition_data = {}) noexcept | ~~~~~~~~~~~~~~~~~^~~~~ /home/jonathan/Plugins/chowdsp/BYOD/src/processors/drive/neural_utils/ResampledRNNAccelerated.h:55:10: note: candidate: ‘void ResampledRNNAccelerated<numIns, hiddenSize, RecurrentLayerType>::process(const juce::dsp::AudioBlock<float>&, std::span<const float>) [with bool useResiduals = false; int numIns = 1; int hiddenSize = 28; int RecurrentLayerType = 1]’ 55 | void process (const juce::dsp::AudioBlock<float>& block, std::span<const float> condition_data = {}) noexcept | ^~~~~~~ /home/jonathan/Plugins/chowdsp/BYOD/src/processors/drive/neural_utils/ResampledRNNAccelerated.h:55:55: note: no known conversion for argument 1 from ‘std::enable_if_t<true, nonstd::span_lite::span<float, 18446744073709551615> >’ {aka ‘nonstd::span_lite::span<float, 18446744073709551615>’} to ‘const juce::dsp::AudioBlock<float>&’ 55 | void process (const juce::dsp::AudioBlock<float>& block, std::span<const float> condition_data = {}) noexcept | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ gmake[3]: *** [CMakeFiles/BYOD.dir/build.make:837: CMakeFiles/BYOD.dir/src/processors/drive/MetalFace.cpp.o] Error 1 gmake[2]: *** [CMakeFiles/Makefile2:572: CMakeFiles/BYOD.dir/all] Error 2 gmake[1]: *** [CMakeFiles/Makefile2:454: CMakeFiles/BYOD_VST3.dir/rule] Error 2 gmake: *** [Makefile:197: BYOD_VST3] Error 2

I used to manage to build it on my previous system. Any idea what am I missing? Thannks

jatinchowdhury18 commented 11 months ago

Hello! Is it possible that the machine you're trying to build on does not support AVX instructions (or maybe it has something to do with the compiler you're using?). Or maybe CMake is not correctly detecting that your machine supports AVX instructions.

We should be able to determine this from the output of your CMake configure command, specifically you should see some output that says either "Compiler supports flags: -mavx -mfma" or "Compiler DOES NOT supports flags: -mavx -mfma". For more information see here.