Collabora desarrolla una capa para trabajar con OpenCL y OpenGL sobre DirectX.

La empresa Collabora ha presentado nuevo controlador Gallium para Mesa, que implementa una capa para gestionar el API OpenCL 1.2 y OpenGL 3.3 sobre controladores con soporte para DirectX 12 (D3D12). Código publicado bajo licencia MIT.

El controlador propuesto permite utilizar Mesa en dispositivos que inicialmente no soportan OpenCL y OpenGL, así como servir como punto de partida para portar aplicaciones OpenGL/OpenCL para funcionar sobre D3D12. Para los fabricantes de GPU, el subsistema ofrece la posibilidad de proporcionar soporte para OpenCL y OpenGL, siempre que solo haya controladores con soporte de D3D12.

Entre los planes más cercanos se destaca lograr la completa superación de las pruebas de compatibilidad con OpenCL 1.2 y OpenGL 3.3, la verificación de compatibilidad con aplicaciones e inclusión de desarrollos en la base principal de Mesa. El desarrollo se lleva a cabo junto a ingenieros de Microsoft, que están desarrollando abierto un conjunto de herramientas D3D11On12 para la traducción de juegos de D3D11 a D3D12 y la biblioteca D3D12TranslationLayer, que implementa primitivas gráficas estándar sobre D3D12.

La implementación incluye un controlador Gallium, un compilador OpenCL, un entorno de ejecución OpenCL y un compilador de sombreadores NIR-to-DXIL, que transforma la representación intermedia de los sombreadores NIR usada en Mesa en el formato binario DXIL (DirectX Intermediate Language), soportado en DirectX 12 y basado en el bytecode LLVM 3.7 (Compilador de Sombreadores de DirectX de Microsoft, que es esencialmente un fork ampliado de LLVM 3.7). El compilador OpenCL se ha preparado sobre la base de los desarrollos del proyecto LLVM y las herramientas SPIRV-LLVM.

Los textos fuente con extensiones OpenCL se compilan mediante clang en un pseudocódigo intermedio LLVM (LLVM IR), que luego se transforma en la representación intermedia de núcleos OpenCL en formato SPIR-V. Los núcleos en la representación SPIR-V se pasan a Mesa, se traducen al formato NIR, se optimizan y se envían a NIR-to-DXIL para generar sombreadores de computación en el formato DXIL, adecuados para su ejecución en GPU usando un entorno de ejecución basado en DirectX 12.
En lugar de Clover, que se usa en la implementación de OpenCL de Mesa, se ha propuesto un nuevo entorno de ejecución OpenCL, que permite más conversiones directas al API de DirectX 12.

Collabora desarrolla una capa para trabajar con OpenCL y OpenGL sobre DirectX.

Los controladores de OpenCL y OpenGL se han preparado utilizando la interfaz Gallium proporcionada en Mesa, que permite al crear controladores no profundizar en los detalles específicos de OpenGL y traducir las llamadas de OpenGL en entidades que están más cercanas a las primitivas gráficas que manejan las GPU modernas. El controlador Gallium recibe comandos de OpenGL y, al involucrar al traductor NIR-to-DXIL
forma los buffers de comandos que se ejecutan en la GPU, utilizando el controlador D3D12.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster