HISE Logo Forum
    • Categories
    • Register
    • Login

    [bug] Multipage Dialogs with GCC/G++14

    Scheduled Pinned Locked Moved Bug Reports
    5 Posts 2 Posters 304 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.
    • d.healeyD
      d.healey
      last edited by

      Everything seems to compile and run with gcc/g++-14 on Debian, but multipage dialogs (like the broadcaster wizard and the new project dialog) don't render properly. They just appear as a big grey rectangle.

      The CSS renderer works, so it's not that.

      Libre Wave - Freedom respecting instruments and effects
      My Patreon - HISE tutorials
      YouTube Channel - Public HISE tutorials

      Christoph HartC 1 Reply Last reply Reply Quote 1
      • Christoph HartC
        Christoph Hart @d.healey
        last edited by

        @d-healey can you compile the multipage creator app and how does that thing look?

        What if you use the multipage dialog as script component?

        HiseSnippet 818.3ocsUs0aSCCE1tqAwJWDSBId0ZO0gpPMazsNPvFqcCpfNpnCDOfzjmsypUSribbFKZZ+C3GK+CfiSRW6tnATIxCs4b4K9Kmy24jAFMSjjnMHbsCxhEH788Flori5LhJUndcQ3G50mlXEFRgqcxhoIIBNBiW3sNG3Eqhxu94V6PCoJlXpKD5KZIS7AYjzN06fseuLLbOJWbfLZlre918XZUGcnNE3yBdMQwT1X5wh8otzp3gdGMYDB+TuM7oAM82Xy1qwa0dU+i37f0ZuYaFa8U8awDsZQYsayEqgv2YWtzpMCsTqHAdn6n4YCGo+tp3.9hLQdTnvY3iFBmbgaTmQxP9fIEmDDBWcvzR0BEkpG60WxkW3eZI6Q4AHSQLaQCW41nj++.kvyPopETZIugLiL1NMhiO2yqmB5fATn2LKUJxEU4GXuNZHCk8YQzwh8LfwEHpudylMHvOq7xZ0f9ShkbB0PhhIuhLAEky6mFZkwPypqjFpOt9xQwK2f.HuBt.GtnXGjAP10cQKLqGD2vEwBuIIOqO0LlCEkCDmZaPNi39+Ejk6PUjLcJwHnbRjXKB4apWSFJLRcZRXVCBCRfpxzJwE4r74kGRBTkqaMoBvNHUwrRshnU6qshOppuRsypsXsyqQtZnffaLl6k2nCCElaLrSaatMf0UoQGILMfxRHPoIIB8xKKPtyem.gUzKlIQspmRZ+XrnzdOcH203c2ec4DprYB284dcoVpSgU5CxKVXrRGcvcEm.yzE5sE85JRFa0w44FECkc3IfqZyi9jR03UzFHIPhpdQwnSQXOrazOaxMnqqogoIMOMjZu7Hla4SY.nrdIcsS6pRj1rYWN8OL207Vm69ao3RdCjV1naliUtANBE7+Gbrba0C71MHPvrSIXUu8957tZ5Ob7eRmZkpi6SsFoqIueZzPXqNS.mtRIBSb86JNQWgcyI8+gBEO23WvUYPemMtLn+jfnHJynOjULL41Gd2bO.mT4euXQ3CWfMwGkOfMacNBVOeHic4G00.t57Bbs4E3ymWfslWfqOu.2XdA19OCz80y2jZ0QEiMHT+A6luQBi2UQAEXtZE8ajg.tIE
        
        d.healeyD 1 Reply Last reply Reply Quote 0
        • d.healeyD
          d.healey @Christoph Hart
          last edited by d.healey

          @Christoph-Hart The creator app won't build for me, I think it's the same kind of issue we had with earlier versions of HISE, lots of errors like:

          ../../Source/Exporter.cpp:20:20: error: ‘CodeGenerator’ is not a member of ‘hise::multipage’; did you mean ‘hise::simple_css::CodeGenerator’?
             20 |         multipage::CodeGenerator cg(rootDir, projectName, exportObj);
          

          Your test snippet opens with a blank window also.

          However, I noticed that with a debug build the multipage dialogs do display properly.

          So I tried the release build with different optimisation settings. (Link time optimisation was enabled for all tests).

          -O0 - Dialogs show
          -O1 - Dialogs show
          -O2 - No dialogs
          -O3 - No dialogs

          Libre Wave - Freedom respecting instruments and effects
          My Patreon - HISE tutorials
          YouTube Channel - Public HISE tutorials

          1 Reply Last reply Reply Quote 0
          • d.healeyD d.healey referenced this topic on
          • d.healeyD
            d.healey
            last edited by

            Bump, the issue is still there with the latest version of GCC/G++.

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            1 Reply Last reply Reply Quote 0
            • d.healeyD
              d.healey
              last edited by d.healey

              @Christoph-Hart Adding -fno-strict-aliasing to the compiler flags makes the multipage dialogs show up again.

              I think it's something to do with the way the std:bind is being used in these macros, I think it's confusing the optimisation system.

              #define BIND_MEMBER_FUNCTION_0(x) std::bind(&x, this)
              #define BIND_MEMBER_FUNCTION_1(x) std::bind(&x, this, std::placeholders::_1)
              #define BIND_MEMBER_FUNCTION_2(x) std::bind(&x, this, std::placeholders::_1, std::placeholders::_2)
              #define BIND_MEMBER_FUNCTION_3(x) std::bind(&x, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)
              

              But this is way beyond my c++ foo so I could be very wrong.

              Libre Wave - Freedom respecting instruments and effects
              My Patreon - HISE tutorials
              YouTube Channel - Public HISE tutorials

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

              14

              Online

              1.7k

              Users

              11.8k

              Topics

              102.6k

              Posts