Platform Wranglers Meeting Notes
Jump to navigation
Jump to search
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