forked from 1b-agent/opencadstudio-upstream
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:
1 parent
97a6322e2a
commit
c8840e2706
3 files changed
+3
-4
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user