<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Greetings,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am using the cross-compilation instructions from the QT project to build the Gallium llvmpipe software driver for Windows (Mesa 10.0.4, LLVM 3.4, x86):
<a href="http://qt-project.org/wiki/Cross-compiling-Mesa-for-Windows">http://qt-project.org/wiki/Cross-compiling-Mesa-for-Windows</a>. I am building on Linux Mint 14 (based on Ubuntu 12.10). The purpose is to replace the Microsoft OpenGL software drive with
 the Mesa version when my program is used in a Remote Desktop (RDP) session.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The build is successful and the resulting driver renders my graphics properly. However, I noticed that only one CPU thread is used by my program for OpenGL rendering rather than using my eight available CPU threads (my processor is an Intel
 Core i7 Sandybridge processor with four hyperthreaded cores). I am hoping that this is a simple build configuration issue; however, I have been unsuccessful identifying a solution.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Has anyone experienced this issue or have some suggestions to try? The script I am using for the build process is copied below.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Best regards,<o:p></o:p></p>
<p class="MsoNormal">Steve<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">--<o:p></o:p></p>
<p class="MsoNormal">#!/bin/bash<o:p></o:p></p>
<p class="MsoNormal"># Cross compiling Mesa for Windows on Linux<o:p></o:p></p>
<p class="MsoNormal"># http://qt-project.org/wiki/Cross-compiling-Mesa-for-Windows<o:p></o:p></p>
<p class="MsoNormal">#<o:p></o:p></p>
<p class="MsoNormal"># Required packages (Debian/Ubuntu):<o:p></o:p></p>
<p class="MsoNormal"># sudo apt-get install coreutils wget tar build-essential mingw-w64 libxml2 python scons flex bison<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">set -o nounset # no uninitialized variables<o:p></o:p></p>
<p class="MsoNormal">set -o errexit # exit on error<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># user-editable parameters<o:p></o:p></p>
<p class="MsoNormal">LLVM_VER=3.4<o:p></o:p></p>
<p class="MsoNormal">MESA_VER=10.0.4<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># global variables<o:p></o:p></p>
<p class="MsoNormal">LLVM_SRC=llvm-$LLVM_VER<o:p></o:p></p>
<p class="MsoNormal">LLVM_DIST=$LLVM_SRC.win32<o:p></o:p></p>
<p class="MsoNormal">MESALIB=MesaLib-$MESA_VER<o:p></o:p></p>
<p class="MsoNormal">MESA_SRC=Mesa-$MESA_VER<o:p></o:p></p>
<p class="MsoNormal">MESA_DIST=$MESA_SRC.win32<o:p></o:p></p>
<p class="MsoNormal">ROOT_DIR=$PWD<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">echo Clean prior build...<o:p></o:p></p>
<p class="MsoNormal">rm -rf $LLVM_SRC $LLVM_DIST $MESA_SRC $MESA_DIST<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">echo Download LLVM and Mesa sources...<o:p></o:p></p>
<p class="MsoNormal">if [ ! -f $LLVM_SRC.src.tar.gz ]; then<o:p></o:p></p>
<p class="MsoNormal">                wget http://llvm.org/releases/$LLVM_VER/$LLVM_SRC.src.tar.gz<o:p></o:p></p>
<p class="MsoNormal">fi<o:p></o:p></p>
<p class="MsoNormal">if [ ! -f $MESALIB.tar.gz ]; then<o:p></o:p></p>
<p class="MsoNormal">                wget ftp://ftp.freedesktop.org/pub/mesa/$MESA_VER/$MESALIB.tar.gz<o:p></o:p></p>
<p class="MsoNormal">fi<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">echo Extract sources...<o:p></o:p></p>
<p class="MsoNormal">tar xzf $LLVM_SRC.src.tar.gz<o:p></o:p></p>
<p class="MsoNormal">tar xzf $MESALIB.tar.gz<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">echo Build LLVM...<o:p></o:p></p>
<p class="MsoNormal">export PYTHON=/usr/bin/python2<o:p></o:p></p>
<p class="MsoNormal">mkdir $LLVM_SRC/build<o:p></o:p></p>
<p class="MsoNormal">cd $LLVM_SRC/build<o:p></o:p></p>
<p class="MsoNormal"># Note: Use of the strerror_s function is disabled by writing an entry to config.cache for Windows XP compatibility.<o:p></o:p></p>
<p class="MsoNormal">echo 'ac_cv_have_decl_strerror_s=${ac_cv_have_decl_strerror_s=no}' > config.cache<o:p></o:p></p>
<p class="MsoNormal">../configure -C --prefix=$ROOT_DIR/$LLVM_DIST --host=i686-w64-mingw32 --enable-optimized --disable-assertions --disable-pthreads --enable-targets=x86 --enable-bindings=none --disable-libffi --with-c-include-dirs=/usr/i686-w64-mingw32 --with-gcc-toolchain=/usr/i686-w64-mingw32
 --with-default-sysroot=/usr/i686-w64-mingw32<o:p></o:p></p>
<p class="MsoNormal">make<o:p></o:p></p>
<p class="MsoNormal">make install<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">echo Build Mesa...<o:p></o:p></p>
<p class="MsoNormal">export LLVM=$ROOT_DIR/$LLVM_DIST<o:p></o:p></p>
<p class="MsoNormal">mkdir $ROOT_DIR/$MESA_DIST<o:p></o:p></p>
<p class="MsoNormal">cd $ROOT_DIR/$MESA_SRC<o:p></o:p></p>
<p class="MsoNormal">LDFLAGS="-static -s" scons build=release platform=windows toolchain=crossmingw machine=x86 libgl-gdi<o:p></o:p></p>
<p class="MsoNormal">cp -a build/windows-x86/gallium/targets/libgl-gdi/opengl32.dll $ROOT_DIR/$MESA_DIST<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">echo $MESA_SRC build successful: $ROOT_DIR/$MESA_DIST/opengl32.dll<o:p></o:p></p>
</div>
</body>
</html>