skia2/tests/sksl
John Stiles d4713ad528 Move trace hooks into the skvm::Builder.
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>
2021-12-03 20:09:22 +00:00
..
blend Reland "Add support for half-precision types in Metal." 2021-10-30 14:33:52 +00:00
errors Prevent 'binding' and 'set' on struct/interface block fields 2021-11-29 15:53:57 +00:00
folding Replace getConstantSubexpression with getConstantValue. 2021-11-15 14:46:21 +00:00
glsl Report an error if sk_LastFragColor is referenced without fbFetchSupport 2021-09-15 15:41:49 +00:00
inliner Allow inlining of functions with unassigned out-params. 2021-11-11 19:33:06 +00:00
intrinsics Add support for clamp($genUType, ...) in SkSL. 2021-11-11 18:43:42 +00:00
metal Reland "Add support for half-precision types in Metal." 2021-10-30 14:33:52 +00:00
runtime Move trace hooks into the skvm::Builder. 2021-12-03 20:09:22 +00:00
runtime_errors Fix fuzzer-discovered error with child calls. 2021-11-17 15:44:21 +00:00
shared Revert "Enable various switch tests in ES2 mode." 2021-12-02 19:03:11 +00:00
spirv Roll SPIRV-Headers and SPIRV-Tools 2021-11-19 19:22:54 +00:00
workarounds Remove the "in blend modes randomly fail for all zero vec" workaround 2021-10-21 16:54:51 +00:00
README.txt Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00

This directory contains skslc-compiled output from matching source files
in the /resources/sksl/ directory.