Skip to content

Commit 8ee66bd

Browse files
committed
Update changelog for v26
1 parent a851eba commit 8ee66bd

File tree

1 file changed

+59
-23
lines changed

1 file changed

+59
-23
lines changed

CHANGELOG.md

Lines changed: 59 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,18 @@ Bottom level categories:
4040

4141
## Unreleased
4242

43-
### `as_hal` calls now return guards instead of using callbacks.
43+
## v26.0.0 (2025-07-09)
44+
45+
### Major Features
46+
47+
#### New method `TextureView::texture`
48+
49+
You can now call `texture_view.texture()` to get access to the texture that
50+
a given texture view points to.
51+
52+
By @cwfitzgerald and @Wumpf in [#7907](https://github.com/gfx-rs/wgpu/pull/7907).
53+
54+
#### `as_hal` calls now return guards instead of using callbacks.
4455

4556
Previously, if you wanted to get access to the wgpu-hal or underlying api types, you would call `as_hal` and get the hal type as a callback. Now the function returns a guard which dereferences to the hal type.
4657

@@ -49,16 +60,48 @@ Previously, if you wanted to get access to the wgpu-hal or underlying api types,
4960
+ let hal_device: impl Deref<Item = hal::vulkan::Device> = device.as_hal::<hal::api::Vulkan>();
5061
```
5162

52-
### New Features
63+
By @cwfitzgerald in [#7863](https://github.com/gfx-rs/wgpu/pull/7863).
5364

54-
#### New method `TextureView::texture`
65+
#### Enabling Vulkan Features/Extensions
5566

56-
You can now call `texture_view.texture()` to get access to the texture that
57-
a given texture view points to.
67+
For those who are doing vulkan/wgpu interop or passthrough and need to enable features/extensions that wgpu does not expose, there is a new `wgpu_hal::vulkan::Adapter::open_with_callback` that allows the user to modify the pnext chains and extension lists populated by wgpu before we create a vulkan device. This should vastly simplify the experience, as previously you needed to create a device yourself.
5868

59-
By @cwfitzgerald in [#7907](https://github.com/gfx-rs/wgpu/pull/7907).
69+
Underlying api interop is a quickly evolving space, so we welcome all feedback!
6070

61-
#### Naga
71+
```rust
72+
type VkApi = wgpu::hal::api::Vulkan;
73+
let adapter: wgpu::Adapter = ...;
74+
75+
let mut buffer_device_address_create_info = ash::vk::PhysicalDeviceBufferDeviceAddressFeatures { .. };
76+
let hal_device: wgpu::hal::OpenDevice<VkApi> = adapter
77+
.as_hal::<VkApi>()
78+
.unwrap()
79+
.open_with_callback(
80+
wgpu::Features::empty(),
81+
&wgpu::MemoryHints::Performance,
82+
Some(Box::new(|args| {
83+
// Add the buffer device address extension.
84+
args.extensions.push(ash::khr::buffer_device_address::NAME);
85+
// Extend the create info with the buffer device address create info.
86+
*args.create_info = args
87+
.create_info
88+
.push_next(&mut buffer_device_address_create_info);
89+
// We also have access to the queue create infos if we need them.
90+
let _ = args.queue_create_infos;
91+
})),
92+
)
93+
.unwrap();
94+
95+
let (device, queue) = adapter
96+
.create_device_from_hal(hal_device, &wgpu::DeviceDescriptor { .. })
97+
.unwrap();
98+
```
99+
100+
More examples of this
101+
102+
By @Vecvec in [#7829](https://github.com/gfx-rs/wgpu/pull/7829).
103+
104+
### Naga
62105

63106
- Added `no_std` support with default features disabled. By @Bushrat011899 in [#7585](https://github.com/gfx-rs/wgpu/pull/7585).
64107
- [wgsl-in,ir] Add support for parsing rust-style doc comments via `naga::front::glsl::Frontend::new_with_options`. By @Vrixyz in [#6364](https://github.com/gfx-rs/wgpu/pull/6364).
@@ -67,9 +110,10 @@ By @cwfitzgerald in [#7907](https://github.com/gfx-rs/wgpu/pull/7907).
67110
- Add support for [quad operations](https://www.w3.org/TR/WGSL/#quad-builtin-functions) (requires `SUBGROUP` feature to be enabled). By @dzamkov and @valaphee in [#7683](https://github.com/gfx-rs/wgpu/pull/7683).
68111
- Add support for `atomicCompareExchangeWeak` in HLSL and GLSL backends. By @cryvosh in [#7658](https://github.com/gfx-rs/wgpu/pull/7658)
69112

70-
#### General
113+
### General
71114

72115
- Add support for astc-sliced-3d feature. By @mehmetoguzderin in [#7577](https://github.com/gfx-rs/wgpu/issues/7577)
116+
- Added `wgpu_hal::dx12::Adapter::as_raw()`. By @tronical in [##7852](https://github.com/gfx-rs/wgpu/pull/7852)
73117
- Add support for rendering to slices of 3D texture views and single layered 2D-Array texture views (this requires `VK_KHR_maintenance1` which should be widely available on newer drivers). By @teoxoy in [#7596](https://github.com/gfx-rs/wgpu/pull/7596)
74118
- Add extra acceleration structure vertex formats. By @Vecvec in [#7580](https://github.com/gfx-rs/wgpu/pull/7580).
75119
- Add acceleration structure limits. By @Vecvec in [#7845](https://github.com/gfx-rs/wgpu/pull/7845).
@@ -78,10 +122,6 @@ By @cwfitzgerald in [#7907](https://github.com/gfx-rs/wgpu/pull/7907).
78122

79123
[`GPUError`]: https://www.w3.org/TR/webgpu/#gpuerror
80124

81-
#### Vulkan
82-
83-
- Add ways to initialise the instance and open the adapter with callbacks to add extensions. By @Vecvec in [#7829](https://github.com/gfx-rs/wgpu/pull/7829).
84-
85125
### Bug Fixes
86126

87127
#### General
@@ -108,7 +148,6 @@ By @cwfitzgerald in [#7907](https://github.com/gfx-rs/wgpu/pull/7907).
108148
#### DX12
109149

110150
- Get `vertex_index` & `instance_index` builtins working for indirect draws. By @teoxoy in [#7535](https://github.com/gfx-rs/wgpu/pull/7535)
111-
- Added `wgpu_hal::dx12::Adapter::as_raw()`. By @tronical in [##7852](https://github.com/gfx-rs/wgpu/pull/7852)
112151

113152
#### Vulkan
114153

@@ -136,6 +175,13 @@ By @cwfitzgerald in [#7907](https://github.com/gfx-rs/wgpu/pull/7907).
136175
- The `destroy` functions for buffers and textures in wgpu-core are now infallible. Previously, they returned an error if called multiple times for the same object. This only affects the wgpu-core API; the wgpu API already allowed multiple `destroy` calls. By @andyleiserson in [#7686](https://github.com/gfx-rs/wgpu/pull/7686) and [#7720](https://github.com/gfx-rs/wgpu/pull/7720).
137176
- Remove `CommandEncoder::build_acceleration_structures_unsafe_tlas` in favour of `as_hal` and apply
138177
simplifications allowed by this. By @Vecvec in [#7513](https://github.com/gfx-rs/wgpu/pull/7513)
178+
- The type of the `size` parameter to `copy_buffer_to_buffer` has changed from `BufferAddress` to `impl Into<Option<BufferAddress>>`. This achieves the spec-defined behavior of the value being optional, while still accepting existing calls without changes. By @andyleiserson in [#7659](https://github.com/gfx-rs/wgpu/pull/7659).
179+
- To bring wgpu's error reporting into compliance with the WebGPU specification, the error type returned from some functions has changed, and some errors may be raised at a different time than they were previously.
180+
- The error type returned by many methods on `CommandEncoder`, `RenderPassEncoder`, `ComputePassEncoder`, and `RenderBundleEncoder` has changed to `EncoderStateError` or `PassStateError`. These functions will return the `Ended` variant of these errors if called on an encoder that is no longer active. Reporting of all other errors is deferred until a call to `finish()`.
181+
- Variants holding a `CommandEncoderError` in the error enums `ClearError`, `ComputePassErrorInner`, `QueryError`, and `RenderPassErrorInner` have been replaced with variants holding an `EncoderStateError`.
182+
- The definition of `enum CommandEncoderError` has changed significantly, to reflect which errors can be raised by `CommandEncoder.finish()`. There are also some errors that no longer appear directly in `CommandEncoderError`, and instead appear nested within the `RenderPass` or `ComputePass` variants.
183+
- `CopyError` has been removed. Errors that were previously a `CopyError` are now a `CommandEncoderError` returned by `finish()`. (The detailed reasons for copies to fail were and still are described by `TransferError`, which was previously a variant of `CopyError`, and is now a variant of `CommandEncoderError`).
184+
139185

140186
#### Naga
141187

@@ -157,16 +203,6 @@ By @cwfitzgerald in [#7907](https://github.com/gfx-rs/wgpu/pull/7907).
157203

158204
- Use highest SPIR-V version supported by Vulkan API version. By @robamler in [#7595](https://github.com/gfx-rs/wgpu/pull/7595)
159205

160-
#### WebGPU
161-
162-
- The type of the `size` parameter to `copy_buffer_to_buffer` has changed from `BufferAddress` to `impl Into<Option<BufferAddress>>`. This achieves the spec-defined behavior of the value being optional, while still accepting existing calls without changes. By @andyleiserson in [#7659](https://github.com/gfx-rs/wgpu/pull/7659).
163-
- To bring wgpu's error reporting into compliance with the WebGPU specification, the error type returned from some functions has changed, and some errors may be raised at a different time than they were previously.
164-
- The error type returned by many methods on `CommandEncoder`, `RenderPassEncoder`, `ComputePassEncoder`, and `RenderBundleEncoder` has changed to `EncoderStateError` or `PassStateError`. These functions will return the `Ended` variant of these errors if called on an encoder that is no longer active. Reporting of all other errors is deferred until a call to `finish()`.
165-
- Variants holding a `CommandEncoderError` in the error enums `ClearError`, `ComputePassErrorInner`, `QueryError`, and `RenderPassErrorInner` have been replaced with variants holding an `EncoderStateError`.
166-
- The definition of `enum CommandEncoderError` has changed significantly, to reflect which errors can be raised by `CommandEncoder.finish()`. There are also some errors that no longer appear directly in `CommandEncoderError`, and instead appear nested within the `RenderPass` or `ComputePass` variants.
167-
- `CopyError` has been removed. Errors that were previously a `CopyError` are now a `CommandEncoderError` returned by `finish()`. (The detailed reasons for copies to fail were and still are described by `TransferError`, which was previously a variant of `CopyError`, and is now a variant of `CommandEncoderError`).
168-
169-
170206
#### HAL
171207

172208
- Added initial `no_std` support to `wgpu-hal`. By @bushrat011899 in [#7599](https://github.com/gfx-rs/wgpu/pull/7599)

0 commit comments

Comments
 (0)