diff --git a/src/app/mod.rs b/src/app/mod.rs index 604d8e656..f9d749440 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -3723,6 +3723,7 @@ pub fn run_web() -> iced::Result { .subscription(OpenCADStudio::subscription) .title(|_state: &OpenCADStudio| "Open CAD Studio".to_string()) .theme(|state: &OpenCADStudio| state.active_theme.clone()) + .backend(iced::Backend::Hardware(iced::backend::Api::OpenGL)) .font(iced_aw::ICED_AW_FONT_BYTES) .run() } diff --git a/src/scene/pipeline/device_capabilities.rs b/src/scene/pipeline/device_capabilities.rs index 3f41b0964..bef328986 100644 --- a/src/scene/pipeline/device_capabilities.rs +++ b/src/scene/pipeline/device_capabilities.rs @@ -1,8 +1,6 @@ use iced::wgpu; /// Renderer-relevant limits of the selected GPU device. -/// -/// Native devices select by limits; browser builds use compatibility paths. #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct DeviceCapabilities { pub max_storage_buffers_per_shader_stage: u32, diff --git a/src/scene/pipeline/mod.rs b/src/scene/pipeline/mod.rs index c1c3dba10..a59fc1a60 100644 --- a/src/scene/pipeline/mod.rs +++ b/src/scene/pipeline/mod.rs @@ -560,12 +560,12 @@ impl Pipeline { ); // ── Wire pipeline ────────────────────────────────────────────────── - // Browser shader support can lag behind advertised WebGPU limits. + // Select the renderer tier from device limits. let device_caps = DeviceCapabilities::detect(device); #[cfg(not(target_arch = "wasm32"))] let force_compat_renderer = crate::cli::gui_config().compat_renderer; #[cfg(target_arch = "wasm32")] - let force_compat_renderer = true; + let force_compat_renderer = false; let wire_mode = wire_gpu::WirePipelineMode::select(device_caps, force_compat_renderer); let wire_const_bgl = wire_mode