Facepunch / garrysmod-issues

Garry's Mod issue tracker
141 stars 56 forks source link

Crash to Desktop Upon Map Rendering #5638

Closed rmod8 closed 5 months ago

rmod8 commented 9 months ago

Details

I'm working on a new map which uses multiple high-polygon models for the 3D Skybox. Testing earlier during the project lead with no problems besides a hit to the framerate. After 2 days of brushwork on the main map, I compiled with the 3D skybox and lead to a crash. Compiling without the models leads to a working map, but compiling with the 3D Skybox models leads to an immediate crash, no dialog or anything. The dump indicates the process is trying to access memory it does not have permission to access.

The map compiles properlly with no leaks or any budget issues.

I am using Slammin' Source Tools' VBSP, VVIS, and VRAD for ambient occulsion. I have not seen any issues with using those compilers with Garry's Mod Before. The map was compiled with VBSP and VVIS, but with VRAD disabled to save time testing the map.

console.log indicates no information, besides the standard information given out when loading maps. From the behaviour seen in the console and loading, it seems to be an issue with rendering, which makes sense.

Link to the dump

It would be nice if this could be fixed, but I have to be honest and say the map's 3D skybox models are too expensive anyway.

Steps to reproduce

(This is a Minecraft map, sorry!) Running gm_bbqbay_revival_withSkybox will crash the game, running the version without the skybox (gm_bbqbay_revival_noSkybox) will not.

rmod8 commented 9 months ago

Should probably specify my PC specs just in case: OS: Windows 10 CPU: Ryzen 2700 x86-64 RAM: 32GB DDR4 3200MHz GPU: AMD RX 580 Game is installed on a secondary SATA SSD. Boot drive is a M.2 SSD.

robotboy655 commented 9 months ago

I am still looking into it, but the issue seems to stem from the static prop models.

Specifically rmod8/gm_bbqbay_revival/chunkscombo-se5.mdl and rmod8/gm_bbqbay_revival/chunkscombo-se3.mdl seem to be consistently crashing.

From what I am testing here, perhaps the models generated are in some way invalid or are simply too big, causing these issues, but that's just my speculation.

rmod8 commented 9 months ago

I should've mentioned they were compiled with Source Filmmaker's StudioMdl to auto split smd files to allow models up to 65k vertices. It might be a static prop issue maybe, but it's odd it didn't occur earlier?

rmod8 commented 9 months ago

So I tried running the map with r_3dsky 0 and it managed to load. Noclipping above the map lead to a hang for 2 seconds, but gameplay resumed. Setting r_3dsky back to 1 resulted in the 3D skybox working with no issues. Using the reload command to reload the map results in the map crashing again. It seems that it only crashes if r_3dsky is 1 when the map first loads. Loading the map with r_3dsky as 0, then turning it back to 1 after the map has loaded seems to work fine, even if the player doesn't move.

rmod8 commented 9 months ago

Tried to use my subpar lua coding to try and make a script to enable and disable the skybox when the player joins and leaves the map and failed. This seems to be an issue stemming from the rendering of the 3D skybox. I'll try to make the 3D skybox a part of the map despite how bad that will be for visibility and see what happens.

rmod8 commented 9 months ago

Update: I finished the block terrain which reduced the vertices used and the 3D skybox now works. This leads me to beleive it's a general polygon issue with too many polygons to render when first loading the map since the rendering works when the map is loaded with the 3D skybox turned off, then turned on via a command. If someone here knows how to, a bypass for this crash could be done by envoking the command with lua when loading into the map.

robotboy655 commented 5 months ago

I have finally managed to pinpoint the cause of the crash, and I think I have a decent fix for it on dev beta. I thank you for providing such a reproducible case for it, it's what allowed me to find the root cause.

It was indeed related to static props, and can be worked around by increasing the value of the datacachesize console variable.

rmod8 commented 5 months ago

Perfect, thank you for sticking with this weird crash and finding a fix for it. 😃