Microsoft voegt nieuwe functies toe aan DirectX-api

Microsoft voegt binnenkort nieuwe functies toe aan DirectX 12. Zo komt het bedrijf met enkele features die onder andere moeten leiden tot minder texture pop-in en betere prestaties. Met DXR Tier 1.1 voegt Microsoft ook enkele nieuwe raytracingfuncties toe aan de api.

De nieuwe DirectX 12-update is momenteel alleen bruikbaar voor ontwikkelaars. In de toekomst worden de nieuwe functies ongetwijfeld toegepast in nieuwe games. De nieuwe DirectX-api is voor ontwikkelaars beschikbaar in de recentste Windows 10 Insider Preview-build. Gebruikers moeten hiervoor ook de nieuwste DirectX Shader Compiler downloaden en bij gpu-fabrikanten drivers met ondersteuning voor de nieuwe features aanvragen.

Microsoft voegt onder andere DirectX Sampler Feedback toe. Dit is een nieuwe feature voor 'next-gengames'. Gamewerelden worden exponentieel groter en gedetailleerder, waardoor ontwikkelaars soms de kwaliteit van assets moeten terugschroeven of textures tijdens het spelen moeten laden. Dit laatste kan pop-in als effect hebben en is dus onwenselijk. Bij texture pop-in worden textures niet correct geladen, waardoor ze een lage resolutie hebben of compleet ontbreken. Vaak duurt het een paar seconden voordat dit is opgelost. Dit is vooral een probleem op hoge resoluties als 4k.

Sampler Feedback moet dit probleem oplossen met onder andere texture streaming en texture-space shading. Dit zijn twee toepassingen die op hardwareniveau worden uitgevoerd en kunnen bijvoorbeeld 'opnemen' wanneer bepaalde textures in een bepaald deel van het spel werden geladen. Deze data kan gebruikt worden om ervoor te zorgen dat shaderberekeningen niet continu opnieuw worden gedaan. Ook kan exact worden bepaald op welk moment een texture moet worden geladen. Dit moet texturepop-in verminderen en de kwaliteit van textures waarborgen.

Ook krijgt DirectX Raytracing, ook wel DXR, nieuwe functies in DirectX Raytracing Tier 1.1. Met deze nieuwe superset kunnen ontwikkelaars onder andere extra shaders toevoegen aan bestaande raytracing pipeline state objects. Ook heeft raytracing nu ondersteuning voor ExecuteIndirect, waarbij het raytracingalgoritme het aantal gesimuleerde lichstralen afstemt op de execution timeline van een gpu. Ook is er nu ondersteuning voor inline raytracing. Dit biedt meer directe controle over het ray traversal-algoritme en shader scheduling.

Microsoft komt verder met DirectX Mesh Shader. Een mesh shader is volgens Microsoft een nieuwe generatie technologie die het verwerken van geometrie via een gpu mogelijk maakt. Deze technologie bundelt kort gezegd verschillende stadia van shading in enkele kleine pakketten. Dit moet het proces versimpelen en krachtiger maken. Ontwikkelaars moeten meer complexe geometrische details kunnen maken zonder dat dit een groot effect heeft op de framerate.

DirectX 12 mesh shader

Mesh shaders versimpelen het shadingproces aanzienlijk

Door Daan van Monsjou

Nieuwsredacteur

30-10-2019 • 14:56

30

Submitter: Balance

Reacties (30)

Sorteer op:

Weergave:

Mesh Shaders zijn helaas een beetje in het vergetenis gevallen omdat het tegelijk met "RTX" uitkwam, Nvidia was de eerste die de techniek meebracht met de RTX2000 series.

Verder zijn Mesh Shaders echt een geweldige komst voor (engine/graphics) developers, enorm krachtig en je kan er veel betere performance mee krijgen dan de ouderwetste vertex/geometry/tesselation shaders, het is 1 grote stap die je doet ipv een boel kleinere stappen en op meer data tegelijkertijd. Verder kan je hiermee ook technieken toepassen waardoor je op VR dus maar 1x hoeft te renderen ipv per oog, wat basically een 50% performance winst is, Batching en instancing kan je (heb ik iets van meegekregen?) ook goed mee doen en miljarden polygons per frame erdoorheen jassen, waar we met de huidige technieken nog maar een aantal tientallen miljoenen polygons kunnen.

voorbeeld:
https://wccftech.com/nvidia-asteroids-demo-mesh-shading/

[Reactie gewijzigd door Themperror op 23 juli 2024 14:54]

Wat achtergrond informatie van Nvidia zelf:Het zit nu ook al ruim een jaar in Vulkan:En voor iedereen die er nog wat meer van wilt weten nog een video: Geometry Reinvented with Mesh Shading
Werkt dit dan ook op de Xbox One S en X? Aangezien die op Windows 10 zijn gebaseerd
nee, hier is hardware support voor nodig, en AMD ondersteund dit (nog) niet.

De nieuwe series consoles (PS5 en hoe de nieuwe xbox dan mag heten) hebben geruchten van wel (samen met raytracing)
Jammer dat het alleen voor Windows 10 gebruikers is. Zo blijven de Windows 7 en 8 gamers ervan verstoken en is het voor game-ontwikkelaars lastiger om al deze systemen te bedienen.
Windows 7 spelers zijn hopelijk (voor de grote veiligheid van het Internet) binnenkort sowieso in de verre minderheid, ivm. het beëindigen van support. Qua games bied Win10 sowieso wel meer voordelen... Win8 heeft volgens mij nooit echt een grote following gehad...

DX12 is in essentie voor Win10, juist vanwege hoe direct hardware aangesproken kan worden, maar met pijn en moeite is het een en ander later tóch gebackport naar Win7, maar daar ligt wel een hele hoop verantwoordelijkheid bij game developers (zoals Blizzard, die de parallel renderer vanuit hun DX12 implementatie in World of Warcraft naar W7 geport heeft...)
Enige reden is dat DX12 niet voor win7 en 8.x beschikbaar is is puur dat anders niemand naar Win 10 gaat. Want Win10 is niks anders dan Windows 8.1 in weer een nieuw jasje.
Want Win10 is niks anders dan Windows 8.1 in weer een nieuw jasje.
En 7 is niks anders dan Vista in een nieuw jasje ;)
De grootste hoeveelheid onzin bij elkaar

nieuws: Microsoft maakt DirectX 12 makkelijker inzetbaar voor Windows 7-games

[Reactie gewijzigd door Relief2009 op 23 juli 2024 14:54]

DirectX 12 is sowieso exclusief voor Windows 10, niks nieuws dus.
Windows 7 is al near end-of-life en daarnaast is de marketshare niet significant meer, het zelfde argument had je voor Windows XP kunnen geven. Het is oud en wordt niet meer ondersteund, soms moet je helaas gewoon updaten.

(Daarnaast kun je bepaalde dingen niet gewoon backwards compatible maken, DirectX11 (in de Win XP - 7 verhaal), kon letterlijk niet draaien op windows XP omdat het driver model veranderd was. In soortgelijke staat is het verschil met Windows 7/8 en 10 ook, met DirectX12)
Ik zit nog steeds op Windows 1.0 en wacht nog steeds op een vernieuwde GUI...

[Reactie gewijzigd door Martinspire op 23 juli 2024 14:54]

vreemde win 1.0 heb jij

Windows 1.0 was de eerste grafische interface van Microsoft voor personal computers. Microsoft Windows kwam, met veel vertraging, in 1985 op de markt
That's his point :F. Windows 7 is al 10 jaar uit en zit nu in extended support (terwijl die support eigenlijk al afgelopen had moeten zijn, mainstream support is 4 jaar geleden al gestopt). Op een gegeven moment houdt het gewoon op. Om dezelfde reden kun je ook geen updates meer verwachten voor Windows 1.0.

Fun fact, DirectX 12 is uitgekomen in juli 2015. Mainstream support voor Windows 7 eindigde in januari 2015, daarvoor dus al.

[Reactie gewijzigd door .oisyn op 23 juli 2024 14:54]

Dan had het voor 8.1 uitgebracht moeten worden, daar is mainstream pas in 2018 gestopt.
Ik snap niet waarom je gewoon niet upgrade. In het begin vond ik Windows 10 ook niet echt iets maar na alle updates en feedback heeft Microsoft het toch weer goed gemaakt. Ik zou niet terug willen gaan naar Windows 7.

Enige reden wat ik kan bedenken nu is dat je super oude software gebruikt dat gewoon niet werkt met Windows 10.
Stel je voor dat je software moet updaten om nieuwe functionaliteit te krijgen.
Sorry hoor, maar consumenten ondersteuning van windows 7 is al langer afgelopen, en vraag me af wie er nog op windows 8 zit... Ga er maar van uit dat nieuwe games geen officiele ondersteuning meer hebben voor windows 7..
Nou vind ik niet. Tenzij je kleine indie games bedoeld want in die tijd was de hardware single core. Moderne triple A games zijn multithreaded en hebben minimum van 2 tot 4 cores en kunnen soms recommended stuk meer benutten.

Met games OS komt ook Hardware kijken. Je zou dus ouwe PCI of AGP gkaart hebben en singlecore cpu en sowieso 32bit. Huidige games gaan al over de 2GB .

Voor Vista ben ik voor grote hardware upgrade gegaan en Win 10 is er al andere upgrade geweest die W10 en DX12 ook vanuit hardware kan benutten niet OS en API alleen. En dan nog loop ik generatie achter .
Lekker duidelijke naamgeving weer. Noem het dan gewoon DirectX 12.1 of 13. Dit voelt weer als de saga rond HDMI en USB
DirectX12 werkt met tiers voor hardware ondersteuning. Dit zorgt ervoor dat iemand niet persé een GPU met DirectX12 ondersteuning nodig heeft om hiervan gebruik te maken. Het blijft dezelfde API, maar niet alle functies werken op alle hardware.
Ja, en dat is toch gigantisch onduidelijk voor de consument
Dit werkt al zo vanaf, ik dacht, DirectX10. Onder water zijn dit vaak feature levels, waarbij een hoger feature level altijd dezelfde features ondersteund als lagere levels. Feature levels zijn ook niet perse gelijk aan de bovenliggende DX versie. Zo ondersteund (bijv.) DX11.4 FL12_0 en 12_1 welke met DX12 zijn geïntroduceerd.

Gelukkig heb je hier als gebruiker doorgaans ook niets mee te maken. Mocht je graag willen weten welk feature level jouw GPU ondersteunt kan je dit in de specs terug vinden of via dxdiag bij "feature levels/onderdeelniveaus" in het display tab.

Mocht je je in willen lezen:
Feature level docs D3D12: https://docs.microsoft.co...2/hardware-feature-levels
Feature level docs D3D11: https://docs.microsoft.co...1-devices-downlevel-intro

Daarnaast heeft DirectX altijd optionele features gehad waarbij een GPU niet verplicht is om die feature te ondersteunen. Optionele features en extensies worden nog steeds gehanteerd, denk hierbij aan DXR wat een extensie is op DX12.

Sinds W10 brengt MS met vrijwel iedere nieuwe W10 upgrade een nieuwe versie van Direct3D uit. Tweakers bericht er lang niet altijd over ;)

Edit: Typos

[Reactie gewijzigd door Caayn op 23 juli 2024 14:54]

Consumenten werken niet met de api. Die kopen een game, die game eist een bepaalde DirectX versie en een bepaalde versie van de AMD/NVidia drivers. Vervolgens download je de benodigde componenten (als ze al niet worden meegeleverd) en daarna werkt je game..

Ik hoef de werking van een benzine motor niet te begrijpen, terwijl in wel met mijn auto kan rondrijden..
Iemand een idee welke kaarten worden ondersteund?
Ik bedoel: Alle kaarten met DX12?

Dank @Themperror (leuke username trouwens) & @Pepperoni

[Reactie gewijzigd door Thystan op 23 juli 2024 14:54]

Mesh shaders wordt atm alleen ondersteund door de RTX2000 series (en maybe de GTX1600 series maar niet zeker..)

Op het moment nog geen AMD support
Nvidia noemt het een Turing functie, dus dat zou dan ook de 16xx modellen bevatten.

Op dit item kan niet meer gereageerd worden.