New hardware acceleration code landed to upstream GEGL

New hardware acceleration code landed to upstream GEGL

Work on finalizing OpenCL based rendering and processing with GEGL has landed to upstream Git repository. This will be available in the next release of GEGL.

The project was sponsored by AMD and done by Victor Oliveira, a Google Summer of Code 2011 student who wrote the initial code.

GEGL, the new GIMP's image processing core, now tries using OpenCL by default, and there are some more operations that can be executed on the GPU: gegl:opacity, gegl:threshold, gegl:over (Porter-Duff), color-temperature, invert, value-invert, whitebalance.

In fact there are even more operations available in a separate branch called opencl-ops. They will be reviewed and merged into the main development branch soon. These operations are:

  • vignette
  • pixelise
  • noise-reduction
  • gaussian-blur
  • motion-blur
  • c2g (hell, yeah!)
  • mono-mixer
  • snn-mean
  • gegl:bilateral-filter
  • edge-sobel
  • gegl:edge-laplace
  • gegl:levels

More than a half of them were written by Zhang Peixuan and his team from Multicore Ware. This was possible thanks to a framework that allows easily adding new OpenCL based operations.

Performance varies between operations. For instance, box blur with a large radius is currently ca. 70 faster than the “regular” operation that works on the CPU. There is, however, some work planned on threading, so even CPU-based operations will be faster.

Right now the focus is to make all the code play well with goat-invasion branch of GIMP where transition to the new image processing core is already a fact.

Was it useful? There's more:

2 Responses. Comments closed for this entry.

  1. Kevin Brubeck Unhammer 21 March 2012 at 4:28 pm

    For those of us who have no clue what the individual GEGL operations mean, is a nice reference :)

  2. Cool. I’ll be watching to see how this progresses.