[About] [News] [Documentation] [Screenshots]


bugle-checks — check for errors that OpenGL defines as undefined behaviour


filterset checks


While OpenGL checks for many error conditions, there are some for which the specification does not define behaviour. These instances are usually in performance-critical paths where error-checking would impact on performance. This filter-set checks for some of these conditions. Because of the high cost of the checks, it is only intended for debugging.

The checks that are made are for:

  • Sourcing vertex or index data from unreadable client memory.

  • Sourcing vertex or index data from outside the valid range of a vertex buffer object.

  • Calling glVertex from outside glBegin/glEnd.

  • Setting client state from inside glBegin/glEnd.

  • Specifying indices to glDrawRangeElements that are outside the specified range.

When an error is detected, a warning is written to standard error and the call is ignored. There is currently no convenient way to trap the errors in a debugger (you can, however, find the message in the bugle source and set a breakpoint on the appropriate line).

Additionally, warnings are printed when an incomplete texture is used.


Due to the design of C, there is no way to perfectly reliably check for vertex array overruns, although memory debuggers can help.

Mesa, up to 6.5.1, has a bug that prevents generic vertex attributes from being validated.


bugle is written and maintained by Bruce Merry.

Get BuGLe at SourceForge.net. Fast, secure and Free Open Source software downloads