GL_EXT_convolution 'red' book tease

I’m new to OpenGL though I’ve been reading the ‘red’ book (published in 2006) for a while.

I have a basic GLUT image display program running on Win XP built with a Borland 6 compiler. I have been writing code in C for nearly twenty years. I’m developing on a Win XP machine with a mid-range NVIDIA graphics card but the work will ultimately run on XP and the Intel 945 graphics chipset which supports OpenGL 1.4.

There several questions that I have:

[1] It seems that no graphics cards support GL_EXT_convolution why is this?
[2] Neither are AUX_buffers supported, why?
[3] Should I use GLU 1.3 alongside the Microsoft OpenGL 1.1 dll ?
[4] Why is GLU 1.3 not available directly from the OpenGL/Khronos website?

I’ve found the OpenGL Extensions viewer from realtech-vr helpful. The ‘red’ book seems a bit of a tease if many of the documented extensions are not implemented on any actual hardware.

I’m beginning to gather that old extensions and old features that have never been implemented are not declared ‘obsolete’, though they wouldn’t have to be deleted as such. As a result a new user, such as me, can be misled into thinking these features are active.

The GL_EXT_convolution extension would have been useful as a general computational feature for the GPU to perform. It seems a straightforward facility without needing to get into the complexity of shaders. Perhaps a modern CPU can crunch a convolution faster than a GPU and that makes the facility obsolete?


In my experience using a shader is much faster than the CPU (and even faster when using CUDA, since it gives you access to shared memory). I guess they figured that since convolutions can already be done with shaders, there is no need for an HW accelerated convolution extension.

(1) Well, back then convolution part of the OpenGL had to be software-implemented anyway, so no one would actually use it (instead, people developed own, faster routines). This is the reason why driver developers haven’t payed much attention to this extensions. Nowadays, you can do it via shaders, so there is no reason to use an additional extension for it (similar is true for skinning, lighting models, palletized textures and similar).

(2) Not enough interest I guess. I thought they were supported, though…

(3) Why not, GL and GLU are completely separate and in a strict sence, have not much to do with each other.

(4) Again, I woudl say it is due to low interest. Who uses GLU anyway besides from beginners? It has no features that would make it useful for high-performance graphics; maybe besides that projection and lookat stuff, but this is coded in 5 minutes.

I think the OpenGL ARB should identify those extensions that have become obsolete and explicity deprecate them and drop them from their publications. Otherwise a neophyte, like me, can be quite misled. The red book devotes eight pages to GL_EXT_convolution yet it seems the extension is just a fiction.

…I just took a brief glimpse at GLSL, it’s whole other ball of wax with another learning curve all to itself. It’s a sledge hammer to crack a walnut. All I want to do is resample/filter a 2D image on the GPU and read it back to the CPU.

I wonder if anyone has written a utility that provides the functionality of GL_EXT_convolution (and its very simple API) using GLSL ?


It’s not quite fiction, although I’ll agree it’s close :slight_smile:

The EXT, ARB, core scheme seems like a rather academic game, and I’m too much of an engineer to want to play such things. Why perpetuate dead code? To make the book thicker? It’s hardly instructive and, after all, the book is supposed to be: “The Official Guide to Learning OpenGL, version 2.0” The authors surely know that there is no actual, nor any likely future support for these extensions?

I think I’ll read it like the Bible or the Koran. In the beginning there was OpenGL 1.0 … it’s a book filled with ancient mythology perpetuated by the high priests.