Personal computing discussed

Moderators: morphine, SecretSquirrel

 
chuckula
Gold subscriber
Gerbil Jedi
Topic Author
Posts: 1886
Joined: Wed Jan 23, 2008 9:18 pm
Location: Probably where I don't belong.

PhysX Just Went Open Source

Mon Dec 03, 2018 9:39 am

Not April Fool's: https://www.phoronix.com/scan.php?page= ... urce-PhysX

As usual: OMG THANKS AMD!
4770K @ 4.7 GHz; 32GB DDR3-2133; GTX-1080 sold and back to hipster IGP!; 512GB 840 Pro (2x); Fractal Define XL-R2; NZXT Kraken-X60
--Many thanks to the TR Forum for advice in getting it built.
 
NovusBogus
Silver subscriber
Graphmaster Gerbil
Posts: 1314
Joined: Sun Jan 06, 2013 12:37 am

Re: PhysX Just Went Open Source

Mon Dec 03, 2018 10:56 am

BSD license? Holy smoke.

Guess they've finally acknowledged that PhysX didn't catch on as a gaming technology and are hoping that someone else can make better use of it.
 
LostCat
Minister of Gerbil Affairs
Posts: 2005
Joined: Thu Aug 26, 2004 6:18 am
Location: Alphanumeric symbols.

Re: PhysX Just Went Open Source

Mon Dec 03, 2018 11:42 am

chuckula wrote:
Not April Fool's: https://www.phoronix.com/scan.php?page= ... urce-PhysX

As usual: OMG THANKS AMD!

I mean you say that, but https://gpuopen.com/

...as far as physics engines go MS owns Havok now and I haven't seen all that many PhysX games released anymore so I'm not sure it really makes a difference.
Meow.
 
DragonDaddyBear
Gerbil Elite
Posts: 785
Joined: Fri Jan 30, 2009 8:01 am

Re: PhysX Just Went Open Source

Mon Dec 03, 2018 12:12 pm

I hope that changes now that it's open.

Is this something that developers can just take the existing tool sets out there and use or is there more work to be done?
 
Heiwashin
Maximum Gerbil
Posts: 4575
Joined: Wed Dec 13, 2006 1:21 pm
Location: Denham Springs, LA

Re: PhysX Just Went Open Source

Mon Dec 03, 2018 12:21 pm

Maybe unity can use it to fix their weird physics they can't seem to get right.
Looking for Knowledge wrote:
When drunk.....
I want to have sex, but find I am more likely to be shot down than when I am sober.
 
Concupiscence
Gerbil Elite
Posts: 587
Joined: Tue Sep 25, 2012 7:58 am
Location: Dallas area, Texas, USA

Re: PhysX Just Went Open Source

Mon Dec 03, 2018 1:05 pm

I mean, at the very least it'd be nice to see the CPU-driven portion of PhysX rewritten to use SIMD instead of grody old x87. Whether that's possible without fundamentally changing behavior for applications relying on it remains to be seen.
Workstation: Core i9 7940x, 32 gigs RAM, Geforce GTX 1070 Ti, Windows 10 Pro
Play: Ryzen 7 1700, 16 gigs RAM, Geforce GTX Titan X (Maxwell), Xubuntu 18.04
 
nuiiii
Gerbil
Posts: 10
Joined: Wed Nov 28, 2018 3:41 pm
Location: Washington DC

Re: PhysX Just Went Open Source

Mon Dec 03, 2018 4:35 pm

I don`t care much about PhysX much, I play old-school games but sometimes it`s really nice to play something heavy but cool and detalized, what PhysX supporting game would you advise to play?
Probably some interesting projects may appear now that`s PhysX is open
 
Concupiscence
Gerbil Elite
Posts: 587
Joined: Tue Sep 25, 2012 7:58 am
Location: Dallas area, Texas, USA

Re: PhysX Just Went Open Source

Mon Dec 03, 2018 4:41 pm

nuiiii wrote:
I don`t care much about PhysX much, I play old-school games but sometimes it`s really nice to play something heavy but cool and detalized, what PhysX supporting game would you advise to play?
Probably some interesting projects may appear now that`s PhysX is open


I was pretty impressed by the PhysX effects in Cryostasis. Unreal Tournament 3 and Batman: Arkham Asylum both benefited from it as well. It was never a vital feature, but the right game could take good advantage of it.
Workstation: Core i9 7940x, 32 gigs RAM, Geforce GTX 1070 Ti, Windows 10 Pro
Play: Ryzen 7 1700, 16 gigs RAM, Geforce GTX Titan X (Maxwell), Xubuntu 18.04
 
Ryu Connor
Gold subscriber
Global Moderator
Posts: 4324
Joined: Thu Dec 27, 2001 7:00 pm
Location: Marietta, GA
Contact:

Re: PhysX Just Went Open Source

Thu Dec 06, 2018 6:33 pm

Concupiscence wrote:
I mean, at the very least it'd be nice to see the CPU-driven portion of PhysX rewritten to use SIMD instead of grody old x87. Whether that's possible without fundamentally changing behavior for applications relying on it remains to be seen.


Already is in modern versions.

One of the developers who worked on PhysX during the era it used x87 also has a bone to pick with his code being called unoptimized. His point of view is worth a read.

http://www.codercorner.com/blog/?p=1129

Also worth noting that PhysX became part of the Unreal Engine. It's still used today with UE4. So it's not as dead as people assume.

https://docs.unrealengine.com/en-us/Engine/Physics
https://wiki.unrealengine.com/PhysX,_In ... ur_Project
All of my written content here on TR does not represent or reflect the views of my employer or any reasonable human being. All content and actions are my own.
 
DoomGuy64
Gerbil
Posts: 26
Joined: Mon Jun 08, 2015 4:09 pm

Re: PhysX Just Went Open Source

Sun Dec 09, 2018 3:07 pm

I think the expose article is more worth a read, especially after that developer's POV blog.
https://www.realworldtech.com/physx87/
Several point I think are pertinent.
*PhysX was designed to run on a 32-bit 500 Mhz MIPS CPU, and was single precision by nature. *IMO, the PPU was like having a Raspberry Pi in your PC as a compute off-loader.
*All CPUs being used during the original release period supported SSE2, let alone SSE, while PhysX was single precision code that ran extended precision x87 on CPU.
*They could use packed, single precision SSE for PhysX. Each instruction would execute up to 4 SIMD operations per cycle, rather than just one scalar operation.
*Nvidia had PhysX running on consoles using the AltiVec extensions for PPC, which are very similar to SSE.
*Nvidia has clarified that CPU PhysX is by default single threaded and multi-threading is left to the developer.

Points from the blog article:
*The developer admits merely enabling SSE in the compiler without code optimization would have instantly given 20% performance, then claims there was no point in using it and support would cause compatibility issues. *Just imagine the performance here with multi-threading enabled, even without code optimization.
*The article claims the original version didn't support multi-threading, but I swear multi-threading was working before Nvidia bought out Ageia. I've read some claims saying Ageia CPU physx was faster in some games, simply because those games supported multi-threading. So even if multi-threading wasn't supported early on, it still was eventually supported, but developers were never encouraged to use it.

Other points:
*The only CPUs I can think of not supporting SSE2 was the Athlon XP and Pentium 3, which nobody was using for Vista and DX10 gaming. I think both still supported SSE.
*Nvidia quickly ported it to CUDA, where it not only saw a performance increase, but barely reduced graphics performance, proving the overhead was minimal, and it was easy to optimize.
**The CUDA version did not support ALL of the PhysX effects compared to the PPU, yet still ran fine.
*The console version was optimized and used multi-threading way before the PC.
*The newest version of PhysX supposedly runs fine on CPUs.
*Older versions of PhysX games are not compatible with the new PhysX and require the legacy installer, virtually locking out any performance increases for older games.
*The official excuses for PhsyX performance have all been extremely shady, with points easily made against them. The best one was probably multi-threading being left to developers.
*Since the latest version officially supports SSE2 and multi-threading, it no longer has any point in being a vendor lock-in feature, and has been open sourced to keep developers.

IMO, for open source PhysX to be useful, someone has to backport the optimizations for physx2 compatibility. AFAIK, it's not currently possible to install phsyx3 and run those older games with the speed improvements.
 
Chrispy_
Maximum Gerbil
Posts: 4481
Joined: Fri Apr 09, 2004 3:49 pm
Location: Europe, most frequently London.

Re: PhysX Just Went Open Source

Sun Dec 09, 2018 5:16 pm

Meh, by vendor-locking it all these years it has been abandoned by everyone relevant.

Making it open source is just a way for Nvidia to claw back some goodwill from something that is otherwise obsolete and useless to them.
Congratulations, you've noticed that this year's signature is based on outdated internet memes; CLICK HERE NOW to experience this unforgettable phenomenon. This sentence is just filler and as irrelevant as my signature.
 
synthtel2
Gold subscriber
Gerbil Elite
Posts: 848
Joined: Mon Nov 16, 2015 10:30 am

Re: PhysX Just Went Open Source

Sun Dec 09, 2018 6:02 pm

Unity and Unreal both use PhysX. It's not dead, irrelevant, or anything like that.

Kanter and Terdiman can both be mostly right. Terdiman's explanation scans perfectly pre-Nvidia, not so much by the time Kanter wrote that article.

DoomGuy64 wrote:
*The developer admits merely enabling SSE in the compiler without code optimization would have instantly given 20% performance, then claims there was no point in using it and support would cause compatibility issues.

I think that's the most solid point. I don't doubt that there were some issues with that, but Nvidia has and had the resources to sort that kind of problem out in short order if they cared to, and it seems very unlikely that they couldn't get any serious gains out of SSE without a major rewrite. That said, you're misquoting him - the relevant text is "At the time, with the available compiler, we never saw more than 20% in the very best of case. And most of the time, for actual scenes running in actual games, we saw virtually no gains at all."
 
DoomGuy64
Gerbil
Posts: 26
Joined: Mon Jun 08, 2015 4:09 pm

Re: PhysX Just Went Open Source

Sun Dec 09, 2018 8:20 pm

At the time, with the available compiler, we never saw more than 20% in the very best of case. And most of the time, for actual scenes running in actual games, we saw virtually no gains at all.

See, here's the thing. I don't believe him. In fact, I don't believe anything he's said in general, because most of it has been questionable.
The thing about SSE2 not being mainstream was a lie. Everyone was using at minimum a p4 by the time PhysX came out, while Athlon 64's and even the intel core was out afaik.
Difficulty of coding for SSE seems suspect. I mean, they were smart enough to code for MIPS, which isn't a widely used architecture. SSE was pretty mainstream at the time, and programmers who make claims of difficulty or lack of knowledge are just shady. Hell, why not just compile flag for SSE, or even MMX, since it did improve performance?
The performance of that outdated 500Mhz MIPS chip seems suspect, especially after CUDA gave it a massive performance boost without making games unplayable. The PPU radically slowed games down when used, and while the pcie 1x bus likely was a bottleneck, I think the MIPS chip was also slow.
He mentioned that modern compilers have improved, giving a potential out for performance of the old "unoptimized" code being recompiled on modern compilers.
There never has been any public proof of this mythical old code being compiled for SSE not having real world performance gains. It's all conjecture. We only know that there was a 20% potential gain for unoptimized single threaded physx, and the CPU tested for this is not mentioned. (probably a pentium4 of unknown generation.) Simply put, if an older p4 saw a potential 20% gain, how much would an Athlon 64 have seen? An Athlon 64x2 with multi-threading? I can't trust his excuses, since most of them are void of evidence and laced with contradictory statements, while the PPU was questionably a scam from day one. If it was, there's no way he would fully admit it, and these excuses seem to be just that. Something to justify their business model, which was vendor lock-in from day one. PhysX was double dipping profit from both hardware and software, and that's why Nvidia bought them out. If not for Nvidia, and the later console and CPU updates, it would never have gone anywhere. Once they saw developers ignoring their middleware, being bought out was probably the only plan to stay in business, and it worked.
 
synthtel2
Gold subscriber
Gerbil Elite
Posts: 848
Joined: Mon Nov 16, 2015 10:30 am

Re: PhysX Just Went Open Source

Sun Dec 09, 2018 9:45 pm

DoomGuy64 wrote:
The thing about SSE2 not being mainstream was a lie. Everyone was using at minimum a p4 by the time PhysX came out, while Athlon 64's and even the intel core was out afaik.
The history I can find is surprisingly sparse, but Ageia bought NovodeX in 2004 and it sounds like the development of this tech goes significantly further back than that. Let's say it was mid-2003. AMD hadn't released a CPU supporting SSE2 yet, and a whole lot of Pentium IIIs that didn't support SSE2 were still in circulation. SSE was a lot less obnoxious to use than x87 when it would work, but wasn't really feature-complete. Now say you're a programmer who is already familiar with x87's jankiness, and you don't want the overhead of having multiple ways of doing things just yet. What's the obvious choice here?

DoomGuy64 wrote:
Difficulty of coding for SSE seems suspect. I mean, they were smart enough to code for MIPS, which isn't a widely used architecture. SSE was pretty mainstream at the time, and programmers who make claims of difficulty or lack of knowledge are just shady. Hell, why not just compile flag for SSE, or even MMX, since it did improve performance?
It isn't "can we do this?" so much as "do we have an appropriate business reason to put in the time to do this?" The business reason for MIPS would have been obvious the moment it came up. SSE, less so.

DoomGuy64 wrote:
The performance of that outdated 500Mhz MIPS chip seems suspect, especially after CUDA gave it a massive performance boost without making games unplayable. The PPU radically slowed games down when used, and while the pcie 1x bus likely was a bottleneck, I think the MIPS chip was also slow.
The MIPS chip was definitely slow. It was a lot more parallel than a CPU, of course, but it was on 130nm when 65nm was the usual. There's only so much you can do with that. It did still have a fairly good reason to exist in that it could free up the CPU to do other work. Having more threads than we know what to do with is a recent development.

DoomGuy64 wrote:
He mentioned that modern compilers have improved, giving a potential out for performance of the old "unoptimized" code being recompiled on modern compilers.
There never has been any public proof of this mythical old code being compiled for SSE not having real world performance gains. It's all conjecture. We only know that there was a 20% potential gain for unoptimized single threaded physx, and the CPU tested for this is not mentioned. (probably a pentium4 of unknown generation.) Simply put, if an older p4 saw a potential 20% gain, how much would an Athlon 64 have seen? An Athlon 64x2 with multi-threading?
Back then, auto-vectorizers really were bad. It isn't tough to believe. +20% in some particular test case doesn't necessarily mean you'll see any gain at all in the real world (or even avoid a performance regression).

This is necessarily all conjecture. What kind of proof would you accept that could be reasonably expected to exist? What numbers would you expect to see that he would have no way of fudging if he were so inclined? If you start by assuming he's lying, then of course nothing else he says will be believable.

DoomGuy64 wrote:
I can't trust his excuses, since most of them are void of evidence and laced with contradictory statements, while the PPU was questionably a scam from day one. If it was, there's no way he would fully admit it, and these excuses seem to be just that. Something to justify their business model, which was vendor lock-in from day one.
I don't disagree with most of your conclusions, I just think you can still reach those conclusions while assuming his account of it is true to his own perception.
 
Ryu Connor
Gold subscriber
Global Moderator
Posts: 4324
Joined: Thu Dec 27, 2001 7:00 pm
Location: Marietta, GA
Contact:

Re: PhysX Just Went Open Source

Mon Dec 10, 2018 12:07 am

Doom isn't a programmer, much less a low level one, and it strikes me that he lacks the expertise to add an educated opinion.
All of my written content here on TR does not represent or reflect the views of my employer or any reasonable human being. All content and actions are my own.
 
NoOne ButMe
Gerbil Elite
Posts: 706
Joined: Fri May 15, 2015 9:31 pm

Re: PhysX Just Went Open Source

Mon Dec 10, 2018 12:57 am

One of the developers who worked on PhysX during the era it used x87 also has a bone to pick with his code being called unoptimized. His point of view is worth a read.


If this is talking about dives such as was done at RWT... Uh. The big point (as I understand it) of that was that Nvidia was touting all this extra performance when optimized for the GPU compared to the CPU. When that extra performance would have been delivered by optimizing on the CPU as well.

But maybe there were other articles discussing it.

Who is online

Users browsing this forum: No registered users and 2 guests