GPU support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Not being a GEGL or OpenGL developer, I would nevertheless being interested
in how acceleration of filters etc. can basically work with OpenGL (with
matrix operations on buffers? Can you do other operations, too?) because I
always thought OpenGL was an API for accelerated (3D but also 2D, considering
it as a plane in 3D space) rendering, but not for calculating (like it is
required with many filters). Wouldn't it, from a technical view, be more
useful to implement CUDA (http://www.nvidia.com/cuda/) support? I heard that
there is a similar API for ATI. I also know that there is a GIMP plugin using
CUDA (it has won the first place of a CUDA challenge:
http://www.nvidia.co.uk/object/io_1222782056939.html).

As far as I have seen taking a quick look at the GEGL source code, the
hardest task seems to be changing the single-threaded algorithm
  while (more_work) render();
to
  for (i = 0; i < work_packets; i++)
    create_thread(render_packets);
where the packets are rectangles.

This would introduce a parallelism which would allow to
1) use all CPUs (would be very useful too, especially if you don't have 3D
graphics acceleration available, but more than 1 CPU)
2) use CUDA to process the threads directly using GPU shaders (in parallel).

However, I have to say that I have no GEGL experience and little OpenGL and
CUDA experience, so maybe I have some wrong assumptions, so feel free to
correct me if I just wrote nonsense.

-- 
Richard H. (via www.gimpusers.com)
_______________________________________________
Gegl-developer mailing list
Gegl-developer@xxxxxxxxxxxxxxxxxxxxxx
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gegl-developer

[Index of Archives]     [Yosemite News]     [Yosemite Photos]     [gtk]     [GIMP Users]     [KDE]     [Gimp's Home]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux