The big CPU topic (and Qt5?)

For the generic offtopic chit-chat
Dayman

The big CPU topic (and Qt5?)

Post by Dayman »

RC1 is already out. Are we going to do some porting?
Btw Qt's configure now requires perl (the one in root folder for sure).

The configure has the following options now:

Code: Select all

Installation options:

These are optional, but you may specify install directories.

    -prefix <dir> ...... This will install everything relative to <dir> 
                         (default $QT_INSTALL_PREFIX)

    -hostprefix [dir] .. Tools and libraries needed when developing 
                         applications are installed in [dir]. If [dir] is not 
                         given, the current build directory will be used. 
                         (default PREFIX)

You may use these to separate different parts of the install:

    -bindir <dir> ...... User executables will be installed to <dir>
                         (default PREFIX/bin)
    -libdir <dir> ...... Libraries will be installed to <dir>
                         (default PREFIX/lib)
    -headerdir <dir> ... Headers will be installed to <dir>
                         (default PREFIX/include)
    -archdatadir <dir> . Architecture-dependent data used by Qt will be 
                         installed to <dir>
                         (default PREFIX)
    -libexecdir <dir> .. Program executables will be installed to <dir>
                         (default ARCHDATADIR/libexec)
    -plugindir <dir> ... Plugins will be installed to <dir>
                         (default ARCHDATADIR/plugins)
    -importdir <dir> ... Imports for QML1 will be installed to <dir>
                         (default ARCHDATADIR/imports)
    -qmldir <dir> ...... Imports for QML2 will be installed to <dir>
                         (default ARCHDATADIR/qml)
    -datadir <dir> ..... Data used by Qt programs will be installed to <dir>
                         (default PREFIX)
    -docdir <dir> ...... Documentation will be installed to <dir>
                         (default DATADIR/doc)
    -translationdir <dir> Translations of Qt programs will be installed to 
                          <dir>
                          (default DATADIR/translations)
    -examplesdir <dir> . Examples will be installed to <dir>
                         (default PREFIX/examples)
    -testsdir <dir> .... Tests will be installed to <dir>
                         (default PREFIX/tests)

    -hostbindir <dir> .. Host executables will be installed to <dir>
                         (default HOSTPREFIX/bin)
    -hostdatadir <dir> . Data used by qmake will be installed to <dir>
                         (default HOSTPREFIX)

Configure options:

 The defaults (*) are usually acceptable. A plus (+) denotes a default value 
 that needs to be evaluated. If the evaluation succeeds, the feature is 
 included. Here is a short explanation of each option:

    -release ........... Compile and link Qt with debugging turned off.
 *  -debug ............. Compile and link Qt with debugging turned on.
 +  -debug-and-release . Compile and link two Qt libraries, with and without 
                         debugging turned on.

    -force-debug-info .. Create symbol files for release builds.

    -developer-build ... Compile and link Qt with Qt developer options 
                         (including auto-tests exporting)

    -opensource ........ Compile and link the Open-Source Edition of Qt.
    -commercial ........ Compile and link the Commercial Edition of Qt.

    -c++11 ............. Compile Qt with C++11 support enabled.
    -no-c++11 .......... Do not compile Qt with C++11 support enabled.

 *  -shared ............ Create and use shared Qt libraries.
    -static ............ Create and use static Qt libraries.

    -ltcg .............. Use Link Time Code Generation. (Release builds only)
 *  -no-ltcg ........... Do not use Link Time Code Generation.

 *  -no-fast ........... Configure Qt normally by generating Makefiles for all 
                         project files.
    -fast .............. Configure Qt quickly by generating Makefiles only for 
                         library and subdirectory targets.  All other Makefiles
                         are created as wrappers which will in turn run qmake.

    -make <part> ....... Add part to the list of parts to be built at make time
                           libs
                           tools
                           examples
    -nomake <part> ..... Exclude part from the list of parts to be built.

    -no-widgets ........ Disable QtWidgets module.

    -no-accessibility .. Do not compile Windows Active Accessibility support.
 *  -accessibility ..... Compile Windows Active Accessibility support.

    -no-sql-<driver> ... Disable SQL <driver> entirely, by default none are 
                         turned on.
    -qt-sql-<driver> ... Enable a SQL <driver> in the Qt Library.
    -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to at run
                         time.
                         Available values for <driver>:
                           mysql
                           psql
                           oci
                           odbc
                           tds
                           db2
 +                         sqlite
                           sqlite2
                           ibase
                         (drivers marked with a '+' have been detected as 
                         available on this system)

    -system-sqlite ..... Use sqlite from the operating system.

    -no-opengl ......... Do not support OpenGL.
    -opengl <api> ...... Enable OpenGL support with specified API version.
                         Available values for <api>:
                           desktop - Enable support for Desktop OpenGL
                           es1 - Enable support for OpenGL ES Common Profile
 *                         es2 - Enable support for OpenGL ES 2.0

 *  -no-openvg ......... Disables OpenVG functionality.
    -openvg ............ Enables OpenVG functionality.

    -force-asserts ..... Activate asserts in release mode.

    -platform <spec> ... The operating system and compiler you are building on.
                         (default %QMAKESPEC%)

    -xplatform <spec> .. The operating system and compiler you are cross 
                         compiling to.

                         See the README file for a list of supported operating 
                         systems and compilers.

    -sysroot <dir> ..... Sets <dir> as the target compiler's and qmake's 
                         sysroot and also sets pkg-config paths.
    -no-gcc-sysroot .... When using -sysroot, it disables the passing of 
                         --sysroot to the compiler.

 *  -no-nis ............ Do not compile NIS support.
    -nis ............... Compile NIS support.

    -neon .............. Enable the use of NEON instructions.
 *  -no-neon ........... Do not enable the use of NEON instructions.

    -no-iconv .......... Do not enable support for iconv(3).
 +  -iconv ............. Enable support for iconv(3).
 +  -sun-iconv ......... Enable support for iconv(3) using sun-iconv.
 +  -gnu-iconv ......... Enable support for iconv(3) using gnu-libiconv.

 +  -inotify ........... Explicitly enable Qt inotify(7) support.
    -no-inotify ........ Explicitly disable Qt inotify(7) support.

 *  -largefile ......... Enables Qt to access files larger than 4 GB.

    -fontconfig ........ Build with FontConfig support.
 *  -no-fontconfig ..... Do not build with FontConfig support.

    -posix-ipc ......... Enable POSIX IPC.

    -glib .............. Compile Glib support.

    -sysconfdir <dir> .. Settings used by Qt programs will be looked for in
                         <dir>.

    -system-proxies .... Use system network proxies by default.
 *  -no-system-proxies . Do not use system network proxies by default.

    -qtnamespace <name> Wraps all Qt library code in 'namespace name {...}'.
    -qtlibinfix <infix> Renames all Qt* libs to Qt*<infix>.

    -D <define> ........ Add an explicit define to the preprocessor.
    -I <includepath> ... Add an explicit include path.
    -L <librarypath> ... Add an explicit library path.
    -l <libraryname> ... Add an explicit library name, residing in a 
                         librarypath.

    -help, -h, -? ...... Display this information.

Third Party Libraries:

    -qt-zlib ........... Use the zlib bundled with Qt.
 +  -system-zlib ....... Use zlib from the operating system.
                         See http://www.gzip.org/zlib

    -qt-pcre ........... Use the PCRE library bundled with Qt.
    -system-pcre ....... Use the PCRE library from the operating system.
                         See http://pcre.org/

 +  -icu ............... Use the ICU library.
    -no-icu ............ Do not use the ICU library.
                         See http://site.icu-project.org/

    -no-gif ............ Do not compile GIF reading support.

    -no-libpng ......... Do not compile PNG support.
    -qt-libpng ......... Use the libpng bundled with Qt.
 +  -system-libpng ..... Use libpng from the operating system.
                         See http://www.libpng.org/pub/png

    -no-libjpeg ........ Do not compile JPEG support.
    -qt-libjpeg ........ Use the libjpeg bundled with Qt.
 +  -system-libjpeg .... Use libjpeg from the operating system.
                         See http://www.ijg.org

    -no-freetype ....... Do not compile in Freetype2 support.
 *  -qt-freetype ....... Use the libfreetype bundled with Qt.
 *  -system-freetype ... Use the libfreetype provided by the system.
 +  -angle ............. Use the ANGLE implementation of OpenGL ES 2.0.
    -no-angle .......... Do not use ANGLE.
                         See http://code.google.com/p/angleproject/


Qt for Windows only:

    -no-vcproj ......... Do not generate VC++ .vcproj files.
 *  -vcproj ............ Generate VC++ .vcproj files, only if platform 
                         "win32-msvc.net".

    -no-incredibuild-xge Do not add IncrediBuild XGE distribution commands to 
                         custom build steps.
 +  -incredibuild-xge .. Add IncrediBuild XGE distribution commands to custom 
                         build steps. This will distribute MOC and UIC steps, 
                         and other custom buildsteps which are added to the 
                         INCREDIBUILD_XGE variable.
                         (The IncrediBuild distribution commands are only added
                         to Visual Studio projects)

    -no-plugin-manifests Do not embed manifests in plugins.
 *  -plugin-manifests .. Embed manifests in plugins.

    -no-qmake .......... Do not compile qmake.
 *  -qmake ............. Compile qmake.

 *  -process ........... Generate top-level Makefiles/Project files.
    -fully-process ..... Generate Makefiles/Project files for the entire Qt
                         tree.
    -dont-process ...... Do not generate Makefiles/Project files. This will 
                         override -no-fast if specified.

    -no-rtti ........... Do not compile runtime type information.
 *  -rtti .............. Compile runtime type information.
    -no-strip .......... Do not strip libraries and executables of debug info 
                         when installing.
 *  -strip ............. Strip libraries and executables of debug info when 
                         installing.

    -no-sse2 ........... Do not compile with use of SSE2 instructions.
 +  -sse2 .............. Compile with use of SSE2 instructions.
    -no-sse3 ........... Do not compile with use of SSE3 instructions.
 +  -sse3 .............. Compile with use of SSE3 instructions.
    -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
 +  -ssse3 ............. Compile with use of SSSE3 instructions.
    -no-sse4.1 ......... Do not compile with use of SSE4.1 instructions.
 +  -sse4.1 ............ Compile with use of SSE4.1 instructions.
    -no-sse4.2 ......... Do not compile with use of SSE4.2 instructions.
 +  -sse4.2 ............ Compile with use of SSE4.2 instructions.
    -no-avx ............ Do not compile with use of AVX instructions.
 +  -avx ............... Compile with use of AVX instructions.
    -no-avx2 ........... Do not compile with use of AVX2 instructions.
 +  -avx2 .............. Compile with use of AVX2 instructions.

    -no-openssl ........ Do not compile support for OpenSSL.
 +  -openssl ........... Enable run-time OpenSSL support.
    -openssl-linked .... Enable linked OpenSSL support.

    -no-dbus ........... Do not compile in D-Bus support.
 +  -dbus .............. Compile in D-Bus support and load libdbus-1
                         dynamically.
    -dbus-linked ....... Compile in D-Bus support and link to libdbus-1.

    -no-audio-backend .. Do not compile in the platform audio backend into
                         QtMultimedia.
 +  -audio-backend ..... Compile in the platform audio backend into 
                         QtMultimedia.

    -no-qml-debug ...... Do not build the in-process QML debugging support.
 *  -qml-debug ......... Build the in-process QML debugging support.

 *  -no-directwrite .... Do not build support for DirectWrite font rendering.
    -directwrite ....... Build support for DirectWrite font rendering 
                         (experimental, requires DirectWrite availability on 
                         target systems, e.g. Windows Vista with Platform 
                         Update, Windows 7, etc.)

    -no-style-<style> .. Disable <style> entirely.
    -qt-style-<style> .. Enable <style> in the Qt Library.
                         Available styles: 
 *                         windows
 +                         windowsxp
 +                         windowsvista
 *                         fusion
                           windowsce
                           windowsmobile

    -no-native-gestures Do not use native gestures on Windows 7.
 *  -native-gestures ... Use native gestures on Windows 7.

 *  -no-mp ............. Do not use multiple processors for compiling with MSVC
    -mp ................ Use multiple processors for compiling with MSVC (-MP).

    -loadconfig <config> Run configure with the parameters from file configure_
                         <config>.cache.
    -saveconfig <config> Run configure and save the parameters in file 
                         configure_<config>.cache.
    -redo .............. Run configure with the same parameters as last time.

Qt for Windows CE only:

    -no-iwmmxt ......... Do not compile with use of IWMMXT instructions.
 +  -iwmmxt ............ Do compile with use of IWMMXT instructions. (Qt for 
                         Windows CE on Arm only)

 *  -no-crt ............ Do not add the C runtime to default deployment rules.
    -qt-crt ............ Qt identifies C runtime during project generation.
    -crt <path> ........ Specify path to C runtime used for project generation.

    -no-cetest ......... Do not compile Windows CE remote test application.
 +  -cetest ............ Compile Windows CE remote test application.

    -signature <file> .. Use <file> for signing the target project.
And these options are gone:

Code: Select all

[-no]-exceptions
[-no]-stl
-no-xmlpatterns
[-no]-qt3support
-graphicssystem <value>
-[qt|no]-libmng
-[qt|no]-libtiff
[-no]-dsp
[-no]-3dnow
[-no]-mmx
[-no]-sse
[-no]-phonon
[-no]-phonon-backend
[-no]-multimedia
[-no]-webkit
[-no]-script
[-no]-scripttools
[-no]-declarative
[-no]-declarative-debug
-[no|qt]-style-s60
-[no|qt]-style-cde
-[no|qt]-style-motif
-[no|qt]t-style-cleanlooks
-[no|qt]-style-plastique
Most notable changes: sse3, ssse3, sse4.1, sse4.2, avx, avx2; removal of qt styles (like cleanlooks and plastique; and as far as i remember qBt needs -qt-style-cleanlooks -qt-style-plastique) and addition of qt-fusion style; building webkit now requires ICU library.
SSE stuff seems to have runtime checks (I hope): saw no usual -DQT_HAS_MMX during QtCore compilation. Or maybe they removed SSE defines from all modules except QtOpenGL (it was used only there anyway). "-qt-freetype" and "-qt-pcre"; Qt now has freetype and libpcre bundled.

P.S. I'm not able to build stuff continuously now (bought new CPU and still have old cooler - sky high temps on full load, even setting process affinity doesn't help).

Edit:
Just looked through qmakespecs

Code: Select all

QMAKE_CFLAGS_SSE2       = -arch:SSE2
QMAKE_CFLAGS_SSE3       = -arch:SSE2
QMAKE_CFLAGS_SSSE3      = -arch:SSE2
QMAKE_CFLAGS_SSE4_1     = -arch:SSE2
QMAKE_CFLAGS_SSE4_2     = -arch:SSE2
QMAKE_CFLAGS_AVX        = -arch:AVX
QMAKE_CFLAGS_AVX2       = -arch:AVX
Looks like no asm code is used and everything is decided by compiler.
Attaching screenshot of typical dynamic build for qBt (to compare size). QtGui now consists of two modules: gui and widgets.
Attachments
Qt5.png
Last edited by Dayman on Fri Dec 14, 2012 6:13 pm, edited 1 time in total.
User avatar
Peter
Administrator
Administrator
Posts: 2702
Joined: Wed Jul 07, 2010 6:14 pm

Re: Qt5?

Post by Peter »

You could simply downclock the CPU I guess (if you want to compile that much).
Dayman

Re: Qt5?

Post by Dayman »

[quote="shiki"]
You could simply downclock the CPU I guess (if you want to compile that much).
[/quote]
I never thought that good old Big Typhoon could fail me :(
User avatar
Peter
Administrator
Administrator
Posts: 2702
Joined: Wed Jul 07, 2010 6:14 pm

Re: Qt5?

Post by Peter »

What kind of beast did you buy anyway? :D
Dayman

Re: Qt5?

Post by Dayman »

Nothing extraordinary, just Phenom II x4 955.
User avatar
Peter
Administrator
Administrator
Posts: 2702
Joined: Wed Jul 07, 2010 6:14 pm

Re: Qt5?

Post by Peter »

That's weird. Did you apply a proper thermal paste on the CPU?
We have a Phenom x6 here on 4.0ghz or so with air cooling. Though, it's got a custom cooler.
On the other PC we have an Athlon II running on 4.1 with the default Phenom cooler. :D
Dayman

Re: Qt5?

Post by Dayman »

[quote="shiki"]
That's weird. Did you apply a proper thermal paste on the CPU?
We have a Phenom x6 here on 4.0ghz or so with air cooling. Though, it's got a custom cooler.
On the other PC we have an Athlon II running on 4.1 with the default Phenom cooler. :D
[/quote]
Of course I did.
Well, maybe its all my imaginations, but 75º full load might be quite high: CPU reports 70º as max temp and AMD specs say 62º is max.
loki

Re: Qt5?

Post by loki »

I noticed the Phenom II has an abnormally low max temp. But also, the stock cooling fans on these (the ones that come with the boxed cpu's) were unchanged from previous design versions... almost requiring, in anything other than ideal/perfect conditions, you to purchase your own 3rd party cooler to get any satisfactory performance out of it.
User avatar
Peter
Administrator
Administrator
Posts: 2702
Joined: Wed Jul 07, 2010 6:14 pm

Re: Qt5?

Post by Peter »

This applies to i7 as well. The stock cooler is just not enough.
Dayman

Re: Qt5?

Post by Dayman »

tekko

Re: Qt5?

Post by tekko »

maybe your vcore went up too high...

http://www.tomshardware.com/reviews/ove ... 366-9.html
Dayman

Re: Qt5?

Post by Dayman »

I do no OC, except for RAM (which is not OCed in common understanding - just using EPP profile); that means VCore and all other stuff is adjusted by system.
tekko

Re: Qt5?

Post by tekko »

try lowering the vcore in bios manually?    your vcore went over 1.5v while that link shows only 1.328V for stock clock

try using cpuz to see how the clock is changing while prime95 is running.

http://www.cpuid.com/softwares/cpu-z.html
Last edited by tekko on Tue Dec 11, 2012 8:50 pm, edited 1 time in total.
Dayman

Re: Qt5?

Post by Dayman »

Lots of stuff to do. Moc is bugged atm (https://bugreports.qt-project.org/browse/QTBUG-27546), getting patches.
Avelon

Re: Qt5?

Post by Avelon »

Maybe it was too much of the heat paste. That's a tricky part. Enough to get sticky without bubbles and not more than that. Old credit cards are a good tool to make it very thin.
But then, on the other side, those Phenoms tend to be 'heaty.'

Even after the test your temperature is 2°C above it's limits. Maybe you can look up some settings in BIOS/UEFI to lower the time frame for the fan to run faster. Better to cool that thing down earlier than late.

But then I think: This cooler-fan was primarily designed for Dual Cores and it did some good work then. Maybe it's the architecture with quad-cores to which it comes down. Average temps should be at 50°C with 1.5V and 4Ghz.
By the way: your graphic shows very well the fact that an increase in 0,1 V consumes 20 W :)
I'm still waiting for my contract with the local power plant to finally install new graphic cards and processors :D
Post Reply