diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2018-03-16 09:45:11 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-03-16 16:44:11 +0000 |
commit | 6c94271f55b5b45f037aed47f59a9f440714e7ce (patch) | |
tree | 9b15636de8ad6beb8e0d1bdd2ed6da4521738411 /src/sksl | |
parent | ea022cd714b206551957fafd7f56e489bb12b128 (diff) |
we now complain if an SkSL program tries to override the default output
Bug: skia:
Change-Id: I387ddc3aac0712eb6c0a6ea39e48e5f3d809bc48
Reviewed-on: https://skia-review.googlesource.com/114691
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/sksl')
-rw-r--r-- | src/sksl/SkSLIRGenerator.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/sksl/SkSLIRGenerator.cpp b/src/sksl/SkSLIRGenerator.cpp index 38c45f70ee..8b508216ba 100644 --- a/src/sksl/SkSLIRGenerator.cpp +++ b/src/sksl/SkSLIRGenerator.cpp @@ -243,6 +243,12 @@ std::unique_ptr<VarDeclarations> IRGenerator::convertVarDeclarations(const ASTVa return nullptr; } for (const auto& varDecl : decl.fVars) { + if (decl.fModifiers.fLayout.fLocation == 0 && decl.fModifiers.fLayout.fIndex == 0 && + (decl.fModifiers.fFlags & Modifiers::kOut_Flag) && fKind == Program::kFragment_Kind && + varDecl.fName != "sk_FragColor") { + fErrors.error(decl.fOffset, + "out location=0, index=0 is reserved for sk_FragColor"); + } const Type* type = baseType; std::vector<std::unique_ptr<Expression>> sizes; for (const auto& rawSize : varDecl.fSizes) { |