-
-
Notifications
You must be signed in to change notification settings - Fork 69
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
Fall back to GLES2 automatically on known problematic GPUs with poor GLES3 support #1609
Comments
I think that this is the best way to handle this kinds of broken gpu drivers, on mobile this is an unresolved problem |
I started working on this on the The problem is that falling back to GLES2 this way will make the project manager not draw anything other than the clear color, and OpenGL errors will be spammed to the console:
There is also some commented out code that I added to try to restart Godot with the GLES2 renderer. This way is hackier, but it could be investigated if we can't get this cleaner way to work. |
I'd like to add "Intel(R) HD Graphics*" to this list on windows I've seen some complete lockup situations with these chips. |
Making all Intel IGPs on Windows fall back to GLES2 would be kind of extreme. Recent IGP models can run GLES3 just fine, and it performs well enough if you're conservative with the resolution and effects. |
HD vs UHD.. they are apparently different enough that the hd version crashes even though Wikipedia says that hd 620 and uhd 620 are the same generation,.. If there is a sane default then each developer could use that, and pile on any other gpu strings that are flaking out in their specific use case. The real problem is that developers may not have the resources available to test all these variations. Different parts are flakey for each driver too. It's trickier, but considering the driver version could also be helpful in the rare case where they actually update and fix the issue.. (hopefully the vulkan stuff will actually be updated more frequently and this may be more important there?) Apple feedback straight up said to me "GL is not greatly supported, we recommend that you move to Metal". This doesn't give me much confidence that they care enough about open gl to clean up this situation. |
Using MetalANGLE is likely the solution here. |
Yes, i noticed that for webgl Chrome just uses ANGLE as well... Seems they were fed up with the situation with Windows OpenGL driver quality as well.. Oh lol godotengine/godot#44845 |
FYI Getting reports today that 10th gen |
We'd need a minimal reproduction project with someone available for testing to be able to confirm this. Otherwise, there's nothing we can do about it (GLES2 may as well be broken on such hardware, if GLES3 is). |
Yes, that's the problem though, getting the hardware. (And getting users to
cooperate and report what their hardware is doing)
Hoping the vulkan situation is better for Intel.... And maybe the
'compatibility focused' gles3 impl will also be fine in godot4?
This is one low quality signal, but it points to the requirement for adding
this feature as a configuration setting so that each product can set their
own compatibility list. Different games use different features and with the
feature set I'm using I have a very low confidence in the gles3 driver
quality of amost all intel GPUs.
…On Fri., Nov. 26, 2021, 7:34 a.m. Hugo Locurcio, ***@***.***> wrote:
FYI Getting reports today that 10th gen Intel(R) UHD Graphics are
possibly also broken in GLES3
We'd need a minimal reproduction project with someone available for
testing to be able to confirm this. Otherwise, there's nothing we can do
about it (GLES2 may as well be broken on such hardware, if GLES3 is).
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#1609 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAFGVIS44CBHJFM7DONQTW3UN6SIVANCNFSM4SDYBWCA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Intel says: |
GLES2 is 100% fine afaict on all intel igpus on all platforms. The workaround is always to fall back to GLES2 |
Describe the project you are working on:
The Godot editor 🙂
Describe the problem or limitation you are having in your project:
Many desktop and mobile GPUs claim to support OpenGL 3.3/OpenGL ES 3.0, but do so poorly in practice. They can also have limitations that are incompatible with the current GLES3 renderer design.
Here are some examples of such GPUs I've listed over the years, based on issue reports:
Desktop
Mobile
Note: I don't have issue links at hand, but it should be possible to find many of them by searching for
is:issue is:open label:topic:rendering gles3
in the Godot issue tracker.Describe the feature / enhancement and how it helps to overcome the problem or limitation:
If the project uses GLES3 and Fallback to Gles2 is enabled in the project settings, use GLES2 if the GPU is on the exclusion list.
This should be implemented in the
3.2
branch first, as the currentmaster
branch doesn't have GLES3 or GLES2 renderers yet.Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams:
VisualServer::get_video_adapter_name()
somewhere in the engine's source code. This list generally don't need to change over time, since new GPU models are unlikely to have poor GLES3 support.--video-driver
command line argument to work as follows:--video-driver GLES3
is used, always attempt to use GLES3 even if the GPU is on the exclusion list. This can be used to bypass the automatic fallback, just in case.If this enhancement will not be used often, can it be worked around with a few lines of script?:
No, as the renderer choice happens before any of the project's code is run.
Is there a reason why this should be core and not an add-on in the asset library?:
This is core engine functionality, and is required to improve the user experience out of the box.
The text was updated successfully, but these errors were encountered: