Microsoft kondigt DirectX 12 Ultimate met verbeterde raytracing aan

Microsoft heeft DirectX 12 Ultimate aangekondigd, een api voor onder andere raytracingverbeteringen, waar AMD RDNA 2- en Nvidia Geforce RTX-gpu's van gebruik kunnen maken. Microsoft wil de Xbox Series X en game-pc's wat api betreft zo gelijktrekken.

DirectX 12 UltimateMicrosoft legt bij de aankondiging van DirectX 12 Ultimate de nadruk op de voordelen van een gezamenlijk platform voor zowel de pc als de Xbox Series X. "Als de Xbox Series X uitkomt, zijn er al miljoenen DX12 Ultimate-videokaarten met dezelfde featureset, waardoor een snelle adoptie van nieuwe functies in gang gezet kan worden."

AMD haakt daar op in met zijn mededeling dat zijn RDNA 2-architectuur voor gpu's ondersteuning biedt voor DirectX 12 Ultimate en dat beide bedrijven samen hebben gewerkt aan de technieken. De Xbox Series X heeft een gpu op basis van RDNA 2. Nvidia benadrukt dat zijn RTX-kaarten DirectX 12 Ultimate al ondersteunen. Kaarten vanaf de RTX 2060 kunnen dus al overweg met de api. Zowel AMD als Nvidia publiceren video's om met name de raytracingmogelijkheden te tonen.

DX12 Ultimate maakt vier technieken onderdeel van de api: DXR 1.1 , Variable Rate Shading, Mesh Shader en Sampler Feedback. Met DirectX Raytracing 1.1 kunnen engines efficiënter raytracingshaders laden indien nodig en er is ondersteuning voor inline raytracing, wat handig kan zijn bij scenario's met minimale shadingcomplexiteit. Variable Rate Shading geeft ontwikkelaars bepaalde mogelijkheden om meer gpu-rekenkracht in te schakelen bij delen van een game voor mooiere visuals.

Mesh Shaders geeft ontwikkelaars meer flexibiliteit bij het programmeren voor gpu's en biedt daarvoor simpeler modellen en met Sampler Feedback krijgen ontwikkelaars gedetailleerde informatie over scènes, waardoor ze kunnen bepalen wanneer het noodzakelijk is dat textures geladen dienen te worden. Dit maakt volgens Microsoft verbetering van de visuele kwaliteit, kortere laadtijden en minder stotteren van het beeld mogelijk.

DirectX 12 Ultimate is onderdeel van de komende versie van Windows 10, oftewel versie 2004, die ook bekendstaat als 20H1. Testversies van deze Windows 10-versie zijn al beschikbaar voor deelnemers aan Microsofts Windows Insider Program. Tot nu toe zijn uitbreidingen van DirectX 12 onderverdeeld in feature levels, met 12_1 als hoogste niveau en hardware die dit ondersteunt biedt alle functionaliteit.

Door Olaf van Miltenburg

Nieuwscoördinator

19-03-2020 • 21:14

77

Reacties (77)

77
73
39
0
0
19
Wijzig sortering
Waarom noemen ze dit niet gewoon DirectX 13 of DirectX 12.1?
Omdat "DirectX 12 Ultimate" nu eenmaal beter staat op de doos dan directX12.x.
En wellicht omdat 13 niet ieders lucky number is. ;)

Maar misschien staat v13 al op de tekentafel en is echt anders.
Omdat evolutie is ipv revolutie.
De pipeline is vereenvoudigd en flexibler met mesh shader.
Variable rate shader is meer voor efficienter omgaan Met scene complexity.
DXR is uitgebreid naar tier 1.1

veel verbeteringen zijn meer developer gericht. Flexibler en binnen MS platformen cross-latform zodat porten toegankelijker maakt voor dev voor de render paths.

Er zit niks unieks in dat opvalt voor gamer. Als unieke opvallende feature.

DXR zou volle versie nummer kunnen zijn maar ja het is meer andere manier van reflexies implementeren en shaduw. Correctness is voor game ervaring niet zo relevant maar iets wat tussen de oren van gamers zwaar gehyped wordt.
Geen idee hoe MS versie beleid hanteerd.
Dx12 Ultimate zo noemen is het perfecte excuus om ineens door te gaan naar Dx14 in de toekomst. Ik ben het met je eens dat inderdaad rekening houden met, tja, bijgelovigheid. Of beter gezegd in haar geheel: kansrijk dat het zo zal gaan.
ultimate had microsoft al bij windows 7 gebruikt.Waargoed maakt niks uit het beestje moet eenmaal een naam hebben.
Maar dat was ook de ultieme versie van Windows 7 met alle toeters en bellen :P :9
vergeet Xbox gamepass Ultimate niet.

Microsoft vind het duidelijk een krachtig woord voor hun producten/diensten
Welke doos? DirectX is een component dat je al jaren niet meer los hoeft te installeren. Je game werkt gewoon.
De doos van retail g-kaart dat het volledige feature van DX12 ultimate ondersteund.
Waarschijnlijk omdat deze DirectX versie niet veel verschilt van de normale versie, waaronder de verbeterde raytracing technieken. Hierdoor is er niet echt een verandering nodig qua versienummer.
Verandering van feature set is toch, in mijn optiek, wel een ander versienummer waard
Videokaarten draaien nu op directX 12
Niet op 13. Ultimate werkt wel op de videokaarten die op 12 draaien.


Ik ben blij met de naamgeving
Videokaarten "draaien" niet op een directx versie.

Hoogstens biedt de hardware de feature set die een bepaalde direct x versie in de API beschikbaar belooft te stellen.

Mijn rx580 doet het bijvoorbeeld uitstekend met Vulkan en/of AMDGPU
Maar het staat wel op de doos.
Dat betekent alleen dat de videokaart aan alle DX12-vereisten voldoet. De videokaart "draait" dan nog steeds niet op DX12.
Als ze semantic versioning volgen is ten minste een minor version update nodig (dat houdt in dat de rest van de bestaande API ongewijzigd blijft), zie https://semver.org/ (Minor is van bijvoorbeeld 12.0 naar 12.1 gaan). Een verandering van (major) versienummer is daardoor geen vereiste omdat bestaande DirectX12 implementaties niet stuk gaan wanneer deze nieuwe versie geïnstalleerd is.

[Reactie gewijzigd door thomasv op 23 juli 2024 01:03]

DirectX is steeds een bundel geweest. Deze bundel omvatte bvb Direct3D, maar ook DirectDraw, DirectShow, DirectSound, DirectMusic, DirectPlay, DirectInput, DirectGraphics, etc...

Ik vermoed dat ze nu DirectX Raytracing als component hebben toegevoegd (ik zie toch steeds vermeldingen naar een component DXR 1.0 en DXR 1.1) die dan zaken als Variable Rate Shading, Mesh Shaders en Sampler Feedback ondersteunen.

Ik denk dus Ultimate omdat de componenten uit de eerste alinea gewoon dezelfde gebleven zijn, maar het DXR component (wat de marketingnaam ook moge zijn) toegevoegd/updated is.
Een aantal van die componenten hebben al een redelijke tijd de status "deprecated".
Eens, maar dit verandert niets aan het voorbeeld dat DirectX steeds een bundel was noch aan het punt dat ik wou maken.
Dat is modern. USB, HDMI, WiFi... Ze doen het allemaal. Het kan ook andersom: op mijn werk hebben we een product wat al jaren versie 3.0 heeft, ondanks vele veranderingen.
Met andere woorden, USB, HDMI, WiFI en jouw werk doen het allemaal verkeerd :P Of het maakt gewoon niet uit en je hebt niks aan arbitraire nummers.

[Reactie gewijzigd door johnkeates op 23 juli 2024 01:03]

Geen idee wat goed of fout is. Ik dacht dat het iets te maken had met major releases of bugfixes, maar blijkbaar zegt een nummertje bar weinig. Iets .0 noemen is hip, net als ultramegahyper.
Bij ons hanteren we het volgende: als je van 1.0.0 naar 1.0.1 gaat is dat een fix, naar 1.1 is een feature update, en naar 2.0.0 is dan een nieuwe release.
Als voor een update het onderliggende systeem ook geüpdated moet worden hebben we het over een nieuwe release, terwijl alle .x.x versies binnen een release compatible blijven zonder aanpassingen op het onderliggende systeem.
Vroeger was het een soort van ongesproken regel: 1.0.0 is de eerste versie die je uitbrengt, 1.0.1 is een patch of fix, 1.1.0 is een kleine upgrade die geen bestaande zaken vervangt maar wel wat verbetert of toevoegt en als je een grote verandering maakt ga je naar 2.0.0. En als je iets speciaals had wat daar niet in past had je suffixes zoals a, b, c die er achter kunnen tot dat je release echt zeker is.

Dat ging op een gegeven moment niet goed want ergens na de 90's zijn mensen het voor marketing gaan gebruiken en werd het een bende. Toen kon je maar beter op build nummers vertrouwen, want die waren tenminste uniek per versie. Maar ook dat ging mis, want eerst waren buildnummers altijd gewoon een teller, waarbij een hoger nummer een hogere versie is. Maar dat kan niet oneindig en is ook niet distribueerbaar over meerdere groepen die samenwerken. Dus kreeg je hashes en later in git ook commit hashes. Dat hebben we nog steeds en wijst altijd een hele specifieke versie aan. Daarnaast zijn er ook binary hashes, die doen hetzelfde.

Maar om dat dat soort nummers niet makkelijk te onthouden of te vergelijken zijn en een paar minder snuggere figuren ook dat proberen te marketen kwam iemand met een idee om de klassieke nummering een beetje vast te leggen: semantic versioning, of semver. Het betekent letterijk: versienummers van betekenis. Dat is zo ongeveer wat vroeger gedaan werd: [marjor versie].[minor versie].[patch] met een omschrijving van wanneer je de nummers ophoogt. https://semver.org

Probleem is dat dat niet lekker te marketen is, sommige mensen vrij ranzige ontwikkelprocessen hebben, en sommige software verschrikkelijk slecht gebouwd is en meerdere parallelle builds van dezelfde versie hebben.

Je kan tegenwoordig aan de versie types bijna opmaken hoe 'modern' of 'schoon' een stuk software gebouwd wordt: gebruikt men semver, dan is het waarschijnlijk een heel degelijk proces, mogelijk een beetje 'te' procesmatig, maar wel goede garanties over de nummering. Gebruikt men een enkel getal dat gewoon bij elke release ophoogt, dan is het waarschijnlijk iets minder strict om meer snelheid te kunnen maken. Bijvoorbeeld in gebruik waarbij releases geen minor/patch levels gebruiken om dat ze gewoon meerdere 'kanalen' hebben. Denk aan 'canary', 'developer' en 'production' releases van browsers. En dan heb je nog de vorm waarbij gewoon commit hashes gebruikt worden, dat is wat minder een release proces maar wel erg stabiel wat betreft het identificeren van versies. Vooral voor losvaste samenwerkingsverbanden en/of werken op hoge snelheid heel praktisch.

En dan is er de rest: heel lange nummers, subnummers, meerdere punten, streepjes en extra suffixen. Of zelfs meerdere kenmerken per versie (de echte build, de marketing build, het versie nummer, het release nummer, het jaar, de codenaam allemaal door elkaar heen). Waarschijnlijk een dikke bende of bureaucratie die zich met de techniek bemoeit. Goede kans dat het net niet de kwaliteit is die je had gehoopt. Soms puur om historische redenen en nooit echt opgeruimd.

[Reactie gewijzigd door johnkeates op 23 juli 2024 01:03]

Thanks voor de verduidelijking. Ik werk met software die zich netjes aan de major.minor.patch regel houden. Ik vind het overzichtelijk want ik weet dan wat ik ongeveer aan wijzigingen kan verwachten voordat ik de release notes doorneem. Dat kan ik vaak de update of upgrade beter inplannen en is iedereen blij.

Een ultimate of hyper kan ik niets mee, een kanalen oplossing snap ik wel, we hebben zelf natuurlijk ook verschillende ontwikkel omgevingen. Maar wat als Microsoft nu moet gaan patchen? Krijgen we dan DirectX 12 Ultimater?
Ja, wat Microsoft uitspookt weten ze zelf volgens mij ook niet. Soms skippen ze versies, soms gebruiken ze nummers, soms namen, soms builds. 8)7

Met ultimate hebben ze zichzelf ook wel in een hoekje geduwd, er is niet echt een overtreffende trap (behalve Ultimater zoals je schreef :+ ). Misschien DirectX 12 Ultimater Special Edition? :X
Als je aan proper versiebeheer doet in packages, dan is het niet "lekker boeien". Dan kunnen er dingen kapotgaan omdat iemand de regels niet naleeft.
Dit is, helaas, een typische eindgebruiker reactie zonder ook maar enig inzicht in wat er allemaal niet aan werk vooraf gaat. Je wil wel de garantie zo goed mogelijk afdwingen zodat jij er het minst last of zelfs schade van ondervangt.
13 klinkt in Amerika als ongeluksgetal .Het kan he.
Ik denk dat zelfs Microsoft wel weet dat de meeste mensen niet Amerikaans zijn.
maak er dan 14 van, nog beter!
14 is het allergrootste ongeluksgetal voor Chinezen. Dus dan zal 15 de volgende worden.

Waarom denk je dat Cisco van IOS versie 12 naar 15 is gesprongen?
Bij Microsoft is de kunst van doortellen nog niet helemaal ingeburgerd :P ("waar blijft Windows 9?")
Xbox --> Xbox 360 --> Xbox 1 --> Xbox X waarbij 'X' natuurlijk gewoon weer 10 is..
Nog altijd logischer dan dat Microsoft SQL Server 2019 versie nummer 15.0 heeft..
Haha SQL server heeft al meer dan 20 jaar consistente versienummering en sinds 2000 gebruiken ze het jaar van uitkomst voor de productnaam.

https://sqlserverbuilds.blogspot.com/?m=1
Windows 8.1 = 8+1 = 9
Of direct naar 80, anders lopen ze zoveel achter op Chrome! ;)
Of 20 ivm het jaar 2020, of omdat dit een zwart jaar blijkt te worden voor vele misschien al 21 doen?
Ultimate klinkt gewoon cool
Het getal 13 zullen ze waarschijnlijk sowieso niet gebruiken (uit bijgeloof)
Op de achtergrond in je registry bestond Office 12 (2007) en toen 14 (2010), Office13 heeft nooit bestaan.
Dus dan zal het wel DirectX14 worden.
Ben ik gek als ik als leek denk, dat ze best goed voorgesorteerd zijn op deze manier met PC en Xbox in 1 lijn voor ontwikkelaars om effectiever te developen?
Nope dat is het hele masterplan. Ik vind het geniaal hoe Microsoft de lijn tussen console gaming en PC gaming steeds meer en meer verwatert. Waar ik zo benieuwd naar ben is hoe Activision, EA etc. haar games nu maken. Is de DX12 code primair en de Sony code een andere versie. Hoe ziet zo'n ontwikkeling proces er uit.

[Reactie gewijzigd door Maulwurfje op 23 juli 2024 01:03]

Je bent ergens benieuwd naar. Niet benieuwd na.
Tenzij je meerdere GPU's gebruikt zullen DX12 en de OpenGL afgeleide die Sony gebruikt waarschijnlijk niet denderend veel van elkaar afwijken in functionaliteit. Gezien Vulkan en DX12 ook in grote lijnen erg op elkaar lijken.

Ze bouwen de game/engine doorgeens niet tegen een render API aan. Die wordt verteld (allicht tijdens de build) op welke API het moet werken door dit per render api als support in te bouwen.
Die 1ste YT Vid met die Techdemo doet me aan Reboot denken. '' Incoming game''

En dan Megabyte opnieuwe proberen tegen te houden.
Voodoo3 had nog beter geweest
Die video van AMD is wel echt heel slecht.

[Reactie gewijzigd door hrichard op 23 juli 2024 01:03]

haha precies wat ik dacht. 2005 belde net; ze willen hun graphics terug :+ :P
Versienummering.....
12?
12.#?
12 ultimate ?
13?

Nah, Ik zeg 42
nVidia's Turing gpu maakte al gebruik van Mesh Shaders, https://devblogs.nvidia.c...tion-turing-mesh-shaders/ , nu dit ook in DirectX zit, zijn er dan nog verbeteringen te verwachten uit Turing gpu's of wordt er op de één of andere manier, drivers?, al gebruik gemaakt van Mesh Shaders op Turing?
Normaal gesproken, hier voor moest je NVAPI gebruiken om mesh shaders aan de praat te krijgen. Vanaf de DX12 ultimate, is het onderdeel van de API.
Ben al een tijdje niet meer op de hoogte van wat er gebeurt met VR maar een paar jaar geleden werd er veel gesproken over dat de "next big thing" voor VR het renderen zou zijn waar je naar kijkt en alles waar je niet op focussed met minder details kan worden gerendered.

Na de videos gezien te hebben in dit artikel klinkt het alsof Variable Rate Shading en Sampler Feedback hier ook voor is bedoelt, gaan we met deze DirectX versie dan een flinke sprong zien in VR?
Dat heet foveated rendering.
Absoluut, je kunt buiten je focal punt de fragment density verlagen met de variable shading.
*oeps*

[Reactie gewijzigd door MN-Power op 23 juli 2024 01:03]

De demo van AMD is teleurstellend.. heb betere werk van eerste jaars studenten gezien:
- Geen particles
- Reflections lijken half res te zijn
- Alleen perfect mirror relfections (dus alle rays zijn super coherent)
- Geen transperancy
- FPS onder 30hz (ontdanks perfect mirror reflections, ik durf niet af te vragen wat voor performance je zult krijgen met lager ray coherency)

Hopelijk is de kwaliteit verbonden aan de tijdsnood en niet aan de gebrekkig hardware.

[Reactie gewijzigd door Vlad86 op 23 juli 2024 01:03]

Op dit item kan niet meer gereageerd worden.