NVIDIA GameWorks Integration

“VXGI requires a NVIDIA GeForce 900-series GPUs”, to be sure : does it mean that it’s not working at all on AMD GPU ?

Think i had the answer to question a while back but completely forgot.

Pretty sure that’s what it means, hence not super happy to include it on these merges (I prefer having things that people can actually use on commercial games). You can run VXAO on lesser hw (probably also on AMD?), but not the VXGI. Afaik there’s not a single (well known) game out there using VXGI but there are few AAA games that have optional VXAO mode.

There are use cases for Nvidia only stuff if you do visualization / presentations on fixed hw though.

If I’m not super mistaken, VXGI2 is + only. ( ie nvidia 900+, though the… 780 ti? and another 7-series card are the exception. )
But VXGI 1 is works on both, and only relies on the proper DirectX support. Though it has optimizations specifically for nvidia in the settings. (Material settings, I think? It’s been a while.)

To echo what you’ve said though. I’ve seen VXAO only in Tomb Raider(2, atleast.), I think.
Never seen or heard of a full on VXGI implementation, and with the spectre of DXR/RTX looming overhead I suspect anyone interested in eating the performance cost will jump straight to DXR/RTX.

Ah yes, we were talking about VXGI 2 (at least I was assuming so). VXGI (1) “ran” on my old GTX670 but obviously it was totally unusable there as it couldn’t run it at acceptable framerates :smiley:

Thanks for the answer. I understood.

i like your combined Ue4 Branches ive had nothing but problem free branches, I was wondering do you have a branch with just Flex, hair and Blast for 4.21 ? And i understand that i need vs 2017 will vs 2017 community work or is there a specific vs 2017 that you use? thank you for taking the time to make these branches.

or can i remove or disable the extra integrations. If so how?

@porckchop There’s no FleX atm for 4.21, it’s pretty big task porting it and I don’t currently have enough spare time to tackle it (+ it takes forever to build any kind of UE4 changes on my ancient CPU). I’ll probably look into FleX integration later on unless Nvidia gets it done before (which I’d hope as it has lots of changes related to new physics structure on 4.21 and would be best if they sorted them out knowing their design better).

To get rid of extra integrations, easiest way to do it atm is to start with fresh 4.21.0-release based branch and then cherry-pick only the commits related to the techs you need from my 4.21-GameWorks branch in order from oldest commit to newest. In case it would mean getting Blast first, then Blast Fix, then HairWorks, then HairWorks fix.You may get few conflicts as the newer commits expect there to be something between for some files but that’s easy fix using any common git compatible mergetool.

Any VS2017 version will work, as long as it has latest updates and c++ build tools installed. I use community.

Cool so i guess my project stops until nvidia fixes flex, wow that bytes. well thanks than. BTW. is vs2017 another big instal? i mean is it going to instal like 30gb of stuff to my c: ? if so is there anyway around that i mean i have like 6 gb left in my c: i just want to know. Thanks again.

I was able to merge 's 4.19 GameWorks branch with WaveWorks. Everything seems to work except there’s a strange I haven’t solved yet with some of the particle rendering as untextured square meshes.

I wish flex, blast and hair could be used as standard plugins in the launcher version of ue4. And it looks like Flex is going to be a while till theres an update. is like waiting for an organ donor to appear :frowning:

Is there something preventing you from just using UE 4.20?

has a perfectly functioning 4.20 gameworks branch with FleX, and the rest. (With the exception of VXGI) : https://github//UnrealEngine/tree/4.20-GameWorks

Hi VXGIers,

I was wondering, are there any reference images available of someone loading the user content maps examples like the cornell box or the SciFi highway that come with that bulid to be used as a baseline?

I managed to build the 4.21 VXGI UE version successfully but it seems that VXGI still doesnt work me properly (visually), see image attached. I followed the FAQ on github and made sure all the console variables are set to what they should be.

Now I would like to double check how VXGI would look if it is working correctly.

Many thanks for posting those if possible.

Yeah but the reason for me upgrading to 4.21 were the replication issues in 4.20 as of now the only bug ive noticed in 4.21 is when using copy paste in blueprint you have to use ctrl+C and ctrl+V to work otherwise copy/paste from the context menu doesnt work, but i could live with that. Also 4.21 has joint limiting which works wonders on my characters fullbody ik So im forced to wait.:frowning:

The Cornell Box scene should look like the attached picture (with different lighting, depending on the mode). So your rendering seems to have VXGI working, but somehow the geometry is incorrect.

Hi @. Any ideas on how Nvidia open-sourcing could potentially help the integrations with UE4? Let us hear your comments. Thank you for you nice work!

Hello, I found that VXGI seems to have some problems in the material of version 4.21.

In version 4.21, when VXGI voxelization is enabled by default, the occupancy of default maps will increase from 3 to 7 directly, which seems not to be the case in previous versions?

directly led to the error reporting of most materials, because the material balls increased from the default 2 maps of 4.19 to 7 directly, many materials can not work properly, which is not the problem in 4.19 version?

I haven’t used 4.21 before. I compared the official version with VXGI 4.21. The number of maps in official version 4.21 increased from 2 to 3, but the VXGI version increased directly from 3 to 7, which is strange compared with version 4.19.

The error report I received is exactly the same as Kristof Dely. It is an increase in texture usage after the VXGI voxelization of materials is turned on, and then material errors.

Finally, I found two other problems. The first is that VXGI 4.21 can easily cause engine crash when compiling shaders. The crashed files are usually grid shader files.

Second, no matter what the settings are, VXGI 4.21 always compiles a certain amount of shaders repeatedly every time the project is opened. Do they seem unable to be cached?

Hello, I also encountered the same problem as you. I compared the various versions in detail and found that should be the problem of VXGI voxel shader. He always compiled a certain amount of shaders repeatedly and could not be cached, and the default number of texture maps that turned on VXGI voxel will increase from 3 to 7, so most of them use VXGI voxel shader. Material with a large number of textures will report errors directly, and the grid material shader file will often cause engine crash due to errors.

Have you found a specific solution?

I haven’t dug into the code yet but I wonder if it is quick enough to port VXGI 1 from 4.18 into 4.21. I noticed VXGI 1 is compatible with all gpus, and in my testing it was just easier to get playable fps from it without too many artifacts going on. If I get the time I will try to merge/replace VXGI2 with VXGI 1 in the 4.21 Gameworks fork. If anyone else has any luck just let me know.

For 3.4, that’s largely irrelevant because we already have full sources of it on UE4 main repo. But for 4.0, it would allow now us to port the 3.4 from to 4.0 before Epic does it (if they do it at all) and share the integration as UE4 fork. How feasible is in practice is another thing but we’ll see how different the new API is once 4.0 gets out later on month.

In past you couldn’t openly share tech specifically licensed to you as a Nvidia developer ( still applies to proprietary tech from Nvidia, just not to anymore). For example I’ve in past updated UE4’s 3.4.0 to some later version of 3.4.1 manually but I couldn’t share the code on my public UE4 fork as it would have clashed with the license Nvidia gave me back then. Now that limitation doesn’t exist.