Add an AssertOnShaderCompileFailure GrContextOption
Part of a multi-step plan:
1) Add this option (which is *not* GL specific).
2) Disable this in Chromium at context-creation.
3) Finish adding the shader error handler, with default
behavior controlled via this flag, and remove Chromium
driver checks from the corresponding code at the same time.
Change-Id: I7e50c8404a05c1f291f187cf48481d0cbb34066a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211646
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp b/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
index 0d7a29b..473414e 100644
--- a/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
+++ b/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
@@ -61,7 +61,8 @@
GrGLuint programId,
GrGLenum type,
const SkSL::String& glsl,
- GrGpu::Stats* stats) {
+ GrGpu::Stats* stats,
+ bool assertOnFailure) {
const GrGLInterface* gli = glCtx.interface();
// Specify GLSL source to the driver.
@@ -101,7 +102,7 @@
}
// In Chrome we may have failed due to context-loss. So we should just continue along
// wihthout asserting until the GrContext gets abandoned.
- if (kChromium_GrGLDriver != glCtx.driver()) {
+ if (assertOnFailure && kChromium_GrGLDriver != glCtx.driver()) {
SkDEBUGFAIL("GLSL compilation failed!");
}
GR_GL_CALL(gli, DeleteShader(shaderId));