SkSL Metal backend can now handle CCPR
Bug: skia:
Change-Id: I796a40db46174b405495af8234c5b8d7920a46d6
Reviewed-on: https://skia-review.googlesource.com/c/189985
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/sksl/SkSLCompiler.cpp b/src/sksl/SkSLCompiler.cpp
index 41ff5cc..b19c94a 100644
--- a/src/sksl/SkSLCompiler.cpp
+++ b/src/sksl/SkSLCompiler.cpp
@@ -1301,6 +1301,26 @@
this->scanCFG((FunctionDefinition&) element);
}
}
+ if (program.fKind != Program::kFragmentProcessor_Kind) {
+ for (auto iter = program.fElements.begin(); iter != program.fElements.end();) {
+ if ((*iter)->fKind == ProgramElement::kVar_Kind) {
+ VarDeclarations& vars = (VarDeclarations&) **iter;
+ for (auto varIter = vars.fVars.begin(); varIter != vars.fVars.end();) {
+ const Variable& var = *((VarDeclaration&) **varIter).fVar;
+ if (var.dead()) {
+ varIter = vars.fVars.erase(varIter);
+ } else {
+ ++varIter;
+ }
+ }
+ if (vars.fVars.size() == 0) {
+ iter = program.fElements.erase(iter);
+ continue;
+ }
+ }
+ ++iter;
+ }
+ }
fSource = nullptr;
}
return fErrorCount == 0;