Officially orphaning BuGLe (23/11/2014)
It's been almost a year since I last updated BuGLe, and it's time to admit that it's been quite some time since I've felt any motivation to work on it, or even used it. So I'm now officially abandoning development. If you like it, and want more features or better modern OpenGL support, by all means fork it. I will happily link to forks.
Happy 2014 (04/01/2014)
It's 2014, which means it's time for me to squash the most glaring bugs and push out another release. There isn't much to see, but there is some re-engineering under the hood to take advantage of the OpenGL API registry having moved to an XML format. No more half-baked C parsing to try to determine which functions go with which extensions!
As usual, I do little-to-zero GL programming these days, so it's quite possible that things are glaringly, obviously broken and I just haven't noticed. If so, please let me know, preferably via a bug in trac.
Another almost-annual release (21/01/2013)
So, I've gotten around to my New Year's resolution of pushing out another release. It's mostly code that I wrote more than 6 months ago and I can't quite remember if I got everything working, so if any of the new stuff is broken please let me know (I don't do much GL programming these days, so it's entirely possible that I broke things badly and just haven't noticed).
This release adds two new filtersets: logdebug captures the debug messages from ARB_debug_output to the BuGLe log, and contextattribs allows context flags to be overridden (particularly useful for forcing a debug context). There are also some bug fixes.
Support for lots of new OpenGL features (12/03/2012)
Unlike the last few releases, I finally found some time over the Christmas holiday to bring BuGLe a little more up to date with OpenGL. It's still a long way behind, but now I would expect most OpenGL 3.0 applications to work, and even some post-3.0 extensions are now supported.
The almost-annual release (15/11/2011)
As you can probably tell from the frequency of releases, I don't spend as much time on BuGLe as I used to. If you're keen to see BuGLe evolve and support newer GL versions, you should try to get involved and implement some things yourself.
In the meantime, here is a release that fixes quite a few bugs.
Miscellaneous bugfixes (21/11/2010)
This release contains miscellaneous bugfixes (see the ChangeLog for details). In particular, it should now build with Ubuntu 10.10.
BuGLe now uses SCons as its build system (18/7/2010)
The build system has been replaced SCons. While there are few new features, this is a major restructuring of the internals. Many bugs have been fixed and portability has been improved (in particular, BuGLe can now be built with Visual C++ Express 2008), although it is likely that new bugs have been introduced.
Another compilation release fix (26/10/2009)
Yep, like the headline says. If you've already got it running, there are no new features. The all-new, all-shiny development version will be ready any year now.
Release to fix compilation issues (01/08/2009)
The just-released 0.0.20090801 version adds a fix for GCC 4.4, which mysteriously duplicates function nodes in the parse tree. And in case you missed it (I didn't announce it here), the previous release also fixed a problem with recent versions of glext.h.
Sourceforge have also enabled email notifications on Trac, so it should now be easier to get my attention when posting bugs there.
Mailing lists and other news (31/5/2009)
Sourceforge is planning to remove the forums feature soon, which will eliminate that avenue for support. I've never really liked the forums model, since it meant I couldn't just hit reply in my mail client, so I'm going to switch to mailing lists. There are now three mailing lists accessible through the project page on Sourceforge:
- For new release announcements
- For general help and discussion about bugle
- For anyone interesting in hacking on the bugle core or writing new filter-sets
I've been fairly busy working on bugle lately, but I don't have much to show for it yet. I'm trying to implement a scons build system, which should in theory allow me to do ports to systems without a POSIX build environment, such as a WinCE port using the standard toolchains. It's proving to be a lot of work, since I've been using gnulib to handle portability nastiness, and it's wrapped pretty tightly around autoconf and automake. I'm working on writing a portability abstraction layer, which will be able to use gnulib as a backend on systems where it makes sense, but also have other OS-specific backends.
New ticket system, new release (15/3/2009)
BuGLe has grown to the point that having people email me bug reports meant that they tended to get lost. I've set up a trac system where you can report bugs in future.
I also made a new release on 11 March, which contains a number of new features (including a VBO viewer) and bug fixes.
Bugfixes and features (21/2/2009)
This release features a whole host of new features and bugfixes. Most notable are experimental support for TCP/IP-based remote debugging and OpenGL ES 1.1.
Minor bugfixes (3/8/2008)
Today's release brings minor bugfixes in several areas, particularly in building for OpenGL ES and/or Windows.
Alpha support for Windows and OpenGL ES 2.0 (16/7/2008)
This is a major new release that adds experimental support for Windows and for OpenGL ES 2.0. These ports are still in the early stages of development, and many features don't yet work. Nevertheless, you're encouraged to try them out.
Note that you must delete the old contents of $PREFIX/lib/bugle/*.so when upgrading, as otherwise stale modules will be loaded into bugle.
Texture completeness checks
The new release adds partial support for checking whether textures are complete (in the checks filter-set), with warning messages printed when this is detected. It currently only works on
Developers invited to write their own filter-sets (3/1/2008)
There are a number of minor bug-fixes, but the major change in this release is that the filter-set API has been stabilised and made available to users through installed header files. If you are interested in writing your own filter-sets, refer to the documentation.
I will also be starting full-time employment in February, and I won't be able to put as much effort in BuGLe as I have in the past. If anybody would like to become involved in developing BuGLe, contact me and I can suggest some things to work on while getting to know the way around the source code.
Remote debugging (6/12/2007)
This release has a lot of changes, but it's mostly under the hood to start bringing bugle to a point where 3rd parties can easily write and ship filter-sets. The most obvious change for users is that remote (network) debugging is now easier to do. See gldb-gui(1) for details (seriously, read it, as it's still very experimental and the best way isn't what the GUI might suggest).
NB: if you are upgrading, you MUST delete /usr/local/lib/bugle/stats.so, otherwise you will get an error about cyclic dependencies on startup.
Redesigned documentation (7/11/2007)
This release fixes a number of compilation failures, crashes, and performance bugs. The manual pages have all been converted to DocBook, giving much higher quality HTML versions. Some improvements were made to the documentation at the same time.
Some internals were redesigned, and so some new bugs may have been introduced. If you find any new bugs, please email me (bmerry users.sourceforge.net).
Improved performance startup code (10/10/2007)
I've done some work on reducing the overhead in bugle. The new release will be significantly faster when intercepting only a few functions.
The startup code has also been reworked to handle programs that
dynamically load OpenGL using
Geometry shader viewer, forums (18/7/2007)
It is now possible to view high-level geometry shaders in the shader viewer. There is also a minor bug-fix for the framebuffer viewer when using FBOs.
I've also switched on the Sourceforge forums for the project.
Logging rewritten, extoverride filterset, bugfixes (29/5/2007)
There is also a new filter-set for hiding extensions (extoverride) and miscellaneous bugfixes.
BuGLe now available in Gentoo portage (27/3/2007)
As a Gentoo user myself, I'm especially happy to announce that Gentoo is now available in the main portage tree (albeit with an unstable keyword). BuGLe is also already available in the BSD ports collection.
Support for some G80 extensions (25/3/2007)
I've added support for several of the new extensions exposed by the G80 (aka GeForce 8800); see the ChangeLog for details. These are not fully tested, specially where NVIDIA haven't released support in the drivers, so let me know if anything breaks.
The state viewer will also look a little different: some missing extension suffices have been added (e.g., GL_TEXTURE_RECTANGLE_ARB was missing the _ARB) and the ordering has been changed to better mirror the order in the OpenGL 2.1 state tables.
New release fixes assorted bugs (17/2/2007)
This release fixes a number of bugs and makes some internal redesigns. The most visible new feature is that strings in the gldb-gui state viewer are now displayed unescaped, making it easier to read multi-line strings such as shader info logs.
View frustum, state dumping and bugfixes (7/1/2007)
The new release has several bug-fixes related to using gldb-gui with pbuffers and framebuffer objects. In addition, it is possible to save the current state to an XML file, and the camera filter-set has the option of drawing the original view frustum.
ATI fixes and range remapping (27/12/2006)
There is now an option in the texture and framebuffer viewers to remap the range. This is useful for viewing textures with data outside the [0, 1] range as well as images with low dynamic range. There are also many bugfixes; in particular, BuGLe should now work much better on ATI cards.
ccache quick-fix (10/11/2006)
Apparently I can't spell, because the ccache workaround in the previous release was broken. This release should fix it. If you've already managed to install 0.0.20061109, you don't need to upgrade, as only the Makefile.am was modified.
Video and screenshot capture fixed (9/11/2006)
Somehow I managed to break the screen capture code in the previous release (0.0.20061022) and didn't notice. I've fixed the bug and also made the code more robust, as well as enabling capture via a pixel buffer object without polluting the application's namespace.
There are a few other bugfixes, mostly relating to the validate filter-set.
Statistics rewrite (22/10/2006)
The statistics system has been completely rewritten and is now a lot more powerful, supporting customisable statistics, graphs, batch counts, NVPerfSDK and lower overhead.
You will need to update your
file to use any statistics (see the examples in
doc/examples/filters), and you will also need to
copy doc/examples/statistics to
You can see an example of the enhanced statistics on the screenshots page.
Miscellaneous improvements (13/09/2006)
While there is no one feature that makes this release special, it has a huge number of minor bug-fixes and improvements, mostly to the GUI debugger. See the ChangeLog for details.
The GUI debugger has almost achieved feature-parity with the text debugger (run-time enabling and disabling of filter-sets being one missing feature). I haven't really been maintaining the text debugger, and I'm thinking of discontinuing it. If there are reasons why you still prefer the text debugger, let me know soon so that I can reconsider.
Framebuffer viewer (28/08/2006)
gldb-gui now has a framebuffer viewer! You can view the front and back buffers, plus depth, stencil and auxiliary buffers as well as framebuffer objects. There is also better support for 3D textures in the texture viewer, and assorted bug-fixes.
If you downloaded 0.0.20060827, you should upgrade to 0.0.20060828, as it fixes viewing of render-to-texture framebuffers.
Texture viewer improvements (13/08/2006)
This release makes some improvements to the texture viewer - in particular, shadow textures will be displayed in grey-scale rather than crashing, and luminance textures will appear in grey-scale rather than red-scale. Refer to the ChangeLog for miscellaneous other bug-fixes and improvements.
More bugfixes (29/05/2006)
It turns out that the shutdown code was not being called. This meant that the log would not be closed, videos would perhaps not be finalised, and the showextensions filter-set was useless. Furthermore, the break-on-error behaviour in the debuggers was broken, causing the application to continue running after an error.
These bugs are fixed in the just-released 0.0.20060528.
Major bug in 0.0.20060416 (29/04/2006)
The previous release (0.0.20060416) added support for GCC 4.1, but in
doing so it introduced a bug in the program that generates huge amounts
of the code that goes into bugle. The consequences are difficult to
predict, but one user reported crashes when using the trace
glMultMatrixf and similar functions.
All users of 0.0.20060429 should upgrade.
Camera filterset (16/04/2006)
The new 0.0.20060416 release adds a camera filterset, which allows the user to take over the camera. It won't work with advanced rendering techniques (such as any kind of post-processing), but is a handy way to test LOD and visibility culling.
Build fixes for Debian users (06/03/2006)
James Lyon has submitted a small patch needed to get BuGLe to compile on Debian testing. I've incorporated it into the new release, 0.0.20060306. Note that this release contains only build fixes and if you were able to compile 0.0.20060224 then there is no reason to use this release.
gl2ps integrated as a filter-set (24/02/2006)
Today's release incorporates gl2ps into a filter-set, allowing you to capture your scene as Postscript, EPS, PDF or SVG. The gl2ps mechanism itself has some limitations, and hence will not work with advanced applications that use per-pixel operations, but it does work with glxgears (if your browser supports SVG, click here to see it).
The snapshots are made possible by another new feature, keyboard interception. The screenshot filter-set also takes a key to trigger the screenshot, and some filter-sets (such as wireframe and video capture) can be enabled or disabled on the fly by keypress.
As usual, there are also some miscellaneous bugfixes (see the ChangeLog for details), this time mostly affecting GTK+ 2.8.
Improved texture viewer and ATI driver support (1/1/2006)
I've worked on the texture viewer in the debugger and made it a lot better. It is not yet complete (in particular 3D textures cannot be viewed, and luminance textures show up red), but should be an improvement on the previous release.
I'd be interested to hear what features people would be interested in seeing in the texture viewer, and in fact gldb in general.
I also spent a few days over Christmas with only my laptop, which has an ATI graphics card. I found some surprising bugs in the ATI driver (for example, during glDrawArrays the colour set with glColor3f is simply ignored), but also some bugs in my own code that only showed up with the ATI drivers. So those of you with ATI cards should now get a much better experience from BuGLe.
New release (0.0.20051112) adds preliminary GUI debugger (12/11/2005)
The promised GUI debugger is now ready in a preliminary form (meaning that lots of things aren't supported yet, but it shouldn't break). There are also several new extensions supported (see the changelog).
Patch against 0.0.20050512 (18/5/2005)
Luca Cappa has been very helpful pointing out bugs. This patch should fix a number of compile-time problems. After applying it, be sure to rerun configure and do a make clean.
New release fixes build error (12/5/2005)
I've just released a new version (0.0.20050512) that fixes the build problem listed in the previous post. It also fixes a few bugs and adds some new extensions to the state dump in gldb, so it is worth installing even if the previous release compiled for you.
Read this if you have a build error (11/5/2005)
Several people have emailed me to ask about build errors like the following:
filters/stats.c: In function `initialise_stats': filters/stats.c:408: error: `GROUP_glBeginQueryARB' undeclared (first use in this function) filters/stats.c:408: error: (Each undeclared identifier is reported only once filters/stats.c:408: error: for each function it appears in.) filters/stats.c:408: error: `stats_fragments' undeclared (first use in this function) filters/stats.c:409: error: `GROUP_glEndQueryARB' undeclared (first use in this function)
The short answer is yes, I messed up. I'll make a bugfix release soon, but in meantime here are two workarounds you can try.
- Update your glext.h. You can download the latest one from Khronos here. The file normally lives in /usr/include/GL/glext.h, although your OS may do something different. If you're not the sysadmin on your machine, you can put the downloaded file in a GL subdirectory of the bugle tree. Upgrading glext.h is a good idea anyway, since it will enable extra features of bugle.
- Repair the code. Either just remove the two offending lines, or else surround the enclosing if statement with the lines #ifdef GL_ARB_occlusion_query and #endif
GUI debugger in the works (28/03/2005)
If you're wondering what's been happening since the last release, here's the answer: I've been working on a GUI version of the debugger. A big advantage over the text based debugger will be a texture viewer. There may also be a viewer for buffers (e.g. depth buffer, stencil buffer), but that might take a bit longer. You can see what the debugger looks like so far in this screenshot (note: the image has been updates since this news item was originally posted).
Email address fixed (23/02/2005)
The email address that my sourceforge address forwards to disappeared several months ago, and I forgot to update the forward. My apologies to anyone who has tried to reach me. Please try again now - it should now go to the right address (or wait until 24/02/2005, since Sourceforge says it may take up to 24 hours to effect the change). A general reminder: bugs, support requests etc. mail to bmerry <at] users.sourceforge (dot) net.
Version 0.0.20050221 released (21/02/2005)
After three months of development, the shiny new version is ready. The state manager has been completely rewritten, and now works much better. It also supports very nearly all of the OpenGL 2.0 state. You can download it from the Sourceforge project page.