Collabora如何讓DirectX 12裝置支援OpenCL和OpenGL?cnBeta2020-03-25 12:43:17

由於並非所有 Windows 裝置都對 OpenCL 和 OpenGL 硬體加速技術提供良好的支援,因此遊戲開發者經常會發現他們很難在 Windows 上實現對 OpenGL 遊戲的支援。

為提升應用程式的相容性,Collabora 正在開發應對此類問題的通用解決方案。

具體說來是,其與微軟合作構建了 OpenCL 和 OpenGL 對映層。

Collabora如何讓DirectX 12裝置支援OpenCL和OpenGL?

【來自:Collbora】

藉助這一方案,Collabora 得以將 OpenCL 1。2 和 OpenGL 3。3 支援帶到所有啟用的 Windows 和 DirectX 12 裝置上。

Collabora如何讓DirectX 12裝置支援OpenCL和OpenGL?

GPU 製造商可為其硬體提供 D3D12 驅動程式,並支援 DirectX、OpenCL 和 OpenGL API,而 Collabora 的工作主要分為三個部分:

一個 OpenCL 編譯器、一個 OpenCL 執行時,以及一個藉助 D3D12 API、在 GPU 上構建和執行命令緩衝區的 Gallium 驅動程式。

兩個元件使用共享的 NIR-to-DXIL 著色器編譯器,其中 NIR 是 Mesa 對 GPU 著色器的內部表示,而 DXIL 是微軟的內部表示形式。

Collabora如何讓DirectX 12裝置支援OpenCL和OpenGL?

D3D12 驅動程式將使用這種方法來轉換那些特定於硬體的著色器,更多細節可參閱 Collabora 的《Introducing Open CL and OpenGL on DirectX》詳情頁。