summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authoroetuaho <oetuaho@nvidia.com>2015-03-11 02:10:12 -0700
committerCommit bot <commit-bot@chromium.org>2015-03-11 09:10:45 +0000
commitd2e587ad0fc6537ee67175364364393004220e3c (patch)
treed886df37663e9c07b72886ced6875e3cd244d0ad /gpu
parente0502f0d8eacb5c9a9916284c666e2c433f17d9d (diff)
downloadchromium_src-d2e587ad0fc6537ee67175364364393004220e3c.zip
chromium_src-d2e587ad0fc6537ee67175364364393004220e3c.tar.gz
chromium_src-d2e587ad0fc6537ee67175364364393004220e3c.tar.bz2
Output shader translator log when platform shader compile fails
This is helpful when implementing new shader translator functionality especially in combination with the --gl-shader-interm-output flag. BUG=angleproject:941 Review URL: https://codereview.chromium.org/995013002 Cr-Commit-Position: refs/heads/master@{#320059}
Diffstat (limited to 'gpu')
-rw-r--r--gpu/command_buffer/service/shader_manager.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/gpu/command_buffer/service/shader_manager.cc b/gpu/command_buffer/service/shader_manager.cc
index a5db3c5..55754b7 100644
--- a/gpu/command_buffer/service/shader_manager.cc
+++ b/gpu/command_buffer/service/shader_manager.cc
@@ -112,6 +112,8 @@ void Shader::DoCompile() {
// We cannot reach here if we are using the shader translator.
// All invalid shaders must be rejected by the translator.
// All translated shaders must compile.
+ std::string translator_log = log_info_;
+
GLint max_len = 0;
glGetShaderiv(service_id_, GL_INFO_LOG_LENGTH, &max_len);
log_info_.resize(max_len);
@@ -122,9 +124,11 @@ void Shader::DoCompile() {
DCHECK(len == 0 || log_info_[len] == '\0');
log_info_.resize(len);
}
+
LOG_IF(ERROR, translator)
<< "Shader translator allowed/produced an invalid shader "
<< "unless the driver is buggy:"
+ << "\n--Log from shader translator--\n" << translator_log
<< "\n--original-shader--\n" << last_compiled_source_
<< "\n--translated-shader--\n" << source_for_driver
<< "\n--info-log--\n" << log_info_;