Platform Wranglers Meeting Notes: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(→2024) |
||
(17 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== | == Agenda == | ||
*Roundtable | *Roundtable | ||
**New versions/changes in the underlying platform? | **New versions/changes in the underlying platform? | ||
Line 9: | Line 6: | ||
**Features on the horizon | **Features on the horizon | ||
*Topics | *Topics | ||
** | ** | ||
== 2024 == | |||
=== 21. November === | |||
* Roundtable | |||
** Windows | |||
*** Window decoration work finalized | |||
*** ARM64EC | |||
**** Discussing how to use without marking every signal | |||
** WASM | |||
*** 64-bit support getting standardized | |||
*** JSPI now has implementation in Firefox | |||
** macOS/iOS | |||
*** Support policy update | |||
** Android | |||
*** Android 15 passing in CI | |||
*** Enabling NDK 27 | |||
** Wayland | |||
*** Implemented frame-perfect resizing | |||
*** Color management is being standardized | |||
*** Session management | |||
* Wheel events | |||
** Teach X11 to not propagate bad pixel deltas | |||
** Teach Qt to use pixel deltas more | |||
=== 24. October 2024 === | |||
* Roundtable | |||
** Windows | |||
*** AppSDK not needed in Qt yet, but can be added to user projects | |||
** Android | |||
*** Jenny code generator making good progress | |||
*** Android 15 almost significant in CI | |||
*** Hardening for NPEs | |||
*** Considering Gradle as a Qt build time dependency | |||
** WAMS | |||
*** Stablizing CI, using known good Chrome | |||
*** Continued work on Asyncify2 | |||
*** Continued work on dynamic linking | |||
** macOS | |||
*** macOS 15 almost stable in CI | |||
*** Continued work on AI integration for IM | |||
** Wayland | |||
*** Color space patch ready for review | |||
* Topics | |||
** Synchronous delivery | |||
** QPlatformWindow::isActive() | |||
=== 12. September 2024 === | |||
* Roundtable | |||
** WASM | |||
*** 6.8 doc updates | |||
*** 6.9 continued work on dynamic linking, asynicfy | |||
** Android | |||
*** 6.8 | |||
**** Qt content ready | |||
**** Last minute fixes to Android Studio plugin | |||
**** Missing docs for Android classes | |||
***** Working on tool generating Qt doc for Java classes | |||
*** 6.9 | |||
**** Adopting Jenny code generator | |||
**** Android 15 support | |||
** macOS/iOS | |||
*** 6.8 content ready | |||
**** Missing docs | |||
**** Working on getting macOS 15 into CI | |||
** X11 | |||
*** 6.8 Content ready | |||
**** Problems with CI | |||
* Topic | |||
** Provisioning cleanup | |||
*** Deduplicating provisioning logic | |||
=== 8. August 2024 === | |||
* Roundtable | |||
** Windows | |||
*** 6.8 looking good | |||
*** ARM64EC still no progress | |||
*** 6.9 features: customizable title bar | |||
**** Might require MS App SDK (needed for other things) | |||
** Android | |||
*** Getting QML embedding for Java ready for release | |||
*** 6.9: Aim to get support for Android 15 / NDK 27 | |||
**** Might also get backport to earlier Qt versions | |||
***** (bigger discussion) | |||
** macOS | |||
*** Prepared to launch 6.8.0 with support for macOS 15 | |||
*** Investigating AI integration (Writing Tools, Genmoji) | |||
** iOS | |||
*** Prepared to launch 6.8.0 with support for macOS 18 | |||
*** Investigating AI integration (Writing Tools, Genmoji) | |||
** Wayland | |||
*** 6.8 good to go | |||
*** Work going on in Wayland on HDR and color spaces | |||
*** Improving subwindow support | |||
=== 13. June 2024 === | |||
* Roundtable | |||
** WASM | |||
*** Improvements to 64-bit builds (Chrome only so far) (https://webassembly.org/features/) | |||
** Android | |||
*** Bumped minimum version to Android 9 | |||
*** Some improvements to QML embedding via Gradle plugin | |||
*** Moving Android builds on macOS to ARM, possible Android ARM testing as well | |||
** iOS | |||
*** iOS 18 beta released | |||
*** Device control for iOS devices improvement in Xcode 16 | |||
** macOS | |||
*** macOS 15 beta released, tested and working well. Next step CI | |||
*** New features related to generative emojis and AI text tooling, via IM | |||
** Windows | |||
*** Frameless window improvements in review | |||
*** ARM64 EC, function pointer address is broken | |||
*** Modernizing backends for Bluetooth | |||
*** Removed legacy mouse handling | |||
** X11 | |||
*** No updates | |||
** Wayland | |||
*** Web engine issue with DPR picked up from screen instead of window | |||
* Topics | |||
** Toolchain upgrades for older branches | |||
*** All platforms have "frozen" toolchains per release | |||
** Platform testing | |||
*** Need system level integration to e.g. test Aero snapping on Windows | |||
*** WASM and KDE uses selenium | |||
=== 16. April 2024 === | |||
* Roundtable | |||
** WASM | |||
*** About to upgrade Emscripten SDK | |||
**** Comes with fix for not exporting everything to JS from dynamic libraries | |||
*** Continued work on dynamic linking, including Qt Quick (QML plugins) | |||
*** Investigating local file access APIs | |||
**** File engine backend, might be opportunities for co-work with iOS work for sandboxed apps down the line | |||
** Android | |||
*** Raising minimum version to Android 9 | |||
*** Still work ongoing for QML embedding into Android apps | |||
*** Java/C++ code generator might not make it for 6.8 | |||
** Windows | |||
*** Keeping an eye on what's happening on Windows on ARM | |||
*** Investigating compile time solution for mixing arm64 and x86_64 (ARM64EC) | |||
** macOS | |||
*** Continued move to Tart VMs | |||
*** Resize patch, possible input to other platforms | |||
*** WWDC in June for new versions | |||
** iOS | |||
*** Window management improvements | |||
*** Still investigating full top level window support | |||
** visionOS | |||
*** Support for the platform in dev as tech preview, including immersive spaces | |||
** Wayland | |||
*** Lots of work going on upstream on input methods | |||
**** AP: Need to discuss how this matches Qt's expectations | |||
*** Investigating synchronous expose | |||
*** Investigating resizing issues | |||
** X11 | |||
*** Ubuntu 22.04 in CI now (ARM only, x86_64 still needs work) | |||
* PM update | |||
** rPI 5 new reference platform | |||
** Ubuntu 24.04 and Debian 12 | |||
** "Supported" platform brainstorming | |||
** Cycber security act | |||
* Topics | |||
** Safe area margins https://bugreports.qt.io/browse/QTBUG-125345 | |||
=== 11. April 2024 === | |||
* Roundtable | |||
** WASM | |||
*** Adding Qt positioning and sensors backend | |||
** Windows | |||
*** Working on bordered window fixes | |||
*** 6.8: Discussions around MSCS2019. First 20222 | |||
*** Looking into CI for Windows on ARM | |||
** X11 | |||
*** Support for GCC12 | |||
*** Working on upgrading our distros in CI | |||
** macOS | |||
*** Pushing minimum versions | |||
** iOS | |||
*** Pushing minimum versions | |||
*** Modernizing window management | |||
** Android | |||
*** Bumping to Android 10 for 6.8 | |||
*** QML embedding APIs released, with Android studio plugin | |||
*** Planning C++->java codegen | |||
** Wayland | |||
*** No major changes upstream | |||
*** 6.8: | |||
**** Refactoring winID | |||
* Other topics | |||
** Screen rotation | |||
*** Qt 5 -> Qt6 bahvior change in QScreen::orientation() | |||
** Fancy window backgrounds | |||
*** https://bugreports.qt.io/browse/QTBUG-124282 | |||
=== 14. March 2024 === | |||
* Roundtable | |||
** WASM | |||
*** Dynamic linking main priority going forward | |||
*** Investigating differences between WebGL and OpenGL | |||
** Android | |||
*** QML embedding content in place | |||
** macOS | |||
*** Updating support for macOS 14 / Xcode 15 in stable branches | |||
*** Improving testing via Tart VMs | |||
** iOS | |||
*** Updating support for iOS 17 / Xcode 15 in stable branches | |||
** X11 | |||
*** Investigating build issues on Linux ARM | |||
**** https://bugreports.qt.io/browse/QTBUG-123153 | |||
** Wayland | |||
*** Some issues in input methods | |||
*** Next KDE 6.1 likely use 6.7 | |||
** Windows | |||
*** Adding support for manifest files | |||
* Other topics | |||
** Platform support granularity discussion | |||
*** https://codereview.qt-project.org/c/qt/qtdoc/+/542499 | |||
=== 8. February 2024 === | |||
* Roundtable | |||
** WASM | |||
*** Working on upgrading emscripten SDK for 6.7 | |||
*** Investigating how to handle older hardware without good WebGL support | |||
** Android | |||
*** Embedding of Qt into native apps landed (mostly) | |||
*** Bumping Android 6 to 8 in dev | |||
** macOS | |||
*** Bumping minimum to 12 or 13 for dev | |||
** iOS | |||
*** Workarounds for iOS 17 in creator taking shape | |||
*** Started investigating improved window management | |||
** X11 | |||
*** Investigating updating CI distributions we use to test | |||
** Wayland | |||
*** New protocol in work for modal windows, matches Qt | |||
*** GTK rewriting their a11y on top of AccessKit or using similar protocol | |||
**** https://gnome.pages.gitlab.gnome.org/at-spi2-core/devel-docs/new-protocol.html | |||
*** Might require changes on the Qt side if AT-SPI is no longer an option | |||
* Topics | |||
** AccessKit | |||
*** Cross platform a11y layer with backends for AT-SPI/Cocoa/Windows | |||
*** Potential replacement for our custom a11y backends on each platform | |||
*** Missing backends for iOS/Android/Web | |||
=== 11. January 2024 === | |||
* Roundtable | |||
** WASM | |||
*** Considering using C++ coruitines for the internal plumbing | |||
** Windows | |||
*** Considering moving off COM and using winrt for plumbing | |||
** XCB | |||
*** Plan to statically link in xcb-cursor into Qt to solve deployment issues | |||
** Wayland | |||
*** Some work on client side decorations and possible generic solution | |||
*** Might need new QWSI API for updating cursor position after move | |||
** Android | |||
*** NDK 26 in Qt 6.7 | |||
*** Working on QML in native Android apps | |||
*** Considering bumping minimum version from Android 8 to 10 | |||
** macOS | |||
*** Work on improving save dialogs | |||
*** Might support making child windows fullscreen (videos e.g.) | |||
** iOS | |||
*** iOS 17 devices supported in 6.7, but workarounds for Qt Creator | |||
* KDE | |||
** RC1 out | |||
** Testing building for WASM, everything was very easy, good experience! | |||
==2023== | |||
=== 21. December 2023 === | |||
*Roundtable | |||
**New versions/changes in the underlying platform? | |||
***macOS, iOS: | |||
****nothing new | |||
****continued collaboration with Apple | |||
***Windows: | |||
****nothing new | |||
****maybe win12 next year, we should be prepared | |||
*****Out of the box experience with Qt apps | |||
*****Features that can/should be supported | |||
***x11: | |||
****Customer bug about menu handling | |||
****Mouse grabbing behavior different across platforms | |||
*****might need some coordination | |||
***Wayland: | |||
****Not much activity upstream | |||
****One big issue in 6.7 (application crash) | |||
*****Fix is available, but needs help to make it through CI | |||
***Android | |||
****Problems getting the latest NDK into qt5.git | |||
*****Feature freeze exception | |||
*****"Getting there" | |||
****Android code generator work | |||
****CI fixes for Androidtestrunner | |||
*Topics | |||
=== 16. November 2023 === | |||
* Roundtable | |||
** Windows | |||
*** Trying to get ARM VMs for our CI | |||
*** Windows 12 on the horizon, no details yet, but no likely major changes | |||
*** Finishing up Windows 11 style | |||
*** Improvements to high-DPI | |||
** X11 | |||
*** Gnome and KDE moving to Wayland | |||
** WASM | |||
*** Updating to WebGL 2 (GLES 3) | |||
** Android | |||
*** Android 14 in CI, now supported for 6.7 | |||
*** Some issues with emulator in CI | |||
*** QPA refactoring making good progress | |||
*** Child window support in review | |||
*** JNI improvements by Volker merged | |||
** macOS | |||
*** macOS 14 significant in CI now | |||
** iOS | |||
*** iOS 17 issues due to libmobiledevice no longer being supported | |||
** Wayland | |||
*** Discussion around behavior when window minimum size is larger than available size (tiling window manager e.g.) | |||
**** Killing app in response is not a good behavior | |||
* Topics | |||
** Window states for child windows | |||
*** Always use NoWindowState | |||
** Internal platform window handle changes | |||
*** Only on XCB, exposed as winId | |||
*** on macOS and Wayland, changes, but not exposed as winId | |||
** Synchronous mouse/touch | |||
*** Many platforms already do this | |||
===12. October 2023=== | |||
*Roundtable | |||
** X11 | |||
*** Looking into a11y improvements | |||
**** Object creation and destruction not supported in Qt | |||
***** Needed for testing tools. Unclear if Squish needs it | |||
** Android | |||
*** Android 14 released | |||
**** Problems getting into CI | |||
*** QPA refactoring getting into shape | |||
*** Improvements to JNI APIs | |||
** macOS | |||
*** Sonoma (macOS 14) released | |||
*** Problems with Xcode 15's new linker not providing default linker paths | |||
**** Breaks qmake in all Qt versions. Patch submitted. | |||
** iOS | |||
*** iOS 17 released | |||
*** New protocol for device management (deploying, running) | |||
**** Breaks Qt Creator integration. | |||
** Wayland | |||
*** New discussions about windows being able to absolutely position | |||
**** Clients want positioning, compositors don’t | |||
*** XDG session, tying window to tag/id for restoring | |||
**** Not clear if useful as cross platform API, but can be QWaylandWindow API | |||
*** Synchronizing window flushes during resizing | |||
**** Similar issues on other platforms | |||
**** Need to figure out which parts are Wayland quirks and which parts are Qt | |||
*** Window capturing is actually possible on Wayland via pipewire | |||
** WASM | |||
*** 64 bit mode getting traction and fixes | |||
*** Improvements to locale integration | |||
*Topics | |||
** Version support | |||
*** Android range of versions, testing min and max | |||
*** macOS, support 3-4 latest version, test full range in CI | |||
*** WASM, latest browser needed. | |||
**** Runtime check features between browsers | |||
**** EM SDK locked per Qt release | |||
*** Wayland | |||
**** Every protocol individually versioned | |||
**** Supporting both desktop compositors and embedded compositors | |||
***** Mutter, Plasma, Qt Compositor | |||
*** X11 | |||
**** Rely on XCB | |||
***** Must verify that distros have any new XCB libraries we depend on | |||
** Application startup / lifecycle | |||
*** Event loop might already be running | |||
**** WASM | |||
**** iOS | |||
**** Plugins | |||
*** Need some kind of callback based API | |||
**** One for startup | |||
**** One for shutdown | |||
*** Should QApp be created automatically for the user? | |||
*** Can no longer create windows and other things on the stack | |||
*** If we move to a new paradigm it should replace the main one | |||
**** Ie the user shouldn’t need to provide both | |||
*** Requires updating of QtC templates, examples, etc | |||
*** Effort should be compared against fixing the main case for the platforms where this is an issue | |||
**** E.g. running main on secondary thread on WASM | |||
===13. September 2023=== | ===13. September 2023=== | ||
*Introductions | *Introductions | ||
** Tor Arne - macOS,iOS,QPA | **Tor Arne - macOS,iOS,QPA | ||
** Morten - WASM | **Morten - WASM | ||
** Oliver - Windows | **Oliver - Windows | ||
** Liang - X11 | **Liang - X11 | ||
** Assam - Android | **Assam - Android | ||
** David - Wayand | **David - Wayand | ||
*Ways of working | *Ways of working | ||
** Monthly meeting | **Monthly meeting | ||
** Desktop/mobile platforms | **Desktop/mobile platforms | ||
*Roundtable | *Roundtable | ||
** iOS | **iOS | ||
*** iOS 17 end of September | ***iOS 17 end of September | ||
**** Things mostly work as before | ****Things mostly work as before | ||
*** Moving to FFMpeg for Qt Multimedia | ***Moving to FFMpeg for Qt Multimedia | ||
*** Technical | ***Technical debt in window management, modern iOS has more advanced window/screen management | ||
*** Exposing safe area margins properly as public Qt Quick API (anchors, etc) | ***Exposing safe area margins properly as public Qt Quick API (anchors, etc) | ||
** macOS | **macOS | ||
*** macOS Sonoma end of September | ***macOS Sonoma end of September | ||
**** No major changes, doing nightly builds, weeding out issues | ****No major changes, doing nightly builds, weeding out issues | ||
**** One regression in Xcode 15, causing build failures with qmake | ****One regression in Xcode 15, causing build failures with qmake | ||
***** https://codereview.qt-project.org/c/qt/qtbase/+/503172 | *****https://codereview.qt-project.org/c/qt/qtbase/+/503172 | ||
*** Key/text input, complex text, shortcut handling | ***Key/text input, complex text, shortcut handling | ||
*** Modern window look, blurred/effect windows, etc | ***Modern window look, blurred/effect windows, etc | ||
** WASM | **WASM | ||
*** Emscripten is the SDK | ***Emscripten is the SDK | ||
**** Follows Chrome release model (4-6 weeks) | ****Follows Chrome release model (4-6 weeks) | ||
**** No versions are “more stable” than others | ****No versions are “more stable” than others | ||
**** Upgrade close to feature freeze to get latest fixes | ****Upgrade close to feature freeze to get latest fixes | ||
*** 32-bit platform (one of our few) | ***32-bit platform (one of our few) | ||
*** Has a no-thread build option | ***Has a no-thread build option | ||
*** Uses static linking | ***Uses static linking | ||
*** WASM64 is coming, looking at that | ***WASM64 is coming, looking at that | ||
*** Dynamic linking is in the works | ***Dynamic linking is in the works | ||
*** Major challenge is web platform is async, but Qt expects synchronous APIs | ***Major challenge is web platform is async, but Qt expects synchronous APIs | ||
*** Complex text difficult | ***Complex text difficult | ||
*** Accessibility difficult | ***Accessibility difficult | ||
**X11 | |||
***Not much underlying changes on X11 | |||
****Ubuntu 22.04 in CI | |||
****Updating RedHat and OpenSuse | |||
***Increased requests for more XDG support | |||
****Use XDG services more, file dialogs, drag and drop, etc | |||
****Harald Sitter (?) knows about KDE drag and drop | |||
**Windows | |||
***New OS updates every 6 months | |||
****But usually no new major features | |||
****CI updates, doesn’t change much | |||
***Focus areas | |||
****Finalising Windows 11 style for widgets | |||
****Modern look of apps | |||
*****Window decorations | |||
****Windows on ARM | |||
***Problem areas | |||
****Windows on ARM, hard to virtualise in CI | |||
**Android | |||
***Android 14 coming up | |||
****Been tested in CI | |||
****Some new permissions we need to deal with | |||
*****Storage permissions deprecated | |||
***Bumped minimum from Android 6 to Android 8 | |||
***Focus areas | |||
****Safe area margins for short edges | |||
****Refactoring QPA plugin | |||
*****Modernize | |||
*****Remove layers | |||
*****Make more maintainable | |||
****Generator for JNI APIs | |||
*****Making it easier to invoke Android APIs | |||
**Wayland | |||
***A set of generated wire protocols | |||
****Some core protocols, fairly stable, can be expected everywhere (all compositors/servers) | |||
****Standard body maintains additional extension protocols | |||
*****Some more essential, eg XDG shell | |||
*****Some more esoteric, for car manufacturers etc | |||
***Some DEs use Wayland nowadays, but also with XWayland for X11 support | |||
****Gnome | |||
****Plasma (KDE), switching soon | |||
***Deadline for Qt adopting a protocol is in practice when a big bistro adopts a DE version that has support for the protocol | |||
***Focus areas | |||
****Fractional scaling | |||
****Support for clients outliving crashing compositors | |||
****Support for minimised windows | |||
***Problem areas | |||
****Popups | |||
*****Windows don’t know their own screen positions | |||
*****Can not control screen positions | |||
*****Popups need to declare intent about where to be placed | |||
*****Possible solutions | |||
******Turn window geometry into hints to Wayland | |||
******Expose placement-intent-based API as public Qt API | |||
*******https://codereview.qt-project.org/c/qt/qtbase/+/491545 | |||
****Qt Quick threaded render out of sync with window resize | |||
*****Needs graphics team attention | |||
****QWindow setGeometry not emitting geometryChanged | |||
*****We wait until GeometryChangeEvent | |||
****QWidget updates not going through QWindow::requestUpdate | |||
*Topics | *Topics | ||
**Keyboard input and shortcut handling | **Keyboard input and shortcut handling | ||
***Investigated at https://bugreports.qt.io/browse/QTBUG-116873 | |||
**Custom window decorations | **Custom window decorations | ||
***Frameless windows on Windows not usable for the use-cases people have | |||
****Need to figure out if it's a Windows bug fix, or a missing feature in QWindow | |||
****Olli to write up summary in JIRA task |
Latest revision as of 10:43, 21 November 2024
Agenda
- Roundtable
- New versions/changes in the underlying platform?
- Current focus areas
- Known problem areas
- Features on the horizon
- Topics
2024
21. November
- Roundtable
- Windows
- Window decoration work finalized
- ARM64EC
- Discussing how to use without marking every signal
- WASM
- 64-bit support getting standardized
- JSPI now has implementation in Firefox
- macOS/iOS
- Support policy update
- Android
- Android 15 passing in CI
- Enabling NDK 27
- Wayland
- Implemented frame-perfect resizing
- Color management is being standardized
- Session management
- Windows
- Wheel events
- Teach X11 to not propagate bad pixel deltas
- Teach Qt to use pixel deltas more
24. October 2024
- Roundtable
- Windows
- AppSDK not needed in Qt yet, but can be added to user projects
- Android
- Jenny code generator making good progress
- Android 15 almost significant in CI
- Hardening for NPEs
- Considering Gradle as a Qt build time dependency
- WAMS
- Stablizing CI, using known good Chrome
- Continued work on Asyncify2
- Continued work on dynamic linking
- macOS
- macOS 15 almost stable in CI
- Continued work on AI integration for IM
- Wayland
- Color space patch ready for review
- Windows
- Topics
- Synchronous delivery
- QPlatformWindow::isActive()
12. September 2024
- Roundtable
- WASM
- 6.8 doc updates
- 6.9 continued work on dynamic linking, asynicfy
- Android
- 6.8
- Qt content ready
- Last minute fixes to Android Studio plugin
- Missing docs for Android classes
- Working on tool generating Qt doc for Java classes
- 6.9
- Adopting Jenny code generator
- Android 15 support
- 6.8
- macOS/iOS
- 6.8 content ready
- Missing docs
- Working on getting macOS 15 into CI
- 6.8 content ready
- X11
- 6.8 Content ready
- Problems with CI
- 6.8 Content ready
- WASM
- Topic
- Provisioning cleanup
- Deduplicating provisioning logic
- Provisioning cleanup
8. August 2024
- Roundtable
- Windows
- 6.8 looking good
- ARM64EC still no progress
- 6.9 features: customizable title bar
- Might require MS App SDK (needed for other things)
- Android
- Getting QML embedding for Java ready for release
- 6.9: Aim to get support for Android 15 / NDK 27
- Might also get backport to earlier Qt versions
- (bigger discussion)
- Might also get backport to earlier Qt versions
- macOS
- Prepared to launch 6.8.0 with support for macOS 15
- Investigating AI integration (Writing Tools, Genmoji)
- iOS
- Prepared to launch 6.8.0 with support for macOS 18
- Investigating AI integration (Writing Tools, Genmoji)
- Wayland
- 6.8 good to go
- Work going on in Wayland on HDR and color spaces
- Improving subwindow support
- Windows
13. June 2024
- Roundtable
- WASM
- Improvements to 64-bit builds (Chrome only so far) (https://webassembly.org/features/)
- Android
- Bumped minimum version to Android 9
- Some improvements to QML embedding via Gradle plugin
- Moving Android builds on macOS to ARM, possible Android ARM testing as well
- iOS
- iOS 18 beta released
- Device control for iOS devices improvement in Xcode 16
- macOS
- macOS 15 beta released, tested and working well. Next step CI
- New features related to generative emojis and AI text tooling, via IM
- Windows
- Frameless window improvements in review
- ARM64 EC, function pointer address is broken
- Modernizing backends for Bluetooth
- Removed legacy mouse handling
- X11
- No updates
- Wayland
- Web engine issue with DPR picked up from screen instead of window
- WASM
- Topics
- Toolchain upgrades for older branches
- All platforms have "frozen" toolchains per release
- Platform testing
- Need system level integration to e.g. test Aero snapping on Windows
- WASM and KDE uses selenium
- Toolchain upgrades for older branches
16. April 2024
- Roundtable
- WASM
- About to upgrade Emscripten SDK
- Comes with fix for not exporting everything to JS from dynamic libraries
- Continued work on dynamic linking, including Qt Quick (QML plugins)
- Investigating local file access APIs
- File engine backend, might be opportunities for co-work with iOS work for sandboxed apps down the line
- About to upgrade Emscripten SDK
- Android
- Raising minimum version to Android 9
- Still work ongoing for QML embedding into Android apps
- Java/C++ code generator might not make it for 6.8
- Windows
- Keeping an eye on what's happening on Windows on ARM
- Investigating compile time solution for mixing arm64 and x86_64 (ARM64EC)
- macOS
- Continued move to Tart VMs
- Resize patch, possible input to other platforms
- WWDC in June for new versions
- iOS
- Window management improvements
- Still investigating full top level window support
- visionOS
- Support for the platform in dev as tech preview, including immersive spaces
- Wayland
- Lots of work going on upstream on input methods
- AP: Need to discuss how this matches Qt's expectations
- Investigating synchronous expose
- Investigating resizing issues
- Lots of work going on upstream on input methods
- X11
- Ubuntu 22.04 in CI now (ARM only, x86_64 still needs work)
- WASM
- PM update
- rPI 5 new reference platform
- Ubuntu 24.04 and Debian 12
- "Supported" platform brainstorming
- Cycber security act
- Topics
- Safe area margins https://bugreports.qt.io/browse/QTBUG-125345
11. April 2024
- Roundtable
- WASM
- Adding Qt positioning and sensors backend
- Windows
- Working on bordered window fixes
- 6.8: Discussions around MSCS2019. First 20222
- Looking into CI for Windows on ARM
- X11
- Support for GCC12
- Working on upgrading our distros in CI
- macOS
- Pushing minimum versions
- iOS
- Pushing minimum versions
- Modernizing window management
- Android
- Bumping to Android 10 for 6.8
- QML embedding APIs released, with Android studio plugin
- Planning C++->java codegen
- Wayland
- No major changes upstream
- 6.8:
- Refactoring winID
- WASM
- Other topics
- Screen rotation
- Qt 5 -> Qt6 bahvior change in QScreen::orientation()
- Fancy window backgrounds
- Screen rotation
14. March 2024
- Roundtable
- WASM
- Dynamic linking main priority going forward
- Investigating differences between WebGL and OpenGL
- Android
- QML embedding content in place
- macOS
- Updating support for macOS 14 / Xcode 15 in stable branches
- Improving testing via Tart VMs
- iOS
- Updating support for iOS 17 / Xcode 15 in stable branches
- X11
- Investigating build issues on Linux ARM
- Wayland
- Some issues in input methods
- Next KDE 6.1 likely use 6.7
- Windows
- Adding support for manifest files
- WASM
- Other topics
- Platform support granularity discussion
8. February 2024
- Roundtable
- WASM
- Working on upgrading emscripten SDK for 6.7
- Investigating how to handle older hardware without good WebGL support
- Android
- Embedding of Qt into native apps landed (mostly)
- Bumping Android 6 to 8 in dev
- macOS
- Bumping minimum to 12 or 13 for dev
- iOS
- Workarounds for iOS 17 in creator taking shape
- Started investigating improved window management
- X11
- Investigating updating CI distributions we use to test
- Wayland
- New protocol in work for modal windows, matches Qt
- GTK rewriting their a11y on top of AccessKit or using similar protocol
- Might require changes on the Qt side if AT-SPI is no longer an option
- WASM
- Topics
- AccessKit
- Cross platform a11y layer with backends for AT-SPI/Cocoa/Windows
- Potential replacement for our custom a11y backends on each platform
- Missing backends for iOS/Android/Web
- AccessKit
11. January 2024
- Roundtable
- WASM
- Considering using C++ coruitines for the internal plumbing
- Windows
- Considering moving off COM and using winrt for plumbing
- XCB
- Plan to statically link in xcb-cursor into Qt to solve deployment issues
- Wayland
- Some work on client side decorations and possible generic solution
- Might need new QWSI API for updating cursor position after move
- Android
- NDK 26 in Qt 6.7
- Working on QML in native Android apps
- Considering bumping minimum version from Android 8 to 10
- macOS
- Work on improving save dialogs
- Might support making child windows fullscreen (videos e.g.)
- iOS
- iOS 17 devices supported in 6.7, but workarounds for Qt Creator
- WASM
- KDE
- RC1 out
- Testing building for WASM, everything was very easy, good experience!
2023
21. December 2023
- Roundtable
- New versions/changes in the underlying platform?
- macOS, iOS:
- nothing new
- continued collaboration with Apple
- Windows:
- nothing new
- maybe win12 next year, we should be prepared
- Out of the box experience with Qt apps
- Features that can/should be supported
- x11:
- Customer bug about menu handling
- Mouse grabbing behavior different across platforms
- might need some coordination
- Wayland:
- Not much activity upstream
- One big issue in 6.7 (application crash)
- Fix is available, but needs help to make it through CI
- Android
- Problems getting the latest NDK into qt5.git
- Feature freeze exception
- "Getting there"
- Android code generator work
- CI fixes for Androidtestrunner
- Problems getting the latest NDK into qt5.git
- macOS, iOS:
- New versions/changes in the underlying platform?
- Topics
16. November 2023
- Roundtable
- Windows
- Trying to get ARM VMs for our CI
- Windows 12 on the horizon, no details yet, but no likely major changes
- Finishing up Windows 11 style
- Improvements to high-DPI
- X11
- Gnome and KDE moving to Wayland
- WASM
- Updating to WebGL 2 (GLES 3)
- Android
- Android 14 in CI, now supported for 6.7
- Some issues with emulator in CI
- QPA refactoring making good progress
- Child window support in review
- JNI improvements by Volker merged
- macOS
- macOS 14 significant in CI now
- iOS
- iOS 17 issues due to libmobiledevice no longer being supported
- Wayland
- Discussion around behavior when window minimum size is larger than available size (tiling window manager e.g.)
- Killing app in response is not a good behavior
- Discussion around behavior when window minimum size is larger than available size (tiling window manager e.g.)
- Windows
- Topics
- Window states for child windows
- Always use NoWindowState
- Internal platform window handle changes
- Only on XCB, exposed as winId
- on macOS and Wayland, changes, but not exposed as winId
- Synchronous mouse/touch
- Many platforms already do this
- Window states for child windows
12. October 2023
- Roundtable
- X11
- Looking into a11y improvements
- Object creation and destruction not supported in Qt
- Needed for testing tools. Unclear if Squish needs it
- Object creation and destruction not supported in Qt
- Looking into a11y improvements
- Android
- Android 14 released
- Problems getting into CI
- QPA refactoring getting into shape
- Improvements to JNI APIs
- Android 14 released
- macOS
- Sonoma (macOS 14) released
- Problems with Xcode 15's new linker not providing default linker paths
- Breaks qmake in all Qt versions. Patch submitted.
- iOS
- iOS 17 released
- New protocol for device management (deploying, running)
- Breaks Qt Creator integration.
- Wayland
- New discussions about windows being able to absolutely position
- Clients want positioning, compositors don’t
- XDG session, tying window to tag/id for restoring
- Not clear if useful as cross platform API, but can be QWaylandWindow API
- Synchronizing window flushes during resizing
- Similar issues on other platforms
- Need to figure out which parts are Wayland quirks and which parts are Qt
- Window capturing is actually possible on Wayland via pipewire
- New discussions about windows being able to absolutely position
- WASM
- 64 bit mode getting traction and fixes
- Improvements to locale integration
- X11
- Topics
- Version support
- Android range of versions, testing min and max
- macOS, support 3-4 latest version, test full range in CI
- WASM, latest browser needed.
- Runtime check features between browsers
- EM SDK locked per Qt release
- Wayland
- Every protocol individually versioned
- Supporting both desktop compositors and embedded compositors
- Mutter, Plasma, Qt Compositor
- X11
- Rely on XCB
- Must verify that distros have any new XCB libraries we depend on
- Rely on XCB
- Application startup / lifecycle
- Event loop might already be running
- WASM
- iOS
- Plugins
- Need some kind of callback based API
- One for startup
- One for shutdown
- Should QApp be created automatically for the user?
- Can no longer create windows and other things on the stack
- If we move to a new paradigm it should replace the main one
- Ie the user shouldn’t need to provide both
- Requires updating of QtC templates, examples, etc
- Effort should be compared against fixing the main case for the platforms where this is an issue
- E.g. running main on secondary thread on WASM
- Event loop might already be running
- Version support
13. September 2023
- Introductions
- Tor Arne - macOS,iOS,QPA
- Morten - WASM
- Oliver - Windows
- Liang - X11
- Assam - Android
- David - Wayand
- Ways of working
- Monthly meeting
- Desktop/mobile platforms
- Roundtable
- iOS
- iOS 17 end of September
- Things mostly work as before
- Moving to FFMpeg for Qt Multimedia
- Technical debt in window management, modern iOS has more advanced window/screen management
- Exposing safe area margins properly as public Qt Quick API (anchors, etc)
- iOS 17 end of September
- macOS
- macOS Sonoma end of September
- No major changes, doing nightly builds, weeding out issues
- One regression in Xcode 15, causing build failures with qmake
- Key/text input, complex text, shortcut handling
- Modern window look, blurred/effect windows, etc
- macOS Sonoma end of September
- WASM
- Emscripten is the SDK
- Follows Chrome release model (4-6 weeks)
- No versions are “more stable” than others
- Upgrade close to feature freeze to get latest fixes
- 32-bit platform (one of our few)
- Has a no-thread build option
- Uses static linking
- WASM64 is coming, looking at that
- Dynamic linking is in the works
- Major challenge is web platform is async, but Qt expects synchronous APIs
- Complex text difficult
- Accessibility difficult
- Emscripten is the SDK
- X11
- Not much underlying changes on X11
- Ubuntu 22.04 in CI
- Updating RedHat and OpenSuse
- Increased requests for more XDG support
- Use XDG services more, file dialogs, drag and drop, etc
- Harald Sitter (?) knows about KDE drag and drop
- Not much underlying changes on X11
- Windows
- New OS updates every 6 months
- But usually no new major features
- CI updates, doesn’t change much
- Focus areas
- Finalising Windows 11 style for widgets
- Modern look of apps
- Window decorations
- Windows on ARM
- Problem areas
- Windows on ARM, hard to virtualise in CI
- New OS updates every 6 months
- Android
- Android 14 coming up
- Been tested in CI
- Some new permissions we need to deal with
- Storage permissions deprecated
- Bumped minimum from Android 6 to Android 8
- Focus areas
- Safe area margins for short edges
- Refactoring QPA plugin
- Modernize
- Remove layers
- Make more maintainable
- Generator for JNI APIs
- Making it easier to invoke Android APIs
- Android 14 coming up
- Wayland
- A set of generated wire protocols
- Some core protocols, fairly stable, can be expected everywhere (all compositors/servers)
- Standard body maintains additional extension protocols
- Some more essential, eg XDG shell
- Some more esoteric, for car manufacturers etc
- Some DEs use Wayland nowadays, but also with XWayland for X11 support
- Gnome
- Plasma (KDE), switching soon
- Deadline for Qt adopting a protocol is in practice when a big bistro adopts a DE version that has support for the protocol
- Focus areas
- Fractional scaling
- Support for clients outliving crashing compositors
- Support for minimised windows
- Problem areas
- Popups
- Windows don’t know their own screen positions
- Can not control screen positions
- Popups need to declare intent about where to be placed
- Possible solutions
- Turn window geometry into hints to Wayland
- Expose placement-intent-based API as public Qt API
- Qt Quick threaded render out of sync with window resize
- Needs graphics team attention
- QWindow setGeometry not emitting geometryChanged
- We wait until GeometryChangeEvent
- QWidget updates not going through QWindow::requestUpdate
- Popups
- A set of generated wire protocols
- iOS
- Topics
- Keyboard input and shortcut handling
- Investigated at https://bugreports.qt.io/browse/QTBUG-116873
- Custom window decorations
- Frameless windows on Windows not usable for the use-cases people have
- Need to figure out if it's a Windows bug fix, or a missing feature in QWindow
- Olli to write up summary in JIRA task
- Frameless windows on Windows not usable for the use-cases people have
- Keyboard input and shortcut handling