Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d99d43e authored by Chris Craik's avatar Chris Craik Committed by Android (Google) Code Review
Browse files

Merge "Dump GL errors and crash on failure to allocate texture for layer" into mnc-dev

parents ff0924c7 5686bae2
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -14,15 +14,13 @@
 * limitations under the License.
 */

#define LOG_TAG "OpenGLRenderer"
#define ATRACE_TAG ATRACE_TAG_VIEW

#include "LayerCache.h"
#include "LayerRenderer.h"
#include "Matrix.h"
#include "Properties.h"
#include "Rect.h"
#include "renderstate/RenderState.h"
#include "utils/GLUtils.h"
#include "utils/TraceUtils.h"

#include <ui/Rect.h>
@@ -238,8 +236,9 @@ Layer* LayerRenderer::createRenderLayer(RenderState& renderState, uint32_t width
        layer->allocateTexture();

        // This should only happen if we run out of memory
        if (glGetError() != GL_NO_ERROR) {
            ALOGE("Could not allocate texture for layer (fbo=%d %dx%d)", fbo, width, height);
        if (CC_UNLIKELY(GLUtils::dumpGLErrors())) {
            LOG_ALWAYS_FATAL("Could not allocate texture for layer (fbo=%d %dx%d)",
                    fbo, width, height);
            renderState.bindFramebuffer(previousFbo);
            layer->decStrong(nullptr);
            return nullptr;
+4 −3
Original line number Diff line number Diff line
@@ -14,8 +14,6 @@
 * limitations under the License.
 */

#define LOG_TAG "OpenGLRenderer"

#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>

@@ -26,9 +24,11 @@
namespace android {
namespace uirenderer {

void GLUtils::dumpGLErrors() {
bool GLUtils::dumpGLErrors() {
    bool errorObserved = false;
    GLenum status = GL_NO_ERROR;
    while ((status = glGetError()) != GL_NO_ERROR) {
        errorObserved = true;
        switch (status) {
        case GL_INVALID_ENUM:
            ALOGE("GL error:  GL_INVALID_ENUM");
@@ -46,6 +46,7 @@ void GLUtils::dumpGLErrors() {
            ALOGE("GL error: 0x%x", status);
        }
    }
    return errorObserved;
}

}; // namespace uirenderer
+2 −3
Original line number Diff line number Diff line
@@ -20,12 +20,11 @@ namespace android {
namespace uirenderer {

class GLUtils {
private:
public:
    /**
     * Print out any GL errors with ALOGE
     * Print out any GL errors with ALOGE, returns true if any errors were found.
     */
    static void dumpGLErrors();
    static bool dumpGLErrors();

}; // class GLUtils