Revert "added support for sk_Dimensions to SkSL"
This reverts commit 9335c28e40d780b4d1920b6c442234e2e833f93b.
Reason for revert: breaking vulkan and maybe metal in gold
Original change's description:
> added support for sk_Dimensions to SkSL
>
> Bug: skia:
> Change-Id: I5f6a9941822b7b4a3ad85b22b1bcd31d58320f90
> Reviewed-on: https://skia-review.googlesource.com/146640
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
TBR=bsalomon@google.com,ethannicholas@google.com
Change-Id: I5e9dcfffd118ef125afb7b7792f16cb51dd779a3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/148680
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
diff --git a/src/sksl/SkSLGLSLCodeGenerator.cpp b/src/sksl/SkSLGLSLCodeGenerator.cpp
index 42b8483..90694d2 100644
--- a/src/sksl/SkSLGLSLCodeGenerator.cpp
+++ b/src/sksl/SkSLGLSLCodeGenerator.cpp
@@ -693,7 +693,7 @@
if (!fProgram.fSettings.fFlipY) {
this->write("gl_FragCoord");
} else if (const char* extension =
- fProgram.fSettings.fCaps->fragCoordConventionsExtensionString()) {
+ fProgram.fSettings.fCaps->fragCoordConventionsExtensionString()) {
if (!fSetupFragPositionGlobal) {
if (fProgram.fSettings.fCaps->generation() < k150_GrGLSLGeneration) {
this->writeExtension(extension);
@@ -703,18 +703,25 @@
}
this->write("gl_FragCoord");
} else {
- if (!fSetupFragPositionLocal) {
+ if (!fSetupFragPositionGlobal) {
// The Adreno compiler seems to be very touchy about access to "gl_FragCoord".
// Accessing glFragCoord.zw can cause a program to fail to link. Additionally,
// depending on the surrounding code, accessing .xy with a uniform involved can
// do the same thing. Copying gl_FragCoord.xy into a temp float2 beforehand
// (and only accessing .xy) seems to "fix" things.
const char* precision = usesPrecisionModifiers() ? "highp " : "";
+ fGlobals.writeText("uniform ");
+ fGlobals.writeText(precision);
+ fGlobals.writeText("float " SKSL_RTHEIGHT_NAME ";\n");
+ fSetupFragPositionGlobal = true;
+ }
+ if (!fSetupFragPositionLocal) {
+ const char* precision = usesPrecisionModifiers() ? "highp " : "";
fFunctionHeader += precision;
fFunctionHeader += " vec2 _sktmpCoord = gl_FragCoord.xy;\n";
fFunctionHeader += precision;
- fFunctionHeader += " vec4 sk_FragCoord = vec4(_sktmpCoord.x, " SKSL_RTDIMENSIONS_NAME
- ".y - _sktmpCoord.y, 1.0, 1.0);\n";
+ fFunctionHeader += " vec4 sk_FragCoord = vec4(_sktmpCoord.x, " SKSL_RTHEIGHT_NAME
+ " - _sktmpCoord.y, 1.0, 1.0);\n";
fSetupFragPositionLocal = true;
}
this->write("sk_FragCoord");
@@ -733,9 +740,6 @@
case SK_FRAGCOORD_BUILTIN:
this->writeFragCoord();
break;
- case SK_DIMENSIONS_BUILTIN:
- this->write("u_skRTDimensions");
- break;
case SK_CLOCKWISE_BUILTIN:
this->write(fProgram.fSettings.fFlipY ? "(!gl_FrontFacing)" : "gl_FrontFacing");
break;
@@ -1373,15 +1377,6 @@
}
}
-void GLSLCodeGenerator::writeInputVars() {
- if (fProgram.fInputs.fRTDimensions) {
- const char* precision = usesPrecisionModifiers() ? "highp " : "";
- fGlobals.writeText("uniform ");
- fGlobals.writeText(precision);
- fGlobals.writeText("vec2 " SKSL_RTDIMENSIONS_NAME ";\n");
- }
-}
-
bool GLSLCodeGenerator::generateCode() {
fProgramKind = fProgram.fKind;
if (fProgramKind != Program::kPipelineStage_Kind) {
@@ -1400,7 +1395,6 @@
fOut = rawOut;
write_stringstream(fExtensions, *rawOut);
- this->writeInputVars();
write_stringstream(fGlobals, *rawOut);
if (!fProgram.fSettings.fCaps->canUseFragCoord()) {