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/Android.mk b/libs/hwui/Android.mk
index 8ba6318..4d86e15 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -4,6 +4,11 @@
HWUI_NEW_OPS := true
+# Enables fine-grained GLES error checking
+# If set to true, every GLES call is wrapped & error checked
+# Has moderate overhead
+HWUI_ENABLE_OPENGL_VALIDATION := false
+
hwui_src_files := \
font/CacheTexture.cpp \
font/Font.cpp \
@@ -157,6 +162,13 @@
frameworks/rs
endif
+ifeq (true, $(HWUI_ENABLE_OPENGL_VALIDATION))
+ hwui_cflags += -include debug/wrap_gles.h
+ hwui_src_files += debug/wrap_gles.cpp
+ hwui_c_includes += frameworks/native/opengl/libs/GLES2
+ hwui_cflags += -DDEBUG_OPENGL=3
+endif
+
# ------------------------
# static library
@@ -188,8 +200,8 @@
-DHWUI_NULL_GPU
LOCAL_SRC_FILES := \
$(hwui_src_files) \
- tests/common/nullegl.cpp \
- tests/common/nullgles.cpp
+ debug/nullegl.cpp \
+ debug/nullgles.cpp
LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
LOCAL_EXPORT_C_INCLUDE_DIRS := $(hwui_c_includes) $(call hwui_proto_include)