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 koel-vriescombinaties met een zuinig energielabel
© africa-studio.com (Olga Yastremska and Leonid Yastremskiy)
Huis

Waar voor je geld: 5 koel-vriescombinaties met een zuinig energielabel

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we daarom binnen een bepaald thema naar zulke deals. Een koel-vriescombinatie is de ideale koelkast voor wie veel ruimte nodig heeft voor het bewaren van vers eten en drinken en voor het langer bewaren van bevroren producten. Wij zochten naar vijf energiezuinige modellen met een grote capaciteit.

De moderne koel-vriescombinatie met vriezer onder bieden een praktische indeling: je dagelijkse producten op ooghoogte in het koelgedeelte bovenin, terwijl de vriezer onderin zit met handige lades. Helemaal ideaal zijn de 'no-frost' varianten – eindelijk verlost van het vervelende ontdooien . Sommige modellen hebben speciale zogeheten BioFresh-zones waardoor je groenten en fruit langer vers blijven .

ETNA KCV520NZWA 

De ETNA KCV520NZWA is een energiezuinige koel-vriescombinatie met energielabel A en een jaarlijks energieverbruik van slechts 109 kWh. De netto inhoud bedraagt 336 liter, verdeeld over 238 liter koelruimte en 98 liter vriesruimte.

Deze vrijstaande koelkast heeft een strak zwart design en is uitgerust met NoFrost, waardoor handmatig ontdooien overbodig is. De zogeheten MultiFlow 360°-ventilatietechniek zorgt voor een gelijkmatige koeling, terwijl de Convert FreshZone-lade in te stellen is voor het bewaren van vlees, vis, groenten of fruit. Daarnaast heeft deze koelkast functies als superkoelen en supervriezen voor het snel op de juiste temperatuur brengen van nieuwe producten.

Opgegeven jaarlijks energieverbruik: 109 kWh
Geluidsniveau: 35 dB
Inhoud koelgedeelte: 238 liter
Inhoud vriesgedeelte: 98 liter

Samsung RB38C7B5AB1-EF 

Deze stijlvolle en energiezuinige koel-vriescombinatie uit de Bespoke-serie, ontworpen voor moderne huishoudens die waarde hechten aan zowel functionaliteit als design. Met een royale netto inhoud van 387 liter biedt dit apparaat voldoende ruimte voor al je etenswaren.

Dankzij de SpaceMax-technologie heeft de koelkast dunnere wanden, waardoor er meer binnenruimte ontstaat zonder dat de buitenafmetingen toenemen. De No Frost+-functie voorkomt ijsvorming, maakt. Met Twin Cooling Plus worden het koel- en vriesgedeelte afzonderlijk gekoeld, wat zorgt voor optimale luchtvochtigheid en voorkomt geurvermenging.

De Digital Inverter Compressor past zich automatisch aan op basis van de koelbehoefte, wat resulteert in een stille werking van slechts 35 dB en een laag jaarlijks energieverbruik van 108 kWh. Deze koelkast kun je bedienen met de SmartThings-app, en hiermee het energieverbruik monitoren.

Opgegeven jaarlijks energieverbruik: 108 kWh
Geluidsniveau: 35 dB
Inhoud koelgedeelte: 273 liter
Inhoud vriesgedeelte: 114 liter

Bosch KGN392LAF 

Deze koel-vriescombinatie van Bosch biedt een totale netto inhoud van 363 liter, verdeeld over een koelgedeelte van 260 liter en een vriesgedeelte van 103 liter . Dankzij de NoFrost-technologie is handmatig ontdooien verleden tijd, terwijl het MultiAirflow-systeem zorgt voor een gelijkmatige luchtverdeling, waardoor voedsel langer vers blijft.

Het VitaFresh XXL 0°C-systeem biedt optimale bewaarcondities voor vlees, vis, groente en fruit, waardoor de versheid en voedingswaarde behouden blijven . Met een geluidsniveau van slechts 29 dB is dit apparaat uitzonderlijk stil, ideaal voor open keukens en woonruimtes.

De Bosch KGN392LAF is afgewerkt met RVS-design met geïntegreerde handgrepen en is voorzien van verstelbare glazen legplateaus, LED-verlichting en een digitale temperatuurregeling.

Opgegeven jaarlijks energieverbruik: 104 kWh
Geluidsniveau: 29 dB
Inhoud koelgedeelte: 260 liter
Inhoud vriesgedeelte: 103 liter

Hisense RB440N4AFA

De Hisense RB440N4ACA is een energiezuinige koel-vriescombinatie met een A-label en een jaarlijks energieverbruik van slechts 109 kWh. Met een geluidsniveau van 35 dB is dit apparaat fluisterstil, ideaal voor open keukens of kleinere woonruimtes. De totale netto inhoud bedraagt 336 liter, verdeeld over 238 liter koelruimte en 98 liter vriesruimte.​

Deze vrijstaande koelkast heeft een strak roestvrijstalen design en is uitgerust met moderne technologieën zoals Total No Frost, waardoor handmatig ontdooien overbodig is. De Multi Air Flow-technologie zorgt voor een gelijkmatige koeling, terwijl de Super Freeze-functie snel nieuwe producten invriest. Daarnaast beschikt het apparaat over een Holiday Mode voor energiebesparing tijdens afwezigheid.

Opgegeven jaarlijks energieverbruik: 109 kWh
Geluidsniveau: 35 dB
Inhoud koelgedeelte: 238 liter
Inhoud vriesgedeelte: 95 liter

LG GBV7280BPY

De LG GBV7280BPY is een stijlvolle en energiezuinige koel-vriescombinatie die uitblinkt in zowel design als functionaliteit. Met een totale netto inhoud van 387 liter biedt deze combinatie voldoende ruimte voor de opslag van al je verse en diepgevroren producten.

Het vriesgedeelte van 110 liter is voorzien van drie transparante lades, waardoor je gemakkelijk overzicht houdt over je diepvriesproducten. Dankzij de Total No Frost-technologie is handmatig ontdooien niet meer nodig. De Smart Inverter Compressor zorgt niet alleen voor energie-efficiëntie, maar ook voor een stille werking met een geluidsniveau van slechts 33 dB. Het apparaat heeft een energieklasse B en een jaarlijks energieverbruik van 138 kWh.

Opgegeven jaarlijks energieverbruik: 138 kWh
Geluidsniveau: 33 dB
Inhoud koelgedeelte: 233 liter
Inhoud vriesgedeelte: 110 liter

▼ Volgende artikel
Help, mijn wasmachine centrifugeert niet! Wat nu? (Spoiler: geen paniek!)
© AK | ID.nl
Huis

Help, mijn wasmachine centrifugeert niet! Wat nu? (Spoiler: geen paniek!)

Als je wasmachine het programma keurig afwerkt, maar de was kletsnat uit de trommel komt, is de kans groot dat het centrifugeren niet goed is gegaan. Frustrerend, zeker als je net een volle trommel beddengoed hebt gedraaid. Gelukkig is vaak goed te achterhalen wat er aan de hand is. In dit artikel lees je waar het misgaat, hoe je het herkent en wat je eraan kunt doen.

Was nog steeds nat? Dit kan er aan de hand zijn:

  • De trommel raakt uit balans
  • Problemen met de afvoer
  • Verkeerd toerental gekozen
  • Technische mankementen
  • Elektronica en foutmeldingen

Lees ook: Zelf de afvoerslang van je wasmachine vervangen: zo doe je dat

Dat het centrifugeren niet of niet helemaal goed gaat, kan een aantal oorzaken hebben. Hieronder vind je de meest voorkomende – uiteraard mét oplossing!

De trommel raakt uit balans

Een van de meest voorkomende oorzaken is een ongelijke verdeling van het wasgoed. Grote stukken zoals dekbedhoezen of badmatten trekken tijdens het centrifugeren naar één kant, waardoor de trommel uit balans raakt. De machine detecteert dat en besluit het toerental niet of nauwelijks op te voeren. Je merkt het aan het zachte ronddraaien aan het einde van het programma en het feit dat er nog behoorlijk wat water in de trommel staat. Je voorkomt dit probleem meestal door zware stukken over meerdere wasbeurten te verdelen of er wat lichtere kleding bij te doen. Een goed gevulde trommel met een combinatie van groot en klein wasgoed draait namelijk een stuk stabieler.

Problemen met de afvoer

Als water niet snel genoeg uit de kuip kan worden gepompt, blijft het niveau te hoog om veilig te centrifugeren. De machine slaat die stap dan over of draait op een laag toerental. Dit komt vaak door een verstopt filter, een propje stof in de afvoerpomp of een geknikte afvoerslang. De pomp moet met kracht het water wegwerken, en als dat niet lukt, stopt de elektronica het proces. Maak het filter schoon, controleer of de pomp vrij kan draaien en kijk of de slang niet geknikt is of te hoog hangt. Meestal lost dit het probleem op.

KIJK GOED NAAR HET TOERENTAL Niet elke was draait standaard op het hoogste toerental. Veel programma's – zoals die voor fijne was of eco-instellingen – beperken automatisch het centrifugeren om kleding te beschermen of energie te besparen. Dat is vaak ingesteld op 800 of 1000 toeren, terwijl je was pas echt droog wordt bij 1400 of 1600 toeren. Controleer dus voor je start welk toerental is gekozen. Je kunt dit handmatig aanpassen via het display of de draaiknop, afhankelijk van het model.

©Oriol Roca

Technische mankementen

Soms zit het probleem dieper in de machine. Versleten koolborstels kunnen ervoor zorgen dat de motor niet genoeg kracht levert voor de centrifugeersnelheid. Ook een versleten aandrijfsnaar (ook wel aandrijfriem genoemd) of een kapotte trommellager kan de boel verstoren. In zulke gevallen hoor je vaak een brommend geluid of zie je dat de trommel moeizaam beweegt. Om dit op te lossen, zul je vaak een reparateur moeten inschakelen. De kosten voor vervanging hangen af van het merk en de leeftijd van je machine. Op de websites van fabrikanten en verkopers van wasmachines vind je meer informatie over de garantieperiode en waar je terechtkunt met vragen. Tip: zorg dat je altijd de aankoopbon bewaart!

Elektronica en foutmeldingen

Tot slot kan een storing in de software de boosdoener zijn. Moderne wasmachines meten voortdurend of alles volgens plan verloopt. Bij afwijkingen geven ze een foutcode, bijvoorbeeld bij waterproblemen, een deur die niet goed sluit of een motor die geen terugkoppeling geeft. In zulke gevallen loont het om de handleiding erbij te pakken of de foutcode op te zoeken op de website van de fabrikant. Resetten van het systeem kan soms al voldoende zijn. Verhelpt dat het probleem niet, dan zal er een reparateur bij moeten komen.

WISSELEND RESULTAAT? LET OP DE BELADING Als je merkt dat het soms wel goed gaat en soms niet, dan kun je ervan uit gaan dat het geen technisch mankement is, maar dat de belading de boosdoener is. Eerder in dit artikel heb je kunnen lezen wat je kunt doen om dat op te lossen.

Checklist centrifugeerproblemen
ProbleemMogelijke oorzaakOplossing
Was blijft natTrommel uit balansWasgoed verdelen, trommel evenwichtig vullen
Centrifugeert niet of halfVerstopte afvoer of geknikte slangFilter schoonmaken, slang controleren
Brommend geluid, geen snelheidVersleten motoronderdelenKoolborstels of aandrijfsnaar vervangen
Foutmelding bij starten centrifugeSoftwarefout of sensorsignaal ontbreektHandleiding checken, eventueel resetten
Programma draait te langzaamLaag ingestelde centrifugeersnelheidToerental verhogen in programma-instellingen
Wisselend resultaat per wasbeurtAfhankelijk van beladingZware en lichte stukken mengen

Wat controleer je als eerste?

Wil je zeker weten waar het aan ligt, begin dan met het controleren van de makkelijke dingen: het filter, de slang, de trommelverdeling. Vaak hoef je geen technicus te zijn om het op te lossen. Gaat het dan nog niet goed, dan moet je bepalen of reparatie zinvol is of dat het tijd is voor een nieuwe wasmachine.