Forum
    • Categories
    • Register
    • Login

    Invalid use of incomplete type vSIMDType

    Scheduled Pinned Locked Moved Bug Reports
    33 Posts 4 Posters 1.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Christoph HartC
      Christoph Hart @David Healey
      last edited by

      @d-healey is this new? I didn‘t touch that stuff for a few months.

      David HealeyD 2 Replies Last reply Reply Quote 0
      • David HealeyD
        David Healey @Christoph Hart
        last edited by

        @Christoph-Hart I don't usually build the develop branch, I normally use my fork, but someone else reported it on Discord so I tested to confirm.

        I'll find the commit

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - Public HISE tutorials
        My Patreon - HISE tutorials

        1 Reply Last reply Reply Quote 0
        • David HealeyD
          David Healey @Christoph Hart
          last edited by David Healey

          @Christoph-Hart It's this commit

          https://github.com/christophhart/HISE/commit/324a82ca4e7c3edcb4f5db6b60eb2164ccc3d6e4

          In file included from ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/juce_dsp.h:236,
                           from ../../../../../hise/hi_streaming/hi_streaming.h:62,
                           from ../../../../../hise/hi_streaming/hi_streaming.cpp:2,
                           from ../../JuceLibraryCode/include_hi_streaming.cpp:9:
          ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/containers/juce_SIMDRegister.h: In instantiation of ‘struct juce::dsp::SIMDRegister<long long int>’:
          ../../../../../hise/hi_streaming/hi_streaming/MonolithAudioFormat.cpp:371:35:   required from here
            371 |                 const int64 length = jmin<int64>(realSampleLength, info.length);
                |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/containers/juce_SIMDRegister.h:85:11: error: invalid use of incomplete type ‘using juce::dsp::SIMDRegister<long long int>::NativeOps = struct juce::dsp::SIMDNativeOps<long long int>’ {aka ‘struct juce::dsp::SIMDNativeOps<long long int>’}
             85 |     using vSIMDType = typename NativeOps::vSIMDType;
                |           ^~~~~~~~~
          In file included from ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/juce_dsp.h:228:
          ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/native/juce_sse_SIMDNativeOps.h:52:8: note: declaration of ‘using juce::dsp::SIMDRegister<long long int>::NativeOps = struct juce::dsp::SIMDNativeOps<long long int>’ {aka ‘struct juce::dsp::SIMDNativeOps<long long int>’}
             52 | struct SIMDNativeOps;
                |        ^~~~~~~~~~~~~
          

          Just found some additional errors with the latest commits

          ode::math::NeuralNode<256>]’
            717 |                         newItem.cb = PolyT::createNode;
                |                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1300:71:   required from here
           1300 |         registerPolyNodeRaw<NeuralNode<1>, NeuralNode<NUM_POLYPHONIC_VOICES>>();
                |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1197:47: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<256>::NeuralType = struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’}
           1197 |         auto freq = NeuralType::HpfFrequency::Off;
                |                                               ^~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1200:46: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<256>::NeuralType = struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’}
           1200 |             freq = NeuralType::HpfFrequency::Hz1;
                |                                              ^~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1202:46: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<256>::NeuralType = struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’}
           1202 |             freq = NeuralType::HpfFrequency::Hz5;
                |                                              ^~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp: In instantiation of ‘void scriptnode::math::NeuralNode<NV>::updateHpf(juce::Identifier, juce::var) [with int NV = 1]’:
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1108:44:   required from ‘scriptnode::math::NeuralNode<NV>::NeuralNode(scriptnode::DspNetwork*, const juce::ValueTree&) [with int NV = 1]’
            535 | #define BIND_MEMBER_FUNCTION_2(x) std::bind(&x, this, std::placeholders::_1, std::placeholders::_2)
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1140:16:   required from ‘static scriptnode::NodeBase* scriptnode::math::NeuralNode<NV>::createNode(scriptnode::DspNetwork*, juce::ValueTree) [with int NV = 1]’
           1140 |         return new NeuralNode(n, v);
                |                ^~~~~~~~~~~~~~~~~~~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/api/StaticNodeWrappers.h:725:15:   required from ‘void scriptnode::NodeFactory::registerPolyNodeRaw() [with MonoT = scriptnode::math::NeuralNode<1>; PolyT = scriptnode::math::NeuralNode<256>]’
            725 |                         newItem.cb = MonoT::createNode;
                |                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1300:71:   required from here
           1300 |         registerPolyNodeRaw<NeuralNode<1>, NeuralNode<NUM_POLYPHONIC_VOICES>>();
                |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1197:47: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<1>::NeuralType = struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’}
           1197 |         auto freq = NeuralType::HpfFrequency::Off;
                |                                               ^~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1200:46: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<1>::NeuralType = struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’}
           1200 |             freq = NeuralType::HpfFrequency::Hz1;
                |                                              ^~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1202:46: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<1>::NeuralType = struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’}
           1202 |             freq = NeuralType::HpfFrequency::Hz5;
                |                                              ^~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp: In instantiation of ‘void scriptnode::math::NeuralNode<NV>::prepare(scriptnode::PrepareSpecs) [with int NV = 1; scriptnode::PrepareSpecs = snex::Types::PrepareSpecs]’:
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1143:10:   required from here
           1143 |     void prepare(PrepareSpecs ps) override
                |          ^~~~~~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1150:21: error: ‘using scriptnode::math::NeuralNode<1>::BypassWrapper = class scriptnode::bypass::simple<scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic> >’ {aka ‘class scriptnode::bypass::simple<scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic> >’} has no member named ‘warmup’
           1150 |                 obj.warmup = getRootNetwork()->getMainController()->getExtraDefinitionsValue("HISE_NEURAL_NETWORK_WARMUP_TIME", 0);
                |                 ~~~~^~~~~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp: In instantiation of ‘void scriptnode::math::NeuralNode<NV>::prepare(scriptnode::PrepareSpecs) [with int NV = 256; scriptnode::PrepareSpecs = snex::Types::PrepareSpecs]’:
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1143:10:   required from here
           1143 |     void prepare(PrepareSpecs ps) override
                |          ^~~~~~~
          ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1150:21: error: ‘using scriptnode::math::NeuralNode<256>::BypassWrapper = class scriptnode::bypass::simple<scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic> >’ {aka ‘class scriptnode::bypass::simple<scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic> >’} has no member named ‘warmup’
           1150 |                 obj.warmup = getRootNetwork()->getMainController()->getExtraDefinitionsValue("HISE_NEURAL_NETWORK_WARMUP_TIME", 0);
                |                 ~~~~^~~~~~
          

          Free HISE Bootcamp Full Course for beginners.
          YouTube Channel - Public HISE tutorials
          My Patreon - HISE tutorials

          David HealeyD 1 Reply Last reply Reply Quote 0
          • David HealeyD
            David Healey @David Healey
            last edited by

            @Christoph-Hart The NeuralNode errors are resolved now.

            Free HISE Bootcamp Full Course for beginners.
            YouTube Channel - Public HISE tutorials
            My Patreon - HISE tutorials

            1 Reply Last reply Reply Quote 1
            • David HealeyD
              David Healey
              last edited by

              It's strange because I've merged all your changes into my fork and I don't get the vSIMD errors there, I've poked around in the juicer project too but I'm not sure what the difference is.

              Free HISE Bootcamp Full Course for beginners.
              YouTube Channel - Public HISE tutorials
              My Patreon - HISE tutorials

              Christoph HartC 1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart @David Healey
                last edited by

                @d-healey the avx flag?

                David HealeyD 2 Replies Last reply Reply Quote 0
                • David HealeyD
                  David Healey @Christoph Hart
                  last edited by David Healey

                  @Christoph-Hart That wasn't changed in the commit. Also looks like that's just a Windows flag.

                  Free HISE Bootcamp Full Course for beginners.
                  YouTube Channel - Public HISE tutorials
                  My Patreon - HISE tutorials

                  1 Reply Last reply Reply Quote 0
                  • David HealeyD David Healey referenced this topic on
                  • David HealeyD
                    David Healey @Christoph Hart
                    last edited by

                    @Christoph-Hart Bump bump

                    Free HISE Bootcamp Full Course for beginners.
                    YouTube Channel - Public HISE tutorials
                    My Patreon - HISE tutorials

                    1 Reply Last reply Reply Quote 0
                    • iamlampreyI
                      iamlamprey
                      last edited by

                      just began my linux HISE journey and also getting this error on a clean install 🙂

                      David HealeyD 1 Reply Last reply Reply Quote 0
                      • David HealeyD
                        David Healey @iamlamprey
                        last edited by

                        @iamlamprey Yeah I'm not sure what's causing it because it works on my fork and I've merged all of Christoph's changes. I need to do a diff and see if I can find the source of the issue but I don't have time at the moment.

                        Free HISE Bootcamp Full Course for beginners.
                        YouTube Channel - Public HISE tutorials
                        My Patreon - HISE tutorials

                        iamlampreyI 1 Reply Last reply Reply Quote 0
                        • iamlampreyI
                          iamlamprey @David Healey
                          last edited by

                          @d-healey Clanker found it for me:

                          HISE/hi_streaming/hi_streaming/MonolithAudioFormat.cpp

                          juce::AudioFormatReader* HlacMonolithInfo::createUserInterfaceReader(int sampleIndex, int channelIndex, int64 realSampleLength)
                          {
                          	if (isPositiveAndBelow(sampleIndex, sampleInfo.size()))
                          	{
                          		const auto& info = sampleInfo[sampleIndex];
                          
                          		const int64 start = info.start;
                          
                          		// replace this (line 370):
                          		const int64 length = jmin<int64>(realSampleLength, info.length);
                          
                          		// with this:
                          		const int64 length = std::min<int64>(realSampleLength, info.length);
                          
                          		// or this:
                          		const int64 length = jmin((int64) realSampleLength, (int64) info.length);
                          
                          		// rest of function
                          	}
                          }
                          

                          @Christoph-Hart Simple fix above, not sure which version is better but the std::min one works for the latest Ubuntu LTS

                          David HealeyD 2 Replies Last reply Reply Quote 0
                          • David HealeyD
                            David Healey @iamlamprey
                            last edited by

                            @iamlamprey said in Invalid use of incomplete type vSIMDType:

                            Clanker

                            What this?

                            Free HISE Bootcamp Full Course for beginners.
                            YouTube Channel - Public HISE tutorials
                            My Patreon - HISE tutorials

                            iamlampreyI 1 Reply Last reply Reply Quote 0
                            • iamlampreyI
                              iamlamprey @David Healey
                              last edited by

                              @d-healey chatGPT lol

                              1 Reply Last reply Reply Quote 1
                              • David HealeyD
                                David Healey @iamlamprey
                                last edited by

                                @iamlamprey said in Invalid use of incomplete type vSIMDType:

                                Clanker found it for me:

                                I think it's lying to you again. This is the line in my fork and it compiles without issue

                                https://github.com/davidhealey/HISE/blob/development/hi_streaming/hi_streaming/MonolithAudioFormat.cpp#L371

                                Free HISE Bootcamp Full Course for beginners.
                                YouTube Channel - Public HISE tutorials
                                My Patreon - HISE tutorials

                                iamlampreyI OrvillainO David HealeyD 3 Replies Last reply Reply Quote 0
                                • iamlampreyI
                                  iamlamprey @David Healey
                                  last edited by

                                  @d-healey I'm not sure if it's lying necessarily, more likely there's multiple ways to skin a cat

                                  Either way it worked on my end, tested on Ubuntu LTS and the latest Mint

                                  1 Reply Last reply Reply Quote 0
                                  • OrvillainO
                                    Orvillain @David Healey
                                    last edited by

                                    @d-healey I think this is a Linux compiler thing. On Linux int64_t is defined as long int - whereas Windows and Mac it is defined as long long int.

                                    The compiler is throwing a wobbly because of that.

                                    I think.

                                    Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                    Crafting sound at every level. From strings to signal paths, samples to systems.

                                    David HealeyD 1 Reply Last reply Reply Quote 0
                                    • David HealeyD
                                      David Healey @Orvillain
                                      last edited by

                                      @Orvillain said in Invalid use of incomplete type vSIMDType:

                                      I think this is a Linux compiler thing.

                                      Linux user here

                                      Free HISE Bootcamp Full Course for beginners.
                                      YouTube Channel - Public HISE tutorials
                                      My Patreon - HISE tutorials

                                      OrvillainO 1 Reply Last reply Reply Quote 0
                                      • OrvillainO
                                        Orvillain @David Healey
                                        last edited by Orvillain

                                        @David-Healey said in Invalid use of incomplete type vSIMDType:

                                        @Orvillain said in Invalid use of incomplete type vSIMDType:

                                        I think this is a Linux compiler thing.

                                        Linux user here

                                        Yeah I know. You're getting the issue with the dev branch but not your fork right? Your error:

                                        ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/containers/juce_SIMDRegister.h:85:11:
                                        error: invalid use of incomplete type ‘using juce::dsp::SIMDRegister<long long int>::NativeOps = struct juce::dsp::SIMDNativeOps<long long int>’
                                        {aka ‘struct juce::dsp::SIMDNativeOps<long long int>’}
                                        

                                        That is telling you that SIMDRegister/SIMDNativeOps is being used incorrectly. The only thing I can think of is that it is being called with long long int, which is correct for Windows and Mac... but on Linux I think it should be called with long int - not long long int.

                                        I'd check that line in your fork and dev branch and make sure it is the same, if you haven't already.

                                        Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                        Crafting sound at every level. From strings to signal paths, samples to systems.

                                        David HealeyD 1 Reply Last reply Reply Quote 0
                                        • David HealeyD
                                          David Healey @Orvillain
                                          last edited by

                                          @Orvillain That line is in a JUCE module, we no touch those.

                                          Free HISE Bootcamp Full Course for beginners.
                                          YouTube Channel - Public HISE tutorials
                                          My Patreon - HISE tutorials

                                          OrvillainO 1 Reply Last reply Reply Quote 0
                                          • OrvillainO
                                            Orvillain @David Healey
                                            last edited by Orvillain

                                            @David-Healey Well I don't know what else to tell you: https://forum.juce.com/t/int64-t-vs-juce-int64/45358

                                            As reported here - it is a typedef issue, specifically affecting Linux compiles.

                                            Actually, I might have that wrong. That thread is about juce:int_64.

                                            Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                            Crafting sound at every level. From strings to signal paths, samples to systems.

                                            David HealeyD 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            27

                                            Online

                                            2.1k

                                            Users

                                            13.1k

                                            Topics

                                            113.5k

                                            Posts