Nvidia maakt PhysX- en Flow-sdk's volledig opensource

Nvidia heeft de PhysX-sdk sinds kort volledig opensource gemaakt. De code bevat nu ook de gpu-simulationkernel-sourcecode en dat was voorheen niet het geval. Het Amerikaanse bedrijf heeft ook de Flow-sdk volledig opensource gemaakt.

PhysXUit de aankondiging op GitHub blijkt dat de codebases van PhysX en Flow opnieuw volledig onder de BSD-3-licentie vallen. Dat was ook al in 2018 het geval toen Nvidia voor het eerst een groot deel van de PhysX-engine open source had gemaakt.

PhysX is een software development kit die ontwikkelaars kunnen gebruiken om specifieke physicsonderdelen van een game in real time te renderen met een Nvidia-gpu met CUDA-cores. Het Amerikaanse techbedrijf heeft begin dit jaar aangekondigd te stoppen met ondersteuning voor deze engine voor 32bit-games op de RTX 50-videokaarten. PhysX werd in 2018 al grotendeels opensource. Nvidia Flow is eveneens een sdk waarmee ontwikkelaars vloeistoffen en gassen kunnen simuleren in driedimensionale ruimtes, zoals gamewerelden.

Door Jay Stout

Redacteur

07-04-2025 • 10:03

40

Reacties (40)

40
40
6
1
0
30
Wijzig sortering
Betekent dit dan ook dat een fanatiekeling PhysX kan porten naar iets dat ook op AMD- en Intelkaarten draait? Als een soort wrapper?

[Reactie gewijzigd door SterkeYerke op 7 april 2025 10:18]

Als code open source is, dan kun je er in feite alles mee ja. Of het ook mag ligt aan de licentie, maar uit de 3 seconde licentie lezen die ik gedaan heb, concludeer ik dat Nvidia je vrij laat. De vraag is of de performance werkbaar is zonder CUDA. Ik heb heel even vluchtig door de code van PhysX gekeken en dat leunt in ieder geval op CUDA.
Dus daar zal wat aan gedaan moeten worden. Omtikken naar OpenCL ofzo. Maar er zijn ook bestaande projecten voor zoals ZLUDA of https://wccftech.com/nvid...gpus-using-scale-toolkit/ Die dus de plek van CUDA kunnen vervangen om dit in ieder geval compatible te krijgen.

Het ligt er net aan of dit word opgepakt door een competent groepje modders. Met DLSS was dat vaak wel het geval de laatste tijd, dus ik heb goede hoop.

Wat ik liever zou zien is dat hier een heel nieuw open source project uit onstaat met de functionaliteiten van physx en/of flow, zodat die in nieuwe games of zelfs bestaande game engines gehangen kunnen worden.

Wat @ro8in benoemd is denk ik minder relevant. "CUDA cores" is gewoon een marketing naam die Nvidia aan de stream processors op hun GPU's heeft gehangen.

[Reactie gewijzigd door youridv1 op 7 april 2025 11:01]

kunnen ze in die 32-bit physx dll (die nu dus open source is als ik het goed begrijp?) niet gewoon calls doen naar 64 bit cuda? of werkt dat zo niet?

Ik heb nooit gewerkt met PhysX dus ik weet niet hoe die calls tot stand komen en welke zaken er toe doen.

[Reactie gewijzigd door grasmanek94 op 7 april 2025 11:11]

Dat zal inderdaad een stuk minder werk zijn, gegeven dat de 64 bit versie van cuda dezelfde api aanbiedt als de 32 bit versie. Dat hoeft natuurlijk niet.

[Reactie gewijzigd door youridv1 op 7 april 2025 11:16]

Heb zo even 5 minuutjes genomen maar zal wel dieper moeten gaan graven, https://github.com/NVIDIA...ysx/src/NpScene.cpp#L2791 lijkt mij een goed punt om een zoektocht te starten maar iemand die met PhysX gewerkt heeft zal vast wel sneller zijn :P

Of iets a'la https://github.com/NVIDIA...NpImmediateMode.cpp#L1913

iig ergens iets tussen deze twee.

[Reactie gewijzigd door grasmanek94 op 7 april 2025 11:25]

Misschien wel, maar het zal niet ondertekend zijn door NVidia dus zal het wellicht niet werken met sommige games i.v.m. anti-cheat controles denk ik.
De games die nog gebruik maken van 32 bit PhysX hebben over het algemeen niet echt een (kernel-based) anti-cheat systeem.
Is het zo dat mensen straks met een 5xxx serie of nieuwer alsnog van Physics kunnen gebruiken of aanspreken?
Dat kan ik niet voorspellen. Ik heb de codebase van PhysX nooit in depth doorgelezen. Het lijkt mij niet technisch onmogelijk, maar Nvidia heeft de code alleen open source gemaakt. Het is nu dus aan een groep vrijwilligers om dit daadwerkelijk te gaan implementeren. Gezien de reactie op de support drop van Nvidia denk ik wel dat er animo is, maar dat wordt afwachten.
Iemand met een 5xxx serie kan PhysX gebruiken. De enige beperking is dat het voor hardwareacceleratie 64-bit code moet betreffen. Dit is een beperking voor een handjevol spellen. Ook zonder hardwaremarige PhysX kan je die spellen blijven draaien, maar je moet mogelijk een optie uitschakelen om het soepel te laten draaien. Je mist dan wat effecten, maar dat heeft geen effect op gameplay.

[Reactie gewijzigd door The Zep Man op 7 april 2025 12:15]

Het zou hilarisch zijn als er zo meteen iemand mee aan de haal gaat en een driver voor AMD kaarten schrijft, met als resultaat dat de oude spellen die niet (goed) meer draaien op de 5000 series van Nvidia ineens beter draaien op AMD kaarten :+ .
En dan waarschijnlijk nog onder Linux ook. Ik zie een paar fanatici dat wel ontwikkelen, zo voor de sport en de lol.
Het is helemaal gebouwd op cuda cores die AMD kaarten niet bevatten, dus ik denk dat het een enorme rewrite zal zijn. Je kan misschien wel een soort translatie laag makkelijker ontwikkelen die het vertaald naar die phidelityFX ofzo of hoe het ook heet bij AMD
CUDA cores zijn niks meer dan wat AMD Stream Processors noemt, Intel heeft zijn eigen variant natuurlijk. Het is gewoon een marketing term van Nvidia.
Volgen mij was dat in begin al eens gebeurt met cuda wrapper bleek ATI toen krachtiger te zijn. Ik niet meer waarin en eaarmee.
NV past can niks zeggende marketing kreten toe.
Waar nv Cg later Cuda
InfiniteFX
ATI Charisma
Die 1st werd goddelijk verklaard en charisma ignored. 9700pro maakte gehakt van nv
ATI werden shader cores steam cores genoemd . Maar ja alleen nV ging hun cuda en sdk zwaar pushen. Dat had ATI laten liggen.
Accepteren cuda cores en stream cores exact dezelfde instructies? Ik heb geen idee of op dit gebied het ook zo werkt als op CPU gebied dat er zoiets is als een x86 instructieset ofzo.

Want er is wel zoiets als CUDA code van wat ik ooit begrepen had wat je niet zomaar op een AMD kaart kan draaien. Er waren vroeger wel meer dingen ook zo op gebied van 3D software en video rendering etc waar je dan perse een Nvidia kaart voor nodig had. Maar of dat dan was door gewoon Nvidia die een software lock had weet ik niet, maar toen der tijd deden ze het in iedergeval voorkomen als in dat AMD kaarten simpelweg gewoon niet de correcte hardware aan boord hadden om dan die CUDA acceleration dingen te draaien

[Reactie gewijzigd door ro8in op 12 april 2025 08:14]

Volgens mij zijn ze grotendeels gelijk. Beide fabrikanten ondersteunen ook OpenCL en DirectCompute, het enige verschil is dat CUDA specifiek voor Nvidia is. AMD lost dit op met ROCM zodat je CUDA applicaties (als ik het goed begrijp) daarmee kan draaien.

Ik draai namelijk zonder problemen bijvoorbeeld Ollama op mijn pc die een AMD kaart heeft. Hetzelfde met stable diffusion.

In het verleden zou het best kunnen zijn dat AMD achterliep hierin, maar ik vermoed dat het tegenwoordig heel dicht tegen elkaar zit. AMD heeft overigens nu nog twee architecturen, RDNA en CDNA. Waar de eerste een focus heeft op gaming en de tweede een focus heeft op compute.
Ja, je moet dan de interne functies die het echte werk doen gaan herschrijven in iets wat op Intel en AMD GPUs uitgevoerd kan worden. Maar dat is nu zeker een stuk makkelijker omdat de interne functionaliteit nu in source code beschikbaar is.

Hoeveel werk dat met zich meebrengt is natuurlijk een ander verhaal.
Flow werkt al heel lang op Intel en AMD kaarten via compute shaders. PhysX zelf draait bijna volledig op de CPU.

De componenten die op de GPU draaien zijn al jaren niet populair meer, en de eerste lichting physics engines lijkt sowieso een beetje aan populariteit te verliezen. Ik gebruik zelf nog PhysX (CPU-only), en de performance is adequaat maar er zijn er inmiddels veel die het veel beter doen, waar je bijna zonder prestatieverlies 10,000 physics objecten in de scène kunt gooien. Met PhysX houd het bij de 2000 wel ongeveer op.

[Reactie gewijzigd door Wolfos op 7 april 2025 11:16]

Het betreft toch (grafische) effecten. Enig idee waarom dit steeds meer op de cpu's plaats vind?
Ik zie physics toch voornamelijk als iets gameplay-gerelateerds, maar het kan inderdaad ook puur grafisch zijn.

Alle collision detection verloopt immers via de physics engine. Dus hoe je personage beweegt, als je een projectiel afvuurt en wie je raakt, etc. Is allemaal physics-gerelateerd. En moet vaak ook synchronizeren met het animatiesysteem, bijvoorbeeld waar een personage z'n benen neer zet als ie op een helling loopt.

Denk ook aan vragen als "staat de speler op de vloer", of "kijk ik naar een deur" - de physics engine weet waar alles is en queries verlopen razendsnel.
Was leuk in Borderlands 2.
Je hebt gameplay physics wat invloed heeft binnen de simulatie. En gfx physics wat dat niet heeft.
Debri schrapnel destructie bullit physics vlieg model.
Is gameplay.
Debri en particles fluid haar cloths is gfx physics.
Gfx debri hoeft niet gesynct in online game. Interactieve debri wel.
Ik kan me nog herinneren dat dit gebruikt werd in borderlands 2 en erg zwaar was om te renderen. Het effect was wel erg gaaf met verschillende vloeistoffen die je kon schieten zoals gif en paars spul. Daarnaast zaten knetters en zandkorrels ook in PhysX, dit kon allemaal ook nog reageren op granaten en explosies. Voor de graphics toen der tijd was dit erg geinig.

Wat ik gemist had is dat er ook cloth simulatie in zat.

YouTube: Borderlands 2 GeForce GTX PhysX Trailer

Je kon toentertijd ook nog in de nvidia controlpanel een videokaart toekennen als physX berekeningen kaart dus je kon een 2e kaart erbij nemen om dit allemaal op high te kunnen draaien maar het sloeg niet echt aan.

[Reactie gewijzigd door valhellis op 7 april 2025 10:19]

Volgens mij kon dit zelfs in de 3dfx tijdperk. Een dedicated videokaart voor Physx naast mijn voDiamond Viper kaart.
Nee! In februari 2006 kwam de Physx kaart van Ageia op de markt en 2 jaar later werd het bedrijf door NVIDIA opgekocht en werd de techniek in de videokaarten verwerkt.

3dfx werd in december 2000 door NVIDIA overgenomen.
Dank je wel voor de opheldering.
Nee intel nam havok over en killed de gpgpu physix HavokFX zodat ATI/AMD en nV geblokt werden. En dus nam nV daarom ageia physx over.
Al tegen actie tegen iNtel.
De reden dat iNtel toen anti gamers hostile take over van havok. Om gpgpu physics tegen te werken. Met Havoc FX was sdk chip maker onafhankelijk. En zou physics in games stuk beter evolueren dan closed nV physx. Want je moet dan fallback hebben kwa physics load voor mainstream cpu.
Physx is een ontwikkeling van Ageia geweest in 2004. Dit bedrijf verkocht toen dedicated physx kaarten voor de berekeningen(PPU). in 2008 is het bedrijf opgekocht door Nvidia en is de hardware functionaliteit later overgezet naar de GPU. Deze waren toen krachtig en universeel genoeg geworden om dit te kunnen doen (zo rond de 9000 tijdperk zo uit mijn hoofd).

Dit is dus allemaal stuk later dan de 3dfx tijdperk. 3dfx is een van de grondleggers geweest voor de GPU. Ironisch genoeg ook overgekocht door Nvidia in 2002.
Klopt.
Erg jammer dat Nvidia Physx heeft overgenomen en dan zo 32-bit ondersteuning laat vallen.
Ik hoop dat we weer terug kunnen naar dedicated Physx kaarten, onafhankelijk van Nvidia die elke vorm van Physx ondersteunt tot het einde der tijd.
Daarnaast hoop ik dat zowel Intel als AMD via de Open Source SDK een implementatie kunnen maken die op hun dedicated hardware draait.
Thanks voor de opheldering.
Toen de PPU uitkwam was ATI al bezig met R520 die dat ook kon. Gpgpu physics. Nv moest shader gen wachten. Havok was bezig met Havok fx.
Wat door intel overname gekilled is. En nv next gen ook gpgpu physic konvdoen heeft nv ageia PhysX overgenomen.
AMD zat dip. Toen beter ging werd physx nv only.
De strijd toen was intel cpu physics vs gpgpu physcs.
En PPU werd oud op toen al mindere node dus naar 2 jaar waren cpu ook goed bij en gpu al helemaal
Idem dito hier, ik bennrecent begonnen met het spelen van oudere spellen ter ontspanning en b.v. Risen heeft op enkele plekken bizar lage framerates, van 60 naar 5 fps. Best wel bizar en niet veel aan te doen. Maar veel spellen eind 2000 hebben deze engine, dus mooi dat dit open source gemaakt, hopelijk komt er ook iets voor de meest recente nVidia kaarten.
Ik wil terug 3D support, dat ze dat eens terug brengen, was veel leuker dan PhysX.
Heb net de nieuwe aurora pro mk2 shortthrow en de 3D weergave is geweldig. Nu wil ik er op 3D gamen maar daarvoor moet ik naar een oude nvidia driver en zelfs een oude versie van windows draaien :')

[Reactie gewijzigd door thibaultvdb op 7 april 2025 11:02]

Dan moet je (blijkbaar) wachten op de volgende ronde "3D hype" :+

Wel sneu dat als het even niet meer hip is, support uit de driver gehaald wordt. Ik weet eigenlijk niet of NVidia iets heeft van features waar je op kunt "stemmen"? Sommige bedrijven doen dat om te zien waar het meeste vraag naar is.
Zo lijkt het wel :')
Met de VR brillen die populairder worden gaan we het nog wel terug krijgen, die spelers willen ook allemaal hun flatscreen games met diepte spelen in de bril.

Er is ergens een tool die 3D support terug toevoegd in de huidige nvidia driver, het noemt 3d fix manager iirc, maar dat heb ik nog niet werkend gekregen.
Zo lijkt het wel :')
Met de VR brillen die populairder worden gaan we het nog wel terug krijgen, die spelers willen ook allemaal hun flatscreen games met diepte spelen in de bril.
Helemaal eens, maar de fanatieke PCVR-spelers (de "allemaal") zijn op één hand te tellen.
Dan heb je toch wel heel veel vingers nodig aan 1 hand..
Of dus ook een AMD/Intel implementatie die oudere games dus ook nog wat extra mogelijkheden dan kan geven op die kaarten.


Om te kunnen reageren moet je ingelogd zijn