Skip to content

Commit a8f51f8

Browse files
authored
Split MipmapFilterMode from FilterMode (#8314)
1 parent 8ff1eb9 commit a8f51f8

File tree

26 files changed

+123
-60
lines changed

26 files changed

+123
-60
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,19 @@ This is a breaking change
5454

5555
By @R-Cramer4 in [#8230](https://github.com/gfx-rs/wgpu/pull/8230)
5656

57+
#### `MipmapFilterMode` is split from `FilterMode`
58+
59+
This is a breaking change that aligns wgpu with spec.
60+
61+
```diff
62+
SamplerDescriptor {
63+
...
64+
- mipmap_filter: FilterMode::Nearest
65+
+ mipmap_filter: MipmapFilterMode::Nearest
66+
...
67+
}
68+
```
69+
5770
## v27.0.2 (2025-10-03)
5871

5972
### Bug Fixes

deno_webgpu/sampler.rs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ pub(super) struct GPUSamplerDescriptor {
6666
pub mag_filter: GPUFilterMode,
6767
#[webidl(default = GPUFilterMode::Nearest)]
6868
pub min_filter: GPUFilterMode,
69-
#[webidl(default = GPUFilterMode::Nearest)]
70-
pub mipmap_filter: GPUFilterMode,
69+
#[webidl(default = GPUMipmapFilterMode::Nearest)]
70+
pub mipmap_filter: GPUMipmapFilterMode,
7171

7272
#[webidl(default = 0.0)]
7373
pub lod_min_clamp: f32,
@@ -99,7 +99,6 @@ impl From<GPUAddressMode> for wgpu_types::AddressMode {
9999
}
100100
}
101101

102-
// Same as GPUMipmapFilterMode
103102
#[derive(WebIDL)]
104103
#[webidl(enum)]
105104
pub(crate) enum GPUFilterMode {
@@ -116,6 +115,22 @@ impl From<GPUFilterMode> for wgpu_types::FilterMode {
116115
}
117116
}
118117

118+
#[derive(WebIDL)]
119+
#[webidl(enum)]
120+
pub(crate) enum GPUMipmapFilterMode {
121+
Nearest,
122+
Linear,
123+
}
124+
125+
impl From<GPUMipmapFilterMode> for wgpu_types::MipmapFilterMode {
126+
fn from(value: GPUMipmapFilterMode) -> Self {
127+
match value {
128+
GPUMipmapFilterMode::Nearest => Self::Nearest,
129+
GPUMipmapFilterMode::Linear => Self::Linear,
130+
}
131+
}
132+
}
133+
119134
#[derive(WebIDL)]
120135
#[webidl(enum)]
121136
pub(crate) enum GPUCompareFunction {

examples/features/src/bunnymark/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ impl crate::framework::Example for Example {
278278
address_mode_w: wgpu::AddressMode::ClampToEdge,
279279
mag_filter: wgpu::FilterMode::Linear,
280280
min_filter: wgpu::FilterMode::Nearest,
281-
mipmap_filter: wgpu::FilterMode::Nearest,
281+
mipmap_filter: wgpu::MipmapFilterMode::Nearest,
282282
..Default::default()
283283
});
284284

examples/features/src/mipmap/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ impl Example {
117117
address_mode_w: wgpu::AddressMode::ClampToEdge,
118118
mag_filter: wgpu::FilterMode::Linear,
119119
min_filter: wgpu::FilterMode::Linear,
120-
mipmap_filter: wgpu::FilterMode::Nearest,
120+
mipmap_filter: wgpu::MipmapFilterMode::Nearest,
121121
..Default::default()
122122
});
123123

@@ -268,7 +268,7 @@ impl crate::framework::Example for Example {
268268
address_mode_w: wgpu::AddressMode::Repeat,
269269
mag_filter: wgpu::FilterMode::Linear,
270270
min_filter: wgpu::FilterMode::Linear,
271-
mipmap_filter: wgpu::FilterMode::Linear,
271+
mipmap_filter: wgpu::MipmapFilterMode::Linear,
272272
..Default::default()
273273
});
274274
let mx_total = Self::generate_matrix(config.width as f32 / config.height as f32);

examples/features/src/multiple_render_targets/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ impl MultiTargetRenderer {
121121
address_mode_w: wgpu::AddressMode::Repeat,
122122
mag_filter: wgpu::FilterMode::Nearest,
123123
min_filter: wgpu::FilterMode::Nearest,
124-
mipmap_filter: wgpu::FilterMode::Nearest,
124+
mipmap_filter: wgpu::MipmapFilterMode::Nearest,
125125
..Default::default()
126126
});
127127

@@ -240,7 +240,7 @@ impl TargetRenderer {
240240
address_mode_w: wgpu::AddressMode::Repeat,
241241
mag_filter: wgpu::FilterMode::Nearest,
242242
min_filter: wgpu::FilterMode::Nearest,
243-
mipmap_filter: wgpu::FilterMode::Nearest,
243+
mipmap_filter: wgpu::MipmapFilterMode::Nearest,
244244
..Default::default()
245245
});
246246

examples/features/src/ray_cube_compute/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ impl crate::framework::Example for Example {
200200
address_mode_w: wgpu::AddressMode::ClampToEdge,
201201
mag_filter: wgpu::FilterMode::Linear,
202202
min_filter: wgpu::FilterMode::Linear,
203-
mipmap_filter: wgpu::FilterMode::Nearest,
203+
mipmap_filter: wgpu::MipmapFilterMode::Nearest,
204204
..Default::default()
205205
});
206206

examples/features/src/ray_cube_normals/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ impl crate::framework::Example for Example {
189189
address_mode_w: wgpu::AddressMode::ClampToEdge,
190190
mag_filter: wgpu::FilterMode::Linear,
191191
min_filter: wgpu::FilterMode::Linear,
192-
mipmap_filter: wgpu::FilterMode::Nearest,
192+
mipmap_filter: wgpu::MipmapFilterMode::Nearest,
193193
..Default::default()
194194
});
195195

examples/features/src/ray_traced_triangle/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ impl crate::framework::Example for Example {
257257
address_mode_w: Default::default(),
258258
mag_filter: wgpu::FilterMode::Nearest,
259259
min_filter: wgpu::FilterMode::Nearest,
260-
mipmap_filter: wgpu::FilterMode::Nearest,
260+
mipmap_filter: wgpu::MipmapFilterMode::Nearest,
261261
lod_min_clamp: 1.0,
262262
lod_max_clamp: 1.0,
263263
compare: None,

examples/features/src/shadow/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ impl crate::framework::Example for Example {
366366
address_mode_w: wgpu::AddressMode::ClampToEdge,
367367
mag_filter: wgpu::FilterMode::Linear,
368368
min_filter: wgpu::FilterMode::Linear,
369-
mipmap_filter: wgpu::FilterMode::Nearest,
369+
mipmap_filter: wgpu::MipmapFilterMode::Nearest,
370370
compare: Some(wgpu::CompareFunction::LessEqual),
371371
..Default::default()
372372
});

examples/features/src/skybox/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ impl crate::framework::Example for Example {
263263
address_mode_w: wgpu::AddressMode::ClampToEdge,
264264
mag_filter: wgpu::FilterMode::Linear,
265265
min_filter: wgpu::FilterMode::Linear,
266-
mipmap_filter: wgpu::FilterMode::Linear,
266+
mipmap_filter: wgpu::MipmapFilterMode::Linear,
267267
..Default::default()
268268
});
269269

0 commit comments

Comments
 (0)