[Development] Enabling SSE2 by default on x86 builds (32-bit)
Simon Hausmann
simon.hausmann at digia.com
Wed Dec 11 09:36:46 CET 2013
On Tuesday 10. December 2013 12.06.43 Thiago Macieira wrote:
> On terça-feira, 10 de dezembro de 2013 19:52:35, Hausmann Simon wrote:
> > Would it be possible to build libQtQml for i686/SSE2, install it into
> > lib/sse2 and call it a day? I don't think it's worth shipping a pure i386
> > version of that library that's not going to perform on the hardware in
> > question - more than 10 years old and no chance for GPU acceleration the
> > way Qt needs it.
>
> Options:
>
> 1) distro builds Qt once with default flags
> [recommended by the Qt Project for specialised distros]
> => all libs use SSE2 and QtQml generates SSE2 code
>
> 2) distro builds Qt once with -no-sse2 flags
> [not recommended at all]
> => all libs compiled without SSE2
> => QtQml generates SSE2 code and will not work on older machines
>
> 3) distro build Qt once with -no-sse2 and then some libs with -config sse2
> [recommended by the Qt Project for general distros]
> => most libs compiled without SSE2, a few with SSE2 code
> => QtQml generates SSE2 code and will not work on older machines
> => for that reason, it's pointless to install it and any library that
> requires it outside of lib/sse2. Do only the sse2 builds.
Yeah, I guess this option does make most sense. Maybe it doesn't make sense to
have a non-SSE2 enabled libQtQml, but for the majority of other libs, for
example QtCore or QtGui it makes perfect sense to have a pure i386 version and
it makes sense to run it.
> If we apply the change I mentioned in the other email, we change cases 2 and
> 3:
>
> 2bis) distro builds Qt once with -no-sse2 flags
> => all libs compiled without SSE2
> => QtQml generates interpreted code only
>
> 3bis) distro builds Qt once with -no-sse2 and then some libs with -config
> sse2 => most libs compiled without SSE2, a few with SSE2 code
> => the non-SSE2 QtQml will generate interpreted code, the SSE2 one will
> generate SSE2 code and will be used only in machines less than 14 years
> old
Yep, let's do that. It's relatively painless to support this kind of build
configuration in QtQml at least.
Simon
More information about the Development
mailing list