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.
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.
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.
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.
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.
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.