Naghimo ang Collabora og add-on alang sa pagpadagan sa OpenCL ug OpenGL sa ibabaw sa DirectX

Collabora nga kompanya gipresentar usa ka bag-ong Gallium driver alang sa Mesa, nga nagpatuman sa usa ka layer alang sa pag-organisar sa trabaho sa OpenCL 1.2 ug OpenGL 3.3 API sa ibabaw sa mga drayber nga nagsuporta sa DirectX 12 (D3D12). Code gipatik ubos sa lisensya sa MIT.

Gitugotan ka sa gisugyot nga drayber nga gamiton ang Mesa sa mga aparato nga dili lumad nga nagsuporta sa OpenCL ug OpenGL, ug ingon usab usa ka punto sa pagsugod sa pag-port sa mga aplikasyon sa OpenGL/OpenCL nga modagan sa ibabaw sa D3D12. Alang sa mga tiggama sa GPU, ang subsystem nagpaposible sa paghatag og suporta alang sa OpenCL ug OpenGL, kung ang mga drayber lamang nga adunay suporta sa D3D12 ang anaa.

Lakip sa diha-diha nga mga plano mao ang pagkab-ot sa bug-os nga pagpasa sa compatibility tests sa OpenCL 1.2 ug OpenGL 3.3, pagsusi sa compatibility sa mga aplikasyon ug ang paglakip sa mga kalamboan sa nag-unang komposisyon sa Mesa. Ang pag-uswag gihimo kauban ang mga inhenyero sa Microsoft nga nag-uswag abli himan D3D11On12 alang sa pagbalhin sa mga dula gikan sa D3D11 ngadto sa D3D12 ug librarya D3D12TranslationLayer, nga nagpatuman sa standard graphic primitives sa ibabaw sa D3D12.

Ang pagpatuman naglakip sa Gallium driver, OpenCL compiler, OpenCL runtime ug NIR-to-DXIL shader compiler, nga nag-convert sa intermediate nga representasyon sa NIR shaders nga gigamit sa Mesa ngadto sa DXIL (DirectX Intermediate Language) binary format, gisuportahan sa DirectX 12 ug base sa LLVM 3.7 bitcode (DirectX Shader Compiler gikan sa Microsoft usa ka gipalawig nga tinidor sa LLVM 3.7). Ang OpenCL compiler giandam base sa mga kalamboan sa LLVM nga proyekto ug mga himan SPIRV-LLVM.

Ang mga tinubdan nga adunay mga extension sa OpenCL gihugpong gamit ang clang ngadto sa LLVM intermediate pseudocode (LLVM IR), nga unya gi-convert ngadto sa intermediate nga representasyon sa OpenCL kernels sa SPIR-V format. Ang mga core sa SPIR-V nga representasyon gipasa ngadto sa Mesa, gihubad ngadto sa NIR format, gi-optimize ug gipasa ngadto sa NIR-to-DXIL aron makamugna og compute shaders sa DXIL format, nga angay alang sa pagpatuman sa mga GPU gamit ang DirectX 12-based runtime.
Imbis nga Clover, ang pagpatuman sa OpenCL nga gigamit sa Mesa, usa ka bag-ong OpenCL runtime ang gisugyot, nga gitugotan ang daghang direkta nga mga pagbag-o sa DirectX 12 API.

Naghimo ang Collabora og add-on alang sa pagpadagan sa OpenCL ug OpenGL sa ibabaw sa DirectX

Ang mga drayber sa OpenCL ug OpenGL giandam gamit ang interface sa Gallium nga gihatag sa Mesa, nga nagtugot kanimo sa paghimo og mga drayber nga dili moadto sa mga detalye nga piho sa OpenGL ug paghubad sa mga tawag sa OpenGL sa esensya nga mas duol sa mga primitibo sa graphic nga gigamit sa mga modernong GPU. Ang drayber sa Gallium, nagdawat sa mga mando sa OpenGL ug kung gigamit ang tighubad nga NIR-to-DXIL
nagmugna og mga command buffer nga gipatuman sa GPU gamit ang D3D12 driver.

Source: opennet.ru

Idugang sa usa ka comment