Luoshuang's GPULightmass

Are you using an Nvidia GPU? Are you using the latest drivers?.

I have a Geforce gtx 1080 installed. How do I check for the latest driver updates?

Nvidia Cuda 9.1.84 Driver.

Just did some Tests in the 4.19 Version and it works pretty well! Rendered this small studio apartment:

  • Time: 25 minutes
  • GPU: 1080 Ti OC
  • Num Indirect Lighting Bounces: 10
  • Lighting: Just a SkyLight with a simple white cubemap
  • Lightmaps: Walls/Floor/Ceiling 4096, Windows 2048, Table 512

For some reason (“Failed to send back log file through Swarm!”) my other PC’s stop just right before mapping process.
Seems to be some weird Network/Switch problem because it worked for one build but then failed all the time.

Can it use multiple GPU’s in the same system? (no SLI)

Thanks Luo!

You need to update, that’s pretty old. The question has already been asked in the thread.

I made a script that will automatically download and install GPULightmass on your binary installation folder, perform a batch of checks to avoid issues (like nvidia driver version and TdrDelay), and allow to change GPU bake quality among fast, medium, high, extreme, without the need to restart Unreal.

If it helps someone, just give me a “Like” below.

It’s currently working with the latest engine version (4.24.1). If you need it to work with a previous one, just replace UnrealEngineVersion variable in LightmassConfiguration.bat to the version you need (use only 4.xx notation, do not use 4.xx.yy here).

UPDATE 3/1/2020: Script got updated to 4.24.1

UPDATE 12/11/2018: Now updated to work with 4.21 (Unified Settings). Allows to chage settings on the fly between different BaseLightmap.ini configurations.

Now on : https://.com/sgeraldes/LightmassConfiguration/

DIRECT DOWNLOAD to the latest version: LightmassConfiguration.zip

Instructions:

  1. unzip LightmassConfiguration.zip to any folder (empty folder is better).
  2. double click the .bat file and follow the instructions

What it does:

  • The script will download GPU lightmass 4.20.2 from the OP into the same folder, backup CPU Lightmass for you, and install GPU on your choosen quality level.
  • It features an undo or “Restore CPU Lightmass” option.
  • On-the-fly switch of GPU Lightmass with UnrealEd running (no need to restart unreal).
  • It works with 4.21, but can easily be adapted for 4.20x and 4.19.x if needed by adjusting a few parameters inside the file (just edit with Notepad and change UnrealVersion variable to 4.20 or 4.19.

What it does not:

  • Brew you some coffee

Requirements:

  • Windows 10 (not tested in earlier versions, may work but no guarantees)
  • Admin privileges

The script has the following features:

  1. Show you the version of Nvidia drivers running (and any other display driver that’s running, i.e.: Intel HD) and warn if not sufficient
  2. Check if you have TDR settings as recommended, IF NOT: the script will ask you to do the changes for you (optional)
  3. Allows changing GPU Lightmass quality settings (fast preview, medium, high-ultra, extreme) without needing to restart unreal.
  4. Backup CPU lightmass for you and give you the option to go restore it later
  5. It will override BaseLightmass.ini on your Unreal folder (it will first backup in the zip archive the version you have and allow to restore at will).
  6. Checks if GPU Lightmass is installed, if not…
  • Download the latest version of GPU Lightmass for you from 's links

  • Download 7Z.exe to quickly backup and perform decompression of the files in the archives

  • Finds the installation directory of Unreal, and unzip the files there according to the quality you select (will prompt you for it)

  1. If UnrealEd is running, the script will disable the option to change GPU and CPU lightmass as it needs to access files that are in use to do so.

Please note: The script will give an error while copying when trying to change the quality settings with Unreal Ed running. That’s perfectly fine, the file is just been copied over to be sure it remains the same. I guess I could just copy GPULightmassKernel.dll instead of the whole bunch, but I just think it works as-is just fine. The copy of a single will fail but GPU Lightmass will work the same.

Also note: the script can’t change from CPU to GPU lightmass while the Unreal Editor is running, so the script will check for that and disable the option accordingly.

The only file that has the changes for quality, and the only file that is in any way different between the different packs, is GPULightmassKernel.dll (I did a binary compare of each file to be sure).

Screenshot:
[SPOILER]


[/SPOILER] [HR][/HR]UPDATE 12/11/2018: New Version 0.3.2. Updated to work with UnrealEd 4.21 (Unified Settings). Allows to chage settings on the fly between different BaseLightmap.ini configurations.
UPDATE 09/23/2018: Version 0.3.1 It now works with UnrealEd 4.20.3 and GPU Lightmass Unified Settings. Also created a menu to change Unified Settings quality choosing from the different presets. Fixed a bug with backup of CPU Lightmass that may not keep folder structure in the zip archive.
UPDATE 09/22/2018: It currently works with up-to 4.20.2 as binary distributions for GPU Lightmass 4.20.3 are not available. The installer doesn’t work either with Unified Settings, so I’m working on a new installer to work exclusively with it.
UPDATE 08/23/2018 v0.2: Modified to allow easier updates of the engine. Fixed some bugs. better detection of some parameters and added a fail-safe in case it fails.TDR settings now in decimal instead of hexa .
UPDATE 08/23/2018 v0.2.1: The script now actually checks for driver version and warns the user if the driver does not meet the requirement.

6 Likes

I have the same issue. I tried on a swarm with 4 workstations, they all worked in parallel until the last bit and failed to sync. The single workstation took the same time to render as when it was alone. I was under the impression it was some network/firewall issue also but they all communicate properly.

today 4.20.2 is update …lol

I just had a look at the log file and it says: “A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)”

UPDATE: After using “Verify” in the Epic Games Launcher (resets to CPU) and immigrating the GPU files again its working now!
I CAN’T BELIEVE HOW FAST IT IS!! I hope it will still be working after a restart of UE or some other action that might mess it up again…

Yeap. Same error. Now I wonder if it’s related to this version. I rolled back to CPU and had the same problem. Seems it’s not related to GPULightmass. There was a big on 4.20 which they left out the swarm coordinator executable out of the build. I remember I copied the file from 4.19 and thought “hey, it worked” to find out this error, so I went back to 4.19.

UPDATE: Verifying worked! Thanks, @SiLiUSD. Seems like I was still using the old SwarmCoordinator. Updated my script to account for this changes also. Now back to test if Swarm on GPU works.

Just updated drivers for 1080. Helped to get me further along, but I’, still getting the timeout error message. Does the TDRDelay setting need to be changed?

That’s exactly where it helps. Try using the script and let me know if it works.

I’m buying a nvidia card for this, Would you recommend 1080ti oc or titian Xp? Or should I wait for the RTX series which will release next month? I have concern if RTX is compatible? Appreciate to any advises

Can anyone suggest a display card for this GPU lightmass script?

I googled stuff like graphics card for GPU rendering but most of them are about vray. And the rest is about PUBG…

I’ve uploaded 4.20.2 version. Also, support for Sparse Volume Lighting Samples should have been recovered in 4.20.2. Let me know if it doesnt work.

For video card recommendation, I would suggest waiting for RTX.

Are the RTX going to perform much better? I get how they advertise the real time raytracing but does that mean they are also good for regular raytracing?

Oh and I just added another GPU to my system and it seems to use just one of them. Is there a way of choosing which GPU is used for the calculation (other than just connect the monitors to the other one). Or maybe even use both (without SLI)?

Glad it worked out! It’s still working for me :smiley:

Well, RTX series is able to pull of realtime raytracing thanks to 10x faster raytracing than 10xx series :wink:
RTX support in DX12 should be also helpful here.

I wonder, Turing architectures utilizes Tensor cores for denoising the same as Volta cards used to?

after changing GPU lightmass settings a couple of times from Medium to High, for example, I get this error at the beginning of the building process.

<None> === Lightmass crashed: ===
Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:c:\ue4-gpulightmassintegration\engine\source\runtime\core\public\Containers/Array.h] [Line: 611]
Array index out of bounds: 8 from an array of size 8

0x00007ffbafd6a388 KERNELBASE.dll!UnknownFunction ]
0x00007ffb09cd44c0 UnrealLightmass-ApplicationCore.dll!UnknownFunction ]
0x00007ffb04239a5c UnrealLightmass-Core.dll!UnknownFunction ]
0x00007ffb041cc55d UnrealLightmass-Core.dll!UnknownFunction ]
0x00007ff65608ef70 UnrealLightmass.exe!UnknownFunction ]
0x00007ff6560974ef UnrealLightmass.exe!UnknownFunction ]
0x00007ff6560ed0ff UnrealLightmass.exe!UnknownFunction ]
0x00007ff65609ea4c UnrealLightmass.exe!UnknownFunction ]
0x00007ff6560c1c22 UnrealLightmass.exe!UnknownFunction ]
0x00007ff6560e33c7 UnrealLightmass.exe!UnknownFunction ]
0x00007ff65617a858 UnrealLightmass.exe!UnknownFunction ]
0x00007ffbb04d3034 KERNEL32.DLL!UnknownFunction ]
0x00007ffbb2eb1431 ntdll.dll!UnknownFunction ]

What’s that?
Please help

I had a similar problem once. Maybe some files are still write protected if UE (or the launcher) is still in use?

  1. Remove the Binaries & Config folders (with the GPU lightmass alterations) from the Unreal directory.
  2. Use Unreal to install the original code (use the Verify option in the Launch Dropdown).
  3. Copy the newly generated Binaries & Config folders to a backup location (in case this error returns)
  4. Paste the chosen GPUlightmass folder (medium/high etc) to the correct position.

It worked after that and thanks to 3, the next time an error happens OR you need the standard Lightmass for some reason, you can easily put back the original code (much faster than 2)

Hey bud, just checked in 4.20.2 here and it looks like sparse volume lighting samples are working great.

I have noticed though that it’s not automatically feeding emissive materials into lightmass any more like it did on 4.19. Is there a way to change this behaviour to force it to automatically do this without needing to set the ‘use emissive for static lighting’ bool on the mesh?
Thanks for the great work on this!!