Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt WebKit
  4. Compile Qt5.x + webkit without mmx support
Forum Updated to NodeBB v4.3 + New Features

Compile Qt5.x + webkit without mmx support

Scheduled Pinned Locked Moved Qt WebKit
6 Posts 2 Posters 3.0k Views 1 Watching
  • 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.
  • T Offline
    T Offline
    tpham3783
    wrote on last edited by
    #1

    Hi,

    In previous version of qt (4.x), one can configure qt with option -no-mmx. In newer versions, that option is no longer applicable. I have been mucking around the source code and couldn't find a way to disable MMX support. Please let me know if there is a way to disable multi-media instructions (MMX) in qt5 and also webkit. Thank you.

    toan

    1 Reply Last reply
    0
    • T Offline
      T Offline
      tobias.hunger
      wrote on last edited by
      #2

      I think MMX can no longer get disabled.

      Considering that WebKit requires SSE2, I do not think you can disable that (or MMX) in qt webkit.

      There is currently a discussion of requiring SSE2 for the rest of Qt ongoing in the development mailing list.

      1 Reply Last reply
      0
      • T Offline
        T Offline
        tpham3783
        wrote on last edited by
        #3

        "Considering that WebKit requires SSE2, I do not think you can disable that (or MMX) in qt webkit."

        I was building QT-5.0.2, and the config package accepted the options:

        -no-sse2 -no-sse3 no-sse4.2 etc....

        I used to build firefox 2.0 to firefox 9.0 and mmx was always a configurable option to disable. The code to run mmx instructions is usually in this form:

        #ifdef MMX
        /* Run mmx code /
        #else
        /
        Run platform independent code */
        #endif

        MMX is an architecture dependent code; and it theory it should be configurable. If MMX is an absolute requirement, I dont see how webkit is cross-platform, ie to ARM. There must be a way.

        My webkit browser is currently crashing when the javascript engine was trying to run mmx code, on non-mmx CPU. Please help.

        Thanks

        1 Reply Last reply
        0
        • T Offline
          T Offline
          tobias.hunger
          wrote on last edited by
          #4

          http://www.macieira.org/blog/2012/06/avx-optimised-raster-painting-for-windows-too/ is about Thiago's efforts to removing MMX code from Qt 5 and introducing SSE2/AVX code instead. So from what I understand there is no more MMX code in Qt... but SSE2 code instead (which is a enhancement of MMX).

          It can be configurable, yes. But developers can also decide that all the CPUs they care about have that feature anyway and then no longer bother to do that, removing the fallback code. That makes maintenance much simpler (no more code that is not build most of the time!). The discussion to do just that for SSE2 is here: http://lists.qt-project.org/pipermail/development/2013-November/014085.html

          One of the arguments in favor of requiring SSE2 for all of Qt in the hallway meeting mentioned in the mail was that Qt WebKit requires SSE2 already. I never checked that myself though. So I am pretty sure SSE2 is a requirement for Qt 5 on intel/AMD chips nowadays. But feel free to ask on the mailing list... they will know better than me! I tend to not care too much about older hardware:)

          1 Reply Last reply
          0
          • T Offline
            T Offline
            tpham3783
            wrote on last edited by
            #5

            Tobias,

            I just read the email chain by "Thiago Macieira" on qt5 sse2 support. The email notified developers that SSE2 is enabled by default from version >=5.3.0.

            I read further on the impact that will bring to developers like myself and I was sadden to hear:

            "We honestly do not expect anyone who's actually building Qt 5 from sources to be targetting a CPU made prior to 2004 (with the exception of the 2013 Intel Quark). There may be a few people who download from sources and try to run on CPUs older than Intel Pentium-M, Intel Pentium 4, AMD Opteron and Athlon 64. Those people will be forced to switch to a source build instead."

            1 Reply Last reply
            0
            • T Offline
              T Offline
              tpham3783
              wrote on last edited by
              #6

              Tobias,

              I found out that the root cause of the crash is indeed, JavascriptCore engine w as executing mmx instruction. I looked through qt source and found that one can use JavascriptCore engine or V8 (another javascript engine from google). However, I was not able to find any reference to build V8 javascript engine, instead of JavascriptCore. Please let me know if you or anyone knows how to do it.

              thanks

              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved