summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2014-07-10 16:24:14 -0700
committerChris Craik <ccraik@google.com>2014-07-11 00:32:27 +0000
commit73842582fe1d1268fb9561a59885e1714948d737 (patch)
tree5448c4262289921f0726d575f61f4c33859d9102 /libs
parent3d4fe363b25293577faae3fddf85e6f73f76b0cd (diff)
downloadframeworks_base-73842582fe1d1268fb9561a59885e1714948d737.zip
frameworks_base-73842582fe1d1268fb9561a59885e1714948d737.tar.gz
frameworks_base-73842582fe1d1268fb9561a59885e1714948d737.tar.bz2
Abort on shader link/compile failure
b/16207378 Change-Id: I12debb0846214a08459ad25454653a003f034402
Diffstat (limited to 'libs')
-rw-r--r--libs/hwui/Program.cpp13
1 files changed, 2 insertions, 11 deletions
diff --git a/libs/hwui/Program.cpp b/libs/hwui/Program.cpp
index ee77897..cc72ae0 100644
--- a/libs/hwui/Program.cpp
+++ b/libs/hwui/Program.cpp
@@ -60,7 +60,6 @@ Program::Program(const ProgramDescription& description, const char* vertex, cons
GLint status;
glGetProgramiv(mProgramId, GL_LINK_STATUS, &status);
if (status != GL_TRUE) {
- ALOGE("Error while linking shaders:");
GLint infoLen = 0;
glGetProgramiv(mProgramId, GL_INFO_LOG_LENGTH, &infoLen);
if (infoLen > 1) {
@@ -68,14 +67,7 @@ Program::Program(const ProgramDescription& description, const char* vertex, cons
glGetProgramInfoLog(mProgramId, infoLen, 0, &log[0]);
ALOGE("%s", log);
}
-
- glDetachShader(mProgramId, mVertexShader);
- glDetachShader(mProgramId, mFragmentShader);
-
- glDeleteShader(mVertexShader);
- glDeleteShader(mFragmentShader);
-
- glDeleteProgram(mProgramId);
+ LOG_ALWAYS_FATAL("Error while linking shaders");
} else {
mInitialized = true;
}
@@ -153,8 +145,7 @@ GLuint Program::buildShader(const char* source, GLenum type) {
// use a fixed size instead
GLchar log[512];
glGetShaderInfoLog(shader, sizeof(log), 0, &log[0]);
- ALOGE("Error while compiling shader: %s", log);
- glDeleteShader(shader);
+ LOG_ALWAYS_FATAL("Error while compiling shader: %s", log);
return 0;
}