2756b0ee02
Previously, the trace opcodes took a single mask argument, which was computed as `execution mask & trace mask`. This led to extra bit_ands in the output, as this value would be need to be recalculated every time the execution mask changed. To reduce this cost on program size, the trace ops now take two mask arguments and require that both must be true. We have four register slots at our disposal in an Op, which is more than we need, so this doesn't really cost us anything. (As an extra minor optimization, if one of the masks is "always-on", we optimize it away. This avoids burning a register just to hold a ~0 immediate value.) Change-Id: I9eb71292a1983e71b03c7ac842534beb3d6bbf17 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/478456 Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: John Stiles <johnstiles@google.com> |
||
---|---|---|
.. | ||
blend | ||
errors | ||
folding | ||
glsl | ||
inliner | ||
intrinsics | ||
metal | ||
runtime | ||
runtime_errors | ||
shared | ||
spirv | ||
workarounds | ||
README.txt |
This directory contains skslc-compiled output from matching source files in the /resources/sksl/ directory.