-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
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
[macOS/Windows] Add optional ANGLE backed OpenGL renderer support (runtime backend selection). #72831
Conversation
99ef85d
to
af90ac2
Compare
So does this supersede #72475? Edit: Also, what's the advantage of having ANGLE on Windows? |
OpenGL drivers on Windows are all over the place. On many Windows devices OpenGL drivers are so bad that the driver itself produces regular stutters during gameplay. |
Yes, when it's finished.
Some Intel GPUs have much better DX support than OpenGL. |
cc7e1b3
to
da2e074
Compare
c58c872
to
0ff1e64
Compare
6da6c7f
to
b990f7e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code review on GitHub.
else: | ||
env.Append(LINKFLAGS=["/DEBUG:NONE"]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be worth moving to a separate PR so it can be cherry-picked. Also relevant to propagate in godot-cpp.
I assume this means /DEBUG:NONE
is not the default option when no /DEBUG
is specified?
74dbad4
to
d29475a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some minor comment nitpicks
Tested successfully on Windows 10 with https://github.com/team-godog/NGJ2023_Godog (after converting the game to GL Compat backend), compiling with VS 2022. It seems to work well, both out of the box, and with the Out of the box, it uses ANGLE provided by Windows:
With the static libs, it uses our own version:
Could be worse adding something to disambiguate so we can know easily in logs if we're using the system or bundled ANGLE, the only difference here seems to be the version / git hash. Did some light testing on Linux, didn't spot regressions in the GL renderer. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code looks good, and basic testing seems to show it works fine.
I still need to do some testing with MinGW to make sure it will work fine on the official build server.
So actually, with our static libs I get much worse performance on this demo compared to the system ANGLE. With the Windows 10 builtin ANGLE, I get 140-160 FPS (vsync disabled), and with our static libs I get 75 FPS. With native OpenGL, I get 400-430 FPS. |
…d EGL_ANDROID_blob_cache caching. Co-authored-by: Riteo <riteo@posteo.net>
Thanks! Amazing work 🎉 |
for posteriority: a quick test can be done by placing e.g.
in the Also, FWIW, this (i.e. switching to ANGLE-based OpenGL renderer) actually fixes #60967 for me :) |
Same as #72475, but do not require separate ANGLE build.
ANGLE can be enabled and overridden for specific platform in the project setting or using
--rendering-driver opengl3_angle
command line argument.