skia2/tests/sksl/blend/golden
John Stiles 74ebd7e6ce Add support for inlining switches with returns inside.
Because we use `continue` for flow control handling now, we can escape
from the middle of a switch statement. This wasn't possible when we used
`break`.

This unlocks some pretty stellar optimization opportunities if the
switch value can be determined at compile time; see BlendEnum for an
example.

Change-Id: Id29be92c343c10fd604683a80c5d5bd2bd070cb0
Bug: skia:11097
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/345419
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2020-12-18 00:14:48 +00:00
..
BlendClear.asm.frag Enable SPIR-V disassembly output from skslc. 2020-11-20 22:54:26 +00:00
BlendClear.glsl Directly compute call counts, rather than mutating state 2020-10-19 16:08:39 +00:00
BlendClear.metal Directly compute call counts, rather than mutating state 2020-10-19 16:08:39 +00:00
BlendClearStandaloneSettings.glsl Directly compute call counts, rather than mutating state 2020-10-19 16:08:39 +00:00
BlendColor.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColor.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColor.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColorBurn.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColorBurn.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColorBurn.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColorBurnStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColorDodge.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColorDodge.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColorDodge.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColorDodgeStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendColorStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDarken.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDarken.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDarken.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDarkenStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDifference.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDifference.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDifference.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDifferenceStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDst.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDst.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDst.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstAtop.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstAtop.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstAtop.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstAtopStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstIn.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstIn.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstIn.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstInStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstOut.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstOut.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstOut.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstOutStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstOver.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstOver.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstOver.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstOverStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendDstStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendEnum.asm.frag Add support for inlining switches with returns inside. 2020-12-18 00:14:48 +00:00
BlendEnum.glsl Add support for inlining switches with returns inside. 2020-12-18 00:14:48 +00:00
BlendEnum.metal Add support for inlining switches with returns inside. 2020-12-18 00:14:48 +00:00
BlendEnumStandaloneSettings.glsl Add support for inlining switches with returns inside. 2020-12-18 00:14:48 +00:00
BlendExclusion.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendExclusion.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendExclusion.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendExclusionStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendHardLight.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendHardLight.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendHardLight.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendHardLightStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendHue.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendHue.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendHue.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendHueStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendLighten.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendLighten.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendLighten.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendLightenStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendLuminosity.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendLuminosity.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendLuminosity.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendLuminosityStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendModulate.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendModulate.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendModulate.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendModulateStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendMultiply.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendMultiply.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendMultiply.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendMultiplyStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendOverlay.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendOverlay.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendOverlay.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendOverlayStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendPlus.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendPlus.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendPlus.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendPlusStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSaturation.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSaturation.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSaturation.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSaturationStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendScreen.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendScreen.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendScreen.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendScreenStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSoftLight.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSoftLight.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSoftLight.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSoftLightStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrc.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrc.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrc.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcAtop.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcAtop.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcAtop.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcAtopStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcIn.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcIn.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcIn.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcInStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcOut.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcOut.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcOut.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcOutStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcOver.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcOver.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcOver.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcOverStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendSrcStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendXor.asm.frag Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendXor.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendXor.metal Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00
BlendXorStandaloneSettings.glsl Eliminate inliner temporary variables for top-level-exit functions. 2020-12-17 20:37:21 +00:00