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

Ray tracing updated #6

Closed
wants to merge 145 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
145 commits
Select commit Hold shift + click to select a range
273c2c4
Fixed spelling mistake in URL of d3d12
codefionn Aug 14, 2024
a0c107f
remove handling of error that is not documented to be returned by `vk…
teoxoy Aug 13, 2024
7103520
introduce a new function for hal usage errors
teoxoy Aug 15, 2024
8b6450a
handle all variants of `gpu_descriptor::AllocationError` explicitly
teoxoy Aug 15, 2024
e4c5b47
introduce a new function that handles unexpected vulkan errors that c…
teoxoy Aug 15, 2024
24134e0
handle all vulkan error variants for each function explicitly
teoxoy Aug 15, 2024
2c31414
add an `Unexpected` variant to `DeviceError`
teoxoy Aug 15, 2024
89a64e9
refactor(hal): remove unneeded `trivial_casts` suppr.
ErichDonGubler Aug 15, 2024
23e7846
refactor(hal): satisfy `trivial_casts`
ErichDonGubler Aug 15, 2024
abc5641
refactor(web): satisfy `unused_qualifications` (#6121)
ErichDonGubler Aug 15, 2024
9972d2c
chore: [wgpu-tests] use concrete error messages for failures
dv29 Jul 22, 2024
4c83508
chore: satisfy `clippy::collapsible_else_if`
dv29 Jul 25, 2024
3178ffb
Fix hlsl image type conversion (#6123)
atlv24 Aug 19, 2024
a87c8d7
chore: #[must_use] annotations on getters and ctors
kornelski Aug 18, 2024
222f1ea
Reduce code size of error handling
kornelski Aug 18, 2024
a157c3c
[wgpu-hal] Migrate d3d12 backend over to `windows-rs` (#5956)
MarijnS95 Aug 20, 2024
70155aa
build(deps): bump the patch-updates group across 1 directory with 27 …
dependabot[bot] Aug 20, 2024
b4db97f
Add HTMLImageElement/ImageData as external source for copying images …
valaphee Aug 20, 2024
cc11260
Use the repo's MSRV for building docs. (#6140)
jimblandy Aug 21, 2024
71382e1
DRY cfg(send_sync) error definition
kornelski Aug 23, 2024
8e2de73
Allocate and call handle_error once
kornelski Aug 23, 2024
5b148f2
Avoid boxing default_error_handler
kornelski Aug 23, 2024
15d64c3
Make `wgpu_test::valid` print errors it detects. (#6136)
jimblandy Aug 23, 2024
754ead2
chore: resolve `wgt::Backend::Empty` raising `unused_qualifications`
ErichDonGubler Aug 23, 2024
fac49ee
chore: work around `unused_qualifications` from new `prelude` items i…
ErichDonGubler Aug 12, 2024
a93dcb6
build(deps): bump crate-ci/typos from 1.23.6 to 1.24.1 (#6160)
dependabot[bot] Aug 26, 2024
c7e5d07
Reduce size of parse error
kornelski Aug 23, 2024
338678a
Remove IDs from wgpu traits (#6134)
teoxoy Aug 27, 2024
070f760
Fix missing word in comment (#6168)
mfluehr Aug 27, 2024
685c213
hal: cargo feature to allow using `VK_GOOGLE_display_timing` unsafely…
DJMcNab Aug 27, 2024
fccd298
Ensure glow::Context is current when dropped (#6114)
Imberflur Aug 27, 2024
a9047c2
Change the `DropGuard` public API to a callback-based one. (#6164)
jerzywilczek Aug 27, 2024
690a3fb
[wgpu-hal] Upgrade `glutin` to `0.31` (#6150)
MarijnS95 Aug 27, 2024
5deaef3
Add `VideoFrame` to `ExternalImageSource` enum (#6170)
jprochazk Aug 27, 2024
71b41c6
[wgpu-hal] Make `raw-gles` runnable on X11 and Wayland platforms again
MarijnS95 Aug 28, 2024
aadca17
[wgpu] fix `as_hal` methods (#6179)
teoxoy Aug 28, 2024
327b92e
test(wgsl): check that `vec3` args. are accepted in `cross` built-in
ErichDonGubler Aug 27, 2024
7164f3e
fix(wgsl): narrow accepted args. of `cross` to `vec3<$float>`
ErichDonGubler Aug 27, 2024
0ce5996
refactor(naga): split out `cross` handling to separate `match` arm
ErichDonGubler Aug 27, 2024
f56914c
[core] Rename `LockRankSet::name` to `member_name`.
jimblandy Apr 23, 2024
3f6f1d7
[core] Add `#[track_caller]` to `Registry` lock methods.
jimblandy May 1, 2024
bbdbafd
[core] Add `lock::observing` module, for analyzing lock acquisition.
jimblandy Apr 22, 2024
4454cbf
[wgpu-hal] #5956 `windows-rs` migration followups and cleanups (#6173)
MarijnS95 Aug 30, 2024
34bb9e4
[naga wgsl] Implement local `const` declarations (#6156)
sagudev Aug 30, 2024
04618b3
feat(wgsl): add `first` and `either` sampling for `@interpolate(flat,…
ErichDonGubler Aug 30, 2024
9ae808a
Merge remote-tracking branch 'refs/remotes/gfx-rs/trunk' into ray-tra…
Vecvec Aug 31, 2024
585f4a1
[naga wgsl] all swizzle components must be either color or dimension …
sagudev Aug 31, 2024
26398ea
Use checked_mul or leading_zeros for shl overflows (#6186)
sagudev Aug 31, 2024
5e2f061
wip: fix merge
Vecvec Sep 1, 2024
8eb0e64
fix wrong count buffer id (#6194)
BlackStone1123 Sep 2, 2024
105cb9d
[naga wgsl-in] Proper singular generic in vec and matrix (#6189)
sagudev Sep 2, 2024
ace2e20
[naga wgsl-in] allow global vars without explicit type (#6199)
sagudev Sep 2, 2024
4e9a2a5
[naga wgsl] Impl `const_assert` (#6198)
sagudev Sep 2, 2024
e323817
chore: satisfy `unused_qualifications` _again_ 😩
ErichDonGubler Aug 28, 2024
e1c0aed
chore(dx12): satisfy `clippy::manual_bits`
ErichDonGubler Aug 28, 2024
85346df
chore: `use std::mem::size_of{,_val}` s'more
ErichDonGubler Aug 28, 2024
43f6279
[d3d12] refactor buffer/texture creation functions to return resource…
teoxoy Aug 21, 2024
e25051e
[d3d12] treat failure to populate references to resources as `DeviceE…
teoxoy Aug 21, 2024
29e288f
move `hal_usage_error` from the vk backend to lib.rs
teoxoy Aug 21, 2024
dd01b6d
[d3d12] make `DxgiLib` and `D3D12Lib` methods consistent
teoxoy Aug 21, 2024
6c2f23c
[d3d12] simplify `create_factory()` fn
teoxoy Aug 21, 2024
912bdcd
[d3d12] simplify `enumerate_adapters()` fn
teoxoy Aug 21, 2024
9d24888
[d3d12] use windows-rs's bindings for DXC instead of hassle-rs
teoxoy Sep 2, 2024
595ae7c
[wgpu-hal] add null terminations to symbols to avoid reallocation
teoxoy Sep 2, 2024
07becfe
[tests] don't create a new instance/adapter for `DEVICE_LIFETIME_CHEC…
teoxoy Sep 3, 2024
a9a98d6
build(deps): bump the patch-updates group across 1 directory with 28 …
dependabot[bot] Sep 3, 2024
504ff3e
[core] Rename `map_buffer` to `resolve_buffer`, etc.
jimblandy Sep 2, 2024
9d24406
[core] Simplify `self` types in `device::resource`.
jimblandy Sep 2, 2024
9ebc50f
[core] Remove unnecessary `pub(crate)` from `Device` methods.
jimblandy Sep 2, 2024
de7765b
[core]: Let `Device::create_buffer_binding` get `limits` from `self`.
jimblandy Sep 2, 2024
ee35b0e
[core, hal, types] Clarify `wgpu_hal`'s bounds check promises.
jimblandy Sep 2, 2024
4e78829
[wgpu-core] when mapping buffers for reading, mark buffers as initial…
teoxoy Sep 4, 2024
960555a
[wgpu-hal] Allow importing external WGL contexts as with EGL (#6152)
MarijnS95 Sep 4, 2024
fcbec57
test(wgsl): test explicit `center` with `{perspective,linear}` interp…
ErichDonGubler Aug 28, 2024
2aa69e1
test(wgsl): note link b/w `cross` and `bad_cross_builtin_args` tests
ErichDonGubler Aug 28, 2024
9ff161d
[hal] Document some `CommandEncoder` trait methods.
jimblandy Sep 4, 2024
64ea7ef
[naga] Update docs for private items. (#6218)
jimblandy Sep 5, 2024
36124b1
[core] Update docs for private items. (#6219)
jimblandy Sep 5, 2024
aeac0f2
[naga] Make tests compile without the WGSL front end. (#6217)
jimblandy Sep 5, 2024
63a24d3
chore: satisfy `clippy::ref_as_ptr`
ErichDonGubler Jul 24, 2024
ec21000
refactor: `lock::observing`: extract `fn addr` from ref. conv. to `us…
ErichDonGubler Sep 5, 2024
81963e2
Fix the internal buffer and texture count (#6223)
nical Sep 5, 2024
0b93030
[ci] Re-enable `cargo doc --document-private-items` in CI (#6224)
jimblandy Sep 5, 2024
e6a2a86
Fix a regression from #6223 (#6227)
nical Sep 6, 2024
07684d3
Rename Rg11b10UFloat to Rg11b10Ufloat (#6226)
valaphee Sep 6, 2024
0e352f5
Resolve lints for Rust 1.78-1.81 that can be preempted before upgrade…
ErichDonGubler Sep 6, 2024
50b7128
fix: 5890 set upper bound for vertical jump (#6034)
dv29 Sep 6, 2024
c87717b
[naga] Document `snapshots::Targets::IR` and `ANALYSIS`. (#6231)
jimblandy Sep 6, 2024
9b36a3e
Make bind group an Option for set_bind_group calls. (#6216)
bradwerth Sep 6, 2024
fb0cb1e
[metal] Improve layer initialization and resizing (#6107)
madsmtm Sep 8, 2024
0553729
[d3d12] handle known error variants returned by `D3D12CreateDevice` (…
teoxoy Sep 9, 2024
5889eff
build(deps): bump crate-ci/typos from 1.24.1 to 1.24.5 (#6238)
dependabot[bot] Sep 9, 2024
ce6a46e
build(deps): bump JamesIves/github-pages-deploy-action from 4.6.3 to …
dependabot[bot] Sep 9, 2024
eb47449
invalidate the device when we encounter driver-induced device loss or…
teoxoy Sep 6, 2024
480abae
fix ordering of `device.valid.store` in `device_destroy`
teoxoy Sep 6, 2024
5c7389a
build(deps): bump the patch-updates group with 21 updates (#6239)
dependabot[bot] Sep 9, 2024
d550342
[wgpu-core] use `device.instance_flags` when possible
teoxoy Sep 5, 2024
70a9c01
[wgpu-core] make the `Registry` generic over `T: Clone`
teoxoy Sep 5, 2024
9842632
[wgpu-core] introduce `Registry` `.strict_get()` & `.strict_unregiste…
teoxoy Sep 5, 2024
da9afea
[wgpu-core] use `.strict_get()` & `.strict_unregister()` for surfaces
teoxoy Sep 5, 2024
aa280ec
[wgpu-core] change return type of device creation methods to be more …
teoxoy Sep 5, 2024
07c397a
[wgpu-core] use `.strict_get()` & `.strict_unregister()` for queues
teoxoy Sep 5, 2024
3437589
[wgpu-core] use `.strict_get()` & `.strict_unregister()` for devices
teoxoy Sep 5, 2024
68e8b7d
[wgpu-core] introduce `Fallible` and use it for `Buffer` (first step …
teoxoy Sep 6, 2024
c630821
[wgpu-core] use `Fallible` for `Texture`
teoxoy Sep 6, 2024
04f17d4
[wgpu-core] use `Fallible` for `TextureView`
teoxoy Sep 6, 2024
3ed1abc
[wgpu-core] use `Fallible` for `Sampler`
teoxoy Sep 6, 2024
b14fe14
[wgpu-core] use `Fallible` for `QuerySet`
teoxoy Sep 6, 2024
2ea314e
[wgpu-core] remove `Arc` around `StagingBuffer`
teoxoy Sep 6, 2024
b42500e
[wgpu-core] use `Fallible` for `BindGroup`
teoxoy Sep 6, 2024
82ce2ea
[wgpu-core] use `Fallible` for `ComputePipeline`
teoxoy Sep 6, 2024
45206e5
[wgpu-core] use `Fallible` for `RenderPipeline`
teoxoy Sep 6, 2024
e444e78
[wgpu-core] use `Fallible` for `BindGroupLayout`
teoxoy Sep 6, 2024
1c5793a
[wgpu-core] use `Fallible` for `PipelineLayout`
teoxoy Sep 6, 2024
5bcdd42
[wgpu-core] use `Fallible` for `ShaderModule`
teoxoy Sep 6, 2024
ee3b63a
[wgpu-core] use `Fallible` for `PipelineCache`
teoxoy Sep 6, 2024
c0c594e
[wgpu-core] use `Fallible` for `RenderBundle`
teoxoy Sep 6, 2024
31edbfd
[wgpu-core] use `.strict_get()` & `.strict_unregister()` for command …
teoxoy Sep 7, 2024
ac74f36
[wgpu-core] rename `.strict_get()` to `.get()`
teoxoy Sep 7, 2024
c182d3f
[wgpu-core] rename `.strict_unregister()` & `.strict_remove()` to `.r…
teoxoy Sep 7, 2024
2addb26
[wgpu-core] remove `FutureId.into_id()`
teoxoy Sep 7, 2024
c4110af
[wgpu-core] inline `Storage.insert_impl()`
teoxoy Sep 7, 2024
f3cbd6c
fix: Set mip_level_count in TextureInitTracker for externally created…
Tsuguri Sep 10, 2024
c2e0ad2
Vulkan: Avoid undefined behaviour with adversarial debug label (#6257)
DJMcNab Sep 12, 2024
ff52b86
[d3d12] handle absence of Windows SDK (#6262)
teoxoy Sep 13, 2024
c8beade
remove backend from ID (#6263)
teoxoy Sep 13, 2024
eb18854
spv-out: configure source language in debug info
kvark Sep 12, 2024
dbfbe56
Merge remote-tracking branch 'refs/remotes/gfx-rs/trunk' into ray-tra…
Vecvec Sep 14, 2024
fda4ff8
fix merge
Vecvec Sep 14, 2024
d5532b0
fmt & docs
Vecvec Sep 14, 2024
7400129
fix wasm clippy
Vecvec Sep 14, 2024
3b573c8
fix issues with tests
Vecvec Sep 14, 2024
a21c0e2
Clarify cfg(send_sync) gating in this backend/webgpu comment. (#6274)
BGR360 Sep 15, 2024
d79ebc4
Update some docs containing OpenGL or GLSL references (#6271)
Nelarius Sep 15, 2024
2fac5e9
Properly handle the case where Navigator.gpu is undefined and WebGPU …
BGR360 Sep 15, 2024
434f197
Document default pipeline layout behavior. (#6275)
BGR360 Sep 15, 2024
93fba52
Merge remote-tracking branch 'refs/remotes/gfx-rs/trunk' into ray-tra…
Vecvec Sep 16, 2024
fc85e4f
spv-in parse more atomic ops (#5824)
schell Sep 18, 2024
ab9a78c
Update parking_lot dependency (#6287)
mahkoh Sep 18, 2024
c3ab12a
build(deps): bump the patch-updates group across 1 directory with 11 …
dependabot[bot] Sep 18, 2024
3fda684
[naga msl-out] Defeat the MSL compiler's infinite loop analysis.
jimblandy Sep 16, 2024
f942cee
docs(msl-out): note that Dawn also avoids loop UB like we do
ErichDonGubler Sep 18, 2024
0d339fc
chore: suppress `unused_qualifications` for `wgpu_core::id` const. as…
ErichDonGubler Sep 18, 2024
dfc384a
Stop Vulkan generating validation error in build acceleration structu…
Vecvec Sep 18, 2024
592270d
Merge remote-tracking branch 'refs/remotes/gfx-rs/trunk' into ray-tra…
Vecvec Sep 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .deny.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ skip-tree = [
# We never enable loom in any of our dependencies but it causes dupes
{ name = "loom", version = "0.7.2" },
{ name = "windows-sys", version = "0.45" },
{ name = "winit", version = "0.27" },
{ name = "winit", version = "0.29" },
{ name = "rustc_version", version = "0.2.3" },
{ name = "sourcemap", version = "7.1.1" },
{ name = "miniz_oxide", version = "0.7.4" },
]
skip = [
{ name = "hlsl-snapshots", version = "0.1.0" },
Expand Down
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ updates:
groups:
patch-updates:
patterns:
- "*"
- "*"
update-types:
- "minor"
- "patch"
Expand Down
47 changes: 17 additions & 30 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,6 @@ env:
#
# In order to prevent CI regressions, we pin the nightly version.
NIGHTLY_VERSION: "nightly-2023-12-17"
# Version of rust used to build the docs with.
#
# This needs to be newer to work around https://github.com/gfx-rs/wgpu/issues/4905.
#
# Once this fix hits stable Rust, we can use that instead of nightly.
DOCS_RUST_VERSION: "nightly-2023-12-17"
# This is the MSRV used by `wgpu` itself and all surrounding infrastructure.
REPO_MSRV: "1.76"
# This is the MSRV used by the `wgpu-core`, `wgpu-hal`, and `wgpu-types` crates,
Expand Down Expand Up @@ -150,12 +144,6 @@ jobs:
rustup override set ${{ env.REPO_MSRV }}
cargo -V

# Use special toolchain for rustdoc, see https://github.com/gfx-rs/wgpu/issues/4905
- name: Install Rustdoc Toolchain
run: |
rustup toolchain install ${{ env.DOCS_RUST_VERSION }} --no-self-update --profile=minimal --component rust-docs --target ${{ matrix.target }}
cargo +${{ env.DOCS_RUST_VERSION }} -V

- name: disable debug
shell: bash
run: |
Expand Down Expand Up @@ -196,11 +184,11 @@ jobs:
# build for WebGPU
cargo clippy --target ${{ matrix.target }} --tests --features glsl,spirv,fragile-send-sync-non-atomic-wasm
cargo clippy --target ${{ matrix.target }} --tests --features glsl,spirv
cargo +${{ env.DOCS_RUST_VERSION }} doc --target ${{ matrix.target }} --no-deps --features glsl,spirv
cargo doc --target ${{ matrix.target }} --no-deps --features glsl,spirv

# all features
cargo clippy --target ${{ matrix.target }} --tests --all-features
cargo +${{ env.DOCS_RUST_VERSION }} doc --target ${{ matrix.target }} --no-deps --all-features
cargo doc --target ${{ matrix.target }} --no-deps --all-features

- name: check em
if: matrix.kind == 'em'
Expand Down Expand Up @@ -230,21 +218,20 @@ jobs:
cargo clippy --target ${{ matrix.target }} --tests --benches --all-features

# build docs
cargo +${{ env.DOCS_RUST_VERSION }} doc --target ${{ matrix.target }} --all-features --no-deps
# wgpu-core docs are not feasible due to <https://github.com/gfx-rs/wgpu/issues/4905>
#
# - name: check private item docs
# if: matrix.kind == 'native'
# shell: bash
# run: |
# set -e
#
# # wgpu_core package
# cargo +${{ env.DOCS_RUST_VERSION }} doc --target ${{ matrix.target }} \
# --package wgpu-core \
# --package wgpu-hal \
# --package naga \
# --all-features --no-deps --document-private-items
cargo doc --target ${{ matrix.target }} --all-features --no-deps

- name: check private item docs
if: matrix.kind == 'native'
shell: bash
run: |
set -e

# wgpu_core package
cargo doc --target ${{ matrix.target }} \
--package wgpu-core \
--package wgpu-hal \
--package naga \
--all-features --no-deps --document-private-items

# We run minimal checks on the MSRV of the core crates, ensuring that
# its dependency tree does not cause issues for firefox.
Expand Down Expand Up @@ -632,7 +619,7 @@ jobs:
cargo fmt --manifest-path xtask/Cargo.toml -- --check

- name: Check for typos
uses: crate-ci/typos@v1.23.6
uses: crate-ci/typos@v1.24.5

check-cts-runner:
# runtime is normally 2 minutes
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
if: ${{ failure() }}

- name: Deploy the docs
uses: JamesIves/github-pages-deploy-action@v4.6.3
uses: JamesIves/github-pages-deploy-action@v4.6.4
if: github.ref == 'refs/heads/trunk'
with:
token: ${{ secrets.WEB_DEPLOY }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
run: cargo xtask run-wasm --no-serve

- name: Deploy WebGPU examples
uses: JamesIves/github-pages-deploy-action@v4.6.3
uses: JamesIves/github-pages-deploy-action@v4.6.4
if: github.ref == 'refs/heads/trunk'
with:
token: ${{ secrets.WEB_DEPLOY }}
Expand Down
70 changes: 67 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,47 @@ which we're hoping to build performance improvements upon in the future.

By @wumpf in [#6069](https://github.com/gfx-rs/wgpu/pull/6069), [#6099](https://github.com/gfx-rs/wgpu/pull/6099), [#6100](https://github.com/gfx-rs/wgpu/pull/6100).

#### `wgpu`'s resources no longer have `.global_id()` getters

`wgpu-core`'s internals no longer use nor need IDs and we are moving towards removing IDs
completely. This is a step in that direction.

Current users of `.global_id()` are encouraged to make use of the `PartialEq`, `Eq`, `Hash`, `PartialOrd` and `Ord`
traits that have now been implemented for `wgpu` resources.

By @teoxoy [#6134](https://github.com/gfx-rs/wgpu/pull/6134).

#### `set_bind_group` now takes an `Option` for the bind group argument.

https://gpuweb.github.io/gpuweb/#programmable-passes-bind-groups specifies that bindGroup
is nullable. This change is the start of implementing this part of the spec. Callers that
specify a `Some()` value should have unchanged behavior. Handling of `None` values still
needs to be implemented by backends.

By @bradwerth [#6216](https://github.com/gfx-rs/wgpu/pull/6216).

### New Features

#### Naga

* Support constant evaluation for `firstLeadingBit` and `firstTrailingBit` numeric built-ins in WGSL. Front-ends that translate to these built-ins also benefit from constant evaluation. By @ErichDonGubler in [#5101](https://github.com/gfx-rs/wgpu/pull/5101).
- Support constant evaluation for `firstLeadingBit` and `firstTrailingBit` numeric built-ins in WGSL. Front-ends that translate to these built-ins also benefit from constant evaluation. By @ErichDonGubler in [#5101](https://github.com/gfx-rs/wgpu/pull/5101).
- Add `first` and `either` sampling types for `@interpolate(flat, …)` in WGSL. By @ErichDonGubler in [#6181](https://github.com/gfx-rs/wgpu/pull/6181).
- Support for more atomic ops in the SPIR-V frontend. By @schell in [#5824](https://github.com/gfx-rs/wgpu/pull/5824).

#### Vulkan

- Allow using [VK_GOOGLE_display_timing](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GOOGLE_display_timing.html) unsafely with the `VULKAN_GOOGLE_DISPLAY_TIMING` feature. By @DJMcNab in [#6149](https://github.com/gfx-rs/wgpu/pull/6149)

### Bug Fixes

- Fix incorrect hlsl image output type conversion. By @atlv24 in [#6123](https://github.com/gfx-rs/wgpu/pull/6123)
- Fix JS `TypeError` exception in `Instance::request_adapter` when browser doesn't support WebGPU but `wgpu` not compiled with `webgl` support. By @bgr360 in [#6197](https://github.com/gfx-rs/wgpu/pull/6197).

#### Naga

- Accept only `vec3` (not `vecN`) for the `cross` built-in. By @ErichDonGubler in [#6171](https://github.com/gfx-rs/wgpu/pull/6171).
- Configure `SourceLanguage` when enabling debug info in SPV-out. By @kvark in [#6256](https://github.com/gfx-rs/wgpu/pull/6256)

#### General

- If GL context creation fails retry with GLES. By @Rapdorian in [#5996](https://github.com/gfx-rs/wgpu/pull/5996)
Expand All @@ -74,17 +107,47 @@ By @wumpf in [#6069](https://github.com/gfx-rs/wgpu/pull/6069), [#6099](https://
- Deduplicate bind group layouts that are created from pipelines with "auto" layouts. By @teoxoy [#6049](https://github.com/gfx-rs/wgpu/pull/6049)
- Fix crash when dropping the surface after the device. By @wumpf in [#6052](https://github.com/gfx-rs/wgpu/pull/6052)
- Fix error message that is thrown in create_render_pass to no longer say `compute_pass`. By @matthew-wong1 [#6041](https://github.com/gfx-rs/wgpu/pull/6041)
- Add `VideoFrame` to `ExternalImageSource` enum. By @jprochazk in [#6170](https://github.com/gfx-rs/wgpu/pull/6170)
- Document `wgpu_hal` bounds-checking promises, and adapt `wgpu_core`'s lazy initialization logic to the slightly weaker-than-expected guarantees. By @jimblandy in [#6201](https://github.com/gfx-rs/wgpu/pull/6201)

#### GLES / OpenGL

- Fix GL debug message callbacks not being properly cleaned up (causing UB). By @Imberflur in [#6114](https://github.com/gfx-rs/wgpu/pull/6114)

#### Vulkan

- Vulkan debug labels assumed no interior nul byte. By @DJMcNab in [#6257](https://github.com/gfx-rs/wgpu/pull/6257)
- Add `.index_type(vk::IndexType::NONE_KHR)` when creating `AccelerationStructureGeometryTrianglesDataKHR` in the raytraced triangle example to prevent a validation error. By @Vecvec in [#6282](https://github.com/gfx-rs/wgpu/pull/6282)

### Changes

- `wgpu_hal::gles::Adapter::new_external` now requires the context to be current when dropping the adapter and related objects. By @Imberflur in [#6114](https://github.com/gfx-rs/wgpu/pull/6114).
- Reduce the amount of debug and trace logs emitted by wgpu-core and wgpu-hal. By @nical in [#6065](https://github.com/gfx-rs/wgpu/issues/6065)
- `Rg11b10Float` is renamed to `Rg11b10UFloat`. By @sagudev in [#6108](https://github.com/gfx-rs/wgpu/pull/6108)
- `Rg11b10Float` is renamed to `Rg11b10Ufloat`. By @sagudev in [#6108](https://github.com/gfx-rs/wgpu/pull/6108)

#### HAL

- Change the inconsistent `DropGuard` based API on Vulkan and GLES to a consistent, callback-based one. By @jerzywilczek in [#6164](https://github.com/gfx-rs/wgpu/pull/6164)

### Documentation

- Removed some OpenGL and Vulkan references from `wgpu-types` documentation. Fixed Storage texel types in examples. By @Nelarius in [#6271](https://github.com/gfx-rs/wgpu/pull/6271)

### Dependency Updates

#### GLES

- Replace `winapi` code in WGL wrapper to use the `windows` crate. By @MarijnS95 in [#6006](https://github.com/gfx-rs/wgpu/pull/6006)
- Update `glutin` to `0.31` with `glutin-winit` crate. By @MarijnS95 in [#6150](https://github.com/gfx-rs/wgpu/pull/6150) and [#6176](https://github.com/gfx-rs/wgpu/pull/6176)
- Implement `Adapter::new_external()` for WGL (just like EGL) to import an external OpenGL ES context. By @MarijnS95 in [#6152](https://github.com/gfx-rs/wgpu/pull/6152)

#### DX12

- Replace `winapi` code to use the `windows` crate. By @MarijnS95 in [#5956](https://github.com/gfx-rs/wgpu/pull/5956) and [#6173](https://github.com/gfx-rs/wgpu/pull/6173)

#### HAL

- Update `parking_lot` to `0.12`. By @mahkoh in [#6287](https://github.com/gfx-rs/wgpu/pull/6287)

## 22.0.0 (2024-07-17)

Expand Down Expand Up @@ -224,6 +287,7 @@ By @teoxoy in [#5901](https://github.com/gfx-rs/wgpu/pull/5901)
- `MemoryHints::MemoryUsage` favors memory usage over performance. This hint is typically useful for smaller applications or UI libraries.
- `MemoryHints::Manual` allows the user to specify parameters for the underlying GPU memory allocator. These parameters are subject to change.
- These hints may be ignored by some backends. Currently only the Vulkan and D3D12 backends take them into account.
- Add `HTMLImageElement` and `ImageData` as external source for copying images. By @Valaphee in [#5668](https://github.com/gfx-rs/wgpu/pull/5668)

#### Naga

Expand Down Expand Up @@ -747,7 +811,7 @@ The easiest way to make this code safe is to use shared ownership:
```rust
let window: Arc<winit::Window>;
// ...
let surface = instance.create_surface(my_window.clone())?;
let surface = instance.create_surface(window.clone())?;
```

All platform specific surface creation using points have moved into `SurfaceTargetUnsafe` as well.
Expand Down
Loading
Loading