Open jeancallisti opened 2 years ago
@jeancallisti Please surround large blocks of text with triple backticks like this:
``` text here ```
This prevents them from taking too much space and also makes sure issue references aren't accidentally created. I edited your comment, but remember to do this next time :slightly_smiling_face:
Do other applications that use recent OpenGL versions (such as Blender 3.0 or later) work?
@Calinou OK so apparently it's my GPU that sucks... Blender won't run for the same apparent reasons. Was there any way to spot that my specs didn't match the expected OpenGL requirements from looking at the DxDiag dump or the OpenGL Extensions Viewer from my original post?
Also, is there any hope that it works if I try the unstable version of Godot and try to make it run with Vulkan (which also appears in the OpenGL Extensions Viewer screenshot)
OK so apparently it's my GPU that sucks... Blender won't run for the same apparent reasons.
Your GPU definitely supports modern OpenGL – there must be an issue somewhere in your drivers, or the way you're using the PC. Are you using a remote desktop connection? This can prevent 3D acceleration from working.
As a workaround, you can download a software OpenGL implementation to run Godot (or almost any OpenGL application out there). It will be slow, but it should be usable when using GLES2 at least.
Also, is there any hope that it works if I try the unstable version of Godot and try to make it run with Vulkan (which also appears in the OpenGL Extensions Viewer screenshot)
Try it and see :slightly_smiling_face:
Two things you can try:
Both chipsets should support OpenGL 3.3 and Vulkan 1.1 just fine.
I found the root cause. I have dual monitors.
I still don't understand why I have two graphic adapters (Intel(R) Iris(R) Xe Graphics and Nvidia T500) and unfortunately I don't have enough comprehension to know if one of them is related to the external screen or to the docking station.
Here is what I see in the Device manager :
So I guess in a way it's still a bug where the software is unable to deal with the weird resolution of a double monitor setup or with the extra incertitude that it introduces in the startup sequence.
Final evidence that the extra "display adapter" created by the docking station (this useless "HP USB-C Universal docking station" display adapter) confuses the OpenGL stack into believing that there's no driver that supports GLES3 or even GLES2.
Could Godot be smarter than Blender and try to have a smarter startup sequence?
Could Godot be smarter than Blender and try to have a smarter startup sequence?
This is likely something deep in OpenGL/SDL code, so most likely nope.
I found this : https://stackoverflow.com/questions/6036292/select-a-graphic-device-in-windows-opengl
The simplest solution is to paste this code snippet somewhere in your application. This will tell the Nvidia and AMD drivers to switch to the powerful GPU when your app starts.
// enable optimus!
extern "C" {
_declspec(dllexport) DWORD NvOptimusEnablement = 1; //For Nvidia
_declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1; //For AMD
}
This is exactly what Godot does already: https://github.com/godotengine/godot/blob/ba4c3dc65a3f22c710afd918b8e4d734247b1f91/platform/windows/os_windows.cpp#L55-L58
I don't know why Windows decided that your docking station itself is a GPU and should take precedence over the Intel Iris Xe and the Nvidia T500.
Given that it happens with Blender too, I would test if you get other issues with OpenGL applications, and report a bug to HP about their docking station breaking OpenGL applications.
Open the Device Manager, expand "display adapters", and see if there's an extra graphics card there that could confuse OpenGL's ability to determine your system's actual OpenGL capability. If there's anything in there that's not your one true cool powerful graphics card, then find a way of making Windows ignore it. In my case, I unplugged my docking station.
Late replay but I still want to comment for future reference. The most likely cause is that your HP USB-C docking station is using the dreaded DisplayLink technology, instead of using the typical USB-C-DisplayPort alt mode or Thunderbolt. I have no personal experience with DisplayLink, but I've heard of it to be very bad. It technically presents as a separate display adapter (which is what you see in the above screenshot and the dxdiag dump). For some reason, Windows may attempt to use that display adapter to run an OpenGL application, which will cause issues as it is neither the Intel integrated GPU or the NVIDIA dedicated GPU.
I don't believe Godot can do anything to work around this issue. If this is still relevant to you, you can try making sure the primary monitor set in Windows is one that is not connected to the dock, so that Windows may prefer to use the Intel GPU. I guess Vulkan shouldn't be affected though, so Godot 4 should work fine if you don't use gl_compatibility (which includes the Project Manager, unfortunately.)
It makes sense to document this on the Troubleshooting page.
so Godot 4 should work fine if you don't use gl_compatibility (which includes the Project Manager, unfortunately.)
You can force the project manager to use Vulkan using the --rendering-driver vulkan
command line argument.
Godot version
3.4.2 win32, 3.4.2 (Mono) win64, 3.5-beta1 win64
System information
windows 10, GLES2 and GLES3, Intel(R) Iris(R) Xe Graphics
Issue description
See "steps to reproduce" below.
Steps to reproduce
Minimal reproduction project
There's no project. The Editor refuses to even run once.
Troubleshooting:
Possible causes that immediately come to mind :
My system : My system supports OpenGL 4.6 as reveled by OpenGL Extensions viewer 6.3.6.0
Complete DXdiag dump: