Khronos brengt Vulkan 1.3-api uit, introduceert 'profielen' voor ontwikkelaars

Het Khronos Group-consortium heeft versie 1.3 van de grafische Vulkan-api uitgebracht. Daarmee introduceert het bedrijf onder meer Vulkan-'profielen', waarin de kernspecificatie van Vulkan en relevante extensies voor specifieke platformen verwerkt kunnen worden.

Als onderdeel van versie 1.3 voegt Khronos in totaal 23 verschillende uitbreidingen toe aan de 'core'-specificatie van de Vulkan-api. Daaronder vallen onder meer ondersteuning voor dynamic rendering, dynamic states en een verbeterde synchronisatie-api. Die functies waren al beschikbaar als extensies, maar zijn in Vulkan 1.3 onderdeel van de specificatie en daarmee niet langer optioneel. Daarnaast bevat Vulkan 1.3 niet langer optionele functies. Bij voorgaande releases was dat wel het geval. Op deze manier hoopt Khronos 'fragmentatie' tegen te gaan.

Daarnaast introduceert het consortium Vulkan Profiles. Dat moet het makkelijker om sets met bepaalde extensies te creëren voor specifieke apparaten en platformen. Ieder profiel bevat de core-versie van de Vulkan-api, samen met een set extensies. Momenteel dienen ontwikkelaars zelf extensies te selecteren bij het ontwikkelen van een programma, waarbij niet altijd even duidelijk is welke uitbreidingen werken op welk platform.

Profielen moeten het ontwikkelen van applicaties en games op basis van de Vulkan-api op dat gebied versimpelen; het zijn een soort json-lijsten met extensies en functies die werken op een platform. Zo komt Google als eerste met een profiel: Android Baseline 2021. Daarin zit een functieset verwerkt die werkt op 'een overgroot deel' van de actieve Android-apparaten, inclusief apparaten die officieel niet meer ondersteund worden of niet regelmatig driver-updates krijgen. Ontwikkelaars kunnen dat profiel gebruiken om Vulkan-apps te maken die ondersteund worden op veel Android-apparaten.

Vulkan 1.3 moet wederom werken op apparaten die OpenGL ES 3.1 ondersteunen. De api is daarmee cross-platform en werkt op een groot aantal apparaten, waaronder pc's, smartphones en tablets, consoles, embedded platformen en meer. Een sdk voor ontwikkelaars op basis van Vulkan 1.3 komt medio februari beschikbaar.

Door Daan van Monsjou

Redacteur

26-01-2022 • 20:59

18 Linkedin Whatsapp

Reacties (18)

18
18
17
1
0
0
Wijzig sortering
Laten we heel eerlijk zijn, hoeveel developers praten er nog direct met de api? Dit is een api gemaakt voor de guys van Unreal engine. De rest van ons werkt daar wel mee. De tijden dat je als game developer nog voordeel kon halen door direct op de api te gaan programmeren omdat je dan dingen kon die andere game makers niet konden zijn allang voorbij.
Dat gaan wij doen o.a. maar dan voor een astrofotografisch programma waarbij we berekeningen op de gpu willen draaien (en dat programma is cross platform). Niet alles is game related denk ik. :)

[Reactie gewijzigd door vgroenewold op 26 januari 2022 23:03]

Is daar OpenCL niet voor bedoeld? In het verleden wel eens gespeeld met C++ AMP maar helaas heeft Microsoft dat hoofdstuk gesloten.
kan vaak beide, elk met pros en cons (zijn aardig wat artikelen over)
Gaia Sky toevallig?
nvm.

[Reactie gewijzigd door Mushroomician op 26 januari 2022 23:24]

Je zou je verbazen hoeveel ontwikkelaars er nog een eigen engine bouwen. Of dat verstandig is is weer een andere vraag :+
Er zijn genoeg redenen waarom het niet per definitie onverstandig is: je eigen stack volledig begrijpen en kunnen fixen is er een. De geavanceerde mogelijkheden helemaal niet nodig hebben ook. Of juist heel nieuwe dingen willen doen die niet (goed) in de huidige engines passen.

Natuurlijk moet je geen kloon van Unity/Unreal willen maken maar er zijn zat games die helemaal niet zo'n zware engine nodig hebben. In dat geval kan je een enorm stuk ballast (om nog maar te zwijgen van de licentiekosten) laten vallen.
Uiteraard zijn er redenen, maar ik zie vaak genoeg mensen die gewoon niet weten waar ze mee bezig zijn en dat is zonde. Het lijkt bij velen een soort ideaalbeeld te zijn dat je je eigen engine moet bouwen, ook al doe je er dan veel langer over.

En ook bij kleine games is Unity toch wel echt heel erg handig. Ik was erg verbaast toen wij van een framework overgingen naar Unity over hoeveel sneller alles ging, en hoeveel makkelijker dingen nog waren om achteraf aan te passen. Je kon zoveel met de editor doen dat je maar de helft van de code hoefte te schrijven.
Dat het een "zware engine" is heb je meer voordeel van dan nadeel.

[Reactie gewijzigd door Wolfos op 27 januari 2022 11:56]

Ik heb geen idee waar dat ideaalbeeld dan vandaan moet komen. Vrijwel iedereen geeft het advies om geen wielen opnieuw uit te vinden en code te hergebruiken. Misschien stomweg eigenwijsheid ;)
Wat wel nuttig kan zijn is de problemen die een engine oplost een keer zelf (deels) opgelost te hebben. Maar dan gaat het er niet om productiecode te bouwen, maar meer om waardering te krijgen voor de oplossing van een ander.
dat ligt dan eerder aan het niet hebben van handige tooling dan aan het framework. daarnaast je zou ook Unity als middleware kunnen gebruiken voor je eigen engine/framework... hoef je iig geen WYSIWYG editor zelf te klussen wat dat is teringveel werk en toch je eigen (ideale) engine gebruiken. Zoiets heb ik als hobby work-in-progress betreft shaders en vertex data naar m'n eigen engine gedaan.. kan in Unity gewoon met Shader Graph of in CG aan shaders klooien en alle 3D formats erin laden wat Unity wil slikken (fbx/obj/whateffs) en dat gewoon voor mijn eigen engine dan in een binary blob exporteren plus wat extra json voor zaken zoals transforms en zelfs animatie/keyframes (en de shaders worden naar glsl geexporteerd)

[Reactie gewijzigd door maali op 27 januari 2022 15:32]

Ik zie anders in de emulatie scene dat er steeds meer gebruik gemaakt wordt van vulkan en dit ook daadwerkelijk verschil maakt in performance en werking van emulatoren.
Ok, maar hardware emulatie is natuurlijk ook een heel ander type gebruik. De games die draaien op de ge-emuleerde hardware hebben hun eigen engines dus de uitdaging zit meer in het zo efficient mogelijk doorsturen van de instructies. Een 'generieke' game engine biedt daar geen meerwaarde.
Inderdaad niet zo vaak meer als vroeger, maar grotere developers hebben vaak genoeg eigen engines. Heb zelf nog een Vulkanimplentatie geschreven voor een van de renderengines in ons bedrijf een aantal jaar geleden om Stadia te kunnen steunen.
Genoeg programmeurs die een "engine" (misschien een te groot woord) als onderdeel van een portfolio maken.

En ook mensen, zoals ik, die het gewoon leuk vinden om met dit soort API's aan de gang te gaan, for the fun of it. Ja het is gecompliceerd, maar het voelt zo goed als het allemaal bij elkaar komt en werkt :D
Vergeet de Proton compatibility layer voor Linux niet, voornamelijk gebruikt door Valve's Steam op Linux.
De meeste Direct3D games werken op Linux dankzij DXVK en VKD3D-Proton.

De Steam Deck die volgende maand uitkomt ondersteunt dankzij Vulkan ook veel Direct3D (Windows) games terwijl het stiekem Linux draait.
Er zijn toch wel meer engines dan alleen Unreal? En videorenderers maken ook gebruik van dit soort api's. Dus als ik eerlijk moet zijn zou ik zeggen dat jij je persoonlijke situatie ongefundeerd generaliseerd.
Ik weet dat er in de baggerwereld veel direct met de API wordt gewerkt, net zo goed als bij andere takken van wetenschappelijk onderzoek. Dus het is zeker niet lang allemaal gaming.
Het doet me wel plezier om de Star Trek referenties bij die groep te zien. 8-)
'Khronos', 'Vulkan'.
Kan natuurlijk toeval zijn, beide woorden hebben ook een eigen betekenis, maar ik vind het wel iets te toevallig.

[Reactie gewijzigd door PrimusIP op 27 januari 2022 09:31]

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee