Collabora inogadzira yekuwedzera yekumhanyisa OpenCL uye OpenGL pamusoro peDirectX

Collabora kambani yakaunzwa mutyairi mutsva weGallium weMesa, uyo anoshandisa chidimbu chekugadzirisa basa reOpenCL 1.2 uye OpenGL 3.3 APIs pamusoro pevatyairi vanotsigira DirectX 12 (D3D12). Code yakabudiswa pasi peMIT rezinesi.

Mutyairi anotarisirwa anobvumidza kuti ushandise Mesa pamidziyo isingatsigire OpenCL neOpenGL, uye zvakare sepokutangira kutumira OpenGL/OpenCL maapplication ekumhanya pamusoro peD3D12. Kune vagadziri veGPU, iyo subsystem inoita kuti zvikwanise kupa rutsigiro rweOpenCL neOpenGL, kana chete vatyairi vane D3D12 rutsigiro varipo.

Pakati pezvirongwa zvepakarepo kubudirira kwekupasa kwakazara kweyedzo yekuenderana kweOpenCL 1.2 uye OpenGL 3.3, kutarisa kuenderana nemashandisirwo uye kuisirwa kwezvinoitika mukuumbwa kukuru kweMesa. Kubudirira kunoitwa pamwe chete neMicrosoft mainjiniya ari kusimukira kuvhura zvishandiso D3D11On12 yekufambisa mitambo kubva kuD3D11 kuenda kuD3D12 neraibhurari D3D12TranslationLayer, iyo inoshandisa yakajairwa graphic primitives pamusoro peD3D12.

Kuitwa kwacho kunosanganisira mutyairi weGallium, OpenCL compiler, OpenCL runtime uye NIR-to-DXIL shader compiler, inoshandura inomiririra yepakati yeNIR shader inoshandiswa muMesa kuita DXIL (DirectX Intermediate Language) binary format, inotsigirwa muDirectX 12 uye zvichibva pa. LLVM 3.7 bitcode (DirectX Shader Compiler kubva kuMicrosoft inongova forogo yakawedzerwa yeLLVM 3.7). Iyo OpenCL compiler inogadzirirwa zvichienderana nekuvandudzwa kweiyo LLVM chirongwa uye maturusi SPIRV-LLVM.

Zvinyorwa zvine OpenCL mawedzero anounganidzwa achishandisa clang kuita LLVM yepakati pseudocode (LLVM IR), iyo inozoshandurwa kuita inomiririra yepakati yeOpenCL kernels muSPIR-V fomati. Cores muSPIR-V inomiririra inopfuudzwa muMesa, yakashandurirwa kuNIR fomati, yakagadziridzwa uye yakapfuudzwa kuNIR-ku-DXIL kuti igadzire komputa shaders muDXIL fomati, yakakodzera kuurayiwa paGPUs uchishandisa DirectX 12-based runtime.
Panzvimbo yeClover, iyo OpenCL kuisirwa inoshandiswa muMesa, itsva OpenCL yekumhanyisa nguva inokurudzirwa, ichibvumira kushandurwa kwakananga kuDirectX 12 API.

Collabora inogadzira yekuwedzera yekumhanyisa OpenCL uye OpenGL pamusoro peDirectX

Vatyairi veOpenCL neOpenGL vakagadzirirwa vachishandisa Gallium interface yakapihwa muMesa, iyo inokutendera iwe kuti ugadzire madhiraivha pasina kupinda muOpenGL-chaiyo dhairekitori uye kududzira OpenGL mafoni muchidimbu padyo nemapikicha ekutanga ayo maGPU azvino anoshanda paari. Gallium mutyairi, anogamuchira OpenGL mirairo uye kana achishandisa NIR-to-DXIL muturikiri
inogadzira ma buffers ekuraira ayo anoitwa paGPU uchishandisa mutyairi weD3D12.

Source: opennet.ru

Voeg