Open dsd opened 1 week ago
I see some type of fallback has been implemented via https://github.com/godotengine/godot-proposals/issues/8006 but it seems not to be working in this case.
D3D12 11_0 - Forward+ - Using Device #0: Intel - Intel(R) HD Graphics 4600
The problem with current fallback system, it is done in an early stage of renderer initialization, and only works if API is completely missing (e.g, DX12→GL should work on Windows 7). Windows 10+ always have some level of DX12 support. It's running with 11.0
feature level, which is insufficient for Godot, but renderer init still works, and fallback doesn't trigger.
Godot can work with DX12 11_* as long as they support SM6.1 (some older Intel GPUs actually do this and their Vulkan support is not that good anyway). The issue at hand here is #98207 but I currently do not have the time to do a proper pull request for this one. Older SM cannot be supported due with the approach Godot took for DirectX support.
Thanks for the context.
On this device, Godot 4.4 refuses to create a new project with Forward+. Does that imply there is a codepath there that is detecting that D3D12 is not usable? If so, I wonder if we can use it (or get inspiration from it) here.
Tested versions
System information
Windows, Intel 4600 graphics
Issue description
When opening an existing project that is set to use the Forward+ renderer, these errors occur on this device:
After this, several hundred more gfx-related errors appear in the logs, with the Godot editor window fully black. After a few seconds the window goes away with this crash:
Intel 4600 does not support Vulkan nor Direct3D 12 on Windows.
The same thing happens in Godot 4.4 dev 3. (Sorry I did not capture logs from 4.4) However, Godot 4.4 will not allow me to create a new project with Forward+ because it detects the lack of gfx support. That's a great addition!
Can something similar be applied to opening of existing projects? In this case, I would expect Godot to either give me a friendly error message saying that it can't open the project because of incompatible renderer, or for it to automatically fall back to Compatibility renderer (perhaps with some notification of this).
I see some type of fallback has been implemented via https://github.com/godotengine/godot-proposals/issues/8006 but it seems not to be working in this case.
Steps to reproduce