3D bord

3D bord
Generell informasjon
programtype Bibliotek
Forfatter brian paul
utvikler 3D Team Table [ 1 ]
Utviklingsmodell Åpen kilde
Første utgivelse august 1993 _
Tillatelse MIT-lisens
Teknisk informasjon
Planlagt inn C , Assembler [ 2 ]
Versjoner
Siste stabile versjon Tabell 22.0.0 ( info ) (9. mars 2022 (7 måneder og 6 dager))
Siste versjon i tester 1.0februar 1995 _
Lenker
Offesiell nettside kodelager feilsporing

Mesa 3D er et åpen kildekode -grafikkbibliotek , opprinnelig utviklet av Brian Paul i august 1993, som gir en generisk implementering av OpenGL for gjengivelse av tredimensjonal grafikk på flere plattformer . Siden september 2012 har Mesa blitt godkjent av Khronos som en OpenGL-kompatibel API . [ 3 ]

Mesa vedlikeholdes av freedesktop.org , som også er der grafikkserverne X.org og Wayland er vert , og ulike drivere for åpen kildekode.

På Unix-baserte systemer som BSD -derivater eller Linux-distribusjoner implementerer Mesa et leverandøruavhengig oversettelseslag mellom et grafikk-API som OpenGL og grafikkdriverne i operativsystemkjernen. I tillegg til 3D-applikasjoner, for eksempel spill, bruker grafikkservere OpenGL / EGL -anrop for å produsere bildet på skjermen, derfor går all grafikk (i de implementeringene som støtter dette biblioteket) vanligvis gjennom Mesa. Noen drivere (vanligvis proprietære de utviklet av produsenter) gir sin egen implementering av grafikk-API-ene i stedet for å bruke Mesa.

Programvarearkitektur

Mesa er tilgjengelig og kan kompileres på praktisk talt enhver moderne plattform og distribueres under MIT-lisensen . Ikke å være en offisiell implementering av OpenGL av lisensieringsårsaker, har Mesa-utviklere jobbet for å holde API-en i tråd med de nyeste OpenGL-konforme standardene og testene.

Selv om Mesa støtter ulike typer maskinvaregrafikkakseleratorer , kan den også kompileres som en kun programvare-renderer. Å være åpen kildekode , er det mulig å bruke den til å studere den interne oppførselen til en OpenGL - kompatibel gjengiver .

Implementering av grafiske APIer

Historisk sett er hoved-API-en som Mesa implementerer OpenGL , sammen med andre relaterte API-er fra Khronos -gruppen (som OpenVG, OpenGL ES eller nylig EGL ), men Mesa kan implementere andre API-er og gjør det faktisk med andre som Glide (i ubrukt) og Direct3D .

Den støttede versjonen av de forskjellige grafiske API-ene avhenger av driveren, fordi hver enkelt har sin egen implementering og derfor sin egen støttede versjon. Dette er spesielt tilfelle når driveren ikke er utviklet med Gallium3D (hvor driverne deler kode som har en tendens til å homogenisere den støttede versjonen).

OpenGL

Mesa 10.x støtter offisielt OpenGL 3.3 med Intel , AMD og Nvidia grafikkmaskinvare . Mesa 11.0 støtter OpenGL 4.1 i noen drivere. Det er en tabell på den offisielle Mesa-siden med versjonen som støttes av hver av kontrollerene.

Husk at på grunn av Mesas modulære arkitektur er det utvidelser til nyere versjoner av OpenGL som også er implementert, men siden ikke alle er inkludert i fullversjonen, anses ikke disse versjonene som støttet ennå.

Vulcan

Khronos Group kunngjorde Vulkan API i mars 2015, og Vulkan 1.0 ble offisielt utgitt 16. februar 2016.

Vulkan bryter OpenGL -støtten og forlater konseptet med en gigantisk monolitisk statsmaskin helt. Gallium3D - utviklerne sier at Vulkan er Gallium3D 2.0 (Gallium3D skiller OpenGL-tilstandsmaskinimplementeringen fra hver grafikkdrivers egen kode).

Samtidig som Gallium3D mottar som input TGSI (Tungsten Graphics Shader Infrastructure), mottar Vulkan SPIR-V (Standard Portable Intermediate Representation - Vulkan), begge mellomliggende gjengivelsesspråk for shaders .

Intel slapp implementeringen av Vulkan-driveren samme dag som spesifikasjonen ble offisielt utgitt, men det var ikke før i april samme år at den ble skjøvet inn i hovedutviklingsgrenen til Mesa, så den første stabile utgivelsen som støttet den var Mesa 12.0 i juni 2016. Siden utviklingen av Intel i965-driveren ikke ble utviklet etter spesifikasjonene til Gallium3D-arkitekturen, gir det enda mindre mening å følge dem når det gjelder Vulkan-driveren.

AMD ga ut sin proprietære driver i mars 2016. I desember 2017 ble koden for denne driveren utgitt under paraplyen til GPUOpen-initiativet, under navnet AMDVLK. Parallelt og uoffisielt utvikles RADV-driveren, utviklet av David Airlie (vedlikeholder av DRM -delsystemet og Red Hat -utvikler ) og Bas Nieuwenhuizen, for å støtte Vulkan , som ble inkludert i Mesa i oktober 2016 og publisert i versjonsstabil pr. Mesa 13.0. Foreløpig er ytelsen til begge driverne lik i de fleste benchmarks, men fellesskapet tilbyr flertallstøtte til RADV for bruk av mer standardiserte komponenter (AMDVLK, i motsetning til RADV, er ikke inkludert i Mesa, har sin egen infrastruktur og bruker en versjon modifisert fra LLVM ) .

På sin side ga Nvidia ut sin proprietære driver med Vulkan-støtte på lanseringsdagen, det samme gjorde Imagination Technologies (PowerVR), Qualcomm (Adreno) og ARM (Mali) for Android og andre operativsystemer. Men når eller om disse sjåførene noen gang blir fri er usikkert.

Gallium3D

Gallium3D er et rammeverk som har som mål å lette utviklingen av grafikkkontrollere. De mest representative grafikkdriverne som er utviklet med dette rammeverket er AMD Radeon R300g (R300, R400 og R500), R600g (R600, R700, HD 5000 og HD 6000) og RadeonSI (AMD Radeon HD 7000-serien / GCN og senere) , Nouveau NV50 (GeForce 8, GeForce 9, GeForce 100, GeForce 200 og GeForce 300) og NVC0 (GeForce 400 og GeForce 500)-drivere, og noen få andre som Freedreno.

Sammenlignet med den tradisjonelle måten å utvikle grafikkdrivere på, har Gallium3D følgende fordeler:

Gallium3D består av et sett med grensesnitt og en samling av biblioteker beregnet på å lette programmeringen av grafikkdrivere, og den deler driveren i 3 deler:

Gallium3D-utviklingen startet i 2008 hos Tungsten Graphics og implementeringen har vært tilgjengelig som gratis programvare som en del av Mesa 3D siden 2009.

Referanser

  1. mesa3d.org - Utviklere
  2. «Mesa Languages Page» (på engelsk) . OpenHub . Hentet 15. desember 2015 . 
  3. OpenGL ES-konforme produkter på khronos.org

Eksterne lenker