[英]CUDA + OpenGL Interop without deprecated functionality
我以前可以通过以下方式在CUDA中填充纹理以供在OpenGL中使用:
gl::GenTextures()
等) 在更新/渲染循环中:
cudaGraphicsMapResource()
cudaGraphicsUnmapResource()
来自CUDA的PBO 但是,我想知道PBO是否仍然是从内核写入纹理的最佳方法。 我看过类似这样的文章( 在此针对v5更新 ),这些文章似乎根本没有使用PBO。
我已经看到了一些对cudaTextureObject
和cudaSurfaceObject
引用,但是我不清楚它们在OpenGL互操作中的作用。
PBO仍然是推荐的方法吗? 如果没有,我应该研究哪些替代方案?
(我专门针对开普勒和较新的体系结构。)
您可以在CUDA 6 SDK的官方示例中看到它,在“ 3_Imaging”目录中称为“ simpleCUDA2GL”。 它有两种不同的方法来访问CUDA内核中的纹理。 其中一个(我认为是旧的)使用PBO,在我的计算机上速度要慢3倍。
您可能想看一下NVIDIA的最新CUDA GL Interop示例:
https://github.com/nvpro-samples/gl_cuda_interop_pingpong_st
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.