aebcf73404
It's not sound to pass undefined (skvm::NA) values into select(), but this is working today because the F32a argument is 'fixing' it. The first time through this snippet updating fReturn value, int i = 0; for (skvm::Val& slot : currentFunction().fReturnValue) { slot = select(returnsHere, f32(val[i]), f32(slot)).id; i++; } the call to f32(slot) creates an F32{builder, NA}. We pass that to select() and that argument's F32a(F32) constructor, resulting in F32a{builder, NA, 0.0f}. Then when we need that as an F32, we resolve it as splat(0.0f) because the F32a's id field is NA. In short, best to remove F32a. :) Added some SkASSERTs that would have caught this. Change-Id: I67324cf20ad39ca555e69b9c407f379d14046043 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/353838 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Brian Osman <brianosman@google.com> |
||
---|---|---|
.. | ||
golden | ||
ConversionConstructors.rte | ||
LoopFloat.rte | ||
LoopInt.rte | ||
SampleWithConstantMatrix.rte | ||
SampleWithExplicitCoord.rte | ||
SampleWithUniformMatrix.rte | ||
SampleWithVariableMatrix.rte |