Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to Qt6 #19

Merged
merged 11 commits into from
Aug 12, 2023
Merged

Migrate to Qt6 #19

merged 11 commits into from
Aug 12, 2023

Conversation

DorianBDev
Copy link
Member

Description

Migration to Qt6. A lot was already done by @agatti in #16.

Affected area(s)

  • Core
  • GUI
  • Tests

Changes type

  • Bug fix
  • Migration
  • New feature
  • Feature rework

Proposed changes

  • Patch Degate to migrate to Qt6
  • Upgrade CI to support Qt6

@DorianBDev
Copy link
Member Author

DorianBDev commented Jul 7, 2023

Identified issues:

  • For the Linux CI, we are missing the qt6-image-formats-plugins package, that is not available for Ubuntu 20. Since we need an old Ubuntu to build against an old libc, I don't think moving to Ubuntu 22 (oldest Ubuntu to have a qt6-image-formats-plugins package) is a good idea. Trying to backport qt6-image-formats-plugins might be a solution. (=> The issue was not only for Linux, it was a install-qt-action misconfiguration, qtimageformats module is not optional for Degate)
  • A crash is appearing when closing Degate on WorkspaceRenderer destructor call. I could only test on Linux, so I don't know if this issue also appears elsewhere.

@DorianBDev
Copy link
Member Author

DorianBDev commented Jul 7, 2023

The CI is fixed, deploy jobs should be updated to latest IFW links, otherwise everything should work. Qt6 port should be ready for testing (alpha/beta release)! The last thing is to fix the identified crash on app exit. I'm on it, it's a strange crash, might take some time.

Edit: I can confirm that the crash was not present before, it was introduced by this MR (maybe Qt6 added a new assert and made a previously-present bug apparent?).

@agatti
Copy link
Contributor

agatti commented Jul 7, 2023

  • A crash is appearing when closing Degate on WorkspaceRenderer destructor call. I could only test on Linux, so I don't know if this issue also appears elsewhere.

Could it be that doneCurrent() is called twice? (both in WorkspaceRenderer and in ImageRenderer)

@DorianBDev
Copy link
Member Author

  • A crash is appearing when closing Degate on WorkspaceRenderer destructor call. I could only test on Linux, so I don't know if this issue also appears elsewhere.

Could it be that doneCurrent() is called twice? (both in WorkspaceRenderer and in ImageRenderer)

For me it shouldn't have any impact (not the same context?), but it's been a while since I've touched OpenGL... I just tested and modifying this didn't change anything (maybe because when testing for this bug I don't spawn any ImageRenderer, so only a WorkspaceRenderer exists).

I found another possible source for the bug, in place of connect(context(), &QOpenGLContext::aboutToBeDestroyed, this, &WorkspaceRenderer::cleanup); at WorkspaceRenderer@458. It has an impact, but I have to dig into to be sure.

@DorianBDev
Copy link
Member Author

DorianBDev commented Jul 7, 2023

Another bug I just found: selecting an annotation (or a subproject) make the app crash (it doesn't find the logic layer). I suspect an issue with the project XML loading (here surely a small bug easy to fix).

Edit: Was not a bug.

@DorianBDev
Copy link
Member Author

DorianBDev commented Jul 19, 2023

I have fixed all bugs I found, but I only tested the Linux version so there is a high probability that some remains. I'll try to test it on Windows soon, and we'll do more intensive usage. I ran a "deploy" CI for all platforms, this should allow anyone to test the Qt6 port without needing a full rebuild.

Later, I'll merge this and pop a new alpha/beta version of Degate (nightly).

Deploy jobs:

@agatti
Copy link
Contributor

agatti commented Jul 20, 2023

For what it's worth, the windows version seems to work fine with the latest Wine on Linux. Sadly I have no way to test other platforms at this time...

@DorianBDev
Copy link
Member Author

I should have fixed all the deployment jobs. I think I'll merge everything in develop branch, then merge #12 and pop a new alpha version for testing.

@DorianBDev DorianBDev merged commit 04685b0 into develop Aug 12, 2023
7 checks passed
@DorianBDev DorianBDev deleted the qt6 branch August 12, 2023 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants