Collabora ûntwikkelet in tafoeging foar it útfieren fan OpenCL en OpenGL boppe op DirectX

Collabora bedriuw presintearre in nije Gallium-bestjoerder foar Mesa, dy't in laach ymplementearret foar it organisearjen fan it wurk fan 'e OpenCL 1.2 en OpenGL 3.3 API's boppe op bestjoerders dy't DirectX 12 (D3D12) stypje. Koade publisearre ûnder de MIT-lisinsje.

De foarstelde stjoerprogramma lit jo Mesa brûke op apparaten dy't OpenCL en OpenGL net natuerlik stypje, en ek as útgongspunt foar it portearjen fan OpenGL / OpenCL-applikaasjes om boppe op D3D12 te rinnen. Foar GPU-fabrikanten makket it subsysteem it mooglik om stipe te jaan foar OpenCL en OpenGL, as allinich bestjoerders mei D3D12-stipe beskikber binne.

Under de direkte plannen binne it berikken fan it folslein trochjaan fan de kompatibiliteitstests fan OpenCL 1.2 en OpenGL 3.3, kontrolearjen fan kompatibiliteit mei applikaasjes en it opnimmen fan ûntwikkelingen yn 'e haadkomposysje fan Mesa. Untwikkeling wurdt útfierd tegearre mei Microsoft yngenieurs ûntwikkeljen iepenje ark D3D11On12 foar it oerdragen fan spultsjes fan D3D11 nei D3D12 en biblioteek D3D12TranslationLayer, dy't standert grafyske primitiven ymplementearret boppe op D3D12.

De ymplemintaasje omfettet de Gallium-bestjoerder, OpenCL-kompiler, OpenCL-runtime en NIR-to-DXIL-shader-kompiler, dy't de tuskenlizzende fertsjintwurdiging fan NIR-shaders brûkt yn Mesa konvertearret yn it DXIL (DirectX Intermediate Language) binêre formaat, stipe yn DirectX 12 en basearre op LLVM 3.7 bitkoade (DirectX Shader-gearstaller fan Microsoft is yn wêzen in útwreide gabel fan LLVM 3.7). De OpenCL-kompiler is taret op basis fan de ûntwikkelingen fan it LLVM-projekt en ark SPIRV-LLVM.

Boarnen mei OpenCL-útwreidings wurde kompilearre mei help fan clang yn LLVM intermediate pseudocode (LLVM IR), dy't dan wurdt omboud ta in tuskenlizzende fertsjintwurdiging fan OpenCL kernels yn SPIR-V opmaak. Kearnen yn 'e SPIR-V-fertsjintwurdiging wurde trochjûn yn Mesa, oerset nei NIR-formaat, optimalisearre en trochjûn oan NIR-nei-DXIL om komputershaders te generearjen yn DXIL-formaat, geskikt foar útfiering op GPU's mei DirectX 12-basearre runtime.
Ynstee fan Clover, de OpenCL-ymplemintaasje brûkt yn Mesa, wurdt in nije OpenCL-runtime foarsteld, wêrtroch mear direkte konversaasjes kinne wurde nei de DirectX 12 API.

Collabora ûntwikkelet in tafoeging foar it útfieren fan OpenCL en OpenGL boppe op DirectX

OpenCL- en OpenGL-bestjoerders wurde taret mei de Gallium-ynterface oanbean yn Mesa, wêrtroch jo sjauffeurs kinne oanmeitsje sûnder yn OpenGL-spesifike details te gean en OpenGL-oproppen yn essinsje tichterby de grafyske primitiven oersette wêrop moderne GPU's operearje. Gallium-bestjoerder, akseptearret OpenGL-kommando's en by it brûken fan de NIR-nei-DXIL-oersetter
genereart kommandobuffers dy't wurde útfierd op 'e GPU mei it D3D12-bestjoerder.

Boarne: opennet.ru

Add a comment