Would it be possible to enable GPU support (for Nvidia cards) through the code somewhere?

#Some thoughts on this for you

I had the following experience, using a GTX 680 with UE3

  • when I had a GTX480, it ran fine with GPU physics enabled, performed better than CPU
  • When that computer died and I got a GTX 680 with new computer, it actually performed much worse with GPU enabled, using the same exact project, I was totally confused as to why my GTX 480 was outperforming my GTX 680… until I disabled GPU support via UDK UE3 config settings.
  • After I disabled GPU specific support in config settings, my GTX 680 vastly outperformed my GTX 480. I was quite surprised.

Summary:

It seems like the most recent Nvidia cards are designed to work in optimized fashion and setting them to run specifically on GPU is unnecessary, and in my UE3 experience actually reduced performance.

I dont know if everyone has had my experience, or anyone else, but I can attest to it since I bought a GTX 680 specifically to increase performance and was very very confused why my 480 seemed to be doing better… until I disabled the GPU acceleration in UE3 settings.

Then of course my 680 performed better and does to this day in UE4 :slight_smile:

#NVidia Control Panel

Assuming you have an Nvidia card, have you downloaded the Nvidia Control Panel? You can control a lot of settings for any game that way!

Rama

I know that the current implementation of Apex cloth and destruction is using the CPU for computing it’s physics, and I understand the need for this (so it runs well on a variety of different setups)…but I was wondering if it would be possible to enable GPU support (for Nvidia cards) through the code somewhere?

The level of destruction I’m attempting in my level just isn’t able to run smoothly enough using only the CPU and it’s pretty fundamental to the (planned) gameplay.

I’m actually an audio designer with very little coding experience (I’m trying to learn though!), so I could really use some help here :stuck_out_tongue: Would enabling the GPU support be something that required changing the actual source code for the Unreal Engine, and recompiling the whole thing? Or would I be able to do it without messing with the source.

Thankyou for the help!,
-Aaron

I had heard that even if you forced GPU processing of Physx in the control panel, UE4 would still run on CPU because of something they built into the code. I’ve tried toggling it on and off (and changing other features with Nvidia inspector and in the UE4 .ini files) but noticed no difference :X

Thanks for the ideas though!

Hi Malrick2,

There isn’t a way to enable Destruction or cloth to be enabled to run on the GPU. I spoke with one of our developers who informed me that PhsyX is not using rigid body support for simulation on the GPU. So in this instance, you would not see any improvement with your destruction meshes.

There are plans for improvement of these systems on our UE4 roadmap on Trello though.

It is good to remember that with Destruction meshes using a combination of elements can get you some great results. By having your Destruction Mesh use multiple depth layers, debris timeout, particle effects, and particle meshes you can get some great looking effects.

Ok, thankyou for the answer! I’ve gotten it to look/run pretty well now, my only problem is that nearly every mesh in my entire scene is destructible, so performance can get messy at times. I was also wondering if there was any way to have the debris crumble into a particle effects (like little pebbles with collision) when they timeout?

Would it be possible to add rigid body support to the PhysX by altering the source code myself? I’m also interested into getting the realtime stress solver working.

Thanks again,
-Aaron

Again, speaking further with one of the developers the thing is that PhysX does have rigid body support it’s just not supported in UE4. He also says that you would really need a lot of them to make it worthwhile.

By using their Gameworks plugin you may get more out of it but this would require you to be a developer and license their tech. This is something you would need to research further in their documentation and what it really is capable of handling. Unfortunately it’s not a simple check box in UE4.

I was also wondering if there was any
way to have the debris crumble into a
particle effects (like little pebbles
with collision) when they timeout?

This can be done by having a mesh particle spawn when destroyed. There is a slot for the DM that you can plug in a particle system that spawns.

Ok, cool. I am registered to use the Gameworks content (PhysX SDK, Apex SDK,) from https://developer.nvidia.com/ . I’m just too new to programming to make very good use of them (Aside from the 3ds/Maya plugins).

Thanks again!