Ogliss / AdMechXeno

Xeno Biologis
0 stars 0 forks source link

CTD When playing game with multithreading-- suspect issue is graphic effects of necron deep strike #2

Open TheIvoryDisaster opened 3 years ago

TheIvoryDisaster commented 3 years ago

Bottom Line Up Front Can you add an option in the settings to disable certain special effects or raid types? If necrons could be disabled, or at least forced to drop pod / walk in like every other faction then this mod conflict could be completely mitigated.

Thank you.

To Reproduce Steps to reproduce the behavior:

  1. Be using this other mod: https://steamcommunity.com/sharedfiles/filedetails/?id=2222907981&searchtext=rimthreaded
  2. Get the deep strike event where necrons spawn in with green lightning
  3. experience total CTD because lightning effects can't be run as parallel

Error Log Player.log: https://pastebin.com/i6vegcmv Error.log: https://pastebin.com/q40tFs70

Mod List Paste contents of ModList used when bug occurred.

Ogliss commented 3 years ago

im afraid that isnt the only issue you will encounter with using RimThreaded, laser weapons dont work with it at all either.

given the scope of the changes RimThreaded makes, the onus is on them to make it compatible with other mods, No one wants another Combat Extended to deal with.

you apparently havent checked the mod options? as their are options to disable both Deep Strike and the necron faction, though the latter only affects New worlds

Ogliss commented 3 years ago

just tested it my end, with my current local build and no CTD

TheIvoryDisaster commented 3 years ago

I thought the faction disable issue was broken, but found that it was being overridden by my faction control mod, so I acknowledge I can disable it through there for new games.

Can you help me understand which of these boxes is for the deep strike setting? I am maybe just misunderstanding the meaning of each setting.

image

TheIvoryDisaster commented 3 years ago

If you're interested, I am totally in favor of putting up a $30 bounty to whichever mod author first makes the changes so that I can enjoy this wonderful mod with the performance enhancements of multithreading without having to say goodbye to necrons. It's like, I either play at 13 FPS or don't get to enjoy your mod. What a terrible choice to have to make :(

TheIvoryDisaster commented 3 years ago

just tested it my end, with my current local build and no CTD

Only just now saw this. Do you anticipate deploying that any time soon? I'll buy you some coffee or something if it fixes my wagon.

Ogliss commented 3 years ago

image my menu looks a little different, but the option should be there for you aswell, (my current local build is only a little ahead of the Master branch on here, but be warned you will need to use the git versions of any of my other 40k mods that your using)

Ogliss commented 3 years ago

just tried repoing the crash with the steam build and no luck there either, it errored a few times when the teleport kicked in, but no crash and the crons still ported in, though their guns dontn work lol

TheIvoryDisaster commented 3 years ago

Are you trying it with RT as well, or just with the 40K mods? Just to clarify. I'm highly certain your mods themselves won't create this issue on their own.

I don't know if it's something in conjunction with Rimatomics (tl;dr one of its features repositions drop pods and deep strikes away from your base) but I was able to confirm that 5/5 times the necron dynasty raid with green lightning effect crashes the game and the crash goes away if you remove only RimThreaded.

I can send you the save and even export my mods to a zip if you wanna get deep into it. I'd actually be really glad to offer any help I can in testing this.

Ogliss commented 3 years ago

my testing was with RT aswell, could be interaction with rimatomics, seems a little odd though

TheIvoryDisaster commented 3 years ago

I'll pull your most current changes from this project and replace my steam version to try it out.

To the best of my knowledge, the RimAtomics mod takes incoming raids and puts them into a queue. It notifies the player the raid is incoming and schedules the raid to actually activate some number of hours later. If you look at the bottom of the player log it says that it's trying to process that rimatomics event to make the raid finally spawn but it's the first few lines of the error, about the lightning mesh from the deep strike, that led me to believe the source of the error is in a conflict with this mod.

Like I said, I'll keep testing with your advice. Thanks very much for looking into this for me.

TheIvoryDisaster commented 3 years ago

One thing I'll be testing against, for example, is if this is reproduceable with other hot drop raid types other than your mod. For clarity, my current save is like ten seconds before a necron deep strike is guaranteed to occur.

Ogliss commented 3 years ago

hmmmm, yeah that functionality of rimatomics could cause issues alright, do you actually get notifed that they are 'Deep Striking' via a letter? or is it a normal raid notification?

I ask because the way its set up, necrons teleport in instead of having drop pods, this is not a 'Deep Strike' thats just a normal raid, using a different entry graphic.

'Deep Strike' attacks happen Mid raid (it actually siphons off some of the pawns that should spawn and deploys them via 'Deep Strike', which in crons case, is teleporting in) and should send a seperate notification letter specifyng its a deep strike attack and the entry method

TheIvoryDisaster commented 3 years ago

I just tested it and here's what I found:

RimAtomics raid functionality: produces a unique notification indicating an incoming raid is detected in X number of hours Pirate Raid 2000 pts Immediate Attack via Center Drop: No crash! Even some pretty chaos space marines showing up ChaosDaemons Raid 2000 pts Immediate Attack via Center Drop: same CTD as with necrons

If you look at my Player.log in the paste link it has that section from the stack trace describing some issue starting with the LightningBoltMeshMakerOG.

So I suppose it is the conjunction of these 3 mods causing the issue and it will likely only reproduce if you have the ATOM (early warning feature) enabled on the TACS from RimAtomics. Is there any sensible way, hopefully low effort for both of us, to simply disable the cool looking fire and lightning these factions use when they drop in? I think that is what causes the crash, and it would really mean a lot to me to be able to get all these things working together.

Ogliss commented 3 years ago

lemme have a think while i attempt to repo it, ive never used rimatomics myself, what do i need to activate that feature?

TheIvoryDisaster commented 3 years ago

If you activate debug mode and place a TACS from the RimAtomics menu, the TACS building will have a little button when selected for ATOM. You have to click that to queue the Upgrade job from a pawn.

THEN a pawn has to install the ATOM on the TACS so you'll have to go to the Try Place Near Thing in the debug menu and search for the ATOM item.

You may also need to do some debug clicking in order to unlock the Energy Weapons, TACS, and ATOM to see the ATOM upgrade option appear, which you'd do with God Mode on from the RimAtomics research bench. That's kind of a lot, right? I can screenshare you through it if you're interested in doing all that and need help.

Ogliss commented 3 years ago

no worries, i got it, thank you never woulda figured that out myself haha

TheIvoryDisaster commented 3 years ago

If you see this, you'll know you got it:

image image

Good luck and thank you.

TheIvoryDisaster commented 3 years ago

CONFIRMED: Works fine in existing save with 'Threat Detection' disabled and 'Scramble Drop Pods' enabled.

I do get some red errors, but everything seems to work: https://gist.github.com/4c9239adf9b7e90198a55b2860f214ee

So it looks like for now I can keep playing unless lasers make things break like you warned about. I would be super double omega grateful if you could continue considering these types of mod conflicts in future releases.

Ogliss commented 3 years ago

Still unable to repo the issue with my local build, with RimThreaded and RimAtomics and no errors on spawn, that said i have rebuilt a large portion of the deep strike system in the last couple of days, it seems like i might have inadvertently fixed it, give me a couple mins to push a build for you to test

Ogliss commented 3 years ago

pushed to master branch. lemme know if that solves the issue with the CTD, not sure what the issue with the lasers is, no errors thrown, they just dont spawn a projectile when they shoot.

TheIvoryDisaster commented 3 years ago

Roger that. I'll download the thing from master here and test it tonight. Thanks very very much for your help.

Ogliss commented 3 years ago

Np, and remember you will need to use the recent commits of any of the Adeptus mods you have loaded.

you might regret bringing this to my attention though, as im aware of RimAtomics early warning system and how its interacting with Deep Strikes i will need to do something about it haha!

cseelhoff commented 3 years ago

AdeptusMechanicus.LightningBoltMeshMakerOG:MeshFromVerts is calling unity's mesh constructor. This must be done in the main thread only. I think I put a method in Rimthreaded that can be called that works the same way and can be safely called by any thread. Feel free to contact me if you would like to make this compatible with rimthreaded... It shouldn't be too tough

TheIvoryDisaster commented 3 years ago

I replaced both Armoury and Xenobiologis with your latest versions here and reloaded my most recent save (with the imminent necron raid notification from RimAtomics).

No errors at all the first time. The raid executed and the necrons spawned beautifully.

I reloaded the same save and waited the same amount of time and got as far as the popup that I was being attacked by a necron dynasty. I could hear the sound effects and everything! Then CTD. The crash occurred immediately after I clicked 'Jump' from the popup. Same error in the stack trace about the lightning maker thingamajig. Exactly the same as before.

Third time: I was curious as to why it worked at all the first time so I tried zooming in very close (to avoid the lightning effects from the rest of the map?). No crash, but I did get some red error messages that seem similar to the main issue but with sound instances being called from non-main threads. So there's probably an issue to be improved there, but at what cost??

The fourth time I tried it, I zoomed the camera very far out to ensure that I should see the lightning effect by the edge of the map. It actually still worked, but with some errors!??

I wonder if it's just luck perhaps that whatever is being packaged by the jobs system is arbitrarily being processed on the main thread something like 75% of the time.

Ogliss commented 3 years ago

well that is curious, spawned 5 times in a row fine here, then it wouldnt let me load the save again untill i restarted the game, loaded fine then, spawned fine, tried to load again and rim crashed

Ogliss commented 3 years ago

AdeptusMechanicus.LightningBoltMeshMakerOG:MeshFromVerts is calling unity's mesh constructor. This must be done in the main thread only. I think I put a method in Rimthreaded that can be called that works the same way and can be safely called by any thread. Feel free to contact me if you would like to make this compatible with rimthreaded... It shouldn't be too tough

thats the most curious thing, in the current version i no longer use AdeptusMechanicus.LightningBoltMeshMakerOG:MeshFromVerts, just the vanilla LightningBoltMeshPool.RandomBoltMesh, it shouldnt be calling it at all anymore, at least thats what i assumed would be the case?

im the first to admit i really know Shit all about programming in general, just started picking it up a couple years ago to mess with rim