I have already corresponded with Nicolas (thanks) and was able to fix
a general overview of what I should do to implement OpenGL GPU
resampling in GEGL or something similar. The following is my general
plan of action for this topic:
(1) Extend the current GeglBuffer implementation to store a copy of
"some" image sub-buffers/mipmaps in volatile GPU memory (textures,
VBOs). The image data in the GPU memory will be potentially
accelerated as they are already cached in the GPU as opposed to the
ones that are stored in primary memory.
(2) Implement some resamplers using pixel shaders that operate on
cached image data on the GPU memory. I might as well start with the
suggested hardware bilinear sampler to get a feel with how to
integrate shaders with GEGL and proceed to more complicated resamplers
(nohalo, snohalo, etc.).
The above-mentioned plan is a huge simplification. I will come back
with more details as I dig through OpenGL, GPGPU and GEGL's internals.
Also, if you have anything to say, please feel free to react. I am
still learning the intricacies of OpenGL and GEGL and would very much
appreciate your input.
Furthermore, Nicolas expressed that instead of resamplers, I could
implement other things. I elected that that "other thing" could be
GeglOperations. Some GeglOperations could be accelerated through
shaders. So instead of doing point no. 2 above, I could implement one
or two GeglOperations through shaders instead. GEGL gurus, do you
think this is at all feasible? Am I misunderstanding anything?
jersonperpetua at gmail dot com
Gimp-developer mailing list