mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-21 22:33:49 +00:00
naga: Don't consider per-polygon inputs to be subgroup uniform
Implementations can absolutely pack multiple triangles per subgroup. Fixes #6270.
This commit is contained in:
parent
39cfeefd8b
commit
390a4169fb
@ -99,6 +99,7 @@ By @bradwerth [#6216](https://github.com/gfx-rs/wgpu/pull/6216).
|
|||||||
|
|
||||||
- Accept only `vec3` (not `vecN`) for the `cross` built-in. By @ErichDonGubler in [#6171](https://github.com/gfx-rs/wgpu/pull/6171).
|
- 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)
|
- Configure `SourceLanguage` when enabling debug info in SPV-out. By @kvark in [#6256](https://github.com/gfx-rs/wgpu/pull/6256)
|
||||||
|
- Per-polygon and flat inputs should not be considered subgroup uniform. By @magcius in [#6276](https://github.com/gfx-rs/wgpu/pull/6276).
|
||||||
|
|
||||||
#### General
|
#### General
|
||||||
|
|
||||||
|
@ -589,23 +589,16 @@ impl FunctionInfo {
|
|||||||
requirements: UniformityRequirements::empty(),
|
requirements: UniformityRequirements::empty(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// depends on the builtin or interpolation
|
// depends on the builtin
|
||||||
E::FunctionArgument(index) => {
|
E::FunctionArgument(index) => {
|
||||||
let arg = &resolve_context.arguments[index as usize];
|
let arg = &resolve_context.arguments[index as usize];
|
||||||
let uniform = match arg.binding {
|
let uniform = match arg.binding {
|
||||||
Some(crate::Binding::BuiltIn(
|
Some(crate::Binding::BuiltIn(
|
||||||
// per-polygon built-ins are uniform
|
|
||||||
crate::BuiltIn::FrontFacing
|
|
||||||
// per-work-group built-ins are uniform
|
// per-work-group built-ins are uniform
|
||||||
| crate::BuiltIn::WorkGroupId
|
crate::BuiltIn::WorkGroupId
|
||||||
| crate::BuiltIn::WorkGroupSize
|
| crate::BuiltIn::WorkGroupSize
|
||||||
| crate::BuiltIn::NumWorkGroups)
|
| crate::BuiltIn::NumWorkGroups,
|
||||||
) => true,
|
)) => true,
|
||||||
// only flat inputs are uniform
|
|
||||||
Some(crate::Binding::Location {
|
|
||||||
interpolation: Some(crate::Interpolation::Flat),
|
|
||||||
..
|
|
||||||
}) => true,
|
|
||||||
_ => false,
|
_ => false,
|
||||||
};
|
};
|
||||||
Uniformity {
|
Uniformity {
|
||||||
|
Loading…
Reference in New Issue
Block a user