Skip to content

Commit bbed2c0

Browse files
SYNC POINT: resolve merge conflicts
2 parents 1fab12e + 0e81266 commit bbed2c0

27 files changed

Lines changed: 94 additions & 45 deletions

File tree

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,18 @@ Bottom level categories:
4242

4343
## Unreleased
4444

45+
### Added/New Features
46+
47+
#### Metal
48+
49+
- Unconditionally enable `Features::CLIP_DISTANCES`. By @ErichDonGubler in [#????](https://github.com/gfx-rs/wgpu/pull/????).
50+
51+
### Changes
52+
53+
#### General
54+
55+
- `Features::CLIP_DISTANCE` and `naga::Capabilities::CLIP_DISTANCE` have been renamed to `CLIP_DISTANCES` (N.B. the `S`), to match the WebGPU spec. By @ErichDonGubler in [#????](https://github.com/gfx-rs/wgpu/pull/????).
56+
4557
### Bug Fixes
4658

4759
#### General

naga/src/back/glsl/conv.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ pub(in crate::back::glsl) const fn glsl_built_in(
7676
// vertex
7777
Bi::BaseInstance => "uint(gl_BaseInstance)",
7878
Bi::BaseVertex => "uint(gl_BaseVertex)",
79-
Bi::ClipDistance => "gl_ClipDistance",
79+
Bi::ClipDistances => "gl_ClipDistance",
8080
Bi::CullDistance => "gl_CullDistance",
8181
Bi::InstanceIndex => {
8282
if options.draw_parameters {

naga/src/back/glsl/features.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,7 @@ impl<W> Writer<'_, W> {
618618
} else if let Some(binding) = binding {
619619
match *binding {
620620
Binding::BuiltIn(built_in) => match built_in {
621-
crate::BuiltIn::ClipDistance => self.features.request(Features::CLIP_DISTANCE),
621+
crate::BuiltIn::ClipDistances => self.features.request(Features::CLIP_DISTANCE),
622622
crate::BuiltIn::CullDistance => self.features.request(Features::CULL_DISTANCE),
623623
crate::BuiltIn::SampleIndex => {
624624
self.features.request(Features::SAMPLE_VARIABLES)

naga/src/back/glsl/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,7 @@ pub fn supported_capabilities() -> valid::Capabilities {
626626
Caps::IMMEDIATES
627627
| Caps::FLOAT64
628628
| Caps::PRIMITIVE_INDEX
629-
| Caps::CLIP_DISTANCE
629+
| Caps::CLIP_DISTANCES
630630
| Caps::MULTIVIEW
631631
| Caps::EARLY_DEPTH_TEST
632632
| Caps::MULTISAMPLED_SHADING

naga/src/back/glsl/writer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1084,7 +1084,7 @@ impl<'a, W: Write> Writer<'a, W> {
10841084
}
10851085
}
10861086
}
1087-
crate::BuiltIn::ClipDistance => {
1087+
crate::BuiltIn::ClipDistances => {
10881088
// Re-declare `gl_ClipDistance` with number of clip planes.
10891089
let TypeInner::Array { size, .. } = self.module.types[ty].inner else {
10901090
unreachable!();

naga/src/back/hlsl/conv.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ impl crate::BuiltIn {
153153
Ok(match self {
154154
Self::Position { .. } => "SV_Position",
155155
// vertex
156-
Self::ClipDistance => "SV_ClipDistance",
156+
Self::ClipDistances => "SV_ClipDistance",
157157
Self::CullDistance => "SV_CullDistance",
158158
Self::InstanceIndex => "SV_InstanceID",
159159
Self::VertexIndex => "SV_VertexID",

naga/src/back/hlsl/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,7 @@ pub fn supported_capabilities() -> crate::valid::Capabilities {
771771
| Caps::STORAGE_TEXTURE_BINDING_ARRAY
772772
// No STORAGE_BUFFER_BINDING_ARRAY
773773
| Caps::ACCELERATION_STRUCTURE_BINDING_ARRAY
774-
// No CLIP_DISTANCE
774+
// No CLIP_DISTANCES
775775
// No CULL_DISTANCE
776776
| Caps::STORAGE_TEXTURE_16BIT_NORM_FORMATS
777777
| Caps::MULTIVIEW

naga/src/back/msl/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ impl ResolvedBinding {
686686
// vertex
687687
Bi::BaseInstance => "base_instance",
688688
Bi::BaseVertex => "base_vertex",
689-
Bi::ClipDistance => "clip_distance",
689+
Bi::ClipDistances => "clip_distance",
690690
Bi::InstanceIndex => "instance_id",
691691
Bi::PointSize => "point_size",
692692
Bi::VertexIndex => "vertex_id",
@@ -841,7 +841,7 @@ pub fn supported_capabilities() -> crate::valid::Capabilities {
841841
// No BUFFER_BINDING_ARRAY
842842
| Caps::STORAGE_TEXTURE_BINDING_ARRAY
843843
| Caps::STORAGE_BUFFER_BINDING_ARRAY
844-
| Caps::CLIP_DISTANCE // CLIP_DISTANCE isn't supported by metal backend? But is supported by MSL writer
844+
| Caps::CLIP_DISTANCES
845845
// No CULL_DISTANCE
846846
| Caps::STORAGE_TEXTURE_16BIT_NORM_FORMATS
847847
| Caps::MULTIVIEW

naga/src/back/msl/writer.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7190,10 +7190,19 @@ template <typename A>
71907190
};
71917191
let resolved = options.resolve_local_binding(binding, out_mode)?;
71927192
write!(self.out, "{}{} {}", back::INDENT, ty_name, name)?;
7193+
let binding_attr_comes_before_array = matches!(
7194+
resolved,
7195+
super::ResolvedBinding::BuiltIn(crate::BuiltIn::ClipDistances)
7196+
);
7197+
if binding_attr_comes_before_array {
7198+
resolved.try_fmt(&mut self.out)?;
7199+
}
71937200
if let Some(array_len) = array_len {
71947201
write!(self.out, " [{array_len}]")?;
71957202
}
7196-
resolved.try_fmt(&mut self.out)?;
7203+
if !binding_attr_comes_before_array {
7204+
resolved.try_fmt(&mut self.out)?;
7205+
}
71977206
writeln!(self.out, ";")?;
71987207
}
71997208

naga/src/back/spv/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1158,7 +1158,7 @@ pub fn supported_capabilities() -> crate::valid::Capabilities {
11581158
| Caps::STORAGE_TEXTURE_BINDING_ARRAY
11591159
| Caps::STORAGE_BUFFER_BINDING_ARRAY
11601160
| Caps::ACCELERATION_STRUCTURE_BINDING_ARRAY
1161-
| Caps::CLIP_DISTANCE
1161+
| Caps::CLIP_DISTANCES
11621162
// No cull distance
11631163
| Caps::STORAGE_TEXTURE_16BIT_NORM_FORMATS
11641164
| Caps::MULTIVIEW

0 commit comments

Comments
 (0)