6 ms·
Does this open the door for PhysX acceleration on AMD cards? Why would Nvidia do this from a business point of view?
by bgorman 8y ago
Does this open the door for PhysX acceleration on AMD cards? Why would Nvidia do this from a business point of view?
- pitaj 8y agoMaybe it's just my perception, but fewer and fewer games these days seem to be using PhysX.
- aras_p 8y agoEverything that is made with Unity or UE4 uses PhysX. That said, not that many games use the GPU-accelerated parts of it; for a lot of gameplay physics CPU code path of PhysX works just fine and does not have special hardware requirements.
- pitaj 8y agoYeah the GPU-accelerated part is what I was referring to. Doesn't seem like it makes much of a difference these days.
- KaoruAoiShiho 8y agoI think you're really misunderstanding how this works. The CPU handles pretty much all game logic. It needs to know the position of each car, enemy, bullet, whatever, so it can decide how to respond to things, if a car hits a player it does damage. As a result it's impossible to hand off such calculations to the GPU, so all GPU accelerated physics do is trivial visual-only effects like cloth and water physics or pieces of paper blowing in the wind. Basically anyone expecting GPU accelerated physics that has logical relevance such as physics based destructible environments is expecting too much. In other words GPU accelerated game logic physics was never the promise of PhysX. PhysX focused on making physics really easy and great from a software standpoint, and that has been an outstanding success. The visual-only portion of GPU physics is not really that compelling which is why there isn't huge uptake. There would need to be a revolution in how games work on a fundamental level where basic game logic is calculated on the GPU to make true GPU physics happen. We might see that eventually but not anytime soon.
- kevindqc 8y agoThat doesn't seem right? https://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/GPURigidBodies.html https://docs.nvidia.com/gameworks/content/gameworkslibrary/p... Says: The GPU rigid body feature provides GPU-accelerated implementations of: - Broad Phase - Contact generation - Shape and body management - Constraint solver
- KaoruAoiShiho 8y agoThese are generally only used for the visual effects, you still need these features to make the visual effects look good.
- maccard 8y ago> Broad Phase, Contact generation, Shape and body management, Constraint solver These are absolutely not only used for the visual effects, they are the fundamentals of a physics engine.
- KaoruAoiShiho 8y agoThe physics of the visual effect.
- Danieru 8y agoGPU calculated physics works just fine when results are brought back to the Cpu. Raycasting for game logic is cpu based as you mention because the game logic itself is on the cpu. Yet solvers and the true heavy lifting does work well on gpu. Except, and this is the true reason we see little gpu physics, no one has spare gpu room. Thus cpu side physics wins for most games. Outside specific physics focused games giving up graphics for faster physics is not a profitable trade. I say this as a gamedev myself who has several times made this exact decision.
- Mirioron 8y agoThe biggest problem with GPU physics is that it's a very difficult problem to tackle and you'll run into compatibility issues between the hardware vendors. It'll work on Nvidia hardware and won't work on AMD or vice versa. Many games do have spare GPU room to spare, but since there are no good GPU-accelerated solutions for physics they don't have much of a choice.
- sebazzz 8y agoI am not familiar with PhysX - must you explicitly program with PhysX against the GPU?
- msbarnett 8y agoNo. Most games use it on the CPU, as the GPU accelerated implementation is currently only available on Nvidia cards
- nfg 8y ago> Everything that is made with Unity or UE4 uses PhysX That's not true - UE4 games can be (and are) built against other physics engines.
- twtw 8y agoRe: business point of view See the other link currently on the front page: https://blogs.nvidia.com/blog/2018/12/03/physx-high-fidelity-open-source/ https://blogs.nvidia.com/blog/2018/12/03/physx-high-fidelity.... Gives some ideas of the rationale.
- mtgx 8y agoBecause nobody used it. It's for the same reason Intel open sourced (or at least promised to, last I checked) Thunderbolt.
- ahupp 8y agoPhysX is used in both the Unity and Unreal engines, representing well over 50% of games made.
- Drybones 8y agoThis is not true at all
- ahupp 8y agoWhich part? If you're talking about units sold rather than games made, then sure, the most popular games are often on their own engines. But that's a different measure than "games made". "Unreal Engine 4 uses the PhysX 3.3 physics engine to drive its physical simulation calculations and perform all collision calculations. " https://docs.unrealengine.com/en-us/Engine/Physics https://docs.unrealengine.com/en-us/Engine/Physics "As announced at GDC’14, Unity 5.0 features an upgrade to PhysX 3.3. Let’s give it a closer look." https://blogs.unity3d.com/2014/07/08/high-performance-physics-in-unity-5/ https://blogs.unity3d.com/2014/07/08/high-performance-physic... Most of the stats I can find say unity is 50-60%, and UE is about 10%: https://www.linkedin.com/pulse/unity-vs-unreal-engine-more-confusion-game-nisha-patel/ https://www.linkedin.com/pulse/unity-vs-unreal-engine-more-c... "He said that Unity powers more than 50 percent of mobile games and about half of all PC games." https://venturebeat.com/2017/05/25/why-unity-was-able-to-raise-400-million-at-a-2-6-billion-valuation/ https://venturebeat.com/2017/05/25/why-unity-was-able-to-rai...
- Thaxll 8y agoMost of the time physic is not running on the GPU, it's a CPU thing.
- hackits 8y agoGot into some heated debates with people about physx where from a developer standpoint it was off-loading all calculations to the CPU with the present of a physx GPU. Typically in game engines you need to pause the world and look into the physx simulation to get the object's pos/vel/mass. This causes the physx engine to stop the world to finish it's calculations so crossing the PCI bus becomes more and more expensive. Vast majority of the time, most game engine's to solve this problem just let non interactive objects (cloud's, waves, lighting) to be calculated by the phyx sub-system, and only poking it now and then to prevent the phyx hardware from swamping to the CPU.
- maccard 8y ago> Typically in game engines you need to pause the world and look into the physx simulation to get the object's pos/vel/mass. This causes the physx engine to stop the world to finish it's calculations so crossing the PCI bus becomes more and more expensive. PhysX keeps two copies of the simulation, you read from one while PhysX is updating the other, and then they swap the pointers. You don't cross the PCI bus to get every position/velocity, that info is transferred in bulk at every step.
- sgillen 8y agoFrom a business point of view they can get developers/researchers working with PhysX early. Eventually these developers will convince their employer to shell out for other non free Nvidia products.