|
@@ -363,10 +363,13 @@ struct computeExpected<InType, OutType, ShaderOpKind::WaveActiveAllEqual> {
|
|
OutType operator()(const std::vector<InType> &inputs,
|
|
OutType operator()(const std::vector<InType> &inputs,
|
|
const std::vector<int> &masks, int maskValue,
|
|
const std::vector<int> &masks, int maskValue,
|
|
unsigned int index) {
|
|
unsigned int index) {
|
|
- OutType val = inputs.at(0); // assuming there is always one lane per wave
|
|
|
|
- for (size_t i = 1; i < index; ++i) {
|
|
|
|
- if (masks.at(i) == maskValue && val != inputs.at(i)) {
|
|
|
|
- return 0;
|
|
|
|
|
|
+ const InType *val = nullptr;
|
|
|
|
+ for (size_t i = 0; i < index; ++i) {
|
|
|
|
+ if (masks.at(i) == maskValue) {
|
|
|
|
+ if (val && *val != inputs.at(i)) {
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+ val = &inputs.at(i);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return 1;
|
|
return 1;
|