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

Install Angle DLLs via CMake config mode #11935

Merged
merged 2 commits into from
Sep 15, 2023

Conversation

daschuer
Copy link
Member

@daschuer daschuer commented Sep 7, 2023

This fixes parts from #11641
installing the debug libraries when the a debug build has been performed.

@github-actions github-actions bot added the build label Sep 7, 2023
@daschuer daschuer added this to the 2.4.0 milestone Sep 7, 2023
@JoergAtGithub
Copy link
Member

I tested this by building and installing the PR on Windows11 with x64_legacy and x64_off. I found the following files:

x64_legacy build directory:

x64_legacy install directory:

libEGL.dll       20KB
libGLESv2.dll    5475KB

x64_off build directory:

x64_off install directory:

libEGL.dll       83KB
libGLESv2.dll    29527KB

There is no d in the debug file names for ANGLE, but the file size is significiantly larger.

Mixxx still does not start up if ANGLE is requested by $env:QT_OPENGL = 'angle'.

@daschuer
Copy link
Member Author

daschuer commented Sep 8, 2023

Does it start up in x64_legacy mode?
Is it crashing or quitting normally
What does the mixxx.log contain?

Can you repeat the test with x64_off?
And with x64_off + manually append a "d" to the base file name?

@JoergAtGithub
Copy link
Member

Does it start up in x64_legacy mode?

No, issue #11641 occurs always independent of Debug builds. I guess that the debug DLLs will be found, once the issue with the RelWithDebug DLLs is solved.

@daschuer
Copy link
Member Author

The latest commit aims to instal the angle dlls with the correct suffix. Can you confirm that?
If that is that is the case, the first issue is solved

The next step is to move it to the correct place.
Do you still see:

critical [Main] Failed to load libEGLd (Das angegebene Modul wurde nicht gefunden.)
warning [Main] QWindowsEGLStaticContext::create: Failed to load and resolve libEGL functions

What do you see in Release mode?

@daschuer
Copy link
Member Author

The first issue originates from here:
https://github.com/qt/qtbase/blob/29400a683f96867133b28299c0d0bd6bcf40df35/src/plugins/platforms/windows/qwindowseglcontext.cpp#L129

The first directory searched is the directory containing the image file used to create the calling process

So I guess the message is now gone, right?

@JoergAtGithub
Copy link
Member

With the latest commit the startup fails as follows:

x64_legacy build directory:

debug [Main] Set root GL Context widget valid: WInitialGLWidget(0x28eb66aeb30) false
critical [Main] Failed to load libEGL (Das angegebene Modul wurde nicht gefunden.)
warning [Main] QWindowsEGLStaticContext::create: Failed to load and resolve libEGL functions
debug [Main] Displaying main window
debug [Main] Running Mixxx
critical [Main] Failed to load libEGL (Das angegebene Modul wurde nicht gefunden.)
warning [Main] QWindowsEGLStaticContext::create: Failed to load and resolve libEGL functions
warning [Main] QOpenGLWindow::beginPaint: Failed to create context
warning [Main] QOpenGLWindow::beginPaint: Failed to make context current

x64_legacy install directory:

debug [Main] Set root GL Context widget valid: WInitialGLWidget(0x253820d3bf0) false
debug [Main] Displaying main window
debug [Main] Running Mixxx
warning [Main] QWindowsEGLContext: Failed to create context, eglError: 3004, this: 0x253820d2de0
warning [Main] QOpenGLWindow::beginPaint: Failed to create context
warning [Main] QOpenGLWindow::beginPaint: Failed to make context current

x64_off build directory:

critical [Main] Failed to load libEGLd (Das angegebene Modul wurde nicht gefunden.)
warning [Main] QWindowsEGLStaticContext::create: Failed to load and resolve libEGL functions
debug [Main] Displaying main window
debug [Main] Running Mixxx
critical [Main] Failed to load libEGLd (Das angegebene Modul wurde nicht gefunden.)
warning [Main] QWindowsEGLStaticContext::create: Failed to load and resolve libEGL functions
warning [Main] QOpenGLWindow::beginPaint: Failed to create context
warning [Main] QOpenGLWindow::beginPaint: Failed to make context current

x64_off install directory:

debug [Main] Set root GL Context widget valid: WInitialGLWidget(0x14558222780) false
critical [Main] Failed to load libEGLd (Das angegebene Modul wurde nicht gefunden.)
warning [Main] QWindowsEGLStaticContext::create: Failed to load and resolve libEGL functions
debug [Main] Displaying main window
debug [Main] Running Mixxx
critical [Main] Failed to load libEGLd (Das angegebene Modul wurde nicht gefunden.)
warning [Main] QWindowsEGLStaticContext::create: Failed to load and resolve libEGL functions
warning [Main] QOpenGLWindow::beginPaint: Failed to create context
warning [Main] QOpenGLWindow::beginPaint: Failed to make context current

@daschuer
Copy link
Member Author

@JoergAtGithub
Can you check again if loading from the build dir in now works?
Making it work in Debug mode requires patching the source, which is not worth the hassle IMHO.

@JoergAtGithub
Copy link
Member

I just build this PR with x64_legacy, started from build directory and got:

debug [Main] Set root GL Context widget valid: WInitialGLWidget(0x1cd32be34e0) false
critical [Main] Failed to load libEGL (Das angegebene Modul wurde nicht gefunden.)
warning [Main] QWindowsEGLStaticContext::create: Failed to load and resolve libEGL functions
debug [Main] Displaying main window
debug [Main] Running Mixxx
critical [Main] Failed to load libEGL (Das angegebene Modul wurde nicht gefunden.)
warning [Main] QWindowsEGLStaticContext::create: Failed to load and resolve libEGL functions
warning [Main] QOpenGLWindow::beginPaint: Failed to create context
warning [Main] QOpenGLWindow::beginPaint: Failed to make context current

@daschuer
Copy link
Member Author

Oh I got it. The install command was missing.

@JoergAtGithub
Copy link
Member

This works now for x64_legacy build and install directory.

@JoergAtGithub
Copy link
Member

Thank you!

@JoergAtGithub JoergAtGithub merged commit 704f6ca into mixxxdj:2.4 Sep 15, 2023
11 checks passed
@Holzhaus
Copy link
Member

Please check if the merge into main is correct.

@JoergAtGithub
Copy link
Member

Please check if the merge into main is correct.

Angle is not supported by Qt6 anymore: https://doc.qt.io/qt-6/opengl-changes-qt6.html#removal-of-angle
Therefore we should remove it from main. It's a big dependecy, which is only needed on systems with broken OpenGL drivers. Unfortunately there are many of these broken drivers out in the wild.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants