Page MenuHomePhabricator

Fix QPainter non-determinism on macOS
ClosedPublic

Authored by PiRK on Apr 26 2023, 12:37.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Commits
rABCc400d7892062: 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

Diff Detail

Repository
rABC Bitcoin ABC
Branch
pr20447
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 23475
Build 46569: Build Diff
Build 46568: arc lint + arc unit

Event Timeline

PiRK requested review of this revision.Apr 26 2023, 12:37

@bot build-osx build-linux64 build-win64 gitian-osx gitian-linux gitian-win

@bot gitian-osx gitian-linux gitian-win

This revision is now accepted and ready to land.Apr 26 2023, 15:19