-
-
Notifications
You must be signed in to change notification settings - Fork 261
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate tilesheet corruption #424
Comments
If you're affected, please reply with the following info. (Feel free to skip any questions you don't know.)
|
I saw this happen on my farm yesterday the moment I got out of bed and went outside. It looked very much like the screenshot above. Unfortunately I don't have the log file for it. Reloading the safe game resolved the issue for me. I didn't venture outside of the farm so I don't know if this happens elsewhere as well. This is the mod list I was using:
|
@InsaneJ Can you attach a zip of your save files and |
I've started a new game and noticed corruption in town: Log up to the moment I walked into town: https://paste2.org/eGkODDKY |
Trying to figure out which mods trigger the tile corruption I've found that UI info suite and CarryChest both trigger the issue. Having either one of them in my mods folder results in the screenshot above. |
@InsaneJ Thanks! I can't reproduce the issue with your save and mods. Do you have any mods installed under |
@InsaneJ I can reproduce tilesheet corruption on the farm with your save (though it's intermittent), thanks! I'll look into this for SMAPI 2.4. |
Observations:
|
Further testing:
|
The issue most likely happens sometime during the async
|
I ran some tests to track corruption of
So the issue is most likely caused by the content interception or something interacting with it, but the issue occurs even if that content interception does nothing. In very rare cases (roughly 3 of those 200 tests), I saw errors like this. These suggest a race condition due to parallel code; but if that's the cause, it's unclear why it doesn't happen when content interception is removed.
|
Fixed in The cause is pretty obvious in retrospect. SMAPI pauses mods when the game is running async code, but it doesn't pause mods while a save file is loading. Loading happens asynchronously, which means mods using update-tick events can run code while the save is loading on a separate thread. In rare cases, a mod will use the GPU just as a tilesheet file is being loaded, corrupting the tilesheet. The reason mods which use the content manager tend to trigger the corruption isn't because of the content manager directly, it's just because they're more likely to use the GPU while a tilesheet is being loaded. As of SMAPI 2.4, SMAPI will no longer raise events while a load is in progress. |
Some players report intermittent tilesheet corruption:
The text was updated successfully, but these errors were encountered: