HomePhabricator

Fix QPainter non-determinism on macOS

Description

Fix QPainter non-determinism on macOS

Summary:
Aplies a patch to Qt that fixes the non-determinism by modifying Qt. The
source of the non-determinism is how LLVM 8 optimizes qt_intersect_spans
when compiling. The particular optimization that seems to be causing the
problems is that a temp variable is being added for spans->y. For some
reason, when it does this, it chooses different instructions to use when
making that variable. We bypass this problem by patching
qt_intersect_spans to always make and use this local variable.

This is a backport of core#20447

Test Plan: gitian builds, cross compilation builds, guix build

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D13789

Details

Provenance
Andrew Chow <achow101-github@achow101.com>Authored on Nov 21 2020, 06:51
PiRKCommitted on Apr 26 2023, 15:57
PiRKPushed on Apr 26 2023, 15:57
Reviewer
Restricted Project
Differential Revision
D13789: Fix QPainter non-determinism on macOS
Parents
rABC2cc866019038: [Chronik] Allow subscribing to WebSocket script updates
Branches
Unknown
Tags
Unknown