d4713ad528
I ran into a snag while trying to hook up SkRuntimeEffect with debug tracing. Runtime effects only have access to a skvm::Builder, and are never exposed to the full skvm::Program. SkVMBlitter is responsible for assembling the full skvm::Program, but is oblivious to runtime effects and nested skvm sub-programs. Additionally, multiple runtime effects can (and often do) coexist within a paint. This CL changes how debug traces are enabled. skvm::Program no longer has a `attachDebugTrace` method. Instead, this method lives on the skvm::Builder. Calling `attachDebugTrace` generates a "trace-hook ID" (which is actually an index into a vector of TraceHook pointers). Every trace opcode now includes this trace hook ID. When the Builder assembles a final Program, it copies the TraceHooks into the Program. The skvm interpreter uses the trace hook ID on the op to dispatch a trace command to its associated TraceHook. From a user perspective, this doesn't change very much, but it does mean that the SkVM Code Generator now supplies a TraceHook for us (since it adds trace ops to the Builder and needs to know the proper trace-hook ID). Change-Id: I8bd5fea24f477f81470fae8ba41be45f76949407 Bug: skia:12708 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/479597 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.