Skip to content

[gap] Software adapter fallback and typed GPU-init failure handling #47

Open

Description

@alpCaner

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

  1. In Compositor::request, retry once with force_fallback_adapter: true after request_adapter fails; controllable via wgpu Settings or env var. Enrich the error with the enumerated adapter list.
  2. Signex catches the startup error and shows the adapter report with a relaunch hint (setting/env to use software rendering).
  3. 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

  1. added a commit that references this issue on Nov 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions