diff options
author | Brian Salomon <bsalomon@google.com> | 2018-04-04 10:14:16 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-04-04 14:45:58 +0000 |
commit | dc09213b17cfd100e1c1859387b47e3045a36010 (patch) | |
tree | 6c28b3ef6105c7755e72196a9df8a767d0c39470 /src/gpu/glsl | |
parent | d838765478b3cebfa9822eb4eeaabfa5733dfb45 (diff) |
Revert "Revert "Make SkSL GLSL generator declare sk_FragColor inout when EXT fb fetch is used.""
This reverts commit d40133092ae138b3d47a1158101faec3c53c6b1f.
Bug: skia:
Change-Id: I236505da047d5ad29e4952d8955eb7aa1bfb870b
Reviewed-on: https://skia-review.googlesource.com/118621
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/glsl')
-rw-r--r-- | src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp | 5 | ||||
-rw-r--r-- | src/gpu/glsl/GrGLSLFragmentShaderBuilder.h | 1 | ||||
-rw-r--r-- | src/gpu/glsl/GrGLSLProgramBuilder.h | 2 |
3 files changed, 8 insertions, 0 deletions
diff --git a/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp b/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp index 8ad3a058eb..9afd470776 100644 --- a/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp +++ b/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp @@ -170,6 +170,11 @@ const char* GrGLSLFragmentShaderBuilder::getPrimaryColorOutputName() const { return fHasCustomColorOutput ? DeclaredColorOutputName() : "sk_FragColor"; } +bool GrGLSLFragmentShaderBuilder::primaryColorOutputIsInOut() const { + return fHasCustomColorOutput && + fOutputs[fCustomColorOutputIndex].getTypeModifier() == GrShaderVar::kInOut_TypeModifier; +} + void GrGLSLFragmentBuilder::declAppendf(const char* fmt, ...) { va_list argp; va_start(argp, fmt); diff --git a/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h b/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h index 5a73c17d9a..0e0794fd37 100644 --- a/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h +++ b/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h @@ -119,6 +119,7 @@ private: void enableSecondaryOutput(); const char* getPrimaryColorOutputName() const; const char* getSecondaryColorOutputName() const; + bool primaryColorOutputIsInOut() const; #ifdef SK_DEBUG // As GLSLProcessors emit code, there are some conditions we need to verify. We use the below diff --git a/src/gpu/glsl/GrGLSLProgramBuilder.h b/src/gpu/glsl/GrGLSLProgramBuilder.h index ac2d4965b5..d4d2099a41 100644 --- a/src/gpu/glsl/GrGLSLProgramBuilder.h +++ b/src/gpu/glsl/GrGLSLProgramBuilder.h @@ -115,6 +115,8 @@ protected: void finalizeShaders(); + bool fragColorIsInOut() const { return fFS.primaryColorOutputIsInOut(); } + private: // reset is called by program creator between each processor's emit code. It increments the // stage offset for variable name mangling, and also ensures verfication variables in the |