Add fine-grained debug layer
Full GLES error checking layer via -include
trickery. Change DEBUG_OPENGL to a level system.
HIGH = every GL call is error checked
MODERATE = checkpointing at interesting spots
LOW = only asserts there are no errors at the end of a frame
or when the FBO changes
NONE = AIN'T GOT NO TIME FOR ERRORS GOTTA GO FAST!
Change-Id: Ibe81aae93d942059c4ddf1cbb11c828b7ce4c10b
diff --git a/libs/hwui/renderstate/RenderState.cpp b/libs/hwui/renderstate/RenderState.cpp
index 75dcf16..81363d9 100644
--- a/libs/hwui/renderstate/RenderState.cpp
+++ b/libs/hwui/renderstate/RenderState.cpp
@@ -241,7 +241,7 @@
const Glop::Mesh::Indices& indices = mesh.indices;
const Glop::Fill& fill = glop.fill;
- GL_CHECKPOINT();
+ GL_CHECKPOINT(MODERATE);
// ---------------------------------------------
// ---------- Program + uniform setup ----------
@@ -286,7 +286,7 @@
roundedOutRadius);
}
- GL_CHECKPOINT();
+ GL_CHECKPOINT(MODERATE);
// --------------------------------
// ---------- Mesh setup ----------
@@ -339,7 +339,7 @@
// Shader uniforms
SkiaShader::apply(*mCaches, fill.skiaShaderData);
- GL_CHECKPOINT();
+ GL_CHECKPOINT(MODERATE);
Texture* texture = (fill.skiaShaderData.skiaShaderType & kBitmap_SkiaShaderType) ?
fill.skiaShaderData.bitmapData.bitmapTexture : nullptr;
const AutoTexture autoCleanup(texture);
@@ -349,7 +349,7 @@
// ------------------------------------
blend().setFactors(glop.blend.src, glop.blend.dst);
- GL_CHECKPOINT();
+ GL_CHECKPOINT(MODERATE);
// ------------------------------------
// ---------- Actual drawing ----------
@@ -379,7 +379,7 @@
glDrawArrays(mesh.primitiveMode, 0, mesh.elementCount);
}
- GL_CHECKPOINT();
+ GL_CHECKPOINT(MODERATE);
// -----------------------------------
// ---------- Mesh teardown ----------
@@ -391,7 +391,7 @@
glDisableVertexAttribArray(colorLocation);
}
- GL_CHECKPOINT();
+ GL_CHECKPOINT(MODERATE);
}
void RenderState::dump() {