first pass of merging in warp (doesn't build)

This commit is contained in:
Ryan Ward
2026-07-01 16:08:58 -05:00
parent 2f64909469
commit 4770ac06b5
3662 changed files with 414574 additions and 89772 deletions
@@ -5,10 +5,11 @@ mod renderer_manager;
#[cfg(wgpu)]
mod wgpu;
pub use self::metal::is_integrated_gpu;
pub use renderer::{Device, Renderer};
pub use renderer::{Device, MetalDevice, Renderer};
pub use renderer_manager::RendererManager;
pub use self::metal::is_integrated_gpu;
/// Returns `true` if a low power GPU is available for rendering. Typically, this is true for
/// machines with two GPUs -- a dedicated discrete high-performance GPU and a lower power
/// integrated GPU.
@@ -17,12 +18,10 @@ pub fn is_low_power_gpu_available() -> bool {
if #[cfg(wgpu)] {
crate::r#async::block_on(crate::rendering::wgpu::is_low_power_gpu_available())
} else {
let devices = ::metal::Device::all();
let gpu_count = devices.len();
let devices = objc2_metal::MTLCopyAllDevices();
let gpu_count = devices.count();
gpu_count > 1
&& devices
.iter()
.any(metal::is_integrated_gpu)
&& (0..gpu_count).any(|i| metal::is_integrated_gpu(&devices.objectAtIndex(i)))
}
}
}