diff --git a/src/back/msl/writer.rs b/src/back/msl/writer.rs index ca85bfd3f8..7528354238 100644 --- a/src/back/msl/writer.rs +++ b/src/back/msl/writer.rs @@ -1905,6 +1905,7 @@ impl Writer { crate::Expression::CallResult(_) | crate::Expression::AtomicResult { .. } | crate::Expression::WorkGroupUniformLoadResult { .. } + | crate::Expression::SubgroupBallotResult | crate::Expression::RayQueryProceedResult => { unreachable!() } @@ -1963,7 +1964,6 @@ impl Writer { } write!(self.out, "}}")?; } - crate::Expression::SubgroupBallotResult => todo!(), } Ok(()) } @@ -2977,7 +2977,13 @@ impl Writer { } } } - crate::Statement::SubgroupBallot { result } => todo!(), + crate::Statement::SubgroupBallot { result } => { + write!(self.out, "{level}")?; + let name = self.namer.call(""); + self.start_baking_expression(result, &context.expression, &name)?; + self.named_expressions.insert(result, name); + write!(self.out, "{NAMESPACE}::simd_active_threads_mask();")?; + } } }