remove dx12 mesh shader feature requirement

This commit is contained in:
jacob 2025-06-06 18:59:49 -05:00
parent 4fb1e0231b
commit 45afac951a

View File

@ -149,13 +149,9 @@ INTERNAL void dx12_init(struct sys_window *window)
} }
hr = D3D12CreateDevice((IUnknown *)adapter, D3D_FEATURE_LEVEL_12_0, &IID_ID3D12Device, (void **)&device); hr = D3D12CreateDevice((IUnknown *)adapter, D3D_FEATURE_LEVEL_12_0, &IID_ID3D12Device, (void **)&device);
if (SUCCEEDED(hr)) { if (SUCCEEDED(hr)) {
D3D12_FEATURE_DATA_D3D12_OPTIONS7 features = ZI; IDXGIAdapter1_Release(adapter);
hr = ID3D12Device_CheckFeatureSupport(device, D3D12_FEATURE_D3D12_OPTIONS7, &features, sizeof(features)); adapter = NULL;
if (SUCCEEDED(hr) && features.MeshShaderTier >= D3D12_MESH_SHADER_TIER_1) { break;
IDXGIAdapter1_Release(adapter);
adapter = NULL;
break;
}
} }
} }
ID3D12Device_Release(device); ID3D12Device_Release(device);
@ -167,11 +163,9 @@ INTERNAL void dx12_init(struct sys_window *window)
break; break;
} }
} }
/* TODO: Fall back to compute shaders if mesh shaders aren't supported */
if (!device) { if (!device) {
if (first_gpu_name.len > 0) { if (first_gpu_name.len > 0) {
struct string fmt = LIT("Device '%F' does not support DirectX 12_2. Ensure that your drivers are up to date.\n\n" struct string fmt = LIT("Could not initialize device '%F' with DirectX feature level 12_0. Ensure that the device is capable and drivers are up to date.");
"Note that older GPUs such as those up to and including the GTX 1000 series, the RX 5000 series, and the Intel Xe-LP series do not support DirectX 12_2 features.");
error = string_format(scratch.arena, fmt, FMT_STR(first_gpu_name)); error = string_format(scratch.arena, fmt, FMT_STR(first_gpu_name));
} }
sys_panic(error); sys_panic(error);