Skip to content

Conversation

@guillaume-haerinck
Copy link
Contributor

@guillaume-haerinck guillaume-haerinck commented Sep 23, 2025

What does this PR do?

Upgrade the QT library version to QT6.8.3. This works in conjonction with the O3DE Qt6 branch.

What changes from vanilla QT ?

Nothing at the time of writing, but we will likely have to bring back some changes listed below.

Ideally we shouldn't have to customize QT as it hurts the portability of O3DE codebase. Yet some code (in particular the styling codepath) might be too much work or simply not viable to adapt on O3DE side.

Repo O3DE Fork Changes outline
QImageFormats compare - Advanced support for TIFF file format
QBase compare - New PropagateStyleToChildren flag
- New ManualStyleSheet flag
- Styling rendering optimization
- Advanced layouting for tooltips
- MacOS ssl changes
- Tree view expand behavior changes
Qt5 compare - Update QT git modules to point to fork when required

What remains before this PR can be merged ?

  • What to modify from vanilla QT : As listed above, need to prototype to see if changes are really required. If the changes are minimal, we might rely on patch files instead of custom branches owned by O3DE. One way to easily compare the styling is to compile and run O3DEQtControlGallery (under Code/Framework/AzQtComponents). Changes required will be in Code\Framework\AzQtComponents\AzQtComponents\Components\StyleManager.cpp and surrounding files

  • Stable O3DE Qt6 branch : The target branch for QT6 is compiling and can be tested by anyone on windows and linux. But some work remains (noted by // #QT6_TODO or in general the latest 'wip' commits). Some heavy testing will have to be done as well.

  • Linguist module : It is currently omitted from the build as it has multiple dependencies. We currently don't use translation files in the editor so I don't believe it is blocking, but would need to be enabled back further down the road if we ever want to translate the UI.

  • Mac support + Pushed linux setup : This is primarly for Windows. On linux it is barebone and will need proper support for QtWayland. Mac will also have to be looked at.

How to test ?

Prerequisites are the same as building o3de from source. It is also recommended to delete your previous build folder to prevent symbols mismatch.

You will likely want to build the editor with a target project, you can use the LY_PROJECTS flag in cmake configure to point to one of your o3de project.

cmake .. -DLY_PROJECTS=PATH_TO_YOUR_PROJECT

On Windows

  • Download build artifacts from this PR. On windows it is currently this link
  • Extract the zip file and copy qt-6.8.3-rev1-windows.tar.xz in C:\Users\YOUR_USER_NAME\.o3de\3rdParty\downloaded_packages
  • On your O3DE repository, checkout the QT6 branch
  • Configure the project with cmake and build Editor target
    • If you run into an issue with package not found, have a look at BuiltInPackages to update the QT6 package hash to match what is in the zip file qt-6.8.3-rev1-windows.tar.xz.SHA256SUMS

On Linux

You must have libicu70 (can be downloaded from https://pkgs.org/search/?q=libicu70).

  • Download build artifacts from this PR. On ubuntu it is currently this link
  • Extract the zip file and copy qt-6.8.3-rev1-linux.tar.xz in YOUR_USER_NAME/.o3de/3rdParty/downloaded_packages
  • On your O3DE repository, checkout the QT6 branch
  • Configure the project with cmake and build Editor target
    • If you run into an issue with package not found, have a look at BuiltInPackages to update the QT6 package hash to match what is in the zip file qt-6.8.3-rev1-linux.tar.xz.SHA256SUMS
mkdir build
cd build
cmake .. -DLY_PROJECTS=PATH_TO_YOUR_PROJECT
cmake --build . -j 8 --target Editor
./build/bin/profile/Editor --project-path=YOUR_PROJECT_PATH

** Temporary For X11 **

From YOUR_USER_NAME/.o3de/3rdParty/packages/qt-6.8.3-rev1-linux/qt/lib. Copy the libQt6XcbQpa files into your build folder (next to where Editor executable is built). Else the editor won't boot.

image

** For Wayland **

If you want to make wayland work, these files will be of interest :

  • YOUR_USER_NAME/.o3de/3rdParty/packages/qt-6.8.3-rev1-linux/FindQt.cmake and the Platform folder
  • Code\Editor\Platform\Linux\Editor\Core\QtEditorApplication_linux.cpp

@guillaume-haerinck guillaume-haerinck added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 18, 2025
Signed-off-by: guillaume-haerinck <[email protected]>
@guillaume-haerinck guillaume-haerinck force-pushed the qt6 branch 2 times, most recently from 0b2c094 to 78cb5fc Compare October 19, 2025 11:28
Signed-off-by: guillaume-haerinck <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants