-
-
Notifications
You must be signed in to change notification settings - Fork 21.1k
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
Windows: Fall back to D3D12 if Vulkan is not supported and vice versa #94796
Conversation
Note that the original issue also refers to PCs without OpenGL support (i.e. ARM laptops without the compatibility pack installed). Falling back to Direct3D 12 on those would imply using a different rendering method – and therefore different visuals – unless ANGLE is used. I expect ANGLE to be quite a bit slower than a native D3D12 implementation. Either way, this might be worth its own proposal so you can choose which rendering methods can fall back to other ones (e.g. falling back to Compatibility if Forward+/Mobile is not supported, or vice versa). |
Not quite sure I understood your comment correctly.
This PR doesn't do it, it will only fall back to Direct3D 12 from Vulkan. If native OpenGL is not supported Godot already falls back to ANGLE on Windows.
Agree, I think this PR is ok as is for 4.3 cause Godot already falls back to different rendering drivers within the same rendering method, this can be improved in future versions. |
Currently, we aren't even trying to load native GL on ARM64 if engine was compiled with ANGLE, it's switching to ANGLE (over D3D11) automatically. |
main/main.cpp
Outdated
GLOBAL_DEF_RST("rendering/rendering_device/vulkan/fallback_to_vulkan", true); | ||
GLOBAL_DEF_RST("rendering/rendering_device/d3d12/fallback_to_d3d12", true); |
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.
Wouldn't it be clearer to have it named rendering/rendering_device/d3d12/fallback_to_vulkan
and rendering/rendering_device/vulkan/fallback_to_d3d12
, since it's Direct3D falling back to Vulkan and vice versa? Or have it directly under the rendering/rendering_device/
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.
Moved to rendering/rendering_device/
, but I don't have a strong opinion
Thanks! |
Similar approach to
rendering/gl_compatibility/fallback_to_angle
,rendering/gl_compatibility/fallback_to_gles
andrendering/gl_compatibility/fallback_to_native
.Can be tested with this (with this Godot will always try to fall back to another driver):