From 8c2f7880690cd9c21a2c50358155877f0c301d40 Mon Sep 17 00:00:00 2001 From: Emux Date: Wed, 23 Jan 2019 10:20:37 +0200 Subject: [PATCH] GL debug improvements #626 --- vtm/src/org/oscim/renderer/GLUtils.java | 19 +++++++++++++++++++ vtm/src/org/oscim/renderer/MapRenderer.java | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/vtm/src/org/oscim/renderer/GLUtils.java b/vtm/src/org/oscim/renderer/GLUtils.java index 5eb0c2bc..40362db6 100644 --- a/vtm/src/org/oscim/renderer/GLUtils.java +++ b/vtm/src/org/oscim/renderer/GLUtils.java @@ -177,6 +177,25 @@ public class GLUtils { return errors; } + /** + * Check GL out of memory. + * See: https://www.khronos.org/opengl/wiki/OpenGL_Error + * + * @param op the operation which should be debugged + * @return true if out of memory + */ + public static boolean checkGlOutOfMemory(String op) { + int error; // GL.NO_ERROR + boolean oom = false; + while ((error = gl.getError()) != GL.NO_ERROR) { + log.error(op + ": \tglError " + getGlErrorString(error) + " (" + error + ")"); + // throw new RuntimeException(op + ": glError " + error); + if (error == GL.OUT_OF_MEMORY) + oom = true; + } + return oom; + } + /** * @param error the error code of OpenGL * @return the error code as string diff --git a/vtm/src/org/oscim/renderer/MapRenderer.java b/vtm/src/org/oscim/renderer/MapRenderer.java index eea59fb9..a1e0460f 100644 --- a/vtm/src/org/oscim/renderer/MapRenderer.java +++ b/vtm/src/org/oscim/renderer/MapRenderer.java @@ -160,7 +160,7 @@ public class MapRenderer { GLUtils.checkGlError(renderer.getClass().getName()); } - if (GLUtils.checkGlErrors(getClass().getName() + ": finish").contains(GL.OUT_OF_MEMORY)) { + if (GLUtils.checkGlOutOfMemory(getClass().getName() + ": finish")) { BufferObject.checkBufferUsage(true); // FIXME also throw out some textures etc }