aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-12-04 16:45:30 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-12-04 22:11:19 +0000
commit06ab3836f779dbcbcd067a9261300616ff7cc594 (patch)
tree36adf88dff693d34758fc74373d3c332277390bd /src
parent64ca6be98c3b03b7c7644772f6a41423f47a6068 (diff)
Restore ability to dump SKSL in addition to GLSL
Change-Id: Ib5d980414803234c0aff39b2cf085bb84405574a Reviewed-on: https://skia-review.googlesource.com/79902 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/gpu/gl/builders/GrGLShaderStringBuilder.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp b/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
index eb2d4644d0..c1337ca2e1 100644
--- a/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
+++ b/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
@@ -18,7 +18,8 @@
#define GL_CALL_RET(R, X) GR_GL_CALL_RET(gpu->glInterface(), R, X)
// Print the source code for all shaders generated.
-static const bool c_PrintShaders{false};
+static const bool gPrintSKSL = false;
+static const bool gPrintGLSL = false;
static void print_source_lines_with_numbers(const char* source,
std::function<void(const char*)> println) {
@@ -49,6 +50,16 @@ static void print_glsl_line_by_line(const SkSL::String& glsl,
print_source_lines_with_numbers(glsl.c_str(), println);
}
+void print_shader_banner(GrGLenum type) {
+ const char* typeName = "Unknown";
+ switch (type) {
+ case GR_GL_VERTEX_SHADER: typeName = "Vertex"; break;
+ case GR_GL_GEOMETRY_SHADER: typeName = "Geometry"; break;
+ case GR_GL_FRAGMENT_SHADER: typeName = "Fragment"; break;
+ }
+ SkDebugf("---- %s shader ----------------------------------------------------\n", typeName);
+}
+
std::unique_ptr<SkSL::Program> GrSkSLtoGLSL(const GrGLContext& context, GrGLenum type,
const char** skslStrings, int* lengths, int count,
const SkSL::Program::Settings& settings,
@@ -91,6 +102,10 @@ std::unique_ptr<SkSL::Program> GrSkSLtoGLSL(const GrGLContext& context, GrGLenum
SkDEBUGFAIL("SKSL compilation failed!\n");
return nullptr;
}
+ if (gPrintSKSL) {
+ print_shader_banner(type);
+ print_sksl_line_by_line(skslStrings, lengths, count);
+ }
return program;
}
@@ -142,14 +157,8 @@ GrGLuint GrGLCompileAndAttachShader(const GrGLContext& glCtx,
}
}
- if (c_PrintShaders) {
- const char* typeName = "Unknown";
- switch (type) {
- case GR_GL_VERTEX_SHADER: typeName = "Vertex"; break;
- case GR_GL_GEOMETRY_SHADER: typeName = "Geometry"; break;
- case GR_GL_FRAGMENT_SHADER: typeName = "Fragment"; break;
- }
- SkDebugf("---- %s shader ----------------------------------------------------\n", typeName);
+ if (gPrintGLSL) {
+ print_shader_banner(type);
print_glsl_line_by_line(glsl);
}