CopyTexture::Skylight causing performance problems

For a long time now, Glacier Rebirth has been affected by this “CopyTexture::Skylight” performance issue, bringing the FPS to a value below 90 in the device I’m testing this with.

Processor: AMD Ryzen 9 5950X 16-Core Processor (3.40 GHz)
GPU: NVIDIA GeForce RTX 4090
RAM: 32 GB DDR4 3200 MT/s

This problem is experienced by players and is a major performance clog in Glacier. This project used to be playable at FPS values above 130-140 despite its large terrain and map, but that is currently no longer the case.

Indoor Dynamic Reflections should be disabled in indoor areas in this game, considering that EnvironmentSpecularScale and EnvironmentDiffuseScale are both set to 0. However, the issue persists even in those areas.

Disabling beams, lights, decals, and textures has no impact on this.

Clearing Terrain also has no impact.

Private message contains microprofiler dumps.

Related posts:

A private message is associated with this bug report

6 Likes

What it seems to be is CopyTexture::Skylight for whatever reason seems to be the scope that microprofiler is blaming in the in-engine studio UI.

Whenever I see the actual microprofiler html file, I see that CopyTexture takes 0.00x ms.

Any ideas as to what could be the culprit?

It does seem to be the case that CopyTexture takes nearly no time for Render but is still attributed as the issue under the GPU label.

image
image

I’ve also noticed that after I clear the terrain, delete the decals and textures, and remove the beams in the map, the “CopyTexture” frame time still seems unusually high, but whenever I rejoin the game (with all those things still deleted) the frame time decreases drastically.

1 Like

This is now also causing performance issues on a new project that doesn’t have nearly as many textures, where the triangle count is always below 200k (at graphics level 10) and drawcalls below 200.

10k~ parts total in workspace when this happens. Something is not normal here.

1 Like

Update, for anyone struggling with this:
I haven’t necessarily found an exact explanation as to what this is or why CopyTexture:Skylight or CopyTexture:LightMap appear to consume such a large amount of time per frame, but I did figure out that the best way to reduce this is to lower the amount of parts loaded in at any given time in the scene. It appears that simply using Atomic streaming for Models might not be sufficient in some cases. Changing the streaming mode across a large map to Nonatomic for all map models has massively improved frame time in Glacier Rebirth.

(It does appear to be that occlusion culling does not help with this, I don’t think it’s shadows unless if they’re not being attributed in the triangles performance debug properly, and removing all textures and decals during runtime did not help improve frame time)

Hi, I recently encountered the same issue, and I think I’ve found the cause of the huge CopyTexture:LightMap value. I have a server-side script that updates ClockTime in Lighting, and when I stop the script, CopyTexture:LightMap either disappears or becomes very small. Apparently, with each ClockTime update, this frame overhead increases.
I can’t guarantee that this is 100% the reason, because I don’t always have a high CopyTexture:LightMap value, there are some frames without this load.
In the add-on, I removed the FPS limit, and that’s why my values ​​are so small. I advise everyone to do the same to check even more accurately.


4 Likes