SWTOR and Graphics – Part 6
The final part of this puzzle. The combination of the application implemented features and the addition of some of the control panel, hardware implemented features. I talked about the Nvidia Settings in Part 1, Part 2 I went into more detail with DirectX and looking at how DirectX 9 and DirectX 11 were used and how a benefit could be gleaned from performing a full installation of the DirectX 9 runtime. Part 3 and Part 3.5 I was looking into the services and virus scanners and how this can help freeing up RAM, even providing some Windows scripts to shut down services. Part 4, I went into the SWTOR graphics settings available, looking at the values available. Part 5 I went into more detail and describing with images on the differences each setting would have.
Firstly is there a difference, yes and no. There are some settings that are purely software driven, others are implemented on the card and therefore will function the same as in the application as it does in the control panel.
But what I have found is, especially with the nVidia control panel (less with the AMD but it is still there) is there are options that have Enhance Application Settings.
Essentially many of these things are suck it and see, why? Well one might not be able to determine how Anti-Aliasing is set in the code, how they apply Anisotropic Filtering to the textures, if they are truly implementing software or hardware settings.
To help give you an indication of what goes into the system for games, see the image below.
Now if you are up on application architecture this image might seem a little daunting; and with an MMO it is even more so, since you are having both the server side and client side. But looking at this, it shows a couple of important features that can help you decide if you should use Application Settings, Enhance Application Settings or Override Application Settings.
One of the things I have noticed, is the HeroEngine’s physics system connects to Nvidia PhysX, this is a great tool for offloading the load from CPU into the GPU for complex physics calculations. But if you have an older Nvidia card (without PhysX or even one with PhysX but still older), this might be something that you can switch off. Since AMD cards do offer this ability it is implemented to differently. If you have a decent CPU, Quad Core or better, so we are looking at Quads, or newer i5 or i7 chips, on the multi core AMD chips, it might be better to offload this work to the CPU, this will free up cores on the GPU for handling the graphics processing and users of AMD have no choice in the matter. Only if you are using an SLI would I recommend turning it off.
I can discuss the PhysX v CPU implementations of the physics in the game later. I might, depending on how much of my brain I want to expend on this look into the choice of using the HeroEngine and the drawbacks it may have on the end user and the game.
First, the best way to handle all of these settings is with a program setting. Since the NVidia control panel has a Global settings and a Program settings it is best to set all of these values in the Star Wars: The Old Republic.
Why? Simple, there are some settings here than can affect applications that render on the GPU. And example of this is the FXAA option, since this isn’t applied specifically to 3D objects and provides a shader based version of Anti-aliasing which can “smooth” and essentially blur things when they aren’t meant to be. The program attempts to look at programs that use the GPU for some rendering, if SWTOR isn’t in there, it can always be added.
Uncheck the box Show only programs found on this computer and it will contain all of the applications that might use the GPU for some rendering that NVidia know of.
So as you can see there is a lot of options in there. If the game isn’t there, simple click the Add button. Note: SWTOR has 2 parts the launcher and the application, be sure you select swtor.exe and not launcher.exe. Since the launcher ends after you click play and swtor.exe has run.
So, Ambient Occlusion, this is a setting currently used within the game engine. Within the control panel it doesn’t have an enhance option. I will come back to Ambient Occlusion once I have dealt with some of the more simple options. Note, if you are running XP, you will not be presented with this option.
Anisotropic filtering also doesn’t provide an enhance application. My opinion is setting this here, I have mine set to 2x, combined with the setting of Low within SWTOR I feel the combination enhances the look of textures at a distance without compromising on the performance too much. Lower end cards I would recommend this being turned off. Since you can’t turn it off within the SWTOR, it is best to just let it be handled within the game. Impact is minimal on performance even on lower end cards.
The FXAA Anti-aliasing, this is the new Anti-aliasing technique that uses the HLSL. I have gone through this before and I won’t reiterate on it. Suffice to say that, if your card supports this, I recommend turning it on. Why, since this applies the affect to all rendered surfaces, normal AA is applied to the edge of meshes and textures rendered on the GPU. So the effect will be subtle but mid to high cards will only have an overall better looking image.
AA settings, which I have done through, Keep Anti-aliasing – Gamma correction off. I will not going into the details of this but unless you actually know what this and are wanting it, it is taking GPU processing and will not increase the quality that much over the impact it will have on the GPU. Since this is only used for OpenGL and SWTOR uses DirectX there is no point even enabling this feature.
Anti-Aliasing – Mode, this is where I would say Enhance the application setting is good. Interestingly, if you turn this to Enhance, and you have the option off you will still see some betterment of the image.
I grabbed the image as it shows a very good example of AA.
This is the way I have it set up. The reason for this is the way the GPU handles the enhancements over the overrides. The exact way I believe is beyond the scope of what I am trying to get across in this article, but needless to say that, setting this to its lowest level, the implementation of FXAA if available will still show some jagged edges, but the improvements v GPU hogging is much greater. The amount of Anti-Aliasing does affect performance greatly, also the type of AA does as well since there is in the list, the CSAA method, this is more resource intensive than the normal mode, but the image quality is better. See the difference between No AA, the methods I have described which is Enhance and 2x, then FXAA on and the best of all, Enhance, Application to High, AA set to 32xCSAA. Vast difference, but also see the frame rate of each as well.
AA transparency, this is a wonderful addition, I have seen massive improvements on the visual quality of the game with this set. SWTOR has a lot of grates and areas where textures have alpha channels set. The AA transparency is where this comes in, improving the edges of these alpha channels in the textures. See this difference between it turned on, and turned off (I have turned off AA all together to show the difference this effect alone has).
CUDA GPU, set to All. It has no effect on the game appearance but if you are planning on using PhysX you can’t enable it with out this set to one of the GPUs.
Maximum ore-rendered frames, leave this to application settings, the more frames that is buffers, the smoother the output but it will also mean a decrease in performance since it is taking more memory to hold that additional frames. If you are feeling that there is a difference between your input and the action happening, then decrease it, but only if it is noticeable.
If you have one monitor, then make sure it is set to Single Display Performance. If you are running at resolutions that span multiple monitors, then set this to multiple display performance mode. This simply allocates the processing for each display evenly on the GPU, if you multiple displays but only play the game on one, set this to single, and the other screen will not have as much resources available if it needs any hardware rendering to be displayed to this. It also manages the memory and frame buffering for the outputs as well. I recommend, a single display unless your system is an overclocked beast with multiple GPUs then leave it as single.
Maximum performance mode for the next setting, I feel I don’t need to explain this one, if you set it to adaptive, it will chew more power when needed and it will slow fans down when not required and use less power. But, there is a performance hit (I can’t tell you how much) between it needing more power and the card giving it. There might be stutters in frame rate or even pauses. A problem with MMOs when action is still happening, even if you can’t see it.
Next as settings for the Anisotropic filtering. sample optimisation, turning it On means that the image will not look as good if it is turn off, but it will still give a decent image if you are using Anisotropic filtering, it will just not be as vigilant in its application of the filtering, the best way to state this I believe.
Negative LOD bias, set this to Allow. I described this in decent detail in Part 1. Quality setting, this obviously has difference settings talking about quality, etc… but I have set this to performance. See below for the difference between High Performance and High Quality, including the the frame rates.
Threaded Optimisations, turn it on, if you have a multi-core CPU then it will enable a better cross thread and cross process marshalling as it will implement some of the optimizations on the GPU and it doesn’t care what thread it came from.
The final setting is V-Sync. I have this off. Why, if it is off then I can have frame rates in excess of 100, and I have seen it. But, it can cause tearing (even at high levels though it is less noticeable). The options can lock it when you are over and unlock it when under, but I find with it off, the transition between the frame rates above and below the refresh rate of the monitor is not noticeable at all.
And that is it. There are some advanced tweaks that can be done in the INI files of the game, but I will not cover these. Why? They’re tweaks, nothing more, it is a matter of getting an extra frame or 2 per second and nothing wholesale.
These are the settings I have set. I am also constantly tweaking things. My in game settings are not going to change. But certainly in the effort of getting the best look for the best performance it will take a lot of time and patients to get the most from your video card.
Also a note, do not be discouraged by people who might come out and claim that have an old 8800GTX that has running 1920×1080 resolution at max settings and it runs at frame rates over 60. You may not know anything else about their rig so take it with a grain of salt.
So with the settings I have provided and hopefully explained I can go from 40 fps to 120 fps, based on location and environmental effects. When I do Operations I will turn off Bloom and Shadows Off, this increases my performance remarkably so and I do not get any slow down in Operations. With those features turned on, there might be stutters here and there based on the effects going on.
Well I hope I have some, that said, if you ever need some help getting the best performance our of SWTOR, add a comment or contact me, with your rig details and I will be more than happy to provide you with some details on what to try as a minimum and then tell you what you can increase to achieve best results for performance and quality.