fix(web): force WebGL2 backend
Affected Chromium adapters fail after selecting WebGPU even when packed renderer paths are forced. Use WebGL2 for the web app and let device limits select renderer tiers.\n\nRefs #788
This commit is contained in:
parent
97a6322e2a
commit
c8840e2706
3 changed files with 3 additions and 4 deletions
|
|
@ -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()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue