aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrPipeline.cpp
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-03-02 08:49:19 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-03-02 15:28:02 +0000
commitbfafcba05a54e1bc9c3074353a155d61119d095c (patch)
tree1304d38dddb0253db2462028712db89aa5b21bbb /src/gpu/GrPipeline.cpp
parentbb5af6b70086cca8cbaa17b6ecfd462be3ab0b9e (diff)
Determine whether any fp uses local coords in FragmentProcessorAnalysis rather than GrPipeline creation
Change-Id: I3b6253cd2b0081dfece51125082fd78f647e45e1 Reviewed-on: https://skia-review.googlesource.com/9133 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/GrPipeline.cpp')
-rw-r--r--src/gpu/GrPipeline.cpp7
1 files changed, 1 insertions, 6 deletions
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp
index 0dcf20db74..60f80f8aa4 100644
--- a/src/gpu/GrPipeline.cpp
+++ b/src/gpu/GrPipeline.cpp
@@ -84,8 +84,6 @@ GrPipelineOptimizations GrPipeline::init(const InitArgs& args) {
colorFPsToEliminate = args.fProcessors->numColorFragmentProcessors();
}
- bool usesLocalCoords = false;
-
// Copy GrFragmentProcessors from GrPipelineBuilder to Pipeline, possibly removing some of the
// color fragment processors.
fNumColorProcessors = args.fProcessors->numColorFragmentProcessors() - colorFPsToEliminate;
@@ -100,17 +98,14 @@ GrPipelineOptimizations GrPipeline::init(const InitArgs& args) {
++i, ++currFPIdx) {
const GrFragmentProcessor* fp = args.fProcessors->colorFragmentProcessor(i);
fFragmentProcessors[currFPIdx].reset(fp);
- usesLocalCoords = usesLocalCoords || fp->usesLocalCoords();
}
for (int i = 0; i < args.fProcessors->numCoverageFragmentProcessors(); ++i, ++currFPIdx) {
const GrFragmentProcessor* fp = args.fProcessors->coverageFragmentProcessor(i);
fFragmentProcessors[currFPIdx].reset(fp);
- usesLocalCoords = usesLocalCoords || fp->usesLocalCoords();
}
if (const GrFragmentProcessor* fp = args.fAppliedClip->clipCoverageFragmentProcessor()) {
fFragmentProcessors[currFPIdx].reset(fp);
- usesLocalCoords = usesLocalCoords || fp->usesLocalCoords();
}
// Setup info we need to pass to GrPrimitiveProcessors that are used with this GrPipeline.
@@ -120,7 +115,7 @@ GrPipelineOptimizations GrPipeline::init(const InitArgs& args) {
optimizations.fFlags |= GrPipelineOptimizations::kUseOverrideColor_Flag;
optimizations.fOverrideColor = overrideColor;
}
- if (usesLocalCoords) {
+ if (args.fAnalysis->usesLocalCoords()) {
optimizations.fFlags |= GrPipelineOptimizations::kReadsLocalCoords_Flag;
}
if (SkToBool(optFlags & GrXferProcessor::kCanTweakAlphaForCoverage_OptFlag)) {