The launch of the Witcher 3 introduced a couple of game graphics options that aren't very commonly available in settings menus. Photographers may be familiar with the likes of chromatic aberration and vignetting, but not many games have offered these items for tweaking in the past.
We recently benchmarked The Witcher 3 for GPU performance and remarked that the game was horridly optimized, taking the opportunity expand on the graphics settings in a limited fashion. Since this posting, CD Projekt Red has released a new game patch (1.03) that drastically improves PC performance on various video cards; AMD is expected to release a Catalyst 15.5 beta driver update that focuses on the Witcher in the near future.
This Witcher 3 optimization guide defines the best graphics settings for improving FPS in the game, seeking to explain each option in greater depth. We independently benchmarked various game settings on a Titan X (to eliminate bottlenecking on the hardware) and took a graphics settings comparison video, found below. Although screenshots can get some of the job done, a comparison video is critical for a game like The Witcher; CD Projekt Red's newest RPG makes heavy use of temporal filters, which means that the filters make the most impact over time (seen through movement, which isn't conveyed in a screenshot). We'd encourage checking out the video for just a few comparisons of the many options.
Other The Witcher 3 Content
The Witcher 3 Optimization Guide & Performance Benchmarks [Video]
For this test, we combined our methodologies from the texture comparison and the GPU benchmark.
We tested using our updated 2015 GPU test bench, detailed in the table below. Our thanks to supporting hardware vendors for supplying some of the test components.
The latest 352.86 GeForce driver was used during testing. AMD's 15.4 Catalyst Beta was attempted for use, but we fell back to 14.2 stable after severe instability with the beta driver. Game settings were manually controlled for the DUT. Overclocking was neither applied nor tested, though stock overclocks (and “superclocks”) were left untouched.
VRAM utilization was measured using GPU-Z, ResMon, Windows tools, and then validated with MSI's Afterburner, a custom version of the Riva Tuner software. FPS measurements were taken using FRAPS and then analyzed with a spreadsheet.
Each game was tested for 30 seconds in an identical scenario on the cards, then repeated for parity. All tests were conducted a minimum of three times; some underwent additional passes to achieve parity on settings that had a small difference in reporting (to ensure accuracy).
Average FPS, 1% low, and 0.1% low times are measured. We do not measure maximum or minimum FPS results as we consider these numbers to be pure outliers. Instead, we take an average of the lowest 1% of results (1% low) to show real-world, noticeable dips; we then take an average of the lowest 0.1% of results for severe spikes.
For purposes of texture graphics comparison, we took easily replicable steps on each texture resolution setting to ensure accuracy of results. All graphics settings were configured to their maximum value on the graphics and post-processing tabs – so that'd be “ultra” – with the exception of anti-aliasing effects, all of which were disabled; HBAO+ was disabled in favor of the more efficient SSAO, HairWorks was completely disabled until tested independently. Screen resolution was set to 4K for texture screenshots, but kept at 1080 for benchmarking to eliminate a throttle on fill-rate or bandwidth.
We traveled to preselected locations for texture comparison. Once there, we stood on designated “landmarks” and took the screenshots.
We face two issues with presentation of screenshots as data: They're massive, consuming large amounts of server bandwidth and greatly hindering page load time, and they're comparative, so we've got to find a way to show three shots at once. In order to mitigate the impact of each issue, we used a selection marquee of 546x330, selected a detailed portion of the 4K image, and then pasted it into the documents shown below. There is no scaling involved in this process.
Because file sizes were still an issue, we then scaled the finalized document into an 1100-width image, embedded below. The original article contains the 2x larger version. No scaling occurred in the saving of these images.
Tests were conducted on an identical configuration with either a Titan X or R9 290X. A few initial tests were conducted on a Titan X using 4K resolution, but upon finding that settings bottlenecks were largely superseded by performance impact from resolution, we conducted the majority of tests on a more reasonable 1080p.
All tests were conducted using manual benchmarking. Some settings were given more custom-tuned courses for analysis.
Note that more “situational” settings may not be reflected perfectly in our bench. Detail settings, for instance, will more severely impact FPS if following intense combat, but it's extremely difficult to accurately measure dynamic combat for FPS variance.
There is a potential throttle in our test methodology: Because it would be unreasonable to test every single setting at every setting level with every video card we have available, it may be the case that cards which bottleneck elsewhere in the pipeline will exhibit different performance than we see here. AMD cards that choke on tessellation would be an example of this.
A Note on CPU Performance
We haven't yet conducted official CPU benchmarks for The Witcher 3, but will do so in short order. Findings will be published if found to be relevant to discussion. To this end, our tests will not necessarily reflect performance output from lower-end CPUs.
VRAM & Memory Consumption
We've found The Witcher 3 to consume less than 2GB of VRAM on average. After subtracting consumption of background processes and Windows, our analysis shows the Witcher 3 as utilizing approximately ~1800MB of VRAM at ultra / 4K settings (HairWorks off, SSAO, AA off).
System memory consumption seems to fluctuate drastically dependent upon what assets are being loaded and when (whether or not cinematics are called, for instance), but we see The Witcher 3 sitting at a healthy gameplay average of 2.3GB system memory.
The above image is an nVidia reference image we were provided for HairWorks; we find that it best demonstrates the technology insofar as an embeddable format goes, but our above video showcases some differences as well.
HairWorks is among the single, hardest-hitting aspects to gaming performance. This is why we disabled it during testing, among other reasons – like poor execution on tessellation-limited AMD hardware. HairWorks tessellates hair and hair-like objects (fur, for one) in a fashion that produces a more realistic count of individual strands of hair, then assists in rendering the hair in a physically-accurate fashion. Movement will cause hair to bounce or sway, for instance.
Disabling HairWorks means we get what's been in games forever: Fairly static objects that might have a fixed movement animation (Geralt's hair will perform an identical bounce animation every time he takes a step if the tech is disabled). Tuning HairWorks to just Geralt will limit FPS impact, especially in monster-heavy scenes, but means that we only see the main character's hi-fidelity hair rendering. Turning it full-on will heavily impact framerate when battling multiple enemies that require hair rendering. In our test, we were only able to reliably benchmark HairWorks with two fixed subjects – Geralt and his horse. Note that framerates were found to drop further when battling monsters, but it becomes too difficult (with too many moving parts and variables) to confidently benchmark without a fixed benchmark utility or debugger.
We recommend entirely disabling HairWorks for most users. NVidia users with high-end hardware – like SLI GTX 980s or a Titan X – may consider using HairWorks at least part of the time. As of the new patch (1.03), system performance has been improved across all settings (and HairWorks, seemingly) to the point that enabling the tech in a limited fashion is more feasible.
AMD users who wish to see HairWorks are encouraged to tweak “hairworksAAlevel=” to a lower value in the \bin\config\base\renderer.ini configuration file. Please make a backup first.
[Severe] Foliage Visibility Range
Foliage viewing distance is the next biggest FPS limiter in the Witcher 3. Foliage viewing distance was updated with 1.03 to better “pop” grass into the viewing space, and has had a somewhat noticeable performance improvement since launch. Foliage viewing distance governs the distance threshold required before additional foliage begins popping into the game world.
We recommend turning this down to High on almost every configuration, given the massive performance disparity between Ultra and High. More frame-limited configurations may consider a drop to medium or low, if foliage view distance is of minimal importance to the player.
[High] Ambient Occlusion
Ambient Occlusion is a term used for describing how light interacts with objects of varying materials and translucency. AO is best seen in-game when walking within a windowed building that casts rays of light into the room. AO increases shadow contrast between connected surfaces, adding an apparent depth to surfaces when required.
The options here are Off, SSAO (Screen Space Ambient Occlusion), and HBAO+ (nVidia's technology).
HBAO more precisely tunes shadows for realism and mitigates the likelihood of over-aggressive shadowing when not required.
[Medium] Shadow Quality
Shadow quality settings increase the darkness and frequency of shadows applied to the environment. Lowering this setting will lighten shadows and limit the appearance of smaller shadows (shadows of insignificant objects, like a tree branch). Lower shadow settings will also produce more “shimmering” of character shadows on some surfaces, like the shadow of Geralt's sheathed swords against a nearby wall.
Between Ultra and Low, a difference of nearly 10FPS is seen with shadow quality. This is a setting of moderate performance impact, but should only be adjusted after HairWorks, Foliage Viewing Distance, and Ambient Occlusion.
[Small] Grass Density Level & Quality
Although we originally suspected grass density would have severe impact on the Witcher's performance – as it did in GTA V – the framerate dips are almost immeasurably low in our tested environments. Greater differences can be produced by tweaking the game's .ini files, but we won't venture into that today.
The Witcher 3 institutes a custom version of anti-aliasing technology, using temporal filtering to primarily target shimmering edges of objects like grass and branches. We found the Witcher's AA to have minimal impact on FPS, surprisingly, though it does have somewhat noticeable impact when moving in-game.
We generally recommend leaving AA on for 1920x1080 resolution displays, unless absolutely desperate for additional frame output. Higher resolution displays generally do not benefit from AA.
[Negligible] Texture Quality
Texture quality was tested in a fully independent article, where you can find all the comparison images posted.
Texture quality has effectively no impact on FPS, but a large visible impact at the low-end of the settings spectrum. High and Ultra have few differences and are more noticeable temporally.
[Negligible] Detail Level
Detail level governs the duration of display and count of decals rendered to the screen post-conflict. Scorched earth marks and blood splatters are two examples of items impacted by Detail Level. Increasing detail level will lengthen the display of these decals. Note that detail level is incredibly difficult to test with accuracy, as it requires dynamic interaction with the game – combat, namely – and cannot be easily tested in a vacuum. This means we can't easily replicate testing from setting-to-setting.
In our limited test runs, we found detail level to have negligible impact on FPS output. The decal count can be incremented in the game's .ini files, which may more heavily hit FPS.
[Negligible] Water Quality
For the water quality test, we did something unthinkable: Stood at a shoreline and interacted strictly with the water – even swimming in it, for drastic measures. Water quality difference can be observed in our accompanying video.
Ultra water quality features splashes from stepping or diving into water, along with splashes from swimming and wading. A wake and ripples emanate from the player character when swimming with ultra quality settings. Dropping settings to lower values will create what appears to be a static animation of rolling waves in the water, with no ripple or wake effects from player interaction.
There is minimal FPS impact.
[Negligible] Background Characters
We could not test background characters. According to nVidia's optimization guide, which cites the game's .ini files, the Witcher's Background Characters option governs how many NPCs are drawn maximally to the screen at any given time. The thresholds are 75, 100, 130, and 150 NPCs. We were unable to locate a region with this many NPCs simultaneously.
[Negligible] Blur / Motion Blur
Blur and motion are self-explanatory, and may be worth disabling for players who dislike motion blur. The effect has no measurable impact on framerate performance and can be left enabled for those who like the motion blurring.
[Negligible / Not Functional] Terrain Quality
We tested terrain quality in several rolling hills and fields, finding no visible or performance difference in our tests. In theory, Terrain Quality dictates the aggression of tessellation in hillsides and terrain elements. This can be left ignored or maxed for the time being.
Bloom has a massive visual impact on the game. Fortunately, the FPS change is effectively zero. This setting can be readily maxed-out – like most postprocessing FX filters – as an item with minimal framerate hindrance.
There is effectively zero performance impact at either end of the on/off toggle for Sharpening. Sharpness, as in Photoshop or similar applications, will modify the clarity of object edges in game. This can be left enabled if visually appealing, as it has no measurable framerate change.
[Negligible] Depth of Field
Depth of Field is a game setting that pulls on photography roots. Depth of Field introduces levels of apparent depth to a scene by applying a “bokeh effect” around the in-focus subject. Objects which are out of the focus of the “shot” will be blurred slightly. This filter has minimal impact in the Witcher 3, but can have a profound impact in other games. DOF filtration is used in a lot of the game's cutscenes, but we never saw a performance issue with the tech enabled.
[Negligible] Chromatic Aberration
Chromatic Aberration is another term from photography. Chromatic Aberration gives the world the appearance of looking through a lens influenced by light. In real-world photography, this occurs when a camera has difficulty focusing on a specific wavelength of light, creating “vibration” in the photo. We found chromatic aberration to have almost no visual impact to gameplay, and no impact to FPS whatsoever.
Vignetting is the act of adding a soft shadow around the edges of the screen, most applicable in cutscenes or Witcher Sense. This has no real performance impact as it is just a filter drawn atop the rest of the graphics. It is entirely user-dependent.
Conclusion: Just a Few High-Impact Settings
The Witcher 3 doesn't seem to have as many FPS-limiting settings as GTA V – especially after Witcher 1.03 – but does have a few key, high-impact settings that should be tweaked on nearly every configuration. We would recommend that most players disable HairWorks and drop Foliage Viewing Range to High from Ultra, as these two settings in conjunction will offer massive performance gain. The rest can be left maxed or near-max, for high-end video card configurations. Ambient Occlusion is worth lowering to SSAO or Off on configurations that are still not powerful enough to run the game at an agreeable framerate.
- Steve “Lelldorianx” Burke.