是否已经有现成的API(如OpenGL、DirectX、其他)可以直接将CUDA/OPENCL结果绘制到屏幕上?而不是采用典型的绘制纹理矩形方法。
即使注册资源并使用现代CUDA交互方法,我们仍然必须通过整个渲染管线才能渲染一系列颜色。对于像我这样的应用程序,每毫秒都很重要,这是一个问题。
是否已经有现成的API(如OpenGL、DirectX、其他)可以直接将CUDA/OPENCL结果绘制到屏幕上?而不是采用典型的绘制纹理矩形方法。
即使注册资源并使用现代CUDA交互方法,我们仍然必须通过整个渲染管线才能渲染一系列颜色。对于像我这样的应用程序,每毫秒都很重要,这是一个问题。
使用OpenCL或CUDA无法直接在屏幕上绘制。
这是一个可以解决的问题,但据我所知,NVIDIA没有提供必要的API,因为它们在实现和使用上都非常复杂,而且性能优势也不大。
主要问题有两个:
1)用于渲染的缓冲区布局不同(即您必须使用表面加载/存储功能 - 将CUDA的地址空间映射到图形中不适合,因为线性布局的速度在该上下文中很差),以及
2)将您的CUDA / OpenCL输出合并到演示模型中的平台特定细节(无论是桌面还是翻页全屏体验,如Direct3D游戏,或将应用程序输出合并到桌面)。请记住,现在大多数桌面本身都是翻页的,因此在任何情况下,在前缓冲区上涂鸦都是不被允许的。