[Development] Using SSE/NEON in Qt 6

Allan Sandfeld Jensen kde at carewolf.com
Thu Feb 6 21:54:44 CET 2020


On Donnerstag, 6. Februar 2020 21:17:02 CET Lars Knoll wrote:
> > On 6 Feb 2020, at 19:29, Allan Sandfeld Jensen <kde at carewolf.com> wrote:
> > making the default SSE4.1 enabled but still offer users (linux distros 
> > really), the option to force it down to only SSE2. 
> 
> 
> We should at least default to SSE2 as the minimum requirement. We’ll anyway
> need some pure C/C++ code as fallback, so if someone really needs to run it
> on a CPU from 1999, he can compile things with SSE turned off.

Isn't that the current status?. The question is if we should now do the same 
for SSE4 we have been doing for SSE2 the last several years. Or do you mean we 
perhaps now can remove the option to non-SSE2?

> > 
> > You could do the same with NEON, but I think we already use that 
> > unconditionally if detected at configure time.
> 
> 
> We do use NEON conditionally in some cases (e.g. qimagescale.cpp), but for
> most embedded devices it simply makes most sense to do the choice at Qt
> configuration time.
 
Hmm, all the NEON-runtime check got disabled long ago when we had issues with 
instructions leaking from one compile unit to another through headers. That 
issue later got solved when it also threatened x86 by leaking AVX 
instructions, and while I never reinstated the removed runtime checks for NEON 
in painting code, I do appear to have written new runtime switches where I 
added new NEON code (at least in qimagescale.cpp) Didn't even remember I did 
that, or why. That probably makes it limited to only a few places in image 
handling, and it probably shouldn't be there either.

Cheers
'Allan




More information about the Development mailing list