build, windows: Use Direct2D plugin #24838

pull hebasto wants to merge 1 commits into bitcoin:master from hebasto:220412-d2d changing 5 files +13 −4
  1. hebasto commented at 7:52 PM on April 12, 2022: member

    The default "windows" platform backend being compiled with GCC 10 in Guix environment is broken.

    This PR switches Windows backend to Direct2D.

    Pros:

    • closes bitcoin-core/gui#582
    • Direct2D is a mature API

    Cons:

    • does not work in wine on my Ubuntu 22.04 out-of-the-box

    The "direct2d" platform plugin has been available since Qt 5.3.

    Guix hashes on x86_64:

    $ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    5dbba767a2f8b9bacdd0920bfbf88c3bd415348a65eaa570c1485a2a425b2113  guix-build-388709b9f415/output/dist-archive/bitcoin-388709b9f415.tar.gz
    56c30459eb35d493e35284e7668c74ff00c164296a8aa3aeb1b2d4bcabd40eb3  guix-build-388709b9f415/output/x86_64-w64-mingw32/SHA256SUMS.part
    fff3ab1b46cce21f97b5d00269e9e189fc1ff43ea4df2ca0007c5642b11be060  guix-build-388709b9f415/output/x86_64-w64-mingw32/bitcoin-388709b9f415-win64-debug.zip
    203a72ccd040906e96b5d7b32c4b173b8903dc3cf63d6dae0032c7ac21f67472  guix-build-388709b9f415/output/x86_64-w64-mingw32/bitcoin-388709b9f415-win64-setup-unsigned.exe
    4d18037c3e0ad6eb8c4f53a3c286fd05b12c219f1f64c5c3f627a461d255ac9e  guix-build-388709b9f415/output/x86_64-w64-mingw32/bitcoin-388709b9f415-win64-unsigned.tar.gz
    5e7aa77f60f4f1bbe2404034dfacc7b58d5cd30d21bc8e56c987bb52a96f70b6  guix-build-388709b9f415/output/x86_64-w64-mingw32/bitcoin-388709b9f415-win64.zip
    
  2. build, windows: Use Direct2D plugin
    The default "windows" platform backend being compiled
    with GCC 10 in Guix environment is broken.
    See https://github.com/bitcoin-core/gui/issues/582
    388709b9f4
  3. hebasto added the label Windows on Apr 12, 2022
  4. hebasto added the label Build system on Apr 12, 2022
  5. hebasto added this to the milestone 23.0 on Apr 12, 2022
  6. laanwj commented at 7:59 PM on April 12, 2022: member

    I think this is a somewhat risky change. Direct*D has more requirements from graphics drivers than the GDI backend. As we do nothing fancy with graphics it seems kinda overkill to me.

    I'd still like to figure out what exactly is broken. As far as we know it's only that specific draw command in the traffic graph that causes problems, nothing else, so would prefer a different workaround.

    does not work in wine on my Ubuntu 22.04 out-of-the-box

    That's not a good sign.

  7. fanquake commented at 7:59 PM on April 12, 2022: member

    The default "windows" platform backend being compiled with GCC 10 in Guix environment is https://github.com/bitcoin-core/gui/issues/582.

    Broken how? What's the root cause of the problem? Is this not something we can correct / fix in our Guix env? As far as I'm aware, the rest of the GUI works except for a certain functionality in a single tab. Is that correct? Switching the entire graphics backend to work around that seems a little bit extreme.

  8. hebasto commented at 8:02 PM on April 12, 2022: member

    Broken how? What's the root cause of the problem?

    I failed to figured it out today.

    As far as I'm aware, the rest of the GUI works except for a certain functionality in a single tab. Is that correct?

    Correct. The only call -- QPainter::fillPath.

  9. laanwj commented at 8:03 PM on April 12, 2022: member

    Would it, if we really don't find the problem, be possiible to downgrade Qt specifically for the windows build? As far as I know, the version of Qt we used for 22.0 did not have this problem.

    (or maybe we could bisect Qt somehow to find out when this problem was introduced, to have an idea what causes it)

  10. hebasto commented at 11:48 AM on April 13, 2022: member
  11. hebasto closed this on Apr 13, 2022

  12. DrahtBot locked this on Apr 13, 2023

Milestone
23.0


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-17 03:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me