On 25/11/15 17:24, Gregor Thalhammer wrote:
>> > Am 25.11.2015 um 17:19 schrieb Henry Gomersall <[email protected]>:
>> > 
>> > In my software I have computation being done with pyOpenCL and the
>> > rendering being done with pyOpenGL and GLSL.
>> > 
>> > The OpenGL context is created independently of the OpenCL context and
>> > exists in a different thread. I'm currently making no attempt to share
>> > data between OpenGL and OpenCL - all the data passes via the CPU.
>> > 
>> > The OpenCL code is run very much more often than the OpenGL rendering
>> > code (say 500 times per second versus 50 times per second for rendering).
>> > 
>> > I'm finding that I'm getting substantial artifacts in the OpenGL
>> > rendering. Specifically, I get a heavy flickering of the rendering - it
>> > looks like e.g. certain line segments are not being drawn (it's a simple
>> > line drawing program) for some frame.
>> > 
>> > Am I missing something about using OpenCL and OpenGL from multiple
>> > threads? Do I need to explicitly sync the objects in some way?
>> > 
>> > Curiously, it doesn't break _every_ run. About 1 run in 10 works
>> > perfectly, with no visual problems at all. I wonder if there is some
>> > race condition causing a (setup?) problem.
> Dear Henry,
> 
> I have an application with a similar specs as you described, with PyQt4, 
> pyOpenGL and pyopencl, but without issues. Even sucessfully tried sharing 
> between OpenCL and OpenGL. 
> One thing I learned about Qt, do all the OpenGL rendering in the main thread, 
> and then ideally do everything within the paintGL() method of QGLWidgdet, or 
> call makeCurrent (method of QGLWidget) to switch the OpenGL context. Having 
> another threads keeping the GPU busy with OpenCL did not interfere with 
> rendering.

Yes, this is what I'm doing. hmmm...

Thanks,

Henry

_______________________________________________
PyOpenCL mailing list
[email protected]
http://lists.tiker.net/listinfo/pyopencl

Reply via email to