The convolution extension, EXT_convolution, defines a stage in the OpenGL pixel transfer pipeline which applies a 1D, separable 2D, or general 2D convolution. The 1D convolution is applied only to 1D texture downloads and is infrequently used. 2D kernels are specified using the commands glConvolutionFilter2DEXT(), glCopyConvolutionFilter2DEXT(), and glSeparableFilter2DEXT(). The convolution stage is enabled using the enumerant GL_CONVOLUTION_2D_EXT or GL_SEPARABLE_2D_EXT. Filters are queried using glGetConvolutionFilterEXT() and glGetSeparableFilterEXT().
The maximum permitted convolution size is machine-dependent and may be queried using glGetConvolutionParameterfvEXT() with the parameters GL_MAX_CONVOLUTION_WIDTH_EXT and GL_MAX_CONVOLUTION_HEIGHT_EXT.
The relative performance of separable and general filters varies from platform to platform, but it is best to specify a separable filter whenever possible.
EXT_convolution is currently supported by the following vendors: