From 63253aa7208b2a48ef00e2bbce4c98fca83c4262 Mon Sep 17 00:00:00 2001 From: $invides <162040889+sinvides@users.noreply.github.com> Date: Mon, 9 Nov 2026 03:02:05 +0700 Subject: [PATCH 1/5] Update d3d_windows.rs --- crates/compositor/src/d3d_windows.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/crates/compositor/src/d3d_windows.rs b/crates/compositor/src/d3d_windows.rs index 9733b86e02..603774af80 100644 --- a/crates/compositor/src/d3d_windows.rs +++ b/crates/compositor/src/d3d_windows.rs @@ -9,6 +9,7 @@ use windows::core::Interface; use windows::Win32::Foundation::HMODULE; use windows::Win32::Graphics::Direct3D::{ D3D_DRIVER_TYPE, D3D_DRIVER_TYPE_HARDWARE, D3D_DRIVER_TYPE_WARP, D3D_FEATURE_LEVEL, + D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_11_1, }; use windows::Win32::Graphics::Direct3D11::{ @@ -72,7 +73,7 @@ fn try_create( driver: D3D_DRIVER_TYPE, flags: D3D11_CREATE_DEVICE_FLAG, ) -> windows::core::Result<(ID3D11Device, ID3D11DeviceContext, D3D_FEATURE_LEVEL)> { - let levels = [D3D_FEATURE_LEVEL_11_1]; + let levels = [D3D_FEATURE_LEVEL_11_1, D3D_FEATURE_LEVEL_11_0]; let mut device: Option = None; let mut context: Option = None; let mut got = D3D_FEATURE_LEVEL::default(); @@ -130,9 +131,9 @@ fn diagnose(err: &windows::core::Error) -> String { ); } format!( - "no Direct3D 11 feature level 11_1 display adapter ({err}). OpenScreen's compositor \ + "no Direct3D 11 feature level 11_0 display adapter ({err}). OpenScreen's compositor \ requires one for both preview and export. Update the display driver, or run on a \ - machine with a GPU that reaches feature level 11_1." + machine with a GPU that reaches feature level 11_0." ) } @@ -201,8 +202,8 @@ impl Gpu { Err(err) => bail!("{}", diagnose(&err)), }; - if got != D3D_FEATURE_LEVEL_11_1 { - bail!("feature level obtenu {:?} != 11_1", got); + if got < D3D_FEATURE_LEVEL_11_0 { + bail!("feature level obtenu {:?} < 11_0", got); } // §2 : multithread-protected. Le décodeur ffmpeg soumet depuis son thread, From 4bf62f7e3b71efe9add57d67faa7135742832fd8 Mon Sep 17 00:00:00 2001 From: $invides <162040889+sinvides@users.noreply.github.com> Date: Mon, 9 Nov 2026 03:03:25 +0700 Subject: [PATCH 2/5] Update pipeline_windows.rs --- crates/compositor/src/pipeline_windows.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/compositor/src/pipeline_windows.rs b/crates/compositor/src/pipeline_windows.rs index ea6e658b35..a57c8b563c 100644 --- a/crates/compositor/src/pipeline_windows.rs +++ b/crates/compositor/src/pipeline_windows.rs @@ -1954,14 +1954,15 @@ mod tests { fn raw_hardware_prerequisite() -> windows::core::Result<()> { use windows::Win32::Foundation::{E_UNEXPECTED, HMODULE}; use windows::Win32::Graphics::Direct3D::{ - D3D_DRIVER_TYPE_HARDWARE, D3D_FEATURE_LEVEL, D3D_FEATURE_LEVEL_11_1, + D3D_DRIVER_TYPE_HARDWARE, D3D_FEATURE_LEVEL, D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_11_1, }; use windows::Win32::Graphics::Direct3D11::{ D3D11CreateDevice, ID3D11Device, ID3D11DeviceContext, D3D11_CREATE_DEVICE_BGRA_SUPPORT, D3D11_CREATE_DEVICE_VIDEO_SUPPORT, D3D11_SDK_VERSION, }; - let levels = [D3D_FEATURE_LEVEL_11_1]; + let levels = [D3D_FEATURE_LEVEL_11_1, D3D_FEATURE_LEVEL_11_0]; let mut device: Option = None; let mut context: Option = None; let mut got = D3D_FEATURE_LEVEL::default(); @@ -1978,7 +1979,7 @@ mod tests { Some(&mut context), )?; } - if device.is_none() || context.is_none() || got != D3D_FEATURE_LEVEL_11_1 { + if device.is_none() || context.is_none() || got < D3D_FEATURE_LEVEL_11_0 { return Err(windows::core::Error::from(E_UNEXPECTED)); } Ok(()) From 16f796408b5bce01d1722b412c997712b58f78f3 Mon Sep 17 00:00:00 2001 From: $invides <162040889+sinvides@users.noreply.github.com> Date: Mon, 9 Nov 2026 03:12:58 +0700 Subject: [PATCH 3/5] Update d3d_windows.rs --- crates/compositor/src/d3d_windows.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/compositor/src/d3d_windows.rs b/crates/compositor/src/d3d_windows.rs index 603774af80..c0553fad31 100644 --- a/crates/compositor/src/d3d_windows.rs +++ b/crates/compositor/src/d3d_windows.rs @@ -202,7 +202,7 @@ impl Gpu { Err(err) => bail!("{}", diagnose(&err)), }; - if got < D3D_FEATURE_LEVEL_11_0 { + if got.0 < D3D_FEATURE_LEVEL_11_0.0 { bail!("feature level obtenu {:?} < 11_0", got); } From 1eba01e222820525c85ace5ffa9839137a2126c9 Mon Sep 17 00:00:00 2001 From: $invides <162040889+sinvides@users.noreply.github.com> Date: Mon, 9 Nov 2026 03:13:23 +0700 Subject: [PATCH 4/5] Update pipeline_windows.rs --- crates/compositor/src/pipeline_windows.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/compositor/src/pipeline_windows.rs b/crates/compositor/src/pipeline_windows.rs index a57c8b563c..a6866983c8 100644 --- a/crates/compositor/src/pipeline_windows.rs +++ b/crates/compositor/src/pipeline_windows.rs @@ -1979,7 +1979,7 @@ mod tests { Some(&mut context), )?; } - if device.is_none() || context.is_none() || got < D3D_FEATURE_LEVEL_11_0 { + if device.is_none() || context.is_none() || got.0 < D3D_FEATURE_LEVEL_11_0.0 return Err(windows::core::Error::from(E_UNEXPECTED)); } Ok(()) From 6e2496b32c3a1b9d2c7829b49fbe75408ba75fc2 Mon Sep 17 00:00:00 2001 From: $invides <162040889+sinvides@users.noreply.github.com> Date: Mon, 9 Nov 2026 03:39:20 +0700 Subject: [PATCH 5/5] Update pipeline_windows.rs --- crates/compositor/src/pipeline_windows.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/compositor/src/pipeline_windows.rs b/crates/compositor/src/pipeline_windows.rs index a6866983c8..e3bf704f31 100644 --- a/crates/compositor/src/pipeline_windows.rs +++ b/crates/compositor/src/pipeline_windows.rs @@ -1979,7 +1979,7 @@ mod tests { Some(&mut context), )?; } - if device.is_none() || context.is_none() || got.0 < D3D_FEATURE_LEVEL_11_0.0 + if device.is_none() || context.is_none() || got.0 < D3D_FEATURE_LEVEL_11_0.0 { return Err(windows::core::Error::from(E_UNEXPECTED)); } Ok(())