Collabora desenvolupa un complement per executar OpenCL i OpenGL a la part superior de DirectX

Empresa Col·labora presentat un nou controlador de Gallium per a Mesa, que implementa una capa per organitzar el treball de les API OpenCL 1.2 i OpenGL 3.3 a sobre dels controladors compatibles amb DirectX 12 (D3D12). Codi publicat sota la llicència MIT.

El controlador proposat us permet utilitzar Mesa en dispositius que no admeten de manera nativa OpenCL i OpenGL, i també com a punt de partida per portar aplicacions OpenGL/OpenCL per executar-les a D3D12. Per als fabricants de GPU, el subsistema permet oferir suport per a OpenCL i OpenGL, si només estan disponibles controladors amb suport D3D12.

Entre els plans immediats es troben l'assoliment de la superació total de les proves de compatibilitat d'OpenCL 1.2 i OpenGL 3.3, la comprovació de la compatibilitat amb les aplicacions i la inclusió de desenvolupaments en la composició principal de Mesa. El desenvolupament es realitza conjuntament amb els enginyers de Microsoft en desenvolupament obert eines D3D11 el 12 per transferir jocs de D3D11 a D3D12 i biblioteca D3D12TranslationLayer, que implementa primitives gràfiques estàndard a la part superior de D3D12.

La implementació inclou el controlador Gallium, el compilador OpenCL, el temps d'execució d'OpenCL i el compilador d'ombres NIR-a-DXIL, que converteix la representació intermèdia dels ombrejats NIR utilitzats a Mesa al format binari DXIL (DirectX Intermediate Language), compatible amb DirectX 12 i basat en Codi de bits LLVM 3.7 (Compilador de DirectX Shader de Microsoft és essencialment una bifurcació estesa de LLVM 3.7). El compilador OpenCL es prepara a partir dels desenvolupaments del projecte i les eines LLVM SPIRV-LLVM.

Les fonts amb extensions OpenCL es compilen mitjançant clang en pseudocodi intermedi LLVM (LLVM IR), que després es converteix en una representació intermèdia dels nuclis OpenCL en format SPIR-V. Els nuclis de la representació SPIR-V es passen a Mesa, es tradueixen al format NIR, s'optimitzen i es passen a NIR-a-DXIL per generar ombrejats de càlcul en format DXIL, adequats per a l'execució en GPU amb temps d'execució basat en DirectX 12.
En lloc de Clover, la implementació d'OpenCL utilitzada a Mesa, es proposa un nou temps d'execució d'OpenCL, que permet conversions més directes a l'API de DirectX 12.

Collabora desenvolupa un complement per executar OpenCL i OpenGL a la part superior de DirectX

Els controladors OpenCL i OpenGL es preparen mitjançant la interfície Gallium proporcionada a Mesa, que us permet crear controladors sense entrar en detalls específics d'OpenGL i traduir les trucades OpenGL en essència més a prop dels gràfics primitius amb els quals operen les GPU modernes. El controlador Gallium accepta ordres OpenGL i quan s'utilitza el traductor NIR-a-DXIL
genera buffers d'ordres que s'executen a la GPU mitjançant el controlador D3D12.

Font: opennet.ru

Afegeix comentari