godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.51k stars 21.07k forks source link

Editor falls back to GLES2 if GLES3 is not supported, and it's confusing that the dropdown shows "GLES2" when the configured render is still "GLES3" in settings #29827

Open Alficiro opened 5 years ago

Alficiro commented 5 years ago

Godot version: 3.1.1

OS/device including version: Windows 7 Ultimate SP1 x64 Acer Aspire 4738, Intel(R) HD Graphics

Issue description: The game won't run after Godot attempts to use GLES3, though the IDE still says GLES2.

Steps to reproduce: Open an GLES3 project in a device that only runs GLES2.

Minimal reproduction project: Godot GLES bug.zip (just a node2D in GLES3) Video demonstration

akien-mga commented 5 years ago

That's kind of expected, the editor falls back to GLES2 if GLES3 is not supported, so that you can still open the project and edit it (especially to convert it to GLES2). But for the game itself you switched to GLES3, so it will enforce that when you play it.

KoBeWi commented 5 years ago

Looking at the video, the problem is that the editor shows GLES2 in the top-right corner, but still doesn't allow you to run the game, saying your device doesn't support GLES3.

Alficiro commented 5 years ago

That's kind of expected, the editor falls back to GLES2 if GLES3 is not supported, so that you can still open the project and edit it (especially to convert it to GLES2). But for the game itself you switched to GLES3, so it will enforce that when you play it.

I can't convert it to GLES2, that's the problem. (it just offers to convert it to GLES3, like the editor (still) thinks I'm using a GLES2 project.)

aaronfranke commented 5 years ago

In the meantime, as a workaround, you can add these lines to your project.godot file:

[rendering]

quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false
akien-mga commented 5 years ago

Or change it from ProjectSettings, since the editor works (which is the whole point of this forced fallback :)).

KoBeWi commented 4 years ago

Can anyone still reproduce this bug in Godot 3.2.2 or any later release?

If yes, please ensure that an up-to-date Minimal Reproduction Project (MRP) is included in this report (a MRP is a zipped Godot project with the minimal elements necessary to reliably trigger the bug). You can upload ZIP files in an issue comment with a drag and drop.

Alficiro commented 4 years ago

Godot version: 3.2.2

OS/device including version: Windows 7 Home Premium SP1 x86 Eee PC 1015CX, Intel(R) Graphics Media Accelerator 3600 Series

Issue description: The game won't run after Godot attempts to use GLES3, though the IDE still says GLES2.

Steps to reproduce: Open an GLES3 project in a device that only runs GLES2.

Minimal reproduction project: New Game Project.zip (still a node2D in GLES3)

14K2jfcrFb

akien-mga commented 4 years ago

That's not a bug, it works as intended. The editor falls back to GLES2, but your project is still configured for GLES3 and will fail running. You should change the renderer in the Project Settings to GLES2.

Alficiro commented 4 years ago

If the dropdown on the top right is only for the editor (whatever that means) and not for the game itself, why does this happen? https://www.youtube.com/watch?v=zBVox41j8ZY

Calinou commented 4 years ago

@Alficiro The dropdown affects both the editor and the running project. It will modify the video driver option in the project.godot file (just like changing the video driver in the Project Settings).

Zireael07 commented 4 years ago

@Calinou: So why does @Alficiro's computer complain of not being able to run GLES3, when his dropdown is clearly GLES2?

akien-mga commented 4 years ago

The dropdown can be used to change what is defined in project.godot, but it also reflects what the editor is running on. If your project is configured for GLES3, but actually can't support it, the editor will fall back to GLES2, thus show GLES2 in the dropdown. But the project is still configured for GLES3, a fallback does not modify the intention of the project author, it only impacts the editor.

I understand that it can be somewhat confusing, ideally the dropdown would make it clear that it's a fallback value and that in the config it's still GLES3 (and possibly suggest to change the config to GLES2 if you aim to use this low end device as target device).

Calinou commented 3 years ago

This was confirmed on Twitter: https://twitter.com/hiulit/status/1327297769938309131

hiulit commented 3 years ago

As @Calinou mentioned my tweet, I would suggest to show a warning or something when trying to run a project set to GLES2 on the top-right corner toggle but set to GLES3 in the project settings as @akien-mga commented above