So after the latest update (which claims the game runs smoothly now), do we still need these extra.txt files?
I used the thing where you replace the java folder and -server, after the update the game runs smoothly for me.
So after the latest update (which claims the game runs smoothly now), do we still need these extra.txt files?
I used the thing where you replace the java folder and -server, after the update the game runs smoothly for me.
I would say remove any previous tweaks we discussed in this thread for now. If you experience stuttering again, you can try one of the profiles posted and experiment with different garbage collectors. (My personal favorite now is G1 but it requires Java 7.)
I also agree that more memory does not equal to better performance. If 512MB works for you, I would suggest refrain from allocating more.
What's this G1 thing?
Anyway, yeah I tried that thing where you use the latest java and replace the java folder from inside the sk folder. on the windows side, that is.
I haven't tried any on the Mac side, yet.
EDIT: thought I would add I made this attempt after loading the latest patch, which did not improve anything for me
I posted over a week ago describing micro-freezing when monsters spawn, unsure of the logistics of why the more I played Tier2/3 and boss runs, the more lag and freezing occurred. It was non existent on Tier1 with high settings. very frustrating....to say the least. It caused me numerous deaths from trying to shield mainly but also in just trying to kite around a large group, not being able to react properly when large groups spawned, etc.
A few steps in this thread have immensely improved the performance of the game for me. I am even now playing on high settings again. I just did a few arena runs in tier 3 and I had no noticeable video lag from spawning/dying monsters as I typically would. I did not notice any small freezing when switching from areas within a map either, which I would notice before by the time I got to boss stages.
two things, first I upgraded to Java64 bit. That alone may have been the catalyst for my problem -- but for good measure I decided to add some arguments.
I took from this thread what I felt was the most basic argument addition to the javaws.exe based upon my system and the problem I saw and not wanting to be confused by all the XX stuff. I think it is a no brainer that if your computer has the ram, it should be taken advantage of.
"C:\Program Files\Java\jre6\bin\javaw.exe" -server -Xincgc -Xms1g -Xmx4g -jar getdown-pro.jar .
(this says im running in server mode, something to do with the garbage man, minimum ram of 1gb and max ram of 4gb)
I now feel the game performs more like it should on a machine like mine, I will do more play testing to compare video captures with several snapshots of the lag I was having. I strongly feel from my experience with this issue --- that OOO takes a strong look at supporting the creation for the client to scale and configure these types of thing on its own. (or seperate downloads/support/instructions) for 64bit users/high RAM systems, etc.
This game is free (and really cool), there are alot of bored mmo gamers looking for something new, so something like this should not be so invasive for someone to figure out. If i was not tech savvy enough to research a solution; and I had a this still happening, I would stop playing.
Here's my specs.
Windows7 pro 64bit
Processor: AMD FX(tm)-6100 Six-Core Processor (6 CPUs), ~3.3GHz
Memory: 8192MB RAM
Available OS Memory: 8138MB RAM
DirectX Version: DirectX 11
Card name: AMD Radeon HD 6700 Series
Chip type: ATI display adapter (0x68BA)
DAC type: Internal DAC(400MHz)
Dedicated Memory: 1010 MB
So I Grab Eltias Medium Extra.txt, And the first thing I notice in game is that no Knights are rendering.
Is That Meant to Happen?
+1
^o^ Now I can use 12 GB of RAM for Spiral Knights!
Java 7 could help fix a lot of problems anyone may have.
OOO also updated the client to make most of the thing within this thread to be obsolete.
@Nimbasa
I would probably not run the script anymore given what has changed since.
Hi, all.
I've come here to research a bit about all of these performance tweaks due to the fact that my java client is just using too much RAM lots of times.
For example, few hours ago, after going through all FSC, right before fighting vanaduke, java.exe was taking more than 3GB RAM (WTF?). It seems like my client is using no garbage collector at all...
Got the latest 1.7.0_05 JRE update on SK steamapps' folder and stuff.
Now what I'd like to know is: since there was that graphics update while ago, does is worth it to set up an extra.txt file using for example G1 GC?
I've just tried that GC but dunno what to think about it: seems to restrict a bit the quantity of RAM that is being used at real time, but also I'm getting more freezes than usual (maybe that's the reason about huge RAM use and no freezes, that my client isn't invoking garbage collections at all?).
This is the file i've made:
-server
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+DisableExplicitGC
-XX:MaxGCPauseMillis=50
-XX:GCPauseIntervalMillis=1000
-Xnoclassgc
-Xms512M
-Xmx2G
-Dsun.java2d.opengl=true
Which of those options are deprecated and which ones are useful?
My experience is that it's better to use OOO's setting and don't tweak the JVM. It appears that OOO did some tweaking to resolve some of the problems raised in this thread (and they seem to work in my case).
As for the options you used, from my experience the following options do not seem to do anything, or it could cause minor glitches. You may want to remove them and see if they impact you:
-Xnoclassgc
-Xms512M
-Xmx2G
-Dsun.java2d.opengl=true
I got mixed results with G1GC. While it does seem to reduce micro stuttering in some maps, it increases them on others. The worst part is that there does not appear to be a way to know which maps would get stuttering and when would that happen! That's why I reverted back to Java 6 and stick with OOO's default setting.
-Xms512M has already been implemented as the default as a result of the discussions in this thread
-Dsun.java2d.opengl=true has always been the default
-Xnoclassgc will keep the garbage collector from clearing objects out of memory
Did you go back to using the 32-bit java too? (If you were using the 64-bit before)
What about the whole "set java to high priority"?
Interesting.. full circle'
-----
The one thing I definitely use is this:
-Dorg.lwjgl.opengl.Window.undecorated=true
It makes the non-fullscreen game borderless. This allows alt tabbing without shifting the screen with my left hand taskbar. But this is more like a visual performance tweak....
The default JVM is Java 6 32 Bits. I never adjust Java's priority. I know some people reported good results with Java 64 bits. In my case I see no significant difference aside from using up more memory (because the size of pointers has increased).
I never have problems with tab-shift. The problem I experienced appears to be related to -Xnoclassgc. While it does help reduce load time (and it consumes more memory), the tally screen when you move back to haven tends to be messed up (I think it kept the stalled copy).
But from what I'm seeing, if the default setting works for you 90% of the time, don't tweak it. If you want better graphics, turn on 16x AA and in your video card driver, set texture filtering to high. That should already give you good results.
Thx for your quick response, I've deleted those last lines (leaving only the G1GC related ones) and game works great now. 0 freezes (like before) AND less RAM usage (I repeated a vanaduke run 1 hour ago and this time java.exe was using less than 2GB instead of more than 3GB). I've even been able to set medium quality graphics instead of low without losing any performance!
So, I'll leave it that way and, if I find out any problem, will come back here to give feedback ^^
Another little thing: is -server parameter loaded by default on 1.7 x64 JVM? In case it isn't, is it noticeable if added on extra.txt?
Hello again guys, is there a command for extra.txt to limit fps?
I have noticed that since few recent updates i started encountering a lot of laptop freezes (caused by SK) when i used 64bit java.
After changing back to 32 bit java the freezes have stopped.
Why do people use x64 when there's so many errors- I don't know...
You guys are so entitled why would you want to improve the performance of this game, it's absolutely and completely perfect on $4000 computer that I bought specifically to play the game. I can't believe you would expect Three Rings to do work making their game compatible with your machines when you could just upgrade.
teh command for extra.txt to limit fps? please >_<
I don't know... I only have the command to make Spiral Knights borderless.
Wait for answers, I'm sure someone would help ye out. :x
I'm gonna move this back up to the top, primarily because I'm wondering if there are any more tips on how to get this working better. I'm currently working with the nVidia control panel and extra.txt options to see if I can get something that looks fantastic and gets a good frame rate. I'll post my testing data here.
-nVidia control panel settings:
16x Anisotropic Filtering
FXAA - ON
FSAA - Gamma Correction - ON
FSAA - MODE - OVERRIDE - 32x CSAA
FSAA - Transparency - 8x MSAA
Maximum Pre-Rendered Frames - 1
SINGLE DISPLAY Performance Mode
Power Management - MAX Performance
Anisotropy Optimization - ON
NEG LOD Bias - CLAMP
Texture Filtering - Quality
Texture Filtering - Trilinear Optimization - ON
Threaded Optimization - ON (Using Java 7u9 64-bit)
Triple Buffering - ON (For use if Vsync can be enabled nicely)
Vsync - OFF (To test for FPS Stability)
-extra.txt options:
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:MaxGCPauseMillis=50
-XX:GCPauseIntervalMillis=1000
-Xms512M
-Xmx2G
-Dsun.java2d.opengl=true
-In-Game Options:
Resolution: 5960x1080 @ 60 Hz
Graphics Quality: High
Render Effects: On
Cull Transients: On
I will be making another post with benchmarks. I will be benchmarking and averaging the average FPS between two battle areas (which take less than 60 seconds each to clear).
Right. Test details. Here we go. Screw it. I added a third area.
Area 1: Last Party Button D24 FSC.
Area 2: First Party Button D26 FSC.
Area 3: The right path on D26. The run through the trap gauntlet to the party button.
Yes, there are more intensive areas I can test, but these areas are more consistent in how quickly I can kill the monsters present (roughly one minute).
The above settings netted these results:
MIN: 63, 56, and 37
MAX: 93, 111, and 88
AVG: 78.45, 79.03, and 59.42
TOTAL AVG: 72.3
Below, I'll note any changes that give an adequate boost to performance with minimal loss in image quality.
From my experience, these nVidia options don't seem to do anything:
16x Anisotropic Filtering
FXAA - ON
FSAA - Gamma Correction - ON
FSAA - MODE - OVERRIDE - 32x CSAA
FSAA - Transparency - 8x MSAA
Anisotropy Optimization - ON
NEG LOD Bias - CLAMP
Threaded Optimization - ON
What seems to matter most are the followings:
Texture Filtering - High Performance
SLI rendering mode (if you use SLI, you must enable this in global option for it to work with SK)
For extra.txt, the following don't do anything:
-Xms512M
-Xmx2G
-Dsun.java2d.opengl=true
I have mixed results on G1GC. It did work before but after certain SK patch, it starts to give inconsistent results. YMMV of course.
Eltia, I ran a benchmark on my settings with FXAA off in the stress test spot. The results speak for themselves. (I will use this post to give my findings out. More to come soon! I will only be posting individual deviations from the settings above!)
Note: Spiral Knights will not ever select anything apart from 1x FSAA, no matter what my control panel settings are, so I have to set FSAA from there. ENHANCE seems to give better performance than OVERRIDE by about 5.8%.
Note: ALL benchmarks are 60 seconds.
Note: I am running a single GTX 670, so I don't know how the SLI rendering modes will affect this, if at all. If I get another 670, I'll touch base on that, especially with the SLI FSAA that'll go up to 128x.
SETTING - MIN, MAX, AVG, TOTAL FRAMES
-FXAA OFF - 16, 38, 27.333, 1640 (Over 50% Performance Hit for minimal quality increase)
-FSAA (ENHANCE 32x CSAA) - 36, 104, 62.85, 3771
-FSAA (ENHANCE 16xQ CSAA) - 35, 107, 64.433, 3866
-FSAA (ENHANCE 16x CSAA) - 36, 113, 67.25, 4035 (Best performance for quality!)
-FSAA (ENHANCE 8x CSAA) - 35, 108, 62.967, 3778 (Do not recommend. Can get same performance at 32x for much better quality.)
-FSAA (ENHANCE 8x) - 35, 114, 68.383, 4103 (Do not recommend. Minimal performance increase compared to 16x CSAA.)
-Multi-Display Performance Mode - 35, 113, 65.033, 3902 (10% Performance Increase)
-Compatibility Performance Mode - 35, 111, 62.15, 3729 (Probably not recommended for single or multi-screen)
-Anisotropy Optimization OFF - 37, 113, 65.367, 3922
At this point, I'm going to start combining things that improve the frame rate to see what the best I can hit (with good image quality) is. Changes are as follows:
FSAA - 16x CSAA - ENHANCE
Multi-Display Performance Mode
Anisotropy Optimization OFF
Benchmark: 36, 75, 53.033, 3182 (I admittedly performed the test a little differently here. It took 8 cycles of the traps to get through 60 seconds, so each cycle of the traps I switched a weapon. The weapons and armor will not be different in these tests from here on out.)
NEG LOD Bias ALLOW - 35, 73, 51.3, 3078 (CLAMP Recommended.)
Texture Filtering HQ - 36, 77, 52.95, 3177 (5 less frames in 60 seconds. Negligible difference, especially if we're going to try enabling Vsync to eliminate tearing.)
Texture Filtering P - 36, 77, 53.267, 3196 (14 more frames in 60 seconds. Tiny difference.)
Texture Filtering HP - 36, 77, 53.1, 3186 (Worse performance than Performance, but all differences are negligible. Sticking with HQ.)
Trilinear Optimization OFF - 39, 79, 54.983, 3299
Threaded Optimization - Minimal Change between all of them. I set it to on just to make sure Java 7's multicore garbage collect uses all the cores it can.
Vsync (Adaptive. I want to try it out!) - 36, 62, 50.017, 3001 (There's an added benefit of NO screen tearing and minimal, if any, input latency. Improved image quality and limited frame rates also help save power and money. I'd really recommend turning this on! It's fantastic!)
After all of my testing, my settings are as follows:
AF 16x (Need to test)
FXAA - ON (IMPROVES Performance massively.)
FSAA - Gamma Correction ON (Need to test)
FSAA - ENHANCE Application setting to 16x CSAA
FSAA Transparency - 8x Supersample (Need to test)
Maximum Prerendered Frames - 1 (To cut down on input latency with Vsync on)
Multi-display Acceleration - Multiple Display Performance Mode (Single for all you single screen users out there!)
Power Management Mode - Adaptive (To save power and money!)
Anisotropy Optimization - OFF (Negligible gains, but they're there!)
Neg LOD Bias - CLAMP (Negligible losses.)
Texture Filtering - HQ (Negligible losses.)
Texture Filtering Trilinear Optimization - OFF (Negligible gains.)
Threaded Optimization - CHOICE (If you're using Java 7, try it with it on. Can't hurt, right?)
Triple Buffering - ON (To improve Vsync performance)
Vsync - ADAPTIVE! (To save power and eliminate screen tearing. Try it!)
Your mileage may vary!
I still don't think it matters. FSAA or not. Because AA is being controlled within the game. Instead, what you should do is enable AA in-game and let the game takes over. You may get better result this way.
So why do u see difference in benchmark then? Pretty simple, your sample is too short. Try an hour and see if things start to stutter. It has never been about burst FPS that bothers this game. (This is not your first person shooting.) It's about the prolonged gameplay and whether or not the performance degrades that matters.
So it's again YMMV. If you want to benchmark this game like first person shooting, there is no one to stop you. But if you do come to the forum and ask "guys what else can u do better", you need to get your benchmark straight first, so you are actually testing things that matter.
One thing that could help reduce stuttering is to disable Steam overlay. It's a very straight forward tweak that is often overlooked.
Already disabled that. I don't like it popping up while I play, anyway.
If I wanted to, I could probably run four fifteen minute benchmarks at some stressy areas, but I currently don't have the time to go finding them. Also, the game isn't controlling my Antialiasing because the game refuses to take hold of it. No matter what I set it to, it always goes back to 1x antialiasing when I start the game up. That's why I opted to pick the "enhance" setting, so I can actually get some antialiasing. Also, FXAA does help, whether the game's controlling the level or not. The reason is because the GPU's actually doing the 'smoothing', and FXAA is an alternate algorithm. It works no matter what, but it's a bit less noticeable on the lower end of the AA spectrum. One thing it really does is cause some jaggies around the text, but that's no biggie.
Honestly, the best things for smoothing out gameplay are adaptive vertical sync and FXAA. (Not to mention putting the game into a RAM disk for loading times, but that's a different story altogether.)
This thread is incredible useful, thanks!
Post #172 - Ewbte wrote: "teh command for extra.txt to limit fps? please >_<"
A nice recording program is Bandicam, available at bandicam.com - it can even limit your fps without the need to record (for free of course). I like it so much that I really hate why Fraps is so much more popular...
@ #182 This thread helped me a lot and speeded up my loading times in some cases much. So I felt like that I leave an answer here to help someone too. I use Bandicam in almost every game to limit my FPS (frames per second) to avoid overheating in summer or just to save power and the life of my hardware. Maybe it looked like an advertisement, but it was NOT intended to be one. So you don't need to offend me my little friend...
If some advanced users have their own extra.txt commands which aren't known here and maybe even better, please share it with us. Thanks in advance!
I've tried every single one of these solution, including doing the simple "Turn off the Steam Overlay" bit. But I'm still getting 2-3 second freezes every half minute or so whenever I'm down in the clockworks. I just lost about five Sparks in an Arena just because the game froze up so many times that I couldn't get out of getting cornered.
For the record, I'm using a Steam-Client x64 Version of SK.
Windows 7 Ultimate 64-bit
Processor: Intel(R) Core(TM) i3 CPU 540 @ 3.07GHz (4 CPUs), ~3.1GHz
Memory: 4096MB RAM
Available OS Memory: 4022MB RAM
DirectX Version: DirectX 11
Card name: ATI Radeon HD 4670
Chip type: ATI display adapter (0x9488)
DAC type: Internal DAC(400MHz)
Dedicated Memory: 248 MB
How appropriate that this necro occurred in the middle of an undead-themed event.
Jisillia, the problem you describe was really common on Radeon 4000 cards back in spring 2011. Usually toggling the vsync setting in the game fixes it, but you really should update your graphics drivers. It was fixed over a year ago.
Are you using the "Verify Integrity of Game Cache"-steam function? This sets all files to the steam server defaults, also deleting additional files which doesn't belong there, I think.