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

Implement automatic OpenGL fallback for GPUs that don't support Vulkan #57622

Closed
ghost opened this issue Feb 4, 2022 · 9 comments
Closed

Implement automatic OpenGL fallback for GPUs that don't support Vulkan #57622

ghost opened this issue Feb 4, 2022 · 9 comments

Comments

@ghost
Copy link

ghost commented Feb 4, 2022

Godot version

4.0 alpha

System information

Windows 8 intel hd 4000 GLES3

Issue description

the Godot 4.0 alpha doesn't open in my intelHD4000 Although my device supports GLES3
godot1
godot2

Steps to reproduce

its not open

Minimal reproduction project

No response

@akien-mga
Copy link
Member

GLES3 is not fully implemented yet, and there's no automatic fallback to it when Vulkan is not supported (the error message is slightly misleading, but it is what will be valid once GLES3 is fully implemented).

You can force using it with godot.exe --rendering-driver opengl3 but note that it is still very early on and has only limited 2D support.

@Chaosus Chaosus added this to the 4.0 milestone Feb 4, 2022
@Calinou Calinou changed the title Intel HD4000 Unable To initialize Video Driver Implement automatic GLES3 fallback for GPUs that don't support Vulkan Feb 4, 2022
@jmdejong
Copy link

jmdejong commented Feb 5, 2022

I've had the same problem when trying to launch godot 4 on linux. With the command-line flag I can indeed open Godot, but when that session opens another window (opening a project from the project overview or running a scene from the editor) then it tries (and fails) vulkan again

@Fran6nd
Copy link

Fran6nd commented May 8, 2022

Same as @jmdejong on Mac OS with an M1 proc. I tried building for x86 too, same errors, same behaviours if I use --rendering-driver opengl3. I am kinda stuck.

@Calinou
Copy link
Member

Calinou commented May 8, 2022

Same as @jmdejong on Mac OS with an M1 proc. I tried building for x86 too, same errors, same behaviours if I use --rendering-driver opengl3. I am kinda stuck.

M1 Macs can run Vulkan with MoltenVK. You need to install the Vulkan SDK if you've built Godot from source, as per the documentation.

duchainer added a commit to duchainer/godot_voxel that referenced this issue May 18, 2022
As suggested in Zylann#387
This allowed 2 full Mac builds using these commands:
 ```
scons platform=osx arch=x86_64 --jobs=$(sysctl -n hw.logicalcpu) warnings=all tools=yes tests=no target=release_debug production=yes
 ```
```
scons platform=osx arch=arm64 --jobs=$(sysctl -n hw.logicalcpu) warnings=all tools=yes tests=no target=release_debug production=yes voxel_fast_noise_2=false 
```
 -


( Also after having the VulkanSDK like mentioned here[1] and after deleting the `denoise` module which doesn't like ARM64)

[1]: godotengine/godot#57622 (comment)
@clayjohn clayjohn modified the milestones: 4.0, 4.x Feb 23, 2023
@clayjohn
Copy link
Member

This has been partially addressed. The Project manager now defaults to GLES3 so users without Vulkan support can still open the engine and create a project. The team needs to discuss having an automatic fallback as it may not make sense. In other words, if a team creates a game that is designed for the Forward+ renderer, it will likely look broken if run from the gl_compatibility renderer as the gl_compatibility renderer lacks some features. So automatically falling back may not be helpful

@Zireael07
Copy link
Contributor

A way to make things NOT break would be godotengine/godot-proposals#6207 but, obviously, not something that can go into 4.0

@mechPenSketch
Copy link
Contributor

I have something to add on continuing from my closed thread.

As mentioned before, I've observed two kinds of projects that cannot be opened:

  • Those previous made in Godot 3.5
  • Probable those made by other people (but that really depends on the render settings set onto the project)

While both can be worked around, I think the GLES3 fallback should be applied to the former. Mabe this is the only other timer the fallback should be applied to.

When it comes to other projects, the original owner may intend to render in Vulkan, so fallback may not be applicable there. However, they need to disclaim so that others won't clone them only to be greeted with the Vulkan error message.

@Calinou Calinou changed the title Implement automatic GLES3 fallback for GPUs that don't support Vulkan Implement automatic OpenGL fallback for GPUs that don't support Vulkan Mar 2, 2023
@Calinou
Copy link
Member

Calinou commented Mar 2, 2023

While both can be worked around, I think the GLES3 fallback should be applied to the former. Mabe this is the only other timer the fallback should be applied to.

See #74159. We shouldn't unconditionally convert all 3.x projects to use OpenGL, as many rendering features are currently missing in that renderer (such as shadows in 3D).

@Calinou
Copy link
Member

Calinou commented May 18, 2024

Closing in favor of godotengine/godot-proposals#8006.

@Calinou Calinou closed this as completed May 18, 2024
@Calinou Calinou removed this from the 4.x milestone May 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants