Jump to content

TESV Acceleration Layer - SKSE Plugin (Massive Framerate Boost)


rajendra82

Recommended Posts

oh sweet I can use an older version of skse as well!

At this point guys the community here should just get together and make their own games instead of fixing these issues with no direct support.

 

With that said thanks a lot for this acceleration heads up!

Edited by runicNomad
Link to comment
Share on other sites

Please Beth, read this. And act on it for the upcoming patch. Little effort will earn you lots of respect.

 

If anything, you should really REALLY hope BS listens up and actually gets this in the next patch:

 

Arisu from the official forums:

 

Things I'd like to note here:

 

Only a fraction of the speedup comes from using SSE2 code. The original exe also uses SSE2 code, just not in the right places where it is truly needed. This could've been prevented by using automated SSE2 vectorization and/or another math library. Interestingly, in this case, it's the dot product function that has been rewritten, which is somewhat ironically the #1 textbook example for automated vectorization in compiler demos.

Much of the speedup is gained by manually eliminating (only possible if the entire function can be reduced to 5 bytes or less), or at least simplifying calls along the critical code paths as far as possible. This doesn't even produce nearly as good results as an optimizing compiler could have because of many restrictions a compiler doesn't have to deal with in the first place, so every optimizing compiler can do and usually does an excellent job at this if told to do it. Skyrim would probably experience an execution speed gain of over 100% just by applying this single optimization, as it has drastic consequences to the amount of code that could be detected as being redundant and thus completely eliminated. I know that sounds exaggerated, and normally would be, but it isn't when you've read and profiled enough of the code to know just how bad the compiled code is.

Just 3 functions have truly been rewritten, everything else is either a variant form or an instruction-level simplification of functions consisting of things like "return *this;" which are at the very top in the profiled list because the compiler was obviously told not to inline it. So, every time a certain kind of pointer needs to be dereferenced, the game will call a lengthy function to do what can be (and is) replaced by a single instruction. Fixing this manually isn't feasible after a certain point, but the compiler can do this for the whole binary at the cost of just a few seconds extra compiling time and much better than ever possible by a human (at least at these code dimensions).

In general, the TESV code has pretty high register pressure. A huge part of this is simply due to the completely missing optimizations which would otherwise eliminate the unneeded allocations, but an x86_64 build would also definitely help improving this condition.

Jump targets are completely unaligned, including the so-called hot targets which are hit millions of times in short periods, leading to cache stress due to multiple fetches being required to execute a jump, whether correctly predicted or not. Optimizing compilers can automatically align them properly.

I guess I don't have to mention how bad the threading is; this isn't trivial to fix though. Just sad that it's almost 2012 and this thing can't even properly use two threads. Besides all the other obvious flaws, this is the main reason why the game is so strongly limited by the CPU. Single-core speed didn't grow nearly as much as the number of cores did. Everyone knew it 10 years ago, but back then they could still just wait for the hardware to provide the additional power needed to run the sloppy code - this trick doesn't work anymore.

 

 

Yeah, Skyrim is a nice game, but many obstacles we've got here have trivial fixes compared to the size of their respective payoffs (little to none extra coding required). Especially with over 10 million copies already sold, I somewhat expect that it will at least run on recent hardware without sub-30 framerates.

 

That and the fact that each time a new patch is released, this mod has to be redone. Thus, why it's absolutely imperative for BS to spend all of 5 seconds to enable the optimize flag in their compiler.

Link to comment
Share on other sites

You should post things like: "Beth listen to this..." on their official forums, then they might see it. I doubt they're lurking here...

 

BTW where can I find skse loader exe? How do I run this?

You download the latest version from here: http://skse.silverlock.org/

And put the skse_loader.exe and the .dll files in your Skyrim root directory (Steam>Steamapps>Common>Skyrim). You put the mod .dll in Data>SKSE>Plugins (If those don't exist, create them).

From then on you run Skyrim from the skse_loader.exe.

Link to comment
Share on other sites

You should post things like: "Beth listen to this..." on their official forums, then they might see it. I doubt they're lurking here...

 

True. (I don't have an account with their official forums so I post in the nexus forums ... )

 

However, I'm not so sure of their absence here. The nexus is one of the key Beth games modding sites since, well, forever. There are a few true gems here that I would definitely have a look at if I were a Beth employee.

 

On the other hand, those guys have probably better thimgs to do over x-mas.

Link to comment
Share on other sites

It does give me a FPS boost but it isn't really massive. I'd say it gives me a 5-10 boost, but it's still a bit laggy when I'm in a city. (Not really lag, but it's noticeable when your FPS falls from 60 to 35)

Though kudos, it made Markarth smoother. I'll test a few drivers and see if I can improve the performance.

Thank you OP for mentioning this! .

 

Try adding affinity and priority to the game. This and skse plugin and some speed mod seems to help a lot. My box is also low quality. Then you can tweak the preset files. Look at donotargue.com there is an editor for presets. A short disclaimer: I can understand Bethesda to not use compile flags or optimize their code. In serious computing it is mostly considered as mirco-optimization and is really bad. That's my personal experience with it and it has nothing to do with my work in this industrie. And also update every driver you can get for your box.

Edited by Stoneage
Link to comment
Share on other sites

  • 2 weeks later...

would like to say great mod, i installed it yesterday, skse & TESV and played for 5 hours straight, no lags and no CTD's when i was getting at least 3 - 4 per gaming session.

 

Stormbringer

Link to comment
Share on other sites

This doesn't seem to change my FPS at all, I have been using SKSE with the new interface for a while, tried this plugin and can't even say it makes a 1-2 FPS difference in Whiterun. But I was already at 99% GPU (GTX 560 ti 448) usage and 50% or so CPU usage, so maybe thats why! Seems like if you are running the game at 1080P or lower, its your CPU that matter most, but once you go to higher than 1080p (I am running 2560X1440) the GPU matters the most again, also running a i5 2500k clocked at 4.4... I know this mod is supposed to improve CPU usage so I guess it makes sense if I was not at 100% that it wouldn't help me at all.
Link to comment
Share on other sites

  • Recently Browsing   0 members

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