Jocl(opencl包装器)内核运行使java3d输出禁用。当opencl完成时,java3d继续工作。
如何让Opencl(jocl)和opengl(java3d)协同工作?我需要一些命令,告诉“它的opencl时间”,当它结束时,它告诉“它的opengl时间现在”。
java3D Jpanel在opencl工作时会冻结并变得灰暗。
我做了一些跟踪,发现java3D正在骚扰opencl(jocl),jmonkey 3.0不这样做。另一次尝试则显示出猴子也在做同样的事情。突然,所有粒子的位置都停止了opencl的更新,然后所有的位置都变为0,0,0。
使用独特的上下文,程序,id,.每个装置。
当星系被平滑渲染的时候,所有的粒子突然被投射到一个我没有创建的平面上,然后几秒钟后,飞机被投射到一条线上,最后那条线被投射到一个点上。所有这些肯定是因为缓冲区x[] y[] z[]开始为所有元素获取零。
编辑:较低的gpu工作频率,使错误较少频繁。这会不会比furmark更难推动gpu,因为在本地做计算会更快吗?或者这是jocl/j猴子/java3d之间的定时/访问优先级问题吗?所有其他程序,包括福马克,稳定在1225兆赫(hd7870霍克),但这很可能是更稳定的只有1000兆赫(AMD默认的hd7870),或看起来不稳定,因为缓冲区被垃圾收集错误?
Aparapi(opencl包装器for java)从来都不是一个问题,在1200 got时运行良好,甚至出现了“驱动程序停止运行并恢复”错误。催化剂13.3β1.5.1和1.5.2疲劳。催化剂13.4与此相同。
放置System.gc();就在内核重复循环立即出错之前,肯定有一个垃圾收集的东西我错过了。
通过一些跟踪: clCreateBuffer方法在垃圾收集方面有一个问题
编辑:解决了这个问题。当使用clCreateBuffer属性时,主线程中由CL.CL_MEM_USE_HOST_PTR创建的缓冲区似乎是用于子线程的垃圾(待收集)。CL.CL_MEM_COPY_HOST_PTR解决了交换%1-%2性能损失的问题。
谢谢。
发布于 2013-05-28 14:29:26
是的,这可能是一个很难追踪的问题。我挣扎了一段时间,直到找到了这条线。
boards/showthread.php/6184-Creating-buffers
当然,讨论这面旗帜的使用问题的医生们在这里也是很难的。
http://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/clCreateBuffer.html
https://stackoverflow.com/questions/16573988
复制相似问题