我正在使用无法更新到 dx11 的 dx9 应用程序。
我有一些我想移植到这个应用程序的计算着色器,但我不知道我可以使用什么来直接写入 dx9 纹理和可能的缓冲区(它是实时图形,因此处理数据是不可接受的)。
它必须在 Intel 、 Amd 和 Nvidia gpus 上工作(所有 dx11 都准备好了),所以 CUDA 不是一个选项。
我不知道你是否可以在dx11和dx9设备之间共享资源,但它会解决我所有的问题。实际场景是从dx9中获取一个rendertarget并共享它。在 dx 11 中获取它,通过计算着色器对其进行处理,并将内容写入共享的 dx11 纹理中,我可以在 dx9 中绑定以进行渲染。
当我在线阅读一些 dx9 互操作时,我也倾向于 opencl。
我尝试下载 Amd app sdk,但在文档中我没有找到对 dx9 互操作的任何引用(关于 dx10 的一些话,但所有文档都集中在 opengl 互操作)。我没有检查其他供应商的 opencl sdk。
c++ amp 似乎也不适用于 dx9。
如果我不能使用 Dx11<->Dx9 共享资源的东西,你知道这是否可行,如果可以的话,什么 gpgpu 解决方案可以完成这项工作?