skia2/fuzz/oss_fuzz
Brian Osman adadb95a9f Better first-class shader & color filter support in runtime effects
This does a few things, because they're all intertwined:

1) SkRuntimeEffect's API now includes details about children (which Skia
   stage was declared, not just the name). The factories verify that the
   declared types in the SkSL match up with the C++ types being passed.
   Today, we still only support adding children of the same type, so the
   checks are simple. Once we allow mixing types, we'll be testing the
   declared type against the actual C++ type supplied for each slot.
2) Adds sample variants that supply the input color to the child. This
   is now the only way to invoke a colorFilter child. Internally, we
   support passing a color when invoking a child shader, but I'm not
   exposing that. It's not clearly part of the semantics of the Skia
   pipeline, and is almost never useful. It also exposes users to
   several inconsistencies (skbug.com/11942).
3) Because of #2, it's possible that we can't compute a reusable program
   to filter individual colors. In that case, we don't set the constant
   output for constant input optimization, and filterColor4f falls back
   to the slower base-class implementation.

Bug: skia:11813 skia:11942
Change-Id: I06c41e1b35056e486f3163a72acf6b9535d7fed4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/401917
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2021-05-04 01:29:57 +00:00
..
FuzzAndroidCodec.cpp drawBitmap is deprecated 2021-01-24 17:39:15 +00:00
FuzzAnimatedImage.cpp [fuzz] Standardize, document, and backport fuzzing defines. 2020-09-14 13:36:10 +00:00
FuzzAPICreateDDL.cpp add create ddl fuzzer 2020-07-22 20:10:51 +00:00
FuzzAPIImageFilter.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzAPISVGCanvas.cpp Use test font manager for SVG fuzzer 2020-07-08 19:30:00 +00:00
FuzzDDLThreading.cpp Activate FuzzDDLThreading 2021-02-25 21:26:07 +00:00
FuzzDrawFunctions.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzGradients.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzImage.cpp More hiding of legacy drawImage calls 2021-01-22 13:53:42 +00:00
FuzzImageFilterDeserialize.cpp drawBitmap is deprecated 2021-01-24 17:39:15 +00:00
FuzzIncrementalImage.cpp [fuzz] Make libfuzzer defines backwards compatible for roll 2020-09-14 17:43:00 +00:00
FuzzJPEGEncoder.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzJSON.cpp [fuzz] Make libfuzzer defines backwards compatible for roll 2020-09-14 17:43:00 +00:00
FuzzMockGPUCanvas.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzNullCanvas.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzPathDeserialize.cpp [fuzz] Make libfuzzer defines backwards compatible for roll 2020-09-14 17:43:00 +00:00
FuzzPathMeasure.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzPathop.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzPNGEncoder.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzPolyUtils.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzRasterN32Canvas.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00
FuzzRegionDeserialize.cpp [fuzz] Make libfuzzer defines backwards compatible for roll 2020-09-14 17:43:00 +00:00
FuzzRegionOp.cpp [fuzz] Expose Region Op fuzzing to oss-fuzz. 2021-03-29 16:05:05 +00:00
FuzzRegionSetPath.cpp [fuzz] Make libfuzzer defines backwards compatible for roll 2020-09-14 17:43:00 +00:00
FuzzSkDescriptorDeserialize.cpp [fuzz] Standardize, document, and backport fuzzing defines. 2020-09-14 13:36:10 +00:00
FuzzSKP.cpp [fuzz] Standardize, document, and backport fuzzing defines. 2020-09-14 13:36:10 +00:00
FuzzSkParagraph.cpp [fuzzing] Add SkParagraph to oss-fuzz. 2021-02-04 19:34:48 +00:00
FuzzSkRuntimeEffect.cpp Switch runtime effect fuzzer to use MakeForShader 2021-04-26 15:40:58 +00:00
FuzzSKSL2GLSL.cpp Move ProgramKind and ProgramSettings types out of SkSL::Program. 2021-02-16 19:30:48 +00:00
FuzzSKSL2Metal.cpp Move ProgramKind and ProgramSettings types out of SkSL::Program. 2021-02-16 19:30:48 +00:00
FuzzSKSL2Pipeline.cpp Better first-class shader & color filter support in runtime effects 2021-05-04 01:29:57 +00:00
FuzzSKSL2SPIRV.cpp Move ProgramKind and ProgramSettings types out of SkSL::Program. 2021-02-16 19:30:48 +00:00
FuzzSVG.cpp Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
FuzzTextBlobDeserialize.cpp [fuzz] Make libfuzzer defines backwards compatible for roll 2020-09-14 17:43:00 +00:00
FuzzTriangulation.cpp Add fuzzer for Triangulating Path Renderer 2021-04-22 15:35:29 +00:00
FuzzWEBPEncoder.cpp replace max_len with if statements 2020-06-16 17:26:30 +00:00