2016-10-26 18:17:04 +00:00
|
|
|
# Copyright 2016 Google Inc.
|
|
|
|
#
|
|
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
|
|
# found in the LICENSE file.
|
|
|
|
|
|
|
|
# Things are easiest for everyone if these source paths are absolute.
|
|
|
|
_src = get_path_info("../src", "abspath")
|
2020-06-24 18:50:25 +00:00
|
|
|
_include = get_path_info("../include", "abspath")
|
2016-10-26 18:17:04 +00:00
|
|
|
|
|
|
|
skia_sksl_sources = [
|
2020-06-30 17:39:35 +00:00
|
|
|
"$_include/private/SkSLSampleUsage.h",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLASTFile.h",
|
2019-06-06 14:04:27 +00:00
|
|
|
"$_src/sksl/SkSLASTNode.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLASTNode.h",
|
2020-06-29 21:27:00 +00:00
|
|
|
"$_src/sksl/SkSLAnalysis.cpp",
|
|
|
|
"$_src/sksl/SkSLAnalysis.h",
|
2021-01-15 16:12:46 +00:00
|
|
|
"$_src/sksl/SkSLBuiltinTypes.cpp",
|
|
|
|
"$_src/sksl/SkSLBuiltinTypes.h",
|
2020-04-02 15:38:40 +00:00
|
|
|
"$_src/sksl/SkSLByteCode.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLByteCode.h",
|
2019-03-21 15:05:37 +00:00
|
|
|
"$_src/sksl/SkSLByteCodeGenerator.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLByteCodeGenerator.h",
|
2016-10-26 18:17:04 +00:00
|
|
|
"$_src/sksl/SkSLCFGGenerator.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLCFGGenerator.h",
|
2016-10-26 18:17:04 +00:00
|
|
|
"$_src/sksl/SkSLCompiler.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLCompiler.h",
|
2021-01-11 16:05:21 +00:00
|
|
|
"$_src/sksl/SkSLConstantFolder.cpp",
|
|
|
|
"$_src/sksl/SkSLConstantFolder.h",
|
2021-01-11 19:22:36 +00:00
|
|
|
"$_src/sksl/SkSLContext.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLContext.h",
|
|
|
|
"$_src/sksl/SkSLDefines.h",
|
2020-07-28 18:46:53 +00:00
|
|
|
"$_src/sksl/SkSLDehydrator.cpp",
|
2020-10-06 20:14:37 +00:00
|
|
|
"$_src/sksl/SkSLDehydrator.h",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLErrorReporter.h",
|
Strip down SkSL::ExternalValues, limit them to functions
Previously ExternalValues were flexible, and could be used as raw values
(with the ability to chain access via dot notation), or they could be
callable. The only non-test use-case has been for functions (in
particles) for a long time. With the push towards SkVM, limiting
ourselves to this interface simplifies things: external functions are
basically custom intrinsics (and with the SkVM backend, they'll just get
access to the builder, and be able to do any math, as well as
loads/stores, etc).
By narrowing the feature set, we can rename everything to reflect that,
and it's overall clearer (the SkSL types now mirror FunctionReference
and FunctionCall directly, particularly in how they're handled by the
CFG and inliner).
Change-Id: Ib5dd34158ff85aae6c297408a92ace5485a08190
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350704
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-01-06 19:27:35 +00:00
|
|
|
"$_src/sksl/SkSLExternalFunction.h",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLFileOutputStream.h",
|
2017-09-11 20:50:14 +00:00
|
|
|
"$_src/sksl/SkSLIRGenerator.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLIRGenerator.h",
|
2020-08-31 17:16:04 +00:00
|
|
|
"$_src/sksl/SkSLInliner.cpp",
|
|
|
|
"$_src/sksl/SkSLInliner.h",
|
2017-09-11 20:50:14 +00:00
|
|
|
"$_src/sksl/SkSLLexer.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLLexer.h",
|
2021-01-11 17:37:42 +00:00
|
|
|
"$_src/sksl/SkSLMangler.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLMemoryLayout.h",
|
2020-10-29 14:17:15 +00:00
|
|
|
"$_src/sksl/SkSLMemoryPool.h",
|
2020-12-02 14:27:10 +00:00
|
|
|
"$_src/sksl/SkSLOutputStream.cpp",
|
|
|
|
"$_src/sksl/SkSLOutputStream.h",
|
2017-09-11 20:50:14 +00:00
|
|
|
"$_src/sksl/SkSLParser.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLParser.h",
|
Reland "Create a basic IRNode pooling system."
This is a reland of e16eca95f5c08c2bdf72cc0b04af62a1071afd8d
This fixes the no-op (iOS) implementation of CreatePoolOnThread.
Original change's description:
> Create a basic IRNode pooling system.
>
> Allocations are redirected by overriding `operator new` and `operator
> delete` on the IRNode class. This allows us to use our existing
> `unique_ptr` and `make_unique` calls as-is. The Pool class is simple;
> it holds a fixed number of nodes and recycles them as they are returned.
>
> A fixed pool size of 2000 nodes was chosen. That is large enough to hold
> the contents of `sksl_large` during compilation, but it can be
> overflowed by very large shaders, or if multiple programs are converted
> at the same time. Exhausting the pool is not a problem; if this happens,
> additional nodes will be allocated via the system allocator as usual.
> More elaborate schemes are possible but might not add a lot of value.
>
> Thread safety is accomplished by placing the pool in a `thread_local`
> static during a Program's creation and destruction; the pool is freed
> when the program is destroyed. One important consequence of this
> strategy is that a program must free every node that it allocated during
> its creation, or else the node will be leaked. In debug, leaking a node
> will be detected and causes a DEBUGFAIL. In release, the pool will be
> freed despite having a live node in it, and if that node is later freed,
> that pointer will be passed to the system `free` (which is likely to
> cause a crash).
>
> In this CL, iOS does not support pooling, since support for
> `thread_local` was only added on iOS 9. This is fixed in the followup
> CL, http://review.skia.org/328837, which uses pthread keys on iOS.
>
> Nanobench shows ~15% improvement:
> (last week) http://screen/5CNBhTaZApcDA8h
> (today) http://screen/8ti5Rymvf6LUs8i
>
> Change-Id: I559de73606ee1be54e5eae7f82129dc928a63e3c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/326876
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>
Change-Id: I8623a574a7e92332ff00b83982497863c8953929
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/329171
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-10-22 15:09:15 +00:00
|
|
|
"$_src/sksl/SkSLPool.cpp",
|
|
|
|
"$_src/sksl/SkSLPool.h",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLPosition.h",
|
2020-07-28 18:46:53 +00:00
|
|
|
"$_src/sksl/SkSLRehydrator.cpp",
|
2020-10-06 20:14:37 +00:00
|
|
|
"$_src/sksl/SkSLRehydrator.h",
|
2020-06-30 17:39:35 +00:00
|
|
|
"$_src/sksl/SkSLSampleUsage.cpp",
|
2019-08-29 20:10:13 +00:00
|
|
|
"$_src/sksl/SkSLSectionAndParameterHelper.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLSectionAndParameterHelper.h",
|
2017-03-31 17:56:23 +00:00
|
|
|
"$_src/sksl/SkSLString.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLString.h",
|
|
|
|
"$_src/sksl/SkSLStringStream.h",
|
2016-10-26 18:17:04 +00:00
|
|
|
"$_src/sksl/SkSLUtil.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLUtil.h",
|
2020-12-02 16:12:51 +00:00
|
|
|
"$_src/sksl/SkSLVMGenerator.cpp",
|
|
|
|
"$_src/sksl/SkSLVMGenerator.h",
|
2021-01-07 15:57:27 +00:00
|
|
|
"$_src/sksl/dsl/DSLCore.cpp",
|
|
|
|
"$_src/sksl/dsl/DSLExpression.cpp",
|
2021-01-08 16:42:25 +00:00
|
|
|
"$_src/sksl/dsl/DSLType.cpp",
|
2021-01-11 20:42:44 +00:00
|
|
|
"$_src/sksl/dsl/DSLVar.cpp",
|
2021-01-07 15:57:27 +00:00
|
|
|
"$_src/sksl/dsl/priv/DSLWriter.cpp",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLBinaryExpression.h",
|
|
|
|
"$_src/sksl/ir/SkSLBlock.h",
|
|
|
|
"$_src/sksl/ir/SkSLBoolLiteral.h",
|
|
|
|
"$_src/sksl/ir/SkSLBreakStatement.h",
|
2020-09-29 16:41:35 +00:00
|
|
|
"$_src/sksl/ir/SkSLConstructor.cpp",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLConstructor.h",
|
|
|
|
"$_src/sksl/ir/SkSLContinueStatement.h",
|
|
|
|
"$_src/sksl/ir/SkSLDiscardStatement.h",
|
|
|
|
"$_src/sksl/ir/SkSLDoStatement.h",
|
|
|
|
"$_src/sksl/ir/SkSLEnum.h",
|
|
|
|
"$_src/sksl/ir/SkSLExpression.h",
|
|
|
|
"$_src/sksl/ir/SkSLExpressionStatement.h",
|
|
|
|
"$_src/sksl/ir/SkSLExtension.h",
|
|
|
|
"$_src/sksl/ir/SkSLExternalFunctionCall.h",
|
Strip down SkSL::ExternalValues, limit them to functions
Previously ExternalValues were flexible, and could be used as raw values
(with the ability to chain access via dot notation), or they could be
callable. The only non-test use-case has been for functions (in
particles) for a long time. With the push towards SkVM, limiting
ourselves to this interface simplifies things: external functions are
basically custom intrinsics (and with the SkVM backend, they'll just get
access to the builder, and be able to do any math, as well as
loads/stores, etc).
By narrowing the feature set, we can rename everything to reflect that,
and it's overall clearer (the SkSL types now mirror FunctionReference
and FunctionCall directly, particularly in how they're handled by the
CFG and inliner).
Change-Id: Ib5dd34158ff85aae6c297408a92ace5485a08190
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350704
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-01-06 19:27:35 +00:00
|
|
|
"$_src/sksl/ir/SkSLExternalFunctionReference.h",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLField.h",
|
|
|
|
"$_src/sksl/ir/SkSLFieldAccess.h",
|
|
|
|
"$_src/sksl/ir/SkSLFloatLiteral.h",
|
|
|
|
"$_src/sksl/ir/SkSLForStatement.h",
|
|
|
|
"$_src/sksl/ir/SkSLFunctionCall.h",
|
2020-10-13 15:14:08 +00:00
|
|
|
"$_src/sksl/ir/SkSLFunctionDeclaration.h",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLFunctionDefinition.h",
|
2020-11-03 17:18:22 +00:00
|
|
|
"$_src/sksl/ir/SkSLFunctionPrototype.h",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLFunctionReference.h",
|
|
|
|
"$_src/sksl/ir/SkSLIRNode.h",
|
|
|
|
"$_src/sksl/ir/SkSLIfStatement.h",
|
|
|
|
"$_src/sksl/ir/SkSLIndexExpression.h",
|
2020-09-09 18:18:53 +00:00
|
|
|
"$_src/sksl/ir/SkSLInlineMarker.h",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLIntLiteral.h",
|
|
|
|
"$_src/sksl/ir/SkSLInterfaceBlock.h",
|
|
|
|
"$_src/sksl/ir/SkSLLayout.h",
|
|
|
|
"$_src/sksl/ir/SkSLModifiers.h",
|
|
|
|
"$_src/sksl/ir/SkSLModifiersDeclaration.h",
|
|
|
|
"$_src/sksl/ir/SkSLNop.h",
|
|
|
|
"$_src/sksl/ir/SkSLPostfixExpression.h",
|
2020-11-05 16:56:03 +00:00
|
|
|
"$_src/sksl/ir/SkSLPrefixExpression.cpp",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLPrefixExpression.h",
|
|
|
|
"$_src/sksl/ir/SkSLProgram.h",
|
|
|
|
"$_src/sksl/ir/SkSLProgramElement.h",
|
|
|
|
"$_src/sksl/ir/SkSLReturnStatement.h",
|
|
|
|
"$_src/sksl/ir/SkSLSection.h",
|
2017-06-29 14:03:38 +00:00
|
|
|
"$_src/sksl/ir/SkSLSetting.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/ir/SkSLSetting.h",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLStatement.h",
|
2020-11-25 21:24:55 +00:00
|
|
|
"$_src/sksl/ir/SkSLStructDefinition.h",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLSwitchCase.h",
|
|
|
|
"$_src/sksl/ir/SkSLSwitchStatement.h",
|
|
|
|
"$_src/sksl/ir/SkSLSwizzle.h",
|
|
|
|
"$_src/sksl/ir/SkSLSymbol.h",
|
2020-10-06 20:14:37 +00:00
|
|
|
"$_src/sksl/ir/SkSLSymbolAlias.h",
|
2019-08-29 20:10:13 +00:00
|
|
|
"$_src/sksl/ir/SkSLSymbolTable.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/ir/SkSLSymbolTable.h",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLTernaryExpression.h",
|
2016-10-26 18:17:04 +00:00
|
|
|
"$_src/sksl/ir/SkSLType.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/ir/SkSLType.h",
|
2020-08-13 16:04:15 +00:00
|
|
|
"$_src/sksl/ir/SkSLTypeReference.h",
|
|
|
|
"$_src/sksl/ir/SkSLUnresolvedFunction.h",
|
|
|
|
"$_src/sksl/ir/SkSLVarDeclarations.h",
|
|
|
|
"$_src/sksl/ir/SkSLVariable.h",
|
2018-03-26 18:24:27 +00:00
|
|
|
"$_src/sksl/ir/SkSLVariableReference.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/ir/SkSLVariableReference.h",
|
2016-10-26 18:17:04 +00:00
|
|
|
]
|
2017-06-29 14:03:38 +00:00
|
|
|
|
2019-06-18 14:14:20 +00:00
|
|
|
skia_sksl_gpu_sources = [
|
|
|
|
"$_src/sksl/SkSLCPPCodeGenerator.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLCPPCodeGenerator.h",
|
2019-06-18 14:14:20 +00:00
|
|
|
"$_src/sksl/SkSLCPPUniformCTypes.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLCPPUniformCTypes.h",
|
|
|
|
"$_src/sksl/SkSLCodeGenerator.h",
|
2019-06-18 14:14:20 +00:00
|
|
|
"$_src/sksl/SkSLGLSLCodeGenerator.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLGLSLCodeGenerator.h",
|
2019-06-18 14:14:20 +00:00
|
|
|
"$_src/sksl/SkSLHCodeGenerator.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLHCodeGenerator.h",
|
2019-06-18 14:14:20 +00:00
|
|
|
"$_src/sksl/SkSLMetalCodeGenerator.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLMetalCodeGenerator.h",
|
2019-06-18 14:14:20 +00:00
|
|
|
"$_src/sksl/SkSLPipelineStageCodeGenerator.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLPipelineStageCodeGenerator.h",
|
2019-06-18 14:14:20 +00:00
|
|
|
"$_src/sksl/SkSLSPIRVCodeGenerator.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLSPIRVCodeGenerator.h",
|
2020-02-19 20:35:26 +00:00
|
|
|
"$_src/sksl/SkSLSPIRVtoHLSL.cpp",
|
2020-06-02 16:29:20 +00:00
|
|
|
"$_src/sksl/SkSLSPIRVtoHLSL.h",
|
2019-06-18 14:14:20 +00:00
|
|
|
]
|
2019-06-17 14:27:55 +00:00
|
|
|
|
2017-07-05 20:19:09 +00:00
|
|
|
skia_gpu_processor_sources = [
|
2018-10-15 20:09:54 +00:00
|
|
|
"$_src/gpu/effects/GrAARectEffect.fp",
|
2018-04-06 14:37:55 +00:00
|
|
|
"$_src/gpu/effects/GrAlphaThresholdFragmentProcessor.fp",
|
2020-07-09 21:13:13 +00:00
|
|
|
"$_src/gpu/effects/GrArithmeticProcessor.fp",
|
2017-07-14 20:17:04 +00:00
|
|
|
"$_src/gpu/effects/GrBlurredEdgeFragmentProcessor.fp",
|
2018-03-12 18:03:47 +00:00
|
|
|
"$_src/gpu/effects/GrCircleBlurFragmentProcessor.fp",
|
2017-07-13 20:00:16 +00:00
|
|
|
"$_src/gpu/effects/GrCircleEffect.fp",
|
2020-01-22 15:39:31 +00:00
|
|
|
"$_src/gpu/effects/GrClampFragmentProcessor.fp",
|
2020-04-03 15:59:37 +00:00
|
|
|
"$_src/gpu/effects/GrColorMatrixFragmentProcessor.fp",
|
2019-04-09 20:28:19 +00:00
|
|
|
"$_src/gpu/effects/GrComposeLerpEffect.fp",
|
2017-10-05 16:36:59 +00:00
|
|
|
"$_src/gpu/effects/GrConfigConversionEffect.fp",
|
2017-11-20 17:12:24 +00:00
|
|
|
"$_src/gpu/effects/GrConstColorProcessor.fp",
|
2020-02-26 18:28:42 +00:00
|
|
|
"$_src/gpu/effects/GrDeviceSpaceEffect.fp",
|
2020-07-09 19:29:33 +00:00
|
|
|
"$_src/gpu/effects/GrDitherEffect.fp",
|
2017-07-14 17:11:38 +00:00
|
|
|
"$_src/gpu/effects/GrEllipseEffect.fp",
|
2019-10-23 15:44:22 +00:00
|
|
|
"$_src/gpu/effects/GrHSLToRGBFilterEffect.fp",
|
2020-07-10 19:55:57 +00:00
|
|
|
"$_src/gpu/effects/GrHighContrastFilterEffect.fp",
|
2017-11-07 14:23:38 +00:00
|
|
|
"$_src/gpu/effects/GrLumaColorFilterEffect.fp",
|
2017-12-13 19:36:14 +00:00
|
|
|
"$_src/gpu/effects/GrMagnifierEffect.fp",
|
2019-03-05 15:03:20 +00:00
|
|
|
"$_src/gpu/effects/GrMixerEffect.fp",
|
2019-04-10 19:02:11 +00:00
|
|
|
"$_src/gpu/effects/GrOverrideInputFragmentProcessor.fp",
|
2019-10-23 15:44:22 +00:00
|
|
|
"$_src/gpu/effects/GrRGBToHSLFilterEffect.fp",
|
2017-12-20 17:00:11 +00:00
|
|
|
"$_src/gpu/effects/GrRRectBlurEffect.fp",
|
2020-04-03 15:59:37 +00:00
|
|
|
"$_src/gpu/effects/GrRectBlurEffect.fp",
|
|
|
|
"$_src/gpu/gradients/GrClampedGradientEffect.fp",
|
2018-09-12 19:23:33 +00:00
|
|
|
"$_src/gpu/gradients/GrDualIntervalGradientColorizer.fp",
|
Reland "Base Gradient FP Refactor"
This reverts commit 1ea5656a285bcfef445d6f69eaab477e68595b54.
Reason for revert: Fixed google3 build failure
Original change's description:
> Revert "Base Gradient FP Refactor"
>
> This reverts commit 10f7a1e07554a362aef979d32ba288a009bdff90.
>
> Reason for revert: broke google3 roll
> Original change's description:
> > Base Gradient FP Refactor
> >
> > --
> >
> > Redefines how gradients will be written in the GPU back-end:
> >
> > They are split into three fragment processor components: master, layout, and colorizer.
> > The layout FP is responsible for converting the fragment position into an interpolant value, t.
> > Each high-level gradient--such as linear, radial, etc.--are implemented solely in a layout FP.
> > The colorizer FP is responsible for converting t into a color.
> > The master FP invokes the layout, clamps t into the proper domain, and then invokes the colorizer.
> > GrGradientShader provides factory functions to create FP graphs from SkGradientShader instances.
> > This pattern is documented in gpu/gradients/README.md.
> >
> > Goals for current CL
> > ====================
> >
> > Outline the FP components by providing .fp implementations for the simplest gradients.
> > Defines a two-color single interval colorizer and a linear gradient layout, and the master effect.
> > A MakeLinear() factory function is provided that can convert SkGradientShaders that fit these constraints.
> > SkLinearGradient first attempts to use the new system, falling back to the original GrGradientEffect.
> >
> > Future CLs
> > ==========
> >
> > To keep the CL reviews manageable, additional dependent CLs will be added that gradually replace past functionality.
> > A CL for each layout will be defined.
> > CLs for the different analytic colorizer cases and the textured gradient case will be defined.
> > Once the new system supports all current layouts and colorizer capabilities, all old GPU gradient code will be removed.
> > After this clean-up, analytic colorization can hopefully be expanded to reduce the usage of textured gradients.
> >
> > Bug: skia:
> > Change-Id: Iafe7b8b4071491a71c473babcd7bedda659150c1
> > Reviewed-on: https://skia-review.googlesource.com/148120
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
>
> TBR=bsalomon@google.com,michaelludwig@google.com
>
> Change-Id: Ib735e323795ac8874cb00b007a915786b50517a6
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/153600
> Reviewed-by: Cary Clark <caryclark@google.com>
> Commit-Queue: Cary Clark <caryclark@google.com>
TBR=bsalomon@google.com,caryclark@google.com,michaelludwig@google.com
Change-Id: Ibf6ffbcb1af0dfbdac7317151aeb08f18f84c7fd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/153887
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2018-09-12 19:22:16 +00:00
|
|
|
"$_src/gpu/gradients/GrLinearGradientLayout.fp",
|
2018-09-12 19:22:37 +00:00
|
|
|
"$_src/gpu/gradients/GrRadialGradientLayout.fp",
|
2020-04-03 15:59:37 +00:00
|
|
|
"$_src/gpu/gradients/GrSingleIntervalGradientColorizer.fp",
|
2018-09-12 19:22:50 +00:00
|
|
|
"$_src/gpu/gradients/GrSweepGradientLayout.fp",
|
Reland "Base Gradient FP Refactor"
This reverts commit 1ea5656a285bcfef445d6f69eaab477e68595b54.
Reason for revert: Fixed google3 build failure
Original change's description:
> Revert "Base Gradient FP Refactor"
>
> This reverts commit 10f7a1e07554a362aef979d32ba288a009bdff90.
>
> Reason for revert: broke google3 roll
> Original change's description:
> > Base Gradient FP Refactor
> >
> > --
> >
> > Redefines how gradients will be written in the GPU back-end:
> >
> > They are split into three fragment processor components: master, layout, and colorizer.
> > The layout FP is responsible for converting the fragment position into an interpolant value, t.
> > Each high-level gradient--such as linear, radial, etc.--are implemented solely in a layout FP.
> > The colorizer FP is responsible for converting t into a color.
> > The master FP invokes the layout, clamps t into the proper domain, and then invokes the colorizer.
> > GrGradientShader provides factory functions to create FP graphs from SkGradientShader instances.
> > This pattern is documented in gpu/gradients/README.md.
> >
> > Goals for current CL
> > ====================
> >
> > Outline the FP components by providing .fp implementations for the simplest gradients.
> > Defines a two-color single interval colorizer and a linear gradient layout, and the master effect.
> > A MakeLinear() factory function is provided that can convert SkGradientShaders that fit these constraints.
> > SkLinearGradient first attempts to use the new system, falling back to the original GrGradientEffect.
> >
> > Future CLs
> > ==========
> >
> > To keep the CL reviews manageable, additional dependent CLs will be added that gradually replace past functionality.
> > A CL for each layout will be defined.
> > CLs for the different analytic colorizer cases and the textured gradient case will be defined.
> > Once the new system supports all current layouts and colorizer capabilities, all old GPU gradient code will be removed.
> > After this clean-up, analytic colorization can hopefully be expanded to reduce the usage of textured gradients.
> >
> > Bug: skia:
> > Change-Id: Iafe7b8b4071491a71c473babcd7bedda659150c1
> > Reviewed-on: https://skia-review.googlesource.com/148120
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
>
> TBR=bsalomon@google.com,michaelludwig@google.com
>
> Change-Id: Ib735e323795ac8874cb00b007a915786b50517a6
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/153600
> Reviewed-by: Cary Clark <caryclark@google.com>
> Commit-Queue: Cary Clark <caryclark@google.com>
TBR=bsalomon@google.com,caryclark@google.com,michaelludwig@google.com
Change-Id: Ibf6ffbcb1af0dfbdac7317151aeb08f18f84c7fd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/153887
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2018-09-12 19:22:16 +00:00
|
|
|
"$_src/gpu/gradients/GrTiledGradientEffect.fp",
|
2020-04-03 15:59:37 +00:00
|
|
|
"$_src/gpu/gradients/GrTwoPointConicalGradientLayout.fp",
|
|
|
|
"$_src/gpu/gradients/GrUnrolledBinaryGradientColorizer.fp",
|
2017-07-05 20:19:09 +00:00
|
|
|
]
|