Bring Vulkan til Apples Platforms: Khronos Group annoncerer Open Source MoltenVK 1.0 & SDKs

Et af de uheldige resultater af Apples ønske om at opbygge deres egne økosystemer fra bund til bund er, at virksomheden gradvist har trukket sig væk fra at støtte fælles API'er, især i grafik. Mens tidlig i dette årti støttede Apple lykkeligt OpenGL ES op til 3.0, det er så langt som firmaet nogensinde gik, hoppede over fremtidige OpenGL ES versioner og OpenGLs efterfølger, Vulkan. I stedet har Apple påberåbt sig deres eget lignende lavniveau API, Metal. Som følge heraf er den udbredte evne til at bruge en enkelt grafik API og målrettet alt fra pc'er til Mac til smartphones gradvist gået tabt, da gammel software og API'er bliver forældede.

Mistet, måske, men som det viser sig, ikke glemt. I dag annoncerer Khronos-koncernen, industrikonsortiet bag OpenGL og Vulkan, en bred vifte af open source-værktøjer, SDK'er og runtime-biblioteksudgivelser som led i deres igangværende Vulkan Portability Initiative. Målet? At bringe Vulkan applikationer til Apple platforme ved hjælp af Metal.

I samarbejde med Valve, LunarG og The Brenwill Workshop omfatter denne gratis open source-samling den fulde 1.0-udgivelse fra den tidligere kommercielle MoltenVK, et bibliotek til oversættelse af Vulkan API-opkald til Apples Metal 1 og 2 opkald, samt LunarGs nye Vulkan SDK til macOS. Finansiering af omkostningerne ved open-sourcing, Valve har udnyttet disse værktøjer på deres applikationer, og noterer sig præstationsgevinster over native OpenGL-drivere med Vulkan DOTA 2 på macOS som et produktionsbelastningseksempel.

Samlet udgør dette det næste skridt i Khronos 'Vulkan Portability Initiative, som først blev annonceret på GDC 2017 som deres "3D Portability Initiative," og senere raffineret som "Vulkan Portability Initiative" sidste sommer. På baggrund af industriens efterspørgsel søger Khronos en platformløs API-portabilitetsløsning, hvor En passende delmængde af Vulkan kan fungere som en 'Meta-API'-esque lag for at kortlægge til DirectX 12 og Metal; den hellige gral er, at udviklere kan udarbejde en enkelt Vulkan-bærbar applikation eller motor, der kan sømløst distribueres på tværs af Vulkan-, DX12- og Metal-understøttende platforme.

For den nye generation af API'er med lavt overliggende grafik, gør de tilsvarende API-filosofier denne form for kortlægning meget gennemførlig, især da Vulkan blev designet med cross-vendor og cross-platform-alsidighed i tankerne. Desuden er både DX12 og glNext / Vulkan stærkt påvirket af AMD's Mantle, som var doneret engros til Khronos for at danne moderne fundament af Vulkan 1.0. Den hindring Khronos håndterer i dag er Apples Metal API, især da Apple fortsætter med Metal udvikling frem for at vedtage Vulkan og OpenGL ES 3.1 +.

I udførelsen af ​​dette beskriver Khronos flere vigtige dele: LunarGs Vulkan MacOS SDK og The Brenwill Workshop's MoltenVK macOS / iOS runtime, såvel som open-source 'SPIRV-Cross' kryds-compiler som MoltenVK udnytter. Den åbne kilde LunarG Vulkan SDK giver ikke udviklere mulighed for at opbygge, køre og fejle Vulkan-applikationer på macOS-platforme, herunder et antal loader og valideringslag til API-kode.

Kort sagt, SPIR-V er Khronos eksisterende fælles mellemliggende repræsentations skygger sprog, som kryds-compiler-værktøjet igen kan omdanne til en platforms native format, såsom Metal Shading Language. Og mens MoltenVK 0.19 har eksisteret som et betalt produkt, bemærkede Khronos at gebyrer og royalties skabte en adgangsbarriere. På den front har Valve været meget ivrig efter at presse Vulkan på macOS, og med deres økonomiske støtte har MoltenVK været åbent som den nuværende fulde 1.0-udgivelse under Apache 2.0-licensen, hvor den er fri til brug uden udviklingsgebyrer eller royalties.

Khronos relayed at ventilen har til hensigt at MoltenVK skal være et produktionsklar værktøj og havde Valves Vulkan DOTA 2 på macOS Resultaterne er klar, citerer op til 50% hurtigere framerater sammenlignet med native OpenGL. Under alle omstændigheder bemærkede Khronos, at værktøjerne og SDK'erne ikke var specifikt optimeret til spilapplikationer og anvendelige til browsere og andre applikationer. Og mens der teknisk set er et mellemliggende lag, erklærede Khronos, at der er ubetydelige mængder overhead, især i lyset af, hvordan Vulkan API-opkald er direkte kortlagt til andre lavtliggende API'er.

Når man ser på Metal og DX12, er næsten alle Vulkans funktioner understøttet. De samlede ikke-understøttede operationer tilføjer op til fem generelle elementer, svarende til omkring 20-funktionsopkald. På denne måde kan Vulkan bruges som en bærbar delmængde, hvor forskellige hardware og OS 'kan understøtte nogle af disse undtagelser. For de forskellige generationer af Apple-platforme kan Metal 2-efterfølgeren muliggøre endnu flere af disse funktioner; Apples forhold til Vulkan er ikke ændret, men de nye Vulkan Portabilitetsværktøjer er således, at der ikke er brug for støtte fra Apple. I løbet af de næste par måneder planlægger Khronos at offentliggøre de afsluttende Vulkan-bærbare delmandsdefinitioner, der arbejder med AMD, NVIDIA, Unity, Mozilla og andre.

På samme måde planlægger Khronos og deres samarbejdspartnere også forsigtigt inden andet halvår at frigive skræddersyede open source-konformitets testlag, hvor kun de funktioner, der understøttes af en platforms givne Vulkan-bærbare undergruppe, testes. Desuden søger Khronos at frigive simuleringslag for at markere de specifikke definerede funktioner, der ikke er til stede i et givet målsystem, sammen med forskellige andre forbedrede SDK-lag og værktøjer. Generelt vil eventuelle andre SDK-lag, der i øjeblikket er tilgængelige under Windows, sandsynligvis blive overført til macOS på et eller andet tidspunkt.

Fremadrettet forventer Khronos at fortsætte med at frigive nye portabilitetsværktøjer, men identificerer desuden den aktuelle diskussion om WebGLs fremtidige og næste generations API-muligheder som en avenue. Khronos har også til hensigt at fortsætte med at udvide platformsstøtten og notere udviklingen af Rust-baserede gfx-r'er til Vulkan-portabilitet, som forbliver i aktiv udvikling med støtte fra Mozilla og andre.

Den frie og åbne kilde MoltenVK 1.0 findes på Khronos MoltenVK GitHub side, mens den gratis MacOS SDK er tilgængelig igennem LunarXchange. Andre værktøjer kan findes gennem Khronos ' Vulkan Portabilitets ressource side.

Oprindelig artikel

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.