Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update rust crate wgpu to 0.20 - autoclosed #455

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 21, 2024

Mend Renovate

This PR contains the following updates:

Package Type Update Change
wgpu (source) dependencies minor 0.19 -> 0.20

Release Notes

gfx-rs/wgpu (wgpu)

v0.20.1

Compare Source

This release included v0.21.0 of wgpu-core and wgpu-hal, due to breaking changes needed to solve vulkan validation issues. It also includes v0.20.1 for wgpu and wgpu-info.

Bug Fixes

This release fixes the validation errors whenever a surface is used with the vulkan backend. By @​cwfitzgerald in #​5681.

General
Metal
Vulkan
  • Fix enablement of subgroup ops extension on Vulkan devices that don't support Vulkan 1.3. By @​cwfitzgerald in #​5624.
GLES / OpenGL
  • Fix regression on OpenGL (EGL) where non-sRGB still used sRGB #​5642

v0.20.0

Compare Source

Major Changes
Pipeline overridable constants

Wgpu supports now pipeline-overridable constants

This allows you to define constants in wgsl like this:

override some_factor: f32 = 42.1337; // Specifies a default of 42.1337 if it's not set.

And then set them at runtime like so on your pipeline consuming this shader:

// ...
fragment: Some(wgpu::FragmentState {
    compilation_options: wgpu::PipelineCompilationOptions {
        constants: &[("some_factor".to_owned(), 0.1234)].into(), // Sets `some_factor` to 0.1234.
        ..Default::default()
    },
    // ...
}),
// ...

By @​teoxoy & @​jimblandy in #​5500

Changed feature requirements for timestamps

Due to a specification change write_timestamp is no longer supported on WebGPU.
wgpu::CommandEncoder::write_timestamp requires now the new wgpu::Features::TIMESTAMP_QUERY_INSIDE_ENCODERS feature which is available on all native backends but not on WebGPU.

By @​wumpf in #​5188

Wgsl const evaluation for many more built-ins

Many numeric built-ins have had a constant evaluation implementation added for them, which allows them to be used in a const context:

abs, acos, acosh, asin, asinh, atan, atanh, cos, cosh, round, saturate, sin, sinh, sqrt, step, tan, tanh, ceil, countLeadingZeros, countOneBits, countTrailingZeros, degrees, exp, exp2, floor, fract, fma, inverseSqrt, log, log2, max, min, radians, reverseBits, sign, trunc

By @​ErichDonGubler in #​4879, #​5098

New native-only wgsl features
Subgroup operations

The following subgroup operations are available in wgsl now:

subgroupBallot, subgroupAll, subgroupAny, subgroupAdd, subgroupMul, subgroupMin, subgroupMax, subgroupAnd, subgroupOr, subgroupXor, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupBroadcastFirst, subgroupBroadcast, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor

Availability is governed by the following feature flags:

  • wgpu::Features::SUBGROUP for all operations except subgroupBarrier in fragment & compute, supported on Vulkan, DX12 and Metal.
  • wgpu::Features::SUBGROUP_VERTEX, for all operations except subgroupBarrier general operations in vertex shaders, supported on Vulkan
  • wgpu::Features::SUBGROUP_BARRIER, for support of the subgroupBarrier operation, supported on Vulkan & Metal

Note that there currently some differences between wgpu's native-only implementation and the open WebGPU proposal.

By @​exrook and @​lichtso in #​5301

Signed and unsigned 64 bit integer support in shaders.

wgpu::Features::SHADER_INT64 enables 64 bit integer signed and unsigned integer variables in wgsl (i64 and u64 respectively).
Supported on Vulkan, DX12 (requires DXC) and Metal (with MSL 2.3+ support).

By @​atlv24 and @​cwfitzgerald in #​5154

New features
General
  • Implemented the Unorm10_10_10_2 VertexFormat by @​McMackety in #​5477
  • wgpu-types's trace and replay features have been replaced by the serde feature. By @​KirmesBude in #​5149
  • wgpu-core's serial-pass feature has been removed. Use serde instead. By @​KirmesBude in #​5149
  • Added InstanceFlags::GPU_BASED_VALIDATION, which enables GPU-based validation for shaders. This is currently only supported on the DX12 and Vulkan backends; other platforms ignore this flag, for now. By @​ErichDonGubler in #​5146, #​5046.
    • When set, this flag implies InstanceFlags::VALIDATION.
    • This has been added to the set of flags set by InstanceFlags::advanced_debugging. Since the overhead is potentially very large, the flag is not enabled by default in debug builds when using InstanceFlags::from_build_config.
    • As with other instance flags, this flag can be changed in calls to InstanceFlags::with_env with the new WGPU_GPU_BASED_VALIDATION environment variable.
  • wgpu::Instance can now report which wgpu::Backends are available based on the build configuration. By @​wumpf #​5167
    -wgpu::Instance::any_backend_feature_enabled()
    +!wgpu::Instance::enabled_backend_features().is_empty()
  • Breaking change: wgpu_core::pipeline::ProgrammableStageDescriptor is now optional. By @​ErichDonGubler in #​5305.
  • Features::downlevel{_webgl2,}_features was made const by @​MultisampledNight in #​5343
  • Breaking change: wgpu_core::pipeline::ShaderError has been moved to naga. By @​stefnotch in #​5410
  • More as_hal methods and improvements by @​JMS55 in #​5452
    • Added wgpu::CommandEncoder::as_hal_mut
    • Added wgpu::TextureView::as_hal
    • wgpu::Texture::as_hal now returns a user-defined type to match the other as_hal functions
Naga
  • Allow user to select which MSL version to use via --metal-version with Naga CLI. By @​pcleavelin in #​5392
  • Support arrayLength for runtime-sized arrays inside binding arrays (for WGSL input and SPIR-V output). By @​kvark in #​5428
  • Added --shader-stage and --input-kind options to naga-cli for specifying vertex/fragment/compute shaders, and frontend. by @​ratmice in #​5411
  • Added a create_validator function to wgpu_core Device to create naga Validators. By @​atlv24 #​5606
WebGPU
GLES / OpenGL
Metal
DX12
Other performance improvements
  • Simplify and speed up the allocation of internal IDs. By @​nical in #​5229
  • Use memory pooling for UsageScopes to avoid frequent large allocations. by @​robtfm in #​5414
  • Eager release of GPU resources comes from device.trackers. By @​bradwerth in #​5075
  • Support disabling zero-initialization of workgroup local memory in compute shaders. By @​DJMcNab in #​5508
Documentation
Bug Fixes
General
Naga
  • In spv-in, remove unnecessary "gl_PerVertex" name check so unused builtins will always be skipped. Prevents validation errors caused by capability requirements of these builtins #​4915. By @​Imberflur in #​5227.
  • In spv-out, check for acceleration and ray-query types when enabling ray-query extension to prevent validation error. By @​Vecvec in #​5463
  • Add a limit for curly brace nesting in WGSL parsing, plus a note about stack size requirements. By @​ErichDonGubler in #​5447.
  • In hlsl-out, fix accesses on zero value expressions by generating helper functions for Expression::ZeroValue. By @​Imberflur in #​5587.
  • Fix behavior of extractBits and insertBits when offset + count overflows the bit width. By @​cwfitzgerald in #​5305
  • Fix behavior of integer clamp when min argument > max argument. By @​cwfitzgerald in #​5300.
  • Fix TypeInner::scalar_width to be consistent with the rest of the codebase and return values in bytes not bits. By @​atlv24 in #​5532.
GLES / OpenGL
  • GLSL 410 does not support layout(binding = ...), enable only for GLSL 420. By @​bes in #​5357
  • Fixes for being able to use an OpenGL 4.1 core context provided by macOS with wgpu. By @​bes in #​5331.
  • Fix crash when holding multiple devices on wayland/surfaceless. By @​ashdnazg in #​5351.
  • Fix first_instance getting ignored in draw indexed when ARB_shader_draw_parameters feature is present and base_vertex is 0. By @​valaphee in #​5482
Vulkan
  • Set object labels when the DEBUG flag is set, even if the VALIDATION flag is disabled. By @​DJMcNab in #​5345.
  • Add safety check to wgpu_hal::vulkan::CommandEncoder to make sure discard_encoding is not called in the closed state. By @​villuna in #​5557
  • Fix SPIR-V type capability requests to not depend on LocalType caching. By @​atlv24 in #​5590
  • Upgrade ash to 0.38. By @​MarijnS95 in #​5504.
Tests
  • Fix intermittent crashes on Linux in the multithreaded_compute test. By @​jimblandy in #​5129.
  • Refactor tests to read feature flags by name instead of a hardcoded hexadecimal u64. By @​atlv24 in #​5155.
  • Add test that verifies that we can drop the queue before using the device to create a command encoder. By @​Davidster in #​5211

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

Copy link
Contributor Author

renovate bot commented Jan 21, 2024

⚠ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/runtime/wgpu/Cargo.toml --package wgpu@0.19.4 --precise 0.20.0
    Updating crates.io index
error: failed to select a version for the requirement `wgpu = "^0.19.3"`
candidate versions found which didn't match: 0.20.0
location searched: crates.io index
required by package `vello v0.1.0`
    ... which satisfies dependency `vello = "^0.1"` (locked to 0.1.0) of package `mizer-vector v0.1.0 (/tmp/renovate/repos/github/maxjoehnk/Mizer/crates/components/vector)`
    ... which satisfies path dependency `mizer-vector` (locked to 0.1.0) of package `mizer-ports v0.1.0 (/tmp/renovate/repos/github/maxjoehnk/Mizer/crates/runtime/pipeline/ports)`
    ... which satisfies path dependency `mizer-ports` (locked to 0.1.0) of package `mizer-node v0.1.0 (/tmp/renovate/repos/github/maxjoehnk/Mizer/crates/runtime/pipeline/node)`
    ... which satisfies path dependency `mizer-node` (locked to 0.1.0) of package `mizer-api v0.1.0 (/tmp/renovate/repos/github/maxjoehnk/Mizer/crates/api)`
perhaps a crate was updated and forgotten to be re-vendored?

@renovate renovate bot force-pushed the renovate/wgpu-0.x branch 5 times, most recently from 274a573 to 5f13e25 Compare January 27, 2024 12:36
@renovate renovate bot force-pushed the renovate/wgpu-0.x branch 10 times, most recently from f331679 to c8d17da Compare February 3, 2024 13:27
@renovate renovate bot force-pushed the renovate/wgpu-0.x branch 6 times, most recently from 061c286 to 844e433 Compare February 12, 2024 17:46
@renovate renovate bot force-pushed the renovate/wgpu-0.x branch 8 times, most recently from b59ed1b to 9725ed1 Compare February 14, 2024 16:39
@renovate renovate bot force-pushed the renovate/wgpu-0.x branch 13 times, most recently from 4e85212 to 4ed3022 Compare July 5, 2024 23:18
@renovate renovate bot force-pushed the renovate/wgpu-0.x branch 6 times, most recently from e4ad779 to 03bb800 Compare July 11, 2024 20:35
@renovate renovate bot force-pushed the renovate/wgpu-0.x branch 6 times, most recently from afbed20 to b1de8f7 Compare July 19, 2024 09:14
@renovate renovate bot force-pushed the renovate/wgpu-0.x branch from b1de8f7 to 51c10f2 Compare July 20, 2024 21:44
@renovate renovate bot changed the title fix(deps): update rust crate wgpu to 0.20 fix(deps): update rust crate wgpu to 0.20 - autoclosed Jul 20, 2024
@renovate renovate bot closed this Jul 20, 2024
@renovate renovate bot deleted the renovate/wgpu-0.x branch July 20, 2024 22:09
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.

0 participants