bugle-checks — check for errors that OpenGL defines as undefined behaviour
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.
Setting client state from inside
Specifying indices to
glDrawRangeElementsthat 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.