Jump to content

CTD on orgasm. Possibly community shader related,


Recommended Posts

Posted

I'm getting a crash on orgasm. Not every time, but maybe every other time or one in three.

 

The main addition lately has been to update community shaders & related mods, and the trainwreck log supports that:

 

https://pastebin.com/yssPRZrW

 

That said ... I tried disabling the CS mods and the crash just moved to SexLabUtil. All skse plugins, of course.

 

I have Hentai Pregnancy loaded, which triggers on  orgasm, and which also applies SlaveTats, so there's no shortage of candidates.

 

Loar Oderd:

 

https://pastebin.com/88jM0fmb

Posted (edited)

This crash was indirectly caused by CommunityShaders.dll. Perhaps some feature or plugin called "TruePBR". What kind of outcome did you have in mind here? Are you looking for a workaround, or a fix?

 

These kind of crashes are why I haven't personally swapped to CS. I like what they're doing, but stability seems to be questionable.

 

11 minutes ago, DocClox said:

I tried disabling the CS mods and the crash just moved to SexLabUtil.

 

Unless the faulting offset remained the same, the crash didn't move. More likely scenario here is that you just ran into another crash.

 

Also, side note: Switch to a different crash logger. Working on trainwreck logs is unecessarily difficult - especially remotely.

Edited by traison
Posted
6 hours ago, traison said:

Unless the faulting offset remained the same, the crash didn't move. More likely scenario here is that you just ran into another crash.

 

I'm thinking maybe some corruption in the stack that hung around even after the dll was unloaded.

 

6 hours ago, traison said:

Perhaps some feature or plugin called "TruePBR".

 

I think it's a feature, or maybe a unreleased plugin and we're just seeing the hook. I can check if there's an option I can turn off.

 

 

6 hours ago, traison said:

What kind of outcome did you have in mind here? Are you looking for a workaround, or a fix?

 

Anything that lets me keep playing. I'm on Linux, so CS is a lot more appealing than ENB but worst case, I can do without.  Maybe fall back to ENB for a bit.

 

6 hours ago, traison said:

Also, side note: Switch to a different crash logger. Working on trainwreck logs is unecessarily difficult - especially remotely.

 

I'll do that. Thanks.

Posted (edited)

Swapped out CS + dependent mods and set up ENB. Still crashes at the same point.

 

https://pastebin.com/FJZUKaxu

 

Faster SMP I could believe, but it's been working just fine up until now. I could start a new game and see if it happens with a fresh save,

 

I am going to miss the CS subsurface scattering.

Edited by DocClox
Posted (edited)
11 hours ago, DocClox said:

Faster SMP I could believe, but it's been working just fine up until now.

 

Very unlikely, considering where it is in the callstack and the fact that SMP has a tendency to show up in all crash logs because of its hook positions.

 

11 hours ago, DocClox said:

Swapped out CS + dependent mods and set up ENB.

 

The latest log I'd say proves that the problem is not in either CS or ENB. However the PDB for CS might be giving a hint as to where the problem might be: TruePBR.cpp:1011.

 

Considering it crashed because it tried to dereference RDX, the call to "func" at line 1009 most likely nulled the shader reference. Func is a reference to a vanilla game function, presumably called "SetupGeometry". Just like the vanilla game, CS didn't check for shader being null before trying to dereference it.

 

Same in English: This is a problem with shaders in the vanilla game.

 

Looking further down in the stack of your latest log suggests RaceMenu overlay slot 0 ("Body [Ovl0]") of form id 0x00039cf8 "Bandit" in form id 0x2005eab "Redwater Den" is your problem. The name "Soapy" might be relevant, but I'm not sure in what context (overlay name?). Also check "slavers_spellbook.esp" for things that may be adding or altering RM overlays.

 

Edit: RDX was most likely reused after the code in TruePBR.cpp. Previous analysis is wrong.

Edited by traison
Posted
6 hours ago, traison said:

Looking further down in the stack of your latest log suggests RaceMenu overlay slot 0 ("Body [Ovl0]") of form id 0x00039cf8 "Bandit" in form id 0x2005eab "Redwater Den" is your problem. The name "Soapy" might be relevant, but I'm not sure in what context (overlay name?). Also check "slavers_spellbook.esp" for things that may be adding or altering RM overlays.

 

"Soapy" is the name of an enslaved bandit. Slaver's Spellbook I'm reasonably confident isn't doing anything at this point. It's got a polling loop, but that doesn't do anything unless you use the brand spell to explicitly add an actor to the update list, and I've not even found the spellbook in this run.

 

So the overlay is probably between SlaveTats applying a pregnancy tattoo via Hentai Pregnancy, or else Diary Of Mine removing the blush textures it uses. It could also be Sexlab applying cum overlays.

 

The question is, why would any of this wait until I hit level 30 before manifesting? It's nothing I haven't been doing since the character started. It isn't as if I've  been power-leveling either: I've been taking my time and trying to do things organically.

 

I'm not sure about the PDB part. I don't have any mods using that in their name. Although I have been playing with Pfuscher's Skyrim 20xx textures, which may be stressing the material handling code somewhat. There's a long overdue update I've been meaning to apply to those. I might do that and see if that helps.

Posted

OK. Updated 202x textures and restored community shaders. Something in my messing around with ENB seems to have clobbered my reshade setup, but I'll get to that.

 

Long story short: same thing happens: https://pastebin.com/SygGE69A

 

Possibly relevant - I've noticed it seems to happen on the second occasion. I get the first one free, and then the second time it goes boom. If I save quit and reload I get another free orgasm.

 

I wonder if this hasn't been a problem for a while, but one that only kicks in when the engine gets stressed by having a lot going on.

Posted (edited)
1 hour ago, DocClox said:

The question is, why would any of this wait until I hit level 30 before manifesting?

 

Typically when that happens its simply because some new leveled NPC starts spawning; like a Sabre Cat spawning instead of a Wolf around level 7-10. In your case its likely something else obviously, but my point is player level can affect what the code is doing.

 

I edited my previous post, as the analysis in it is wrong. Not the first time I've made this mistake - posting here while doing something else at the same time.

 

Still though, considering the other options I can think of right now. Simply going through mods that react to the OrgasmStart and OrgasmEnd events seems like the simplest thing to do. Use a tool such as Notepad++ or my SkyrimStringSearch CLI utility to search through all pex files in all mods for scripts containing those 2 event names. That's your list of suspects.

 

Edit: grep is probably the better option for you.

Edited by traison
Posted

New game didn't help. Replicated the setup as best I could, only outdoors at Riverwood. Crashed on the first one this time. Might not have helped that it was pouring with rain. If it is shader related, the wet effects sharders are probably stressing things more than usual.

 

 

https://pastebin.com/hYJnSDK5

Posted
1 hour ago, traison said:

Still though, considering the other options I can think of right now. Simply going through mods that react to the OrgasmStart and OrgasmEnd events seems like the simplest thing to do. Use a tool such as Notepad++ or my SkyrimStringSearch CLI utility to search through all pex files in all mods for scripts containing those 2 event names. That's your list of suspects.

Got to be worth a shot. Let's see if I can remember how to spawn a shell inside MO2's VFS.

Posted (edited)

Couldn't start a bash shell from inside MO2. Googled it extensively and every single suggestion doesn't work. Must be a Friday.

 

So I did a find & grep from MO2 mods folder. Filtering out what I don't have loaded, this is what I find.

 

Quote

./Diary Of Mine 5.5.0_SE_fomod/Scripts/DOM_Mind.pex
./SexLabArousedSSELoose/scripts/slamainscr.pex
./SexLabFrameworkAE_v166b/scripts/sslThreadController.pex
./SexLabHentaiPregnancy SE 2022-09-06/scripts/HentaiPregnancy.pex
./SexLab-Separate-Orgasm 2023-01-16 xxx/Scripts/slamainscr.pex
./SexLab-Separate-Orgasm 2023-01-16 xxx/Scripts/sslThreadController.pex
./slavers_spellbook_sse_/scripts/docbook_familiar_spirit_scr.pex
./slavers_spellbook_sse_/scripts/docbook_reiklings.pex

 

All of it stuff that's been there forever. Which isn't to say it hasn't been causing problems for a long time. I've been generally resolved to the idea that my game will usually become unstable, but I thought that was because I had too many PAHE/DoM slaves clogging up the script engine. But maybe it's been something else.

 

So. since I can replicate the issue, early game, I suppose the thing to do is remove Hentai Pregnancy, SLSO and the Spellbook and see if the problem goes away.

 

Either that or say "to hell with it!" and play something else for a while. I'm getting that "restarted the game too many times" feeling.

 

Oh well, it it was easy, it wouldn't be any fun...

 

[edit]

 

OK. Without those three, the problem doesn't seem to manifest, at least not so quickly. I suppose add HP back in next.

Edited by DocClox
Posted

Add Hentai Pregnancy and "Boom!"

 

https://pastebin.com/aKQJhiJm

 

Which is a pain, since that's been working for years. HP does a fair amount on Orgasm, but the main one in shader terms is probably using SlaveTats to apply a wormb symbol to show pregnancy state.

 

Which again, has been working just fine, but I did recently switch to SlaveTats NG, so reverting that has to be worth a shot.

Posted

And swap the other mods back in again and it all still works.

 

Looks like SlaveTatsNG is the culprit. I suppose I should probably report that.

 

Many thanks for the help!

Posted

Oh, your version of SlaveTats has a dll, yeah that would explain it. Its probably using it to speed up processing of tattoo changes, but something its doing is breaking the game engine. A race condition would explain why it used to work and no longer does. Perhaps its swapping out the tattoo while the game engine is in the middle of rendering or something along these lines.

 

Performance at the cost of stability I guess. Seems far simpler to me to increase the Papyrus ops budget.

Posted
6 hours ago, traison said:

Oh, your version of SlaveTats has a dll, yeah that would explain it. Its probably using it to speed up processing of tattoo changes, but something its doing is breaking the game engine. A race condition would explain why it used to work and no longer does. Perhaps its swapping out the tattoo while the game engine is in the middle of rendering or something along these lines.

 

Performance at the cost of stability I guess. Seems far simpler to me to increase the Papyrus ops budget.

 

Name: "Feet [SOvl0]"

this is a spell overlay. "swapping out a tattoo while the game engine is in the middle of rendering" is not possible, I think, because the swapping out is done in the Skyrim main thread (=> DLL). But I could imagine, that SlaveTatsNG/SlaveTats doesn't detect spell overlays, and tries to apply tattoos to these slots. I know almost nothing about spell overlays, except that there is a setting in skee.ini, "iSpellOverlays", and there are 4 functions with "Spell" in NiOverride.psc:

int Function GetNumSpellBodyOverlays() native global
int Function GetNumSpellHandOverlays() native global
int Function GetNumSpellFeetOverlays() native global
int Function GetNumSpellFaceOverlays() native global

Does anybody have an idea, what spell overlays are, how they are applied with NiOverride, and what's the difference to normal overlays ?

Posted
23 minutes ago, nopse0 said:

"swapping out a tattoo while the game engine is in the middle of rendering" is not possible, I think, because the swapping out is done in the Skyrim main thread (=> DLL).

 

Technically there's nothing stopping a dll from doing that. I wouldn't even guarantee that in any vanilla system, considering the entire game seems to lack these kinds of protections: you can crash the game with improperly configured esp and nif files for example.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...