Patches that make qtbase 6.11.2 build and run on Windows 7, 8 and 8.1, and restore the ANGLE OpenGL ES / EGL backend Qt 6 dropped.
git clone https://github.com/desktop-app/qt6_windows7_patches.git qt6_windows7
win32_win64:
for %%i in (..\..\qt6_windows7\*.patch) do (
git apply %%i --ignore-whitespace -v
if errorlevel 1 (
echo ERROR: Applying patch %%~nxi failed!
exit /b 1
)
)
win:
for /r %%i in (..\..\patches\qtbase_%QT%\*) do (
git apply %%i --ignore-whitespace -v
...
)
This series first, qtbase_$QT on top.
Cumulative, apply in order. 0001 is the upstream backport as it came, everything after it
is a separate change on top. Nothing here duplicates qtbase_6.11.2 patches, they apply on top.
| Patch | Files | What it is |
|---|---|---|
| 0001 | 39 | Windows 7 backport, from qr243vbi/qt6windows7 |
| 0002 | 1 | DirectComposition on Windows 7 path, with FLIP_SEQUENTIAL |
| 0003 | 1 | 6.11 notifyRoleChange UI Automation call routed through wrapper |
| 0004 | 40 | ANGLE OpenGL ES and EGL backend, from dimula73/qtbase for-krita/6.11.0, minus its env-gated resize experiments |
| 0005 | 1 | ANGLE entry points resolved statically, so libEGL.dll and libGLESv2.dll are not shipped |
| 0006 | 1 | Render-to-texture hole clipped to repainted region, also from Krita fork |
| 0007 | 1 | Opaque windows on blit (DISCARD) swap chain so Present never blocks, same as qtbase_6.11.2 change for stock path |
| 0008 | 10 | ANGLE device-loss and resource recovery ported from our Qt 5 patches |
| 0009 | 2 | GPU driver exclusions preserved when selecting ANGLE backends |
| 0010 | 1 | System DPI, metrics and font scaling preserved in legacy Windows shims |
| 0011 | 1 | ANGLE clear-surface resize and presentation failures propagated; normal flush is covered by common Qt patch 0064 |
| 0014 | 1 | ANGLE clear-surface path rejects a failed swap-chain allocation |
Qt 6 assumes Windows 10 APIs are always present; the series resolves them at runtime and falls back on Windows 7. Stock Qt 6 behaviour is kept on newer Windows.
DirectComposition is Windows 8+, so Windows 7 gets the plain swap chain path. QRhi over D3D11
also needs ID3D11DeviceContext1 from the Platform Update (KB2670838); without it Qt falls
back to OpenGL, and ANGLE over Direct3D 9Ex covers drivers with no usable desktop OpenGL.
tools/port_to_version.sh v6.11.2 v6.12.0
Re-merges every patched file against upstream and regenerates the series into <workdir>/out,
one commit per patch. Review, then copy over. 6.11.1 to 6.11.2 cost one conflict in 12 touched
files.
LF everywhere, pinned by .gitattributes, because qtbase is LF. A CRLF checkout makes every
file conflict during a port.