BuGLe 0.0.20061109 review
DownloadBuGLe is a tool for OpenGL debugging at it is implemented as a wrapper library that sits between your program and OpenGL. Here are
|
|
BuGLe is a tool for OpenGL debugging at it is implemented as a wrapper library that sits between your program and OpenGL.
Here are some key features of "BuGLe":
Dump a textual log of all GL calls made.
Take a screenshot after every frame, or capture a video (the latter requires FFmpeg)
Call glGetError after each call to check for errors, and wrap glGetError so that this checking is transparent to your program.
Capture and display statistics (such as frame rate)
Force a wireframe mode
Recover a backtrace from segmentation faults inside the driver (the NVIDIA drivers leave no backtrace when a segfault occurs).
In addition, there is a debugger (gldb) that lets you set breakpoints and examine backtraces. It also lets you examine OpenGL state, enable and disable filters, and drop into gdb to see what is going wrong.
Requirements:
GCC above 3.0 (3.2 is known to work; 3.1 is uncertain)
Here is an extract from a log, generated from an application I am writing. Note that GLenums are displayed by name, and pointers are followed to the correct number of elements.
stats.fps: 22.671
stats.fragments: 52335
stats.triangles: 99732
trace.call: glXSwapBuffers(0x8117720, 0x01c00021)
trace.call: glXMakeCurrent(0x8117720, 0x01c00021, 0x8444800) = 1
trace.call: glBindBufferARB(GL_ARRAY_BUFFER, 1)
trace.call: glMapBufferARB(GL_ARRAY_BUFFER, GL_READ_WRITE) = 0x45c3c000
trace.call: glUnmapBufferARB(GL_ARRAY_BUFFER) = GL_TRUE
trace.call: glBindBufferARB(GL_ARRAY_BUFFER, 0)
trace.call: glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
trace.call: glLoadMatrixd(0xbfffe610 -> { { 0, -0.29661, 1.22295, 0 }, { 1.22295, 0, 0, 0 }, { 0, 1.18644, 0.305739, 0 }, { 0.037888, 1.61781, -1.52576, 1 } })
trace.call: glActiveTextureARB(GL_TEXTURE0)
trace.call: glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, 0xbfffe5d0 -> { 0.778524, 0.778524, 0.569631, 0 })
trace.call: glGetIntegerv(GL_MAX_TEXTURE_UNITS, 0xbfffe688 -> 4)
trace.call: glBindBufferARB(GL_ARRAY_BUFFER, 1)
trace.call: glVertexPointer(3, GL_FLOAT, 32, (nil))
What's New in This Release:
A number of bugs were fixed in this release.
The most important is that screenshots and video capture are working again, having been broken in the previous release.
BuGLe 0.0.20061109 keywords