Platform Wranglers Meeting Notes: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 9: | Line 9: | ||
== 2024 == | == 2024 == | ||
=== 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 === | === 8. February 2024 === |
Revision as of 11:33, 14 March 2024
Agenda
- Roundtable
- New versions/changes in the underlying platform?
- Current focus areas
- Known problem areas
- Features on the horizon
- Topics
- Relative window stacking
2024
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