以编程方式检查ANGLE使用的后端

时间:2018-07-23 12:07:38

标签: qt opengl graphics directx

最近,我已将CUDA-raytracer应用程序从Linux(Qt 5.11.1 G ++)移植到Windows(Qt 5.11.1 MSVC2017)。 CUDA-raytracer写入OpenGL ES的像素解压缩缓冲区,QQuickFramebufferObject::Renderer将其渲染为仅在单个“全屏”三角形(此处为(3, -1), (-1, 3), (-1, -1))上的纹理。

我很好奇,当我构建项目时几乎没有任何更改,并且它开始在Windows上立即工作(CUDA统一内存访问功能除外)。 cudaGLGetDevices(&deviceCount, &dev, 1, cudaGLDeviceListAll);返回正确的值。

现在我认为,并不是Windows上的每个环境在所有情况下都相同。 Somtimes ANGLE可以使用DirectX 9、11甚至12(甚至vk)作为其后端,以将OpenGL ES函数调用转换为它。如果肯定cudaGraphicsGLRegisterBuffer无法正常工作(直到没有一些微妙的NV和DX互操作扩展名)。

如何以编程方式检查在ANGLE的支持下当前用于实现OpenGL ES的后端?

0 个答案:

没有答案