由于并非所有 Windows 设备都对 OpenCL 和 OpenGL 硬件加速技术提供良好的支持,因此游戏开发者经常会发现他们很难在 Windows 上实现对 OpenGL 游戏的支持。为提升应用程序的兼容性,Collabora 正在开发应对此类问题的通用解决方案。具体说来是,其与微软合作构建了 OpenCL 和 OpenGL 映射层。
借助这一方案,Collabora 得以将 OpenCL 1.2 和 OpenGL 3.3 支持带到所有启用的Windows和 DirectX 12 设备上。
GPU 制造商可为其硬件提供 D3D12 驱动程序,并支持 DirectX、OpenCL 和 OpenGL API,而 Collabora 的工作主要分为三个部分:
一个 OpenCL 编译器、一个 OpenCL 运行时,以及一个借助 D3D12 API、在 GPU 上构建和执行命令缓冲区的 Gallium 驱动程序。
两个组件使用共享的 NIR-to-DXIL 着色器编译器,其中 NIR 是 Mesa 对 GPU 着色器的内部表示,而 DXIL 是微软的内部表示形式。
D3D12 驱动程序将使用这种方法来转换那些特定于硬件的着色器,更多细节可参阅 Collabora 的《Introducing Open CL and OpenGL on DirectX》详情页。
相关文章
网友评论(共有 0 条评论)