Repository navigation
Description
Area: Upstream landscape / Rendering · Kind: adopt-upstream-pr · Priority: P2 · Effort: M
Why Signex needs it
Signex enables only the wgpu feature (Cargo.toml:61) and draws via its own wgpu pipelines, so there is no CPU fallback. RDP, VMs and old GPUs (upstream iced-rs#3265, iced-rs#2572) fail to start. No handling of GraphicsAdapterNotFound, WGPU_BACKEND or a GPU-failure dialog exists in Signex. request_adapter in signex-gfx/src/debug_pass is test-only.
What iced provides today
wgpu/src/window/compositor.rs:91-101 requests one adapter with force_fallback_adapter: false, error NoAdapterFound(String). Typed errors already exist (:21-34, :36-43); adapter enumeration is logged (:70-78) and the choice (:103). WGPU_BACKEND is already honoured (:296) and PowerPreference::from_env() (:92). WGPU_ADAPTER_NAME handling not found.
Upstream status
PRs #3302, #3365, #3011, #3246, #3523; issues #3265, #2572, #3138. iced-rs#3306 vello_cpu deliberately not ported (cannot draw signex-gfx pipelines). Numbers unverified offline.
Proposal
- In
Compositor::request, retry once withforce_fallback_adapter: trueafterrequest_adapterfails; controllable via wgpu Settings or env var. Enrich the error with the enumerated adapter list. - Signex catches the startup error and shows the adapter report with a relaunch hint (setting/env to use software rendering).
- Check Reject software wgpu adapters to allow renderer fallback iced-rs/iced#3365 for software-adapter rejection logic; Add configurable max_bind_groups setting iced-rs/iced#3246/linux + vulkan crashes on old gpus
Shader requires capability Capabilities(SHADER_FLOAT16_IN_FLOAT32)iced-rs/iced#3265 only if signex-gfx hits them. Do not depend on Refactor adapter selection to use environment initialization iced-rs/iced#3302/WIP Fallback to software renderer if wgpu uses CPU renderer iced-rs/iced#3011.
Acceptance criteria
- With no hardware adapter the app starts on the software adapter and logs the choice
- A typed error with the adapter report is returned instead of a panic when no adapter exists
- An env var or setting overrides adapter selection
- Signex shows an actionable dialog on GPU init failure
Notes
Software Vulkan is slow for large PCBs: label as degraded mode. Must verify lavapipe/WARP supports the features and limits signex-gfx needs, on a no-GPU VM. WGPU_BACKEND is already honoured; do not re-add.
Source: docs/SIGNEX-GAP-ANALYSIS.md (gap analysis, fork c1d63c8)
Activity
Address review: rename Never to Allow, fix failure hint, tidy options
Issue #47: richer adapter errors and a CPU-adapter policy (refs #47) (#…