Skip to content

deps(lambda-rs-platform): Update wgpu and naga to v29.0.0#199

Merged
vmarcella merged 1 commit intomainfrom
vmarcella/bump-wgpu-and-naga
Mar 25, 2026
Merged

deps(lambda-rs-platform): Update wgpu and naga to v29.0.0#199
vmarcella merged 1 commit intomainfrom
vmarcella/bump-wgpu-and-naga

Conversation

@vmarcella
Copy link
Member

Summary

Upgrade naga and wgpu to 29.0.0 and update the lambda-rs-platform
wgpu integration to compile and behave correctly with the new APIs.
This includes wrapper changes required for instance creation, pipeline layout/depth state configuration,
surface creation, and surface frame acquisition/error handling.

Related Issues

None.

Changes

  • Bump naga and wgpu to 29.0.0 in lambda-rs-platform and refresh Cargo.lock
  • Update wgpu::Instance construction for the new InstanceDescriptor API
  • Adjust pipeline layout creation to pass optional bind group layout entries
  • Update depth/stencil pipeline state setup for wgpu 29 optional depth fields
  • Update unsafe surface creation to use the new raw display handle shape
  • Handle CurrentSurfaceTexture acquisition results from wgpu 29
  • Add explicit Occluded and Validation surface error variants
  • Remove a now-useless u64 conversion

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • Feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation (updates to docs, specs, tutorials, or comments)
  • Refactor (code change that neither fixes a bug nor adds a feature)
  • Performance (change that improves performance)
  • Test (adding or updating tests)
  • Build/CI (changes to build process or CI configuration)

Affected Crates

  • lambda-rs
  • lambda-rs-platform
  • lambda-rs-args
  • lambda-rs-logging
  • Other:

Checklist

  • Code follows the repository style guidelines (cargo +nightly fmt --all)
  • Code passes clippy (cargo clippy --workspace --all-targets -- -D warnings)
  • Tests pass (cargo test --workspace)
  • New code includes appropriate documentation
  • Public API changes are documented
  • Breaking changes are noted in this PR description

Testing

Commands run:

cargo +nightly fmt --all --check
cargo clippy -p lambda-rs-platform --all-targets -- -D warnings
cargo check --workspace --locked

Screenshots/Recordings

Not applicable.

Platform Testing

  • macOS
  • Windows
  • Linux

Additional Notes

@github-actions
Copy link

✅ Coverage Report

📊 View Full HTML Report (download artifact)

Overall Coverage

Metric Value
Total Line Coverage 74.26%
Lines Covered 13672 / 18412

Changed Files in This PR

File Coverage Lines
crates/lambda-rs-platform/src/wgpu/gpu.rs 78.45% 182/232
crates/lambda-rs-platform/src/wgpu/instance.rs 86.67% 78/90
crates/lambda-rs-platform/src/wgpu/pipeline.rs 83.76% 397/474
crates/lambda-rs-platform/src/wgpu/render_pass.rs 84.30% 188/223
crates/lambda-rs-platform/src/wgpu/surface.rs 26.33% 74/281
crates/lambda-rs/src/render/surface.rs N/A (no coverage data)
crates/lambda-rs/src/render/targets/surface.rs 42.47% 79/186

PR Files Coverage: 67.16% (998/1486 lines)


Generated by cargo-llvm-cov · Latest main coverage

Last updated: 2026-03-25 18:14:25 UTC · Commit: feea35a

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Upgrades the lambda-rs-platform wgpu integration to wgpu/naga 29.0.0, updating wrapper APIs and surface acquisition behavior to match the new upstream interfaces.

Changes:

  • Bump wgpu + naga to 29.0.0 and refresh Cargo.lock.
  • Update instance creation, pipeline layout creation, and depth/stencil state configuration to the wgpu v29 APIs.
  • Update unsafe surface creation and surface frame acquisition/error handling (including new occlusion/validation error variants and suboptimal frame detection).

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
crates/lambda-rs/src/render/targets/surface.rs Adds Occluded/Validation surface error variants, updates conversion + tests.
crates/lambda-rs/src/render/surface.rs Mirrors new surface error variants and updates conversion + tests.
crates/lambda-rs-platform/src/wgpu/surface.rs Updates surface creation handle shape and get_current_texture handling; tracks suboptimal frames.
crates/lambda-rs-platform/src/wgpu/render_pass.rs Updates inline docs to remove version-specific wording.
crates/lambda-rs-platform/src/wgpu/pipeline.rs Adapts pipeline layout bind group layout list and depth/stencil option fields for wgpu v29.
crates/lambda-rs-platform/src/wgpu/instance.rs Updates wgpu::Instance construction to new InstanceDescriptor/Instance::new signature.
crates/lambda-rs-platform/src/wgpu/gpu.rs Removes unnecessary conversion for max_uniform_buffer_binding_size under wgpu v29 types.
crates/lambda-rs-platform/Cargo.toml Pins wgpu + naga to =29.0.0.
Cargo.lock Lockfile refresh to resolve the new dependency graph for wgpu/naga v29.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@vmarcella vmarcella merged commit 37e7304 into main Mar 25, 2026
14 checks passed
@vmarcella vmarcella deleted the vmarcella/bump-wgpu-and-naga branch March 25, 2026 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants