Nagpakita ang mga developer ng Collabora ng isang bagong Gallium controller para sa Mesa

Controller ng collabora

Kamakailan Inilabas ang mga developer ng Collabora sa pamamagitan ng isang post sa blog, ang bagong Gallium controller para sa Mesa, nagpapatupad ng isang intermediate layer upang ayusin ang OpenCL 1.2 at OpenGL 3.3 API tungkol sa mga driver na may suporta na DirectX 12 (D3D12) at ang kanilang source code ay inilabas sa ilalim ng lisensya ng MIT.

Ang iminungkahing controller ay Pinapayagan kang gumamit ng Mesa sa mga aparato na kung saan ay hindi una tugma kasama ang OpenCL at OpenGL at bilang panimulang posisyon din sa port OpenGL / OpenCL application upang gumana sa D3D12. Para sa mga tagagawa ng GPU, pinapayagan ng subsystem na magbigay ng suporta para sa OpenCL at OpenGL, na sinusuportahan lamang ng mga driver ang D3D12.

Sa kanilang blog post, nagbabahagi ang mga developer:

Sa nakaraang ilang buwan, nagtatrabaho kami sa dalawang kapanapanabik na mga bagong proyekto sa Collabora, at sa wakas ay oras na upang magbahagi ng impormasyon tungkol sa mga ito sa mundo ...

Ng mga agarang plano, ang nakamit ang kumpletong pag-apruba ng mga pagsubok ng OpenCL 1.2 at OpenGL 3.3 na suporta, pagpapatunay ng pagiging tugma sa mga application at pagsasama ng mga pinakamahusay na kasanayan sa pangunahing komposisyon ng Mesa.

Tungkol sa bagong controller

Ang pagpapaunlad ng bagong controller ay isinasagawa kasabay ng mga inhinyero ng Microsoft upang paunlarin ang mga tool ng D3D11On12 sa D3D11 transfer kit at D3D12 D3D12TranslationLayer library, pati na rin ang pamantayang graphic na primitive implement sa tuktok ng D3D12.

Ang pagpapatupad may kasamang Gallium driver, OpenCL compiler, ang OpenCL runtime, at ang NIR-to-DXIL shader compiler, na nagko-convert ng intermediate na representasyon ng mga NIR shader na ginamit sa Mesa sa binary DXIL format (DirectX intermediate na wika), na katugma sa DirectX 12 at batay sa bit code LLVM 3.7 (Microsoft's Ang DirectX Shader Compiler ay mahalagang isang pinalawig na tinidor ng LLVM 3.7). Ang tagatala ng OpenCL ay inihanda batay sa karanasan ng proyekto ng LLVM at toolkit ng SPIRV-LLVM.

Ang gawaing ito ay nabubuo sa maraming mga nakaraang gawa. Una sa lahat, binubuo namin ito gamit ang Mesa 3D, kasama ang interface ng Gallium bilang batayan para sa layer ng OpenGL at NIR bilang batayan para sa tagatala ng OpenCL. Gumagamit din kami ng LLVM at ang tagasalin ng Khronos SPIRV-LLVM bilang isang tagatala.

Bilang karagdagan, pinapakinabangan namin ang karanasan ng Microsoft sa paglikha ng kanilang layer ng pagsasalin ng D3D12, pati na rin ang aming sariling karanasan sa pagbuo ng Zink.

Ang OpenCL source code ay pinagsama-sama sa clang sa intermediate LLVM pseudocode (LLVM IR), na pagkatapos ay na-convert sa isang intermediate na representasyon ng OpenCL kernel sa format na SPIR-V.

Ang mga core sa representasyon ng SPIR-V ay inililipat sa Mesa, isinalin sa format na NIR, na-optimize, at inilipat sa NIR-to-DXIL upang makabuo ng mga angkop na DXIL computational shader para sa pagpapatupad ng GPU gamit ang DirectX 12 based runtime. Sa halip na gamitin ang Clover sa Pagpapatupad ng OpenCL Mesa, iminungkahi ang isang bagong runtime ng OpenCL, na nagpapahintulot sa higit na direktang mga conversion sa DirectX 12 API.

Ang mga driver ng OpenCL at OpenGL ay inihanda gamit ang interface ng Gallium na ibinigay sa Mesa, na nagbibigay-daan sa iyo upang i-bypass ang mga detalye ng OpenGL kapag lumilikha ng mga driver at isalin ang mga tawag sa OpenGL sa mga entity na mas malapit sa mga graphic primitives na pinapatakbo ng mga modernong GPU.

Tumatanggap ang driver ng Gallium ng mga utos ng OpenGL at sa paglahok ng tagasalin ng NIR-to-DXIL, nagtatayo ng mga buffer ng utos na tumatakbo sa GPU gamit ang driver ng D3D12.

Sa wakas, binabanggit ng mga developer na ito ay maagang trabaho at inaasahan nila na ang controller ay magpapabuti sa paglipas ng panahon:

Ito lamang ang anunsyo, at maraming trabaho ang nananatiling dapat gawin. Mayroon kaming isang bagay na gumagana sa ilang mga kaso sa ngayon, ngunit nagsisimula pa lamang kaming guluhin ang ibabaw.

Una sa lahat, kailangan nating makarating sa antas ng mga tampok na aming patutunguhan. Ang aming mga layunin sa oras na ito ay upang pumasa sa pagsubok sa pagsunod para sa OpenCL 1.2 at OpenGL 3.3. Malayo pa ang lalakarin natin, ngunit sa kaunting pagsusumikap at pagpapawis, sigurado akong makakarating tayo doon.

Kung interesado kang malaman ang tungkol dito, maaari mong suriin ang orihinal na tala sa ang sumusunod na link o para sa mga interesadong suriin ang source code ay maaaring gawin ito mula sa link na ito.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.