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

[DX12] RenderingDeviceDriverD3D12 does not correctly check minimum supported shader model #98207

Open
Tracked by #95775
lrahmann opened this issue Oct 15, 2024 · 1 comment

Comments

@lrahmann
Copy link

lrahmann commented Oct 15, 2024

Tested versions

Still present in current master.

System information

Windows DirectX

Issue description

The loop implemented in rendering_device_driver_d3d12.cpp:6394

shader_model.HighestShaderModel = SMS_TO_CHECK[i];
			res = device->CheckFeatureSupport(D3D12_FEATURE_SHADER_MODEL, &shader_model, sizeof(shader_model));
			if (SUCCEEDED(res)) {

does not match the official documentation in
https://learn.microsoft.com/en-us/windows/win32/api/d3d12/ns-d3d12-d3d12_feature_data_shader_model

basically as long as an DirectX 12 capable device is present it will always accept even if the highest supported shader model is 5.1.
Sadly there are a lot of older Nvidia and Intel GPUs out there where this is the case exactly and instead of printing an error messages in these cases the engine will simply crash later on.

Steps to reproduce

Run Godot with --rendering-driver d3d12 with an old GPU installed (e.g. Intel HD 4000/ Nvidia GTX 620)

Minimal reproduction project (MRP)

None needed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Up for grabs
Development

No branches or pull requests

2 participants