qt6-bb10/util
Thiago Macieira ea5bff8feb qsimd_x86: disable the requirement that CPUs must have RNGs
Intel CPUs have had this since 2013 (Ivy Bridge), but some older
Bulldozer AMD CPUs appear to be missing it. This creates a mismatch
between when the __haswell__ macro gets declared in qsimd_p.h and the
runtime check using the CpuArchHaswell value. That in turn creates a
condition where qInitDrawhelperFunctions() in qdrawhelper.cpp leaves the
memfill pointers set to null.

#elif defined(__SSE2__)
#  ifndef __haswell__
    qt_memfill32 = qt_memfill32_sse2;
    qt_memfill64 = qt_memfill64_sse2;
#  endif
...
#if defined(QT_COMPILER_SUPPORTS_AVX2)
    if (qCpuHasFeature(ArchHaswell)) {
        qt_memfill32 = qt_memfill32_avx2;
        qt_memfill64 = qt_memfill64_avx2;

It does this so the qt_memfillXX_sse2 functions don't have to be defined
anywhere, so the QtGui build won't carry unnecessary dead code.

This is old code (from Qt 4.x) and several improvements I've made for
QtCore are not applied yet. My work for qSimdDispatcher[1] isn't
complete: it might have avoided this problem here, but it would also
have required major work for the draw helpers to work in the first
place.

[1] https://codereview.qt-project.org/c/qt/qtbase/+/537384

Pick-to: 6.7 6.5 6.2
Fixes: QTBUG-129193
Change-Id: Ia427a9e502b0fb46b2bdfffda8e2131b7091c9e9
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 54c24313fe1e4ed58b3260189cb623a7c852ab1d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-09-25 14:43:21 +00:00
..
accessibilityinspector Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
aglfn Add REUSE ignore comment 2024-05-08 11:09:28 +00:00
cmake Bump version to 6.8.1 2024-09-19 07:20:47 +03:00
edid Add reuse ignore 2024-05-15 18:39:47 +02:00
glgen Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
gradientgen Add reuse ignore 2024-05-15 18:39:47 +02:00
includemocs Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
integrity Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
lexgen Remove extra semi-colons 2024-02-06 20:17:18 +09:00
locale_database Use replace instead of rename in localetools.py 2024-09-18 09:51:00 +00:00
plugintest Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qfloat16-tables Correct util file to reduce exceptions 2024-02-20 16:22:28 +01:00
testrunner sanitizer-testrunner.py: be verbose about FAILs being ignored 2023-10-18 18:20:14 +02:00
unicode Revise UCD-generated data files' SPDX headers 2024-04-22 15:22:12 +00:00
wasm wasm: make qtloader.js use FS.createPreloadedFile when preloading 2024-03-14 14:54:53 +00:00
x86simdgen qsimd_x86: disable the requirement that CPUs must have RNGs 2024-09-25 14:43:21 +00:00
xkbdatagen Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
update_public_suffix_list.sh update_public_suffix_list.sh: print suggested topic: 2024-01-31 21:18:47 +01:00