log the feature level we are using

Junkui Zhang created

Change summary

crates/gpui/src/platform/windows/directx_renderer.rs | 25 ++++++++++++-
1 file changed, 22 insertions(+), 3 deletions(-)

Detailed changes

crates/gpui/src/platform/windows/directx_renderer.rs 🔗

@@ -93,7 +93,25 @@ impl DirectXDevices {
         let (device, device_context) = {
             let mut device: Option<ID3D11Device> = None;
             let mut context: Option<ID3D11DeviceContext> = None;
-            get_device(&adapter, Some(&mut device), Some(&mut context))?;
+            let mut feature_level = D3D_FEATURE_LEVEL::default();
+            get_device(
+                &adapter,
+                Some(&mut device),
+                Some(&mut context),
+                Some(&mut feature_level),
+            )?;
+            match feature_level {
+                D3D_FEATURE_LEVEL_11_1 => {
+                    log::info!("Created device with Direct3D 11.1 feature level.")
+                }
+                D3D_FEATURE_LEVEL_11_0 => {
+                    log::info!("Created device with Direct3D 11.0 feature level.")
+                }
+                D3D_FEATURE_LEVEL_10_1 => {
+                    log::info!("Created device with Direct3D 10.1 feature level.")
+                }
+                _ => unreachable!(),
+            }
             (device.unwrap(), context.unwrap())
         };
         let dxgi_device = if disable_direct_composition {
@@ -976,7 +994,7 @@ fn get_adapter(dxgi_factory: &IDXGIFactory6) -> Result<IDXGIAdapter1> {
         }
         // Check to see whether the adapter supports Direct3D 11, but don't
         // create the actual device yet.
-        if get_device(&adapter, None, None).log_err().is_some() {
+        if get_device(&adapter, None, None, None).log_err().is_some() {
             return Ok(adapter);
         }
     }
@@ -988,6 +1006,7 @@ fn get_device(
     adapter: &IDXGIAdapter1,
     device: Option<*mut Option<ID3D11Device>>,
     context: Option<*mut Option<ID3D11DeviceContext>>,
+    feature_level: Option<*mut D3D_FEATURE_LEVEL>,
 ) -> Result<()> {
     #[cfg(debug_assertions)]
     let device_flags = D3D11_CREATE_DEVICE_BGRA_SUPPORT | D3D11_CREATE_DEVICE_DEBUG;
@@ -1007,7 +1026,7 @@ fn get_device(
             ]),
             D3D11_SDK_VERSION,
             device,
-            None,
+            feature_level,
             context,
         )?;
     }