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 inductiekookplaten geschikt voor 1-faseaansluiting
© ID.nl
Huis

Waar voor je geld: 5 inductiekookplaten geschikt voor 1-faseaansluiting

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Daarom zoeken we een aantal keer per week naar zulke deals. Dit keer: inbouw inductiekookplaten die je niet een vermogen kosten: niet in energie en niet in geld.

Eenvoudigere inductiekookplaten met een lager vermogen kunnen rechtstreeks in een normaal stopcontact op een standaard 1-fasegroep worden gebruikt. Voor zo’n 1-fase-inductiekookplaat is dus geen speciale aansluiting of extra stopcontact in de meterkast nodig. Houd er wel rekening mee dat je bij een 1-faseaansluiting niet alle kookzones gelijktijdig op vol vermogen kunt gebruiken.

De afmetingen van een in te bouwen inductiefornuis worden aangeduid met de breedte en diepte, maar de nisbreedte geeft aan hoe groot het gat mag zijn om het fornuis in te plaatsen.

Wij hebben vijf inbouw inductiekookplaten voor je gevonden die je op een gewoon stopcontact kunt aansluiten.

Siemens EU61RBEB5D

Dit 60-cm brede inbouwmodel heet een maximaal aansluitvermogen van 3700 Watt . De bediening van deze kookplaat is zeer intuïtief: je selecteert met een simpele aanraking de gewenste kookzone en past de temperatuur nauwkeurig aan met de +/- knoppen. Ook de powerboost-functie is een groot pluspunt; hiermee breng je water razendsnel aan de kook. Veiligheid is ook een belangrijk aspect: de kookplaat beschikt over een kinderslot en een restwarmte-indicator, zodat je altijd weet welke zones nog warm zijn.

Aantal kookzones: 4
Vermogen kookzones (1 t/m 4): 1,8 kW / 1,8 kW / 1,4 kW / 2,2 kW
Nisbreedte: 55,3 cm
Aansluitwaarde: 3.700 watt

Bosch PUE611BB5D

De bediening van deze Bosch gaat via DirectSelect, een intuïtief paneel met duidelijke cijfers, waarmee je met één aanraking de gewenste kookstand kiest. Dit maakt het koken niet alleen makkelijker, maar ook sneller. Ook is de kookplaat voorzien van een handige timer en een QuickStart-functie die automatisch de juiste kookzone selecteert. De ReStart-functie is ook erg praktisch; als er iets overkookt, onthoudt de plaat de laatste instellingen, zodat je weer verder kunt met koken.

Aantal kookzones:  4
Vermogen kookzones (1 t/m 4): 3,1 kW / 3,1 kW / 2,2 kW / 3,7 kW
Nisbreedte: 56 cm
Aansluitwaarde: 3.700 watt

AEG ILB64334CB

Deze AEG is 59 centimeter breed en beschikt over vier kookzones, waarvan de flexibele MaxiSense-zones zich automatisch aanpassen aan de grootte en vorm van de pan. Hierdoor kun je grotere of afwijkende pannen gebruiken zonder dat een deel van de pan onverwarmd blijft. De bediening verloopt via de overzichtelijke touchControl-interface, waarmee je de kookzones afzonderlijk kunt aansturen. Een handige functie s de Hob2Hood-functie, die de kookplaat draadloos verbindt met een geschikte afzuigkap, zodat de afzuigcapaciteit automatisch wordt aangepast aan het kookproces. Dit bespaart energie en je handen blijven vrij. Tot slot is de kookplaat uitgerust met een powerBoost-functie voor extra snelle verhitting en een kinderslot voor de veiligheid.

Aantal kookzones:  4
Vermogen kookzones (1 t/m 4): 3,2 kW / 3,2 kW / 2,5 kW / 3,4 kW
Nisbreedte: 55 cm
Aansluitwaarde: 3.650 watt

Inventum IKI6008

De Inventum IKI6008 is 60 cm breed. De bediening is eenvoudig en logisch, met een overzichtelijk bedieningspaneel waarop je de gewenste stand selecteert. Met de boostfunctie per kookzone breng je water razendsnel aan de kook, wat veel tijd bespaart tijdens het koken van pasta of groenten. Bovendien is ook deze kookplaat voorzien van een handige timer, die je per zone kunt instellen, en een restwarmte-indicator die aangeeft welke zones nog heet zijn, wat de veiligheid in de keuken ten goede komt. De strakke, zwarte afwerking geeft je keuken een moderne uitstraling.

Aantal kookzones:  4
Vermogen kookzones (1 t/m 4): 1,8 kW / 1,8 kW / 1,4 kW / 2,4 kW
Nisbreedte:  57,1 cm
Aansluitwaarde:  3.500 watt

ETNA KIS159ZT

Als je op zoek bent naar een inductiekookplaat die zowel stijlvol als praktisch is, dan is de ETNA KIS159ZT een serieuze kandidaat. De plaat is uitgerust met een duidelijke centrale slider waarmee je moeiteloos het vermogen van elke zone aanpast. Met tien kookstanden heb je voor ieder gerecht de perfecte temperatuur. Wat deze kookplaat ook erg gebruiksvriendelijk maakt, is de boostfunctie op elke zone. Handig als je snel iets aan de kook wilt brengen. Bovendien heeft de plaat een kinderslot en een restwarmte-indicator, wat de veiligheid in de keuken ten goede komt.

Aantal kookzones: 4
Vermogen kookzones (1 t/m 4): 1,4 kW / 2,4 kW / 1,8 kW / 1,8 kW
Nisbreedte: 56 cm
Aansluitwaarde: 3.500 watt

▼ Volgende artikel
Zo herken je verdachte QR-codes op parkeerautomaten en laadpalen
© Gemeente Den Haag
Huis

Zo herken je verdachte QR-codes op parkeerautomaten en laadpalen

Parkeerautomaten en laadpalen voor elektrische auto's zijn steeds vaker doelwit van fraudeurs. Ze plakken een sticker met een valse QR-code op het scherm of naast het betaalgedeelte. Wie de code scant, komt terecht op een nagemaakte website die vraagt om bankgegevens of een betaling. In werkelijkheid belandt het geld niet bij de gemeente of de exploitant, maar bij criminelen.

In het kort

In dit artikel lees je hoe je nep-QR-codes op parkeerautomaten en laadpalen herkent. Je ontdekt wat quishing is, hoe je verdachte codes spot en hoe je veilig blijft voor deze vorm van oplichting. Lees ook: Goed alternatief voor EasyPark? Zo werkt de Q-Park-app

Van Amsterdam tot Maastricht, van Alphen aan den Rijn en Rotterdam tot Den Haag: valse QR-codes duiken steeds vaker op. Quishing, zoals deze relatief nieuwe vorm van oplichting wordt genoemd, kan je behoorlijk wat geld kosten. Met de tips in dit artikel voorkom je dat jij slachtoffer wordt.

Hoe fraudeurs te werk gaan

Een valse QR-code is vaak simpelweg een sticker die over de originele code of op een lege plek is geplakt. Op het eerste gezicht lijkt de code onderdeel van de automaat. Zodra je de code scant, opent er een website die qua logo en opmaak sterk lijkt op die van een parkeer- of laadpaalexploitant. Het verschil zit in de details: de url wijkt af, de site vraagt direct om bankinloggegevens of je wordt doorgestuurd naar een betaalpagina die niets met de gemeente of betreffende exploitant te maken heeft.

In het Verenigd Koninkrijk en Nederland zijn al meerdere meldingen gedaan. Sommige slachtoffers verloren tientallen euro's aan parkeergeld, anderen werden geconfronteerd met grotere bedragen die van hun rekening verdwenen.

Zo herken je een valse QR-code

Let altijd goed op de fysieke code. Ziet het eruit als een losse sticker, scheef geplakt of met een afwijkende kleur? Dan is de kans groot dat het om fraude gaat. Controleer daarnaast de link die verschijnt zodra je scant. Een betrouwbare url verwijst naar een bekende aanbieder, zoals de website van de gemeente of een erkende parkeerapp. Zie je rare domeinnamen of spelfouten, ga dan niet verder maar klik de pagina meteen weg. Belangrijk om te weten: dat een link met https:// begint is tegenwoordig geen garantie meer dat het om een veilige site gaat. Wij hebben als test de valse QR-code op de foto gescand (don't try this at home!) en de link begint met https://...

Nog beter is het om QR-codes helemaal te vermijden bij dit soort betalingen. Gemeenten en aanbieders van laadpalen en parkeerautomaten adviseren om te betalen via de automaat zelf of via een officiële app, zoals EasyPark of ParkMobile. Zo weet je zeker dat je geld op de juiste plek terechtkomt.

Wat kun je zelf doen?

Betaal je via een app of met pin, dan loop je geen risico op quishing. Zie je toch een verdachte QR-code, meld dit dan bij de gemeente of politie, zodat de sticker snel verwijderd kan worden. Twijfel je aan een website, gebruik dan een controletool zoals 'Check je linkje' waarmee je vooraf kunt zien waar een QR-code naartoe leidt.

Soms heb je genoeg

🅿️ Aan zo'n blauwe parkeerschijf