[英]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.