ID.nl logo
Huis

Vulkan en DirectX 12: Alles over grafische api's

Sinds de nieuwe grafische api’s enige tijd geleden zijn uitgebracht, zijn er veel games verschenen die hiervan gebruikmaken. Maken ze hun beloftes waar? In dit artikel alles over grafische api’s als Vulkan en DirectX 12, plus de belangrijkste nieuwe mogelijkheden ervan.

Na een lange periode van relatieve stilstand, werden in 2015 en 2016 twee nieuwe sterk vernieuwde grafische api’s uitgebracht: DirectX 12 en vervolgens Vulkan. Deze zouden de efficiëntie sterk verbeteren en de overhead verlagen.

Een ‘application programming interface’ (api) neemt over het algemeen de communicatie tussen twee software-onderdelen voor zijn rekening. Hier gaat het specifiek over grafische api’s, die de laag tussen de software en de drivers vormen. Zonder een api zouden ontwikkelaars de drivers direct moeten aansturen, wat gezien het grote aantal drivers en videokaarten een nachtmerrie zou zijn. In plaats daarvan ‘vertaalt’ de api algemene instructies naar wat de drivers en hardware kunnen uitvoeren.

Api’s zijn net zoals programmeertalen ruwweg te onderscheiden in twee groepen: ‘low-level’ en ‘high-level’. Geen van de twee is vanzelfsprekend superieur, want beide hebben hun voordelen en nadelen. Hoe hoger de api, des te meer ‘abstractie’ wordt toegepast. Dit houdt in dat de functies van de api niet direct passen op de functionaliteit van de onderliggende hardware. Het resultaat hiervan is dat de api meer van het werk doet, en het eenvoudiger is voor de ontwikkelaar om code te schrijven. Aan de andere kant leidt het wel tot meer overhead.

DirectX 12

In 2014 kondigde Microsoft plotseling een nieuwe api aan, die het jaar daarop uitkwam als DirectX 12. In navolging van destijds Mantle (deen api van AMD) kon deze low-level api beter omgaan met multicore-processors en was de overhead verminderd. Door deze verbeteringen is het aantal draw calls dat de processor kan sturen ruim tien keer zoveel. Dit betekent niet automatisch betere prestaties, maar hierdoor wordt het negatieve effect van een relatief langzame processor wel kleiner.

Naast de betere efficiëntie biedt DirectX 12 natuurlijk ook veel nieuwe mogelijkheden. Deze moeten wel ondersteund worden door de videokaart, en dit wordt uitgedrukt in twee verschillende termen: ‘feature levels’ en ‘resource binding tiers’.

Feature level geeft aan welk deel van DirectX 12 wordt ondersteund, waarbij 12_1 betekent dat de kaart volledige ondersteuning biedt. Let op: dit is niet hetzelfde als het versienummer, en kan onderscheiden worden door de underscore die aanwezig is in de feature level. Sommige oudere kaarten hebben wat beperkte DirectX 12 ondersteuning, bijvoorbeeld feature level 11_1. Deze kaarten kunnen wel DirectX 12 games uitvoeren, maar ondersteunen niet alle mogelijkheden.

Resource binding tiers gaan over beperkingen op het aantal verschillende taken dat de gpu (theoretisch) tegelijkertijd kan uitvoeren. Het maximum is drie, wat betekent dat er praktisch geen beperkingen zijn op dat vlak.

©PXimport

Een van de interessantste features van DirectX 12 is Explicit Multi-Adapter, ook wel Explicit Multi-GPU genoemd. Dit stelt de eindgebruiker in staat om twee willekeurige videokaarten te combineren. Hiermee is het zelfs mogelijk om de rekenkracht van de geïntegreerde gpu van de processor te benutten!

Dit wordt mogelijk gemaakt doordat deze feature anders werkt dan traditionele multi-gpu-toepassingen. Bij SLI en CrossFire is elke kaart verantwoordelijk voor een ander frame. Dit betekent dat dezelfde kaart gebruikt moet worden, want verschillen in snelheid zouden leiden tot het vervelende fenomeen van ‘microstuttering’. Explicit Multi-Adapter werkt daarentegen met ‘split frame rendering’, waarbij elke kaart verantwoordelijk is voor een ander deel van hetzelfde frame. Dit voorkomt microstuttering, maar betekent wel dat game-ontwikkelaars meer werk moeten verrichten om het goed te laten werken. Bij SLI en CrossFire nemen drivers het grootste deel van dit werk voor hun rekening (wat impliciete aansturing wordt genoemd).

Helaas zijn er maar weinig enthousiastelingen die meerdere videokaarten hebben. Het is daarom vaak niet de moeite waard voor ontwikkelaars om hier moeite voor te doen. Als gevolg hiervan zijn er niet veel voorbeelden van goede ondersteuning voor Explicit Multi-Adapter.

Vulkan

Vulkan werd begin 2016 op de markt gebracht door het consortium Khronos, dat sinds 2006 verantwoordelijk is geweest voor de ontwikkeling van OpenGL. Officieel bestempelt Khronos Vulkan niet als de opvolger van OpenGL, maar ondanks de nieuwe mythologische naam is dit in de praktijk wel zo. De veranderingen zijn op veel vlakken vergelijkbaar met DirectX 12. Het is een ‘low-level’ api dat ernaar streeft multithreading beter te ondersteunen en overhead te minimaliseren. Daarnaast biedt Vulkan nog twee belangrijke voordelen ten opzichte van DirectX 12: Vulkan is open source en platformonafhankelijk, waar DirectX 12 alleen wordt ondersteund door Windows 10 en Xbox.

Het wordt hiermee veel eenvoudiger om games te ‘porten’ van het ene platform naar het andere. Desondanks is Vulkan in het begin vooral gebruikt om DirectX games geschikt te maken voor bijvoorbeeld Linux. Hier begint wel langzaam maar zeker verandering in te komen: enkele maanden geleden kondigde Khronos trots aan dat er meer aangekondigde games waren voor Vulkan dan voor DirectX 12.

In maart van dit jaar is Vulkan 1.1 uitgebracht, waarin de api is verbeterd en er nieuwe features zijn toegevoegd, waaronder Explicit Multi-GPU. In een game die hier ondersteuning voor biedt, zal het daarom ook met Vulkan mogelijk zijn om twee totaal verschillende gpu’s te gebruiken.

©PXimport

Het meest opvallende verschil tussen de twee api’s is het ondersteunde platform: DirectX 12 werkt alleen op Windows 10 en Xbox, terwijl Vulkan in theorie op elk systeem zou moeten werken. Voor ontwikkelaars zijn er nog andere verschillen: Microsoft levert bijvoorbeeld veel meer ondersteuning en software dan Khronos.

Het is moeilijk om algemene uitspraken te doen over de effecten die de api’s hebben op de prestaties, omdat heel veel afhangt van het specifieke spel en de kwaliteit van de implementatie. Niettemin is duidelijk dat, om welke reden dan ook, AMD over het algemeen meer profiteert van het gebruik van DirectX 12 dan Nvidia (in vergelijking met DirectX 11). Ook boeken nieuwere videokaarten meer winst dan oudere modellen, die soms achteruitgang laten zien. Dit geldt ook voor Vulkan, vergeleken met OpenGL.

Het is vooralsnog niet mogelijk om een inschatting te maken van hoe de prestaties verschillen tussen deze twee api’s, omdat er heel weinig games zijn die zowel DirectX 12 als Vulkan ondersteunen in Windows. Zelfs sommige games die officieel beide api’s ondersteunen, doen dat op verschillende besturingssystemen – DirectX wordt gebruikt voor Windows, en Vulkan voor Linux en MacOS. Omdat de prestaties ook worden beïnvloed door het besturingssysteem, is het dan onmogelijk om het effect van de api’s te isoleren.

De toekomst

Veel ontwikkelaars blijven voorlopig werken met de oudere api’s. Dit komt doordat er een aantal drempels is voor daadwerkelijk gebruik van DirectX 12 en Vulkan. Allereerst is er vanwege de verregaande veranderingen en vernieuwingen beperkte documentatie, kennis en ervaring. Dit geldt voor beide api’s, maar met name voor Vulkan, omdat dit niet alleen een nieuwe versie is, maar ook een compleet nieuwe api voor ontwikkelaars die meestal alleen bekend zijn met DirectX.

Een ander probleem is dat oudere videokaarten niet of minder goed werken met de nieuwe api’s. Ontwikkelaars staan daarom voor de keuze om zowel een nieuwe als een oude api te ondersteunen (wat veel extra tijd kost), of om bij een oude api te blijven. Naarmate het aandeel van oudere videokaarten krimpt, zal dit steeds minder een probleem zijn.

Daarbij komt dat het voor daadwerkelijke prestatieverbetering niet voldoende is om bestaande code te ‘porten’ naar een nieuwe api. Goede optimalisatie en goed gebruik van de mogelijkheden is cruciaal. Dit kost ook weer extra tijd, en bij veel spellen is optimalisatie bij tijdgebrek het kind van de rekening.

Zijn DirectX 12 en Vulkan dan echt revolutionair? In technische zin wel. Hun ‘low-level’ aard is een breuk met OpenGL en DirectX zoals deze vanaf het begin hebben bestaan. Er zijn bijzonder interessante mogelijkheden zoals Explicit Multi-Adapter. In de praktijk zijn de gevolgen nog niet wereldschokkend geweest. Veel games blijven nog bij de oude api’s, en grote prestatieverbeteringen zijn zeldzaam.

Dit neemt niet weg dat de nieuwe api’s veel potentieel hebben. Met enig optimisme kunnen we wel zeggen dat de nieuwe features ontwikkelaars in staat stellen om op termijn de efficiëntie van games sterk te verbeteren, naarmate bekendheid met de api’s groeit.

Tekst: Farzin Parham

▼ Volgende artikel
Waar voor je geld: 5 goede smartphones voor minder dan 200 euro
© ID.nl
Huis

Waar voor je geld: 5 goede smartphones voor minder dan 200 euro

Bij ID.nl zijn we gek op producten met een goede prijs-kwaliteitverhouding. Daarom speurt de redactie een aantal keer per week naar zulke deals. Nu de zomervakantie weer bijna ten einde is, gaan de kinderen weer naar school. Grote kans dat ze gaan vragen om een smartphone als ze die (nog) niet hebben. Wij vonden vijf goede smartphones voor onder de 200 euro.

Voor een goede smartphone betaal je tegenwoordig allang de hoofdprijs niet meer en heb je voldoende keuze uit het lagere, goedkopere segment. Vaak lever je wel iets in wat betreft opslagruimte, processorsnelheid of camera, maar daarentegen betaal je ook honderden euro's minder voor zo'n telefoon ten opzichte van de duurdere modellen. Wij vonden vijf goede toestellen voor niet meer dan 200 euro.

Xiaomi  Redmi  14C

De Xiaomi  Redmi  14C heeft een helder 6,88‑inch scherm, ideaal om video’s te kijken en te multitasken De telefoon wordt aangedreven door een octa‑core processor en met 8 GB RAM. De batterij van 5.160  mAh gaat moeiteloos de dag rond, en heeft een snellaadfunctie. Met een 50 MP hoofdcamera maak je scherpe foto’s in daglicht én nachtmodus. Dankzij de aluminium behuizing voelt de telefoon premium en stevig aan, en de vingerafdrukscanner én gezichtsherkenning maken ontgrendelen intuïtief en snel. Dit toestel blinkt uit in alledaags gebruik, zonder franjes, maar met veel waar voor je geld.

HMD Pulse Pro

De HMD Pulse Pro heeft verrassend veel te bieden. Met een 6,56-inch HD+ scherm en een soepele 90 Hz verversingssnelheid is het scherm vlot. Wat deze telefoon echt bijzonder maakt, is de dubbele 50 MP camera – zowel voor- als achteraan – waarmee je haarscherpe selfies en foto’s maakt, zelfs bij weinig licht. Binnenin vind je 6 GB RAM en 128 GB opslag, genoeg voor al je apps, foto’s en bestanden, en uitbreidbaar met een microSD-kaart. De krachtige 5.000 mAh-batterij houdt het makkelijk een dag vol. Leuk om te weten: dit toestel is ontworpen om makkelijk zelf te repareren – onderdelen en instructies zijn beschikbaar, wat ‘m niet alleen duurzaam, maar ook vriendelijk voor je portemonnee maakt.

Samsung Galaxy A16 5G

Deze Samsung ziet er luxer en duurder uit dan hij is, dankzij een helder AMOLED‑scherm en een strak en slim ontwerp. Wat je misschien niet verwacht: Samsung garandeert tot wel zes jaar software‑updates, waardoor hij toekomstbestendig is. Prestaties blijven wel op instapniveau, maar voor dagelijks gebruik zoals WhatsApp, web en video is het meer dan voldoende. De batterij houdt het prima vol. Voor wie betrouwbaarheid, goed merk en lange updates belangrijk vindt, is deze telefoon het overwegen waard.

Oppo A5 Pro 4G

De OPPO A5 Pro 4G is een budgettelefoon met een 6,67‑inch 90 Hz-scherm, 8 GB RAM en 256 GB opslagcapaciteit. De 5.800 mAh batterij gaat makkelijk een volle dag mee en ondersteunt snel laden. Wat deze telefoon echt onderscheidt is zijn robuuste bouw: waterdicht (IP68/IP69), valbestendig volgens militaire standaarden, en voorzien van Gorilla Glass 7i. Makkelijk stuk te krijgen is deze telefoon dus niet. Het geluid komt stevig door dankzij stereo speakers met Dolby Atmos. Al met al krijg je hier een stevig toestel met verrassend veel ruimte en functies voor een zachte prijs. Wel iets om rekening mee te houden: het toestel is alleen geschikt voor 4G. Dat signaal blijft echter nog een aantal jaar actief, dus je hoeft niet bang te zijn dat je te snel achterloopt. Je hebt alleen een wat lagere downloadsnelheid dan de meeste 5G-telefoons.

Motorola Moto G55  5G

Deze smartphone is stevig, heeft een gladde afwerking en is verkrijgbaar in een zachte tint grijs. Het scherm van 6,49 inch heeft 120 Hz beeldfrequentie en maakt video's streamen levendig dankzij de FHD+ resolutie. De batterij van 5.000 mAh houdt moeiteloos een hele dag stand, ook bij intensief gebruik. Voor wie van geluid houdt: dubbele speakers met Dolby Atmos creëren een ruimtelijk effect. De 50 MP-hoofdcamera levert heldere plaatjes in daglicht, en dankzij de ultrawide-lens kun je breder kaderen voor groepsfoto’s of landschappen. De 8 GB RAM en 256 GB opslag (uit te breiden met een extra microSD-kaartje) maken multitasken soepel en opslag ruimte genoeg.

▼ Volgende artikel
Zo verandert Samsungs Micro RGB hoe je straks tv kijkt
© Samsung
Huis

Zo verandert Samsungs Micro RGB hoe je straks tv kijkt

Samsung heeft de Micro RGB gepresenteerd, een 115 inch-televisie met een achtergrondverlichting van afzonderlijk aangestuurde rode, groene en blauwe leds van minder dan 100 micrometer. Volgens Samsung zet Micro RGB een nieuwe standaard voor kleurnauwkeurigheid, contrast en beeldervaring in het ultra-premium tv-segment.

Waar conventionele tv's gebruikmaken van grotere leds of mini-leds in witte of blauwe varianten, zet Micro RGB elke afzonderlijke rode, groene en blauwe led precies daar waar die nodig is. Dat maakt een veel fijnere aansturing van kleur en contrast mogelijk. Samsung claimt hiermee de volledige BT.2020-kleurruimte te halen, een standaard die tot nu toe vooral in professionele toepassingen werd gehaald. Het beeld zou daardoor natuurgetrouwer ogen, vooral bij HDR-weergave.

De Micro RGB wordt aangestuurd door een eigen AI-engine die elk beeldframe analyseert en automatisch kleuren, contrast en geluid optimaliseert. Bij matte of doffe beelden kan de tv kleuraccenten versterken zonder onnatuurlijk te ogen. Een Glare Free-laag moet ervoor zorgen dat ook in fel verlichte woonkamers het beeld goed zichtbaar blijft.

Voor consumenten kan deze techniek de opmaat zijn naar een nieuwe generatie huiskamertv's waarbij achtergrondverlichting met micrometer-RGB-leds zorgt voor kleurnauwkeurigheid die voorheen niet haalbaar was. In combinatie met lcd-panelen kan dit leiden tot betere prestaties in hoge helderheidsniveaus, waar zowel traditionele lcd- als oled-tv's soms tekortschieten.
Naast beeldkwaliteit richt Samsung zich ook op gebruiksgemak. De Micro RGB ondersteunt spraakbediening via Bixby, bevat Vision AI-functies die beeld en geluid aanpassen aan de content, en draait op Tizen OS met een gegarandeerde 7 jaar aan software-updates. Beveiliging van persoonlijke gegevens verloopt via Samsung Knox.

De Samsung Micro RGB verschijnt in Nederland op 13 oktober voor een adviesprijs vanaf 29.999 euro. Er komen later meerdere formaten beschikbaar.

Het verschil tussen Micro RGB en pure microled

Hoewel de naam anders kan doen vermoeden, is Micro RGB niet hetzelfde als een pure microled-tv. Bij microled geeft elke pixel zelf licht, vergelijkbaar met oled maar met hogere helderheid en zonder inbrandrisico. Micro RGB is daarentegen een lcd-tv, waarbij de achtergrondverlichting is opgebouwd uit extreem kleine rode, groene en blauwe leds van minder dan 100 micrometer. Deze leds schijnen door een lcd-paneel heen en worden per kleur afzonderlijk aangestuurd. Dit levert een veel nauwkeurigere kleurweergave op dan gebruikelijk is bij witte of blauwe leds, maar de beeldopbouw blijft die van lcd.

©Samsung