Bumubuo ang Collabora ng add-on para sa pagpapatakbo ng OpenCL at OpenGL sa ibabaw ng DirectX

Collabora kumpanya ipinakita isang bagong Gallium driver para sa Mesa, na nagpapatupad ng layer para sa pag-aayos ng gawain ng OpenCL 1.2 at OpenGL 3.3 API sa ibabaw ng mga driver na sumusuporta sa DirectX 12 (D3D12). Code nalathala sa ilalim ng lisensya ng MIT.

Binibigyang-daan ka ng iminungkahing driver na gamitin ang Mesa sa mga device na hindi katutubong sumusuporta sa OpenCL at OpenGL, at pati na rin bilang panimulang punto para sa pag-port ng mga OpenGL/OpenCL na application upang tumakbo sa ibabaw ng D3D12. Para sa mga tagagawa ng GPU, ginagawang posible ng subsystem na magbigay ng suporta para sa OpenCL at OpenGL, kung available lang ang mga driver na may suporta sa D3D12.

Kabilang sa mga agarang plano ay ang pagkamit ng ganap na pagpasa sa mga pagsusulit sa compatibility ng OpenCL 1.2 at OpenGL 3.3, pagsuri ng compatibility sa mga application at ang pagsasama ng mga development sa pangunahing komposisyon ng Mesa. Ang pag-unlad ay isinagawa nang magkasama sa pagbuo ng mga inhinyero ng Microsoft bukas mga kasangkapan D3D11On12 para sa paglilipat ng mga laro mula sa D3D11 patungo sa D3D12 at library D3D12TranslationLayer, na nagpapatupad ng mga karaniwang graphic primitive sa itaas ng D3D12.

Kasama sa pagpapatupad ang Gallium driver, OpenCL compiler, OpenCL runtime at NIR-to-DXIL shader compiler, na nagko-convert sa intermediate na representasyon ng NIR shaders na ginamit sa Mesa sa binary na format ng DXIL (DirectX Intermediate Language), na sinusuportahan sa DirectX 12 at batay sa LLVM 3.7 bitcode (DirectX Shader Compiler mula sa Microsoft ay mahalagang isang pinalawig na tinidor ng LLVM 3.7). Ang OpenCL compiler ay inihanda batay sa mga pagpapaunlad ng proyekto at mga tool ng LLVM SPIRV-LLVM.

Ang mga mapagkukunan na may mga extension ng OpenCL ay pinagsama-sama gamit ang clang sa LLVM intermediate pseudocode (LLVM IR), na pagkatapos ay na-convert sa isang intermediate na representasyon ng OpenCL kernels sa SPIR-V na format. Ang mga core sa SPIR-V na representasyon ay ipinapasa sa Mesa, isinalin sa NIR format, na-optimize at ipinasa sa NIR-to-DXIL upang bumuo ng mga compute shader sa DXIL na format, na angkop para sa pagpapatupad sa mga GPU gamit ang DirectX 12-based na runtime.
Sa halip na Clover, ang pagpapatupad ng OpenCL na ginamit sa Mesa, isang bagong OpenCL runtime ang iminungkahi, na nagbibigay-daan sa mas maraming direktang conversion sa DirectX 12 API.

Bumubuo ang Collabora ng add-on para sa pagpapatakbo ng OpenCL at OpenGL sa ibabaw ng DirectX

Ang mga driver ng OpenCL at OpenGL ay inihanda gamit ang interface ng Gallium na ibinigay sa Mesa, na nagbibigay-daan sa iyong lumikha ng mga driver nang hindi pumunta sa mga detalyeng partikular sa OpenGL at isalin ang mga tawag sa OpenGL sa esensya na mas malapit sa mga primitive ng graphics na pinapatakbo ng mga modernong GPU. Gallium driver, tumatanggap ng OpenGL command at kapag ginagamit ang NIR-to-DXIL translator
bumubuo ng mga command buffer na isinasagawa sa GPU gamit ang D3D12 driver.

Pinagmulan: opennet.ru

Magdagdag ng komento