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
@@ -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