1
我正在使用OpenGL进行一些GPGPU处理。所以我有不同的线程给OpenGL处理线程提供工作。工作而不是等待glMapBuffer
在每个“工作项目”之后,我需要调用glReadPixels和glMapBuffer以便将数据从PBO传回主机。然而,这个问题是,glMapBuffer会阻塞线程,并且直到DMA传输完成时才能完成有用的工作,即使GPU处于空闲状态。解决这个问题的常用方法是创建一个具有最长DMA传输时间深度的流水线。但是,由于我正在研究低延迟系统,因此这是不理想的。
有没有一种办法,也许等待glMapBuffer一个单独的线程或可能得到一些通知,当DMA传输,以尽可能多的减少延迟尽可能完成什么?