[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