[Interest] Replacement for Qt4 QMatrix4x4?

Thiago Macieira thiago.macieira at intel.com
Fri Feb 22 23:51:18 CET 2019

On Friday, 22 February 2019 01:27:49 PST Christian Gagneraud wrote:
> > One of the two reasons the commit message says was to avoid the surprise
> > in
> > that it used float in embedded platforms (read: ARM). That rationale is no
> > longer applicable, as we changed qreal to be double in all platforms about
> > one year later: http://code.qt.io/cgit/qt/qtbase.git/commit/?
> > id=d8bf317546bcfab0b6b50375218429fa9d470705
> I don't know who's "we" in your sentence, but in mine "we" are still
> configuring Qt5 with qreal=float for arm v5, v6 and v7.

"We" was "Qt developers".

> The decision was taken after a performance assessment, and it was
> deemed "worth it".

And that's exactly why we (same definition) decided to leave it as an option, 
plus it allowed binary compatibility to be retained for those who wished/
needed it.

> I'm not saying it is a good idea, i'm just saying that it brought
> performance up. I as well speculate that we are likely to drop it with
> arm v8.

I'm now closing on 8 years since I had to deal with ARM chips, but from what I 
remember the issue was in the old Cortex-A8, which had poor double-precision 
performance, but Cortex-A9 had that solved. Cortex-A9 was coming online at the 
time left Nokia, in 2011, so I expected this not to be a problem in 2020.

The commit message above (from 2013) says "on modern ARM CPUs there's no 
performance difference". I didn't do the benchmarking myself, I just wrote 
what I was told.

> If you do not want to support qreal=float anymore, please do not allow
> ./configure to make that choice and maybe get rid of qreal typedef,
> and delete qreal from Qt6 API while you're at it.

Unlikely we can remove the typedef, see discussion in the bug report. Removing 
the configure option will happen for Qt 6.

> Would you consider making arm v8 the minimum requirement for Qt6?

Unlikely and not my call. As I said, I don't deal with ARM these days.

How about choosing a CPU that can issue two 8-double multiply-adds per cycle? 
Ok, that's not an embedded platform...

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products

More information about the Interest mailing list