Latest guide update 20210104

– Corrected info about Crowd and the ability to enable crowd on practice and qualifying sessions

– Added general info about new GPUs from Nvidia and AMD
– Added general info about new CPUs from AMD
– Added new header “Summary”
– Added a summary about recommended iRacing in-game graphics settings
– Corrected some spelling stuff (again)

Introduction

This guide can either be watched in video or read as text continuously updated here below, it’s foremost about optimizing the VR experience in iRacing but the information can also be used as a guide for iRacers using monitors as many of the in-game graphics settings are and functions the same.

As we drive a racing simulator the immersion is very important alongside having the best race result possible. As much as between estimated 25- to 50% of all iRacing members now use a VR headset for their weekly dose of iRacing. With new hardware such as a VR headset there are often tweaks to be found in the software just spending some time investigation.

I like the simplicity of using the famous default setting as that are often a setting that is balanced and stable and If things are working there are really no need to change anything. But as we PC users have different kind of hardware installed there are improvements for the VR headset to get for free both visually and performance vice, how much depends on the hardware and mainly the CPU and GPU that are in use.

We can most certainly get the specified refresh rate of our VR headset in iRacing even in the most demanding scenarios if we just lower our in-game graphics settings, but that would not be the most optimal solution. The reasons are that some settings have affect in the VR environment while others do not and the performance impact of some of these settings are also different so it’s more complexed compared to the normal 2d graphics settings.

I hope this guide will be an all in one place help to users with various VR headsets using iRacing and my objectives are that many throughout this comprehensive guide will be getting visual and performance boosts. As a reference my PC system specs at the time of writing this guide is a AMD Ryzen 7 3800X CPU, Gigabyte Aorus GTX1080Ti GPU, 2x8GB G.Skill Trident Z Neo DDR4 3600MHz memory and I use a Oculus Rift VR headset.

Beside doing my own testing my sources of information have been the iRacing forum and members I want to thank are Sean A Fleming, Clive Norton, Clayton Macleod, Eric Bourduas, Scott Velez, Jacob Klein among others for invaluable inputs in the subject here. Please visit their useful forum threads and posts by clicking on the links below.

https://members.iracing.com/jforum/posts/list/3576791.page (The iRacing VR Bible)
https://members.iracing.com/jforum/posts/list/3626733.page (Benchmarks for graphics options)
https://members.iracing.com/jforum/posts/list/2/3639651.page (CPU benchmarking results)
https://members.iracing.com/jforum/posts/list/3192704.page (IRacing graphics options and Nvidia settings)

As iRacing continuously updates the graphics engine and patching up the simulator some features will change over time, some will be new and other be deleted. Feel free to help out with these updates in the comment session below to this thread. Also appreciated is letting me know if I got something wrong in the information and sharing suggestions of adding new stuff to it. I plan of doing monthly updates to the guide and the information of that will be highlighted here at the top of the thread.

My recommended iRacing graphics settings in VR May 2021

Tested with AMD Ryzen 7 3800X CPU, Nvidia GTX1080Ti GPU,16GB DDR4 3600MHz memory and Oculus Rift VR headset.

Summary

In addition to my recommendations and to help out here is a short summary of this guide, for more details of each inividual settings and much much more please continue reading. These are the most important iRacing in-game graphics settings to disable, they all severely lowering our frame rate and give us practically zero visual improvements in the VR environment.

– Disable Dynamic objects
– Disable Night Shadow maps
– Disable Dynamic Cubemaps
– Disable Fixed Cubemaps
– Disable Higher Details In Mirrors

These are the iRacing in-game graphics settings we can tweak as first steps if we got performance headroom and want some additional immersion and eye candy.

– Increase overall detail settings
– Increase value Max Cars, Draw Cars and Draw Pits
– Increase value Cockpit Mirrors Max
– Increase value Shadow maps
– Enable AA Samples 8x
– Enable HDR
– Enable Two Pass Trees
– Enable Motion Blur
– Enable Heat Haze
– Enable Objects Self Shadowing
– Increase the pixel density

VR hardware requirements

The two main factors in VR performance are the CPU and GPU. The processor is responsible for keeping track of what is going on in the simulation and the video card handles displaying the scene and doing calculations involving lighting, shadows and more. What makes VR especially demanding is that the display for each eye must be rendered separately since they originate from different positions. Each eye’s display is in high resolution and needs to refresh quickly for a smooth in game experience and preventing motion sickness.

The VR scene will render all the pixels in a graphical complex 3D space and that requires far more GPU power than if we were just using a monitor with a flat surface. That is the reason why VR users can’t run the same detailed in-game graphics settings in iRacing as on running with a monitor despite similar resolution. The VR technology is indeed very complex and much harder to quantify given the almost limitless variables. VR users in iRacing can for an example look around inside a race car and as it happens the rendered scene are constantly changing over and over.

Hardware wise the CPU clock speed is important as that impacts how many instructions per clock called IPC each core can handle. IRacing staff say that the rendering is still basically single threaded in DX11 so it doesn’t take much to get our CPU bottlenecked, so we want the best single core performance available in VR and we know iRacing loves that to. The latest generations of Intel and AMD CPUs will do a great job and generally a CPU with a max clock speed around 4.0Ghz are ok in iRacing, around 4.5Ghz and above on one or more cores will deliver a good solid VR experience with very few compromises in graphics settings.

A note here is that Intel and AMD CPUs got different architectures so just looking at the clock speeds are not the fairest way to determine the performance as the IPC are handled differently. But generally the higher clock speeds the better IPC can be sort of a guidance and recommendation, every +50Hz, +100Hz help a lot and that is also more important than more cores. If we go the AMD route I strongly recommend the new Ryzen 5000 series CPUs as the important singel core performance got greatly improved. If we go with INTEL CPUs we got more to choose from but any unlocked gaming CPU with a clock speed around 5.0Ghz will be very good.

The choice of GPU in a VR system running iRacing is quite simple, on the Nvidia side everything above GTX970 will work but it’s recommended to at least have something from the GTX1000 series and preferably the RTX2000 and RTX3000 series to not drain the system. An AMD Radeon R9290 GPU is compatible running iRacing in VR but it’s the same scenario here, go for the latest generations for the best performance, the new RX6000 or the RX5000 series will work better. Nvidia high end series are to this date the GPUs that I recommended in VR in iRacing as they got the best features and best performance.

The amount of RAM installed in a PC running VR in iRacing are fine at 16GB, 8GB could be enough but might cause longer loading times or occasional hiccup but won’t affect the frame rate. We want the highest RAM speeds as possible, 3000MHz and above with tight timings, even if that is more important when racing on lower resolutions monitors it can presumably benefit some in VR.

Switch between VR and monitors

If we want to easily switch between using a VR headset and monitors we can use a third party app called iRacingConfig. This can be helpful for evaluating both the visuals and the performance or if we just want to run with monitors for a while. This app allows us to edit multiple iRacing ini.files simultaneously and create profiles with different in-game graphics settings that we can edit and apply to iRacing.

Another program worth mentioning here is iRacerAssistant (currently in beta) that can do the above and a lot more. As an example it can control and switch audio settings, different car.cam settings and in-car black box positions between the VR headset and monitors.

Monitoring our performance

A great way to monitoring our VR performance and finding bottlenecks is to enable the in-game R and G meters in the framerate meter to be shown as numeric instead of graphical. We can do that in the options menu since a build update in 2018 and this will indicate which element is more overloaded, the CPU (R), the GPU (G) or both. This will allow us to better choose the graphics settings depending on our hardware.

The meters give us information how many milliseconds it takes for tasks to be done by the CPU and GPU for the next frame to be rendered. Theoretically we want the numbers to stay below a value of 10.7ms based on our VR headset refresh rate running at 90fps. If we use a headset with a lower refresh rate such as 80Hz the numbers will be increased to 11.7.

Preferably we want the values to be under 5ms so we can maintain a good frame rate under racing in a full field race. If the numbers are higher than as an example of 10.7ms we will immediately drop frames. Also if the value of R is much higher than the value of G indicates that our CPU is bottlenecked and the other way around means our GPU is bottlenecked.

Another way to monitoring the performance and with a lot more detailed information is to use a third party app like fpsVR for users of Windows Mixed Reality (WMR) and SteamVR headsets and the app Oculus Debug Tool for Oculus users.

iRacing in-game graphics- and ini.settings

Alright enough talking about the VR in general let’s dive into the iRacing in-game graphics settings and go through what each setting does for us VR users. We have to kill the features that kill VR performance and not giving us anything in return. In some settings we can also go into the iRacing documents folder and the rendererDX11.ini file and the app.ini file to further optimize the settings if we want.

IRacing provides us with a graphics slider at the top with max frame rate on one end and the max quality on the other divided in 6 different classes with presets. We can slide it left for more details and right for less but this setting is not very precise so we turn it max to the left and do our settings manually under the advanced tab for better result.

Some of the changes can be visible right away if we go out on the track while others need a restart to make effect and iRacing does not specify which settings that need that. For making this easier we can drive one lap and then jump out of the car and use the replay tab and change one setting at the time. We can then see if the changes made any visual or performance impact on our system, not all settings that are under the graphics tab are in the replay tab but doing this can be helpful.

Even if there are hours to be made exploring all the different settings I suggest having a starting point to try keep things as simple as possible. We don’t want to over complicate stuff as the more settings we change the more control we lose of how each setting work and working with others and the placebo effect in VR are so powerful.

Besides giving my graphics settings recommendation I also give information on how much some of the features penalize the CPU and the GPU that can be helpful to really get into the finest optimizations. The bigger the track the bigger performance hit is not an entire true story as shorter track can be well as demanding, it’s the detail settings, number of cars, objects and shadows that requires time to render. The more we have the more work has to be done.

Resolution

Lower the resolution as much we can is a good thing even if it should have no real effect in the VR environment as it’s a low quality mirror or window of the rendered VR scene. The reason we got this mirror is to my understanding just to get the mouse cursor to work in VR. Several iRacing staffs says it should be pretty transparent in terms of overall performance but a suggestion is to make the mirror window as small as possible in size nevertheless, just to minimize any performance drains. I got mine set to 1024×768 but we can go lower than that.

I guess there are some uncertainties here and during my own testing I did not experienced any frame rate drops or gains testing this setting in different resolutions. Anyway I recommend having Resolution set to a value as low as possible.

UI Zoom

Makes the iRacing menus and in car overlays bigger or smaller so if we want that we can change this setting, no performance impact and personal preferences.

Multi-GPU Support

IRacing does not support the use of more than 1 GPU in VR and SLI or Crossfire adds latency and uneven frame times to the rendering pipeline which is a terrible idea for VR. I recommend having Multi-GPU Support set to 1.

Number of screens

This setting only affect running iRacing with monitors and got no impact in VR.

Multi-Projection and SMP

These settings only affect running iRacing with monitors and got no impact in VR.

SPS

This is a pure VR feature that needs a GTX1000 or preferably a RTX2000 and RTX3000 series Nvidia GPU and a device driver after v.390 to work. This setting is enabled by default if our PC specs meet these requirements and SPS in VR works similar to what the SMP does for the use with multiple monitors. SPS (Single Pass Stereo) optimize the VR rendering and allows the simulator to render a scene for one eye and then the GPU via shaders and SPS create the image for the other eye without needing to submit the entire scene a second time. This reduces the CPU load of the rendering thread and increases the frame rate up to 30% stated by iRacing staff. The gains are especially shown at the largest and most complex scenes when the frame rate would be lowest. VR users report that the performance benefits with SPS enabled are in the most common scenarios up to around 10%.

The difference between the two series Nvidia GPUs in regards of how SPS functions is that the GTX1000 series doesn’t support non-parallel projections. If we have SPS enabled on Nvidia GTX1000 series GPUs we will have the performance benefits but with a slightly visual distortion because there will be align offsets between the two rendered scenes. On Nvidia RTX2000 and RTX3000 series GPUs there is no problems visually with SPS enabled as it supports both non-parallel and parallel projections axis, everything is lined up properly.

Another obstacle here is that SPS can have different results based on what VR headset we use. This is because VR manufacturers as HP, Valve and HTC uses asymmetric projections with a different align of the focal points for each eye and therefore handles SPS differently. Oculus VR users seems not to be affected and this issue is very similar to how the Nvidia GTX1000 series GPUs work with SPS. Even if the headaches are at the hardware level we can according to iRacing staff try adjusting this software wise in the rendererDX11ini.file and the line “AlignmentFix=0” and change the value. VR users report that choosing “2” is a good choice here making SPS functioning better in the troublesome scenarios mentioned.


Right click to open in another tab for bigger image.

Alongside that users of Nvidia GTX1000 series GPUs and/or WMR/SteamVR users can also editing the default.vrsettings ini.file in the SteamVR local file to help this setting hopefully working as intended. We can do that by adding the lines “iRacingLauncher.exe” : true, and “iRacingSim64DX11.exe” : true on separate rows under the line “NoInterEyeRotation” : {.

I suggest we test SPS and make a decision if the performance gains are worth it or not and take all the information mentioned to consideration. Despite it’s issues I recommend having SPS enabled as it’s probably the best feature available in iRacing to optimize the VR performance. For AMD users the feature LiquidVR is equivalent to SPS but is to this date unfortunately not implemented in iRacing.

Full Screen

If checked this setting will run the mirror of the rendered VR scene in full screen and if not checked it will go into windowed mode. There are no performance differences between them in VR and this feature does not affects what we see inside the VR googles, so personal preferences here.

Border

Adds a border around the window that show the rendered VR scene and this can be helpful if we want to move that window around to the optimal spot for us, personal preferences here.

Align

There are very limited information available about what this setting actually does but my guess is that it’s similar to the border function above as it helps out when we use multiple monitors to determine on which screen will show the rendered VR scene from start, personal preferences here.

Sky/Clouds

Medium to high performance impact, lowering this setting to low will improve frame rate as that makes the sky and clouds to refresh at a lower rate and resolution. There are some shadows involved here to and those are real killers in VR. Medium setting looks very similar to high and the performance hit is likewise significant. Despite the sky can seem a bit jumpy I recommend low detail setting, we don’t want to waste performance on a feature we hardly notice when racing.

Cars

Medium to high performance impact, lowering this setting to medium or low will improve frame rate especially at race starts or when many cars are visible. We got to be careful here as this feature also adds draw distance especially at the highest setting and that is very demanding in VR. But if we don’t set this to high cars will pop in and out in the distance at superspeedways. I recommend high detail setting as a first choice and if the frame rate impact is to hard go for medium.

Pit Objects

Low to medium performance impact, lowering this setting will improve frame rate especially when the pit area is visible. At Off the only thing we see in our pit area is the lollipop guy, at low we got an empty pit box with a pit board hanging over our site. At medium we got all the crew and mechanics visible and at the highest setting we got some added movement to the crew behind the pit wall. I recommend medium detail setting as this setting cause extra drawing to occur and we want to limit that in VR.

Event

Medium to high performance impact, if we want objects as cars, trucks, campers, tents and crowd on the inner field we can choose max setting and at low we got the trucks alone and switching this setting to off the inner field is complete empty. I recommend low detail setting here as the performance impact in terms of frame rate are less noticeable at off and low compared to max detail setting and we want some things to be shown in the inner field for the sake of realism.

Grandstands

Medium to high performance impact, lowering this setting will improve frame rate and at off we don’t see any grandstands at all and at low we can see them but with a flat surface, at high we will get some added 3d modulation to the seats. This is not something that will be visible when racing so we just set the detail setting to low and save some frame rate especially at race starts. I recommend low detail setting.

Crowd

Medium to high performance impact mainly on the CPU, this setting is a bit complex and it has been rebuilt from the ground up under 2019 to significantly improve both appearance and performance. Lowering this setting to off we don’t have any crowds and fans spectating the races, at low the crowds are displayed but with front faces only like a paperboard, at medium the folks are in full attendance and at high some additional 3D characters are added around the track. A note here are that during testing sessions the crowds are always off and during practice and qualifying sessions the crowd are reduced to around 50%.

In the iRacing Appini.file there is a line “forceCrowdVisible=0″ that was introduced in a build update back in 2017. When changing the value to “forceCrowdVisible=1″ it enabled the grandstands to be filled with spectators regardless of event type.

This graphics setting and the three different detail levels does not adjust how many crowd members we see in the grandstands, just the rendered quality of them so the performance hit can be different due to what track we race at and how big the grandstands and the crowd size are. Lowering this setting will improve frame rate as expected so I recommend low detail setting here to free some frame rate for other stuff. If we want the crowds to flash their cameras when we race on some tracks we must enable crowds and also particles on whatever detail setting alongside having event enabled.

Objects

Medium to high performance impact, this feature controls the number of larger objects around the track both on the inner field and the outer surroundings as buildings, lightning poles, additional grandstands and commercial signs. I recommend high detail setting as the difference between the low and high setting are too big and it’s like we are getting robbed on everything at low and I want some things to be shown around the track for the sake of realism much alike the event setting.

This setting does not affect the bigger stadium lights just the lightning poles around the track so driving at night are fine despite what setting we choose here. Also remember that different tracks have different amounts of objects around the track so that will affect this features performance impact.

Particles, Full Res and Soft

Low, medium to high performance impact, this is a part of the PopcornFX engine that iRacing uses for nice graphics effects like smoke, marbles, sand, dirt, grass and exhaust pipe sparks. This is a must feature for us VR users as it adds great immersion and not only visually. At medium and high settings we also get fireworks and some neat sound effects added to the different particles and as the performance impact of the three different detail levels here are almost the same.

But in the dirt and rallycross environments where there’s a lot of dirt and dust the impact of medium and high settings can be too demanding and reduce our frame rate. I recommend high detail setting when we are running on road tracks and when going dirty offroad we can be forced down to low detail setting.

Also checking the box Full Res is important as it generally makes us gain frame rate except for some scenarios when the track being filled with large clouds of smoke. Likely important is unchecking the box Soft as it makes us lose frame rate without making any obvious visual differences and according to iRacing staff it also incurs a per frame overhead and we don’t want that in VR.

Motion Blur

Medium to high performance impact mainly on the GPU, this is a post processing effect that can be used when racing but is more used in replays for making fancy screenshots. The problem in VR having motion blur enable when racing besides it can be resource intensive is that we are getting motion blur effect for moving our head around and that is not very realistic, but some users like it. This effect is since the 2020 season 1 build update reduced slightly in the VR environment but I recommend having Motion Blur off anyway.

Max Cars, Draw Cars and Draw Pits

Low, medium to high performance impact, Max Cars is linked to the choice of connection type found in our iRacing account and preferences. A connection type of 128k/sec is more or less the necessary bandwidth for around max 28 cars and 1 mbit/sec for max 63 cars which is the maximum number of cars other than us.

The faster connection we have the more detailed information for other cars position, orientation and movement are transmitted to us so we set this accordingly to our connection speed. My recommendation is having Max Cars set to 40 or as large as our connection can handle, personal preferences.

Draw Cars and Draw Pits are separated from the pre-existing Max Cars setting but kind of working together anyway. These new rendering features specify how many cars that are being rendered by the ones that are transmitted to us accordingly to the Max Cars setting. We can control how many of these cars will be shown in our main cockpit view camera and in the mirrors, the value in the parentheses determine the limit of the inside mirrors. Draw Pits does exactly the same thing but is only controlling the amount of rendered cars being visible in the pit area.

I recommend having these settings set to the default values as it feels balanced in terms of performance and what we get visually. If we want to improve our performance here we can limit how many cars that are being rendered, especially in the mirrors. We can also go the iRacing rendererDX11ini.file and do changes at detail levels if we want.


Right click to open in another tab for bigger image.

Dynamic LOD, FPS, World and Cars

Low to medium performance impact. The old dynamic Level of Detail system (LOD) in iRacing only affected the cars and pit objects and has been replaced with an improved system.These new settings adjust the complexity of the objects as the camera changes distance from the objects in order to optimize the visuals and the performance. When enabled we can specify a minimum acceptable target frame rate (FPS) and iRacing will then automatically adjust the LOD selection to maximize visual quality while helping our PC to maintain the frame rate target.

Objects in the simulator are made up of polygons and the more polygons that are in use, gives more detail to the objects. To help performance as objects gets further away from our cockpit view position the LOD system swap them out with objects with lower polygon counts and continue to do this until the object basically are a block. This feature doesn’t adjust anything other than the distance at which objects lose or gain polygon detail. It doesn’t change shader, shadows, or anything else according to iRacing staff.

As an example if the actual frame rate falls below the target the system will automatically reduce the LODs of cars, characters, track-side objects, pit area objects, track surfaces, walls, and fences to improve our frame rate. On the other side, if the frame rate increases beyond the target frame rate, the system automatically increases the Level of Detail to improve the visual quality of everything. If we set these settings to off we are in a way reverted back to the old LOD system and Racing staff state that we will then have worsen performance.

I recommend VR users to leave the World and Cars settings to the default values, the FPS should be set to our VR headsets specified refresh rate, or slightly below.

If we want we can dive into the iRacing rendererDX11ini.file and fine tune these settings even further but with not much of a value. There are very little visual and performance benefits to find here, if we don’t exaggerate things off course.


Right click to open in another tab for bigger image.

Frame Rate

This setting does nothing for us in VR as our headsets refresh rate decide the frame rate. If we got a headset that run at 90Hz we automatically got a roof of 90fps in iRacing.

Vertical Sync

This setting also does nothing for us in VR as Vsync are already locked on in the drivers and we cannot turn it off. This is a must in VR as otherwise tearing would be very bad and that leads to motion sickness.

Max Prerendered Frames

This setting works only if we are using monitors and have nothing to do with VR. We can use a similar setting called Virtual Reality pre-rendered frames in the Nvidia control panel and more of that later.

GPU Video Memory

I recommend set this limit to our GPU video memory capacity and reducing that with around 2000MB or more to get a proper value. We can see the amount of video memory being used by iRacing to the right side of the slider and 8192MB is the max value we can dedicate to iRacing. We can make an adjustment in the iRacing rendererDX11ini.file to increase this value by changing “VidMemMB= 8192” to the amount needed if necessary.

As an example I got roughly 11000MB of video memory so I set this value to around 7000MB that should be well enough to feed iRacing and that also give the GPU a lot of MB left for important tasks within windows. IRacing staff says that setting this video memory slider to just a little over what iRacing uses can help with frame rate issues, personal preferences.


Right click to open in another tab for bigger image.

Max system memory to use

The maximum setting here is 16256MB and I suggest moving the slider to around 8000MB. 16GB of system RAM are as stated recommended when using VR in iRacing so after making iRacing happy with its share we got plenty of RAM left. If less system memory is installed just lower this setting accordingly, personal preferences.

Anisotropic Filtering

Low performance impact, this feature adds sharpness to textures and leaves very little to no impact on performance so there is no reason to not have this cranked up all the way. My recommendation is having Anisotropic Filtering set to 16x as adding sharpness in iRacing is a good thing in VR and more of that soon.

AA Samples

Medium, high to very high performance impact mainly on the GPU. AA stands for antialiasing and iRacing only support and use MSAA and the technique reduces the appearance of jaggy triangle edges in the rendered scenes. Antialiasing consumes a lot of video memory and can drastically reduce frame rate since many more pixels are rendered per frame. In VR this is very expensive because the headset must do two high resolution renders and the AA setting makes those even larger so I recommend AA Samples 2x and 4x and try see how it goes as the performance impacts doubles for each step.

At 8x the reduction in frame rate is around 20% right off and even if that mode provides slightly better visual quality than 4x it is not worth the loss in frame rate. 2x and 4x are the most used setting here among VR users and I don’t recommend turning AA off completely as that results in way to low visual quality.

A note here from the iRacing staff is that some VR headsets got their own antialiasing build into the device driver and software but it is necessary to use the simulators graphics options. This is because the antialiasing is performed on an off-screen multisampled render target which is then downsampled and warped to fit the smaller VR displays. Setting antialiasing via your VR headsets device driver and software is not good enough and won’t work properly.

AA Mode

Does nothing and seams broken, probably a leftover from DX9.

Render Dynamic Track Data and Render Dynamic Tire data

Medium to high performance impact, these two features are a must for us VR users as it like particles adds great immersion to the sim and connects physical aspects of the car and the track together. From the Dynamic Track Data we can see stuff like skid marks and rubber from tyres being stuck to the track surface and making it darken, track temperature fluctuates from the heat of the tyres and rubber marbles kick of the tires making piles at the side of the racing line.

From the Dynamic Tire data we can see debris as grass, dust and rubber appearing on our tires when going off track. I recommend having Render Dynamic track data and Render Dynamic Tire data enabled for the sake of realism. A note is that the later one is hurting us more in frame rate so keep an eye on it.

Shadow maps

Medium, high to very high performance impact, shadows and lightning effects are cool and looks better in VR compared to monitors but they can be very demanding. Having shadow maps set to track reduces the frame rate by around 5%, track and car by 10% and set to everything by 15%. My recommendation is limiting shadow maps to track/cars and still have nice effects inside and around cars where they matter the most in VR. Shadow maps work both at day and night racing and If we want more shadows we can choose shadow maps on everything.

To gain some performance out of the Shadow map feature we can again dive into the iRacing rendererDX11ini.file and adjust the line “DynamicShadowRes=1” to “DynamicShadowRes=0”. This will make iRacing use a lower resolution of the shadows 512×512 pixels instead of the default 1024×1024 pixels. The shadows look a bit jagged but it is worth a try. They can also be increased in resolution by changing the same line to “DynamicShadowRes=2” for 2048×2048 pixels or even “DynamicShadowRes=3” for 4096×4096 pixels at a performance cost for sure.


Right click to open in another tab for bigger image.

Objects Self Shadowing

Can only be used when Shadow maps are set to everything and hit us with an around 5% in reduction in frame rate. This will add shadows from trackside objects into the shadow maps and this not so demanding and clearly a better choice than Night Shadow maps that I will be talking about soon. I recommend having Objects Self Shadowing disabled anyway.

Dynamic objects

Very high performance impact, this is one of the bad boys in terms of killing frame rate and we don’t need it and not filter either, so make sure these boxes are unticked and likewise in replay. We are talking about a more of a twofold performance impact of the shadow maps on everything so this is scary. I strongly recommend having Dynamic objects and filter disabled.

Night Shadow maps, Walls and Headlights

High to very high performance impact on both CPU and GPU, this feature is a bit troublesome and the performance is little all over the place. It probably works fine on most tracks but at Daytona, Lemans and Sebring VR users report some serious dips in frame rate and lightning/shadows inconsistency.

It can be a bug that iRacing will be ironing out in the future but my recommendation is having Night Shadow Maps disabled as we already are using Shadow maps which works fine and have enough shadows. I recommend having Walls and Headlights enabled and let them work with the shadow maps for additional effects at a very little performance impact.

Number of lights and Filter

Medium, high to very high performance impact, this feature controls the number of lights that can cast shadows and I recommend Number of Lights set to 3, the default value or lower. Going the other direction just increase the performance impact with no visual differences. It’s the same with filter so I recommend no filter as these does nothing useful in VR.

Dynamic Cubemaps and Fixed Cubemaps

Very high performance impact, these two are bit strange, the first one is aimed to reflects other cars and cones to your car and the second one to reflects things like the walls and the fences. IRacing staff says that the fixed cubemaps are meant for the future and should be set to 0, it has gotten some updates but is still a kind of work in progress to get implemented on all tracks. Dynamic cubemaps works but the performance is terrible and adversely affect frame rates so I recommend having Dynamic Cubemaps and Fixed Cubemaps disabled by choosing 0 on both.

Shader Quality

This setting is like a shortcut for enabling/disabling the shadow settings mentioned above, at low we got mugged of every feature that involves shadows, at medium we got some features added and at high they are all there. A note here is that this setting oddly affects the shadow quality of our gloves and suit and also on our pit crew but not presumably the quality of other shadows. So we got to have this at high as especially the gloves inside our car looks like garbage otherwise and also to be able to tweak every shadow setting available.

Since the 2020 season 3 build update we can also choose a ultra detail shader level here if we use the graphics class level at 1 or maxed out. This new category have 3 additional textures into it and is working with cars with the new damage model. This affects our frame rate to various extent as the most expensive shaders are used on these cars to show the full damage appearance and also on dirt surfaces.

So for the sake of realism my recommendation is to have Shader Quality at ultra detail setting.

Hide Steering Wheel, Show Steering Wheel, Show Driver Arms

Low performance impact, here we can choose what we want to see when moving our head around inside the car. I got this set to Show Driver Arms and that shows the wheel to and feels realistic and sort of a must in VR but personal preferences.

Two Pass Trees

Low to medium performance impact mainly on the CPU, if enabled the tree geometry renders twice and I recommend having Two Pass Trees disabled as we don’t spend that much time looking at foliage when we race and even if the visual difference is noticeable, it’s not worth it.

Cockpit Mirrors Max

High to very high performance impact, when enabled this is a major resource hog and iRacing have continuously tried making this feature more efficient but it’s still quit a pain in performance and also to handle. The disabled mirrors are blacked out and when enabled they are based on a priority scheme, left mirror first, then rear view mirror, then right mirror and lastly other mirrors like computer screens in some cars.

If the virtual mirror, more info of that soon, and cockpit mirrors are enabled at the same time, the rear view mirror is lowered in priority to be after the side mirrors. Depending of what car we drive and the number of mirrors that the car has and the scheme of the mirrors priority this is a feature that can be tricky to optimize, especially when using monitors.

In VR it’s a bit easier because we can see all the mirrors when looking around inside the car and the priority is less important. When 1 mirror enabled the frame rate is reduced by around 15%, 2 by 20% and 3 around 25%. My recommendation is having Cockpit Mirrors Max set to 2 meaning our closest left side mirror and rear view mirror are enabled and if we are using the virtual mirror our right side mirror will automatically be enabled instead of the rear view mirror.

If our PC can handle it and for the sake of realism we can go for a higher number for sure but to be fair mirrors are less needed in VR as we easily can look over our shoulders for other cars and also have our in game sound rotating with our head movement helps out to.

Higher Detail In Mirrors

High to very high performance impact, this is another bad boy in terms of killing frame rate, this feature determines the rendered quality shown in our mirrors and it nearly adds 10% loss in frame rate for each mirror so I strongly recommend having Higher Detail In Mirrors disabled as it’s not worth it.

Headlights

Low to medium performance impact, this affects the cars that have headlights and if these are enabled the lights are visible during racing at late afternoons, nights and sunrises. This feature has been revamped since the introduction of day/night transitions, the headlight beam is now more procedural and move with the pitch/roll of the car and the brightness level have generally been increased.

Headlight beams locks very cool in VR so my recommendation is having Headlights enabled at low detail setting. I really can’t see any visual differences between the three detail settings and I have done extensively testing with many different cars, it could be some small antialiasing involved and also some more shadows but I am not sure.

Either way we don’t want to waste performance on features that don’t make any obvious visual difference. A little note here, if we disable headlights we still have the ability to flash our headlights so that feature is separate. If we want we can make an adjustment in the iRacing rendererDX11ini.file and the line “MonochromeHeadlights=0” to “MonochromeHeadlights=1” to enabling monochrome headlights. This will make all cars headlights to render as white lights providing a bit less banding and saving performance in some cases.


Right click to open in another tab for bigger image.

Headlights on track in mirrors

Low to medium performance impact, when enabled this feature we will at late afternoons, nights and sunrises see rendered headlight beams from other cars onto the track surface in our mirrors. It does not control the headlight itself as many believe and it could be useful to see other cars headlights beam lightning up the track surface especially at corners. As this happens in our mirrors I recommend having Headlights on track in mirrors disabled as it can be costly performance wise.

Virtual Mirror FOV

Medium to high performance impact, this feature gives us a rear facing mirror placed at the top of the screen and by pressing “alt+k” we can move the virtual mirror to the position we want and that can be helpful in VR. The virtual mirror is a little bit more friendly in terms of performance impact compared to the rear view mirror but it’s important to dial in a FOV in the setting to the right that preferably is as low possible.

Many VR users report that a FOV number around 45 or less is helping a lot with the frame rate. The lower the value the closer other cars are in the mirror and the opposite when raising the value. I can’t make a recommendation here whether we should enable or disabled the virtual mirror as it’s all about personal preferences.

Heat Haze

Medium performance impact mainly on the GPU, this effect aims to create the appearance of heat shimmer, a visible distortion in the air and this effect is tied into the ambient and track temperatures. My recommendation is having Heat Haze disabled because sure it adds realism but in VR compared to monitors the effect is hardly noticeable due to the resolution and the pixel density of today’s VR headsets.

Sharpening

Low to medium performance impact mainly on the GPU, if the SPS feature is the best in iRacing to optimize the VR performance the sharpening feature is the best for optimize the visuals. Sharpening helps the antialiasing and enhances the edges and reduces blurriness and this drastically improves clarity. If we want we can make an adjustment in the iRacing rendererDX11ini.file and the line “SharpeningAmount=125” to a lower or higher number that decrease or increase the sharpening effect.

We can also fine tune it even more by changing the line “SharpeningClamp=9” to preferably a higher number that to my understanding adjust the maximum percentage that each pixel can change. I strongly recommend having Sharpening enabled and perhaps do some changes in the rendererDX11ini.file just mentioned for optimizing this great feature in VR.


Right click to open in another tab for bigger image.

HDR

Medium to high performance impact mainly on the GPU. Today’s VR headset are equipped with SDR, Standard Dynamic Range displays and not with HDR, High Dynamic Range displays but this feature works in VR anyway, with some limitations. We don’t have enough dynamic range to see a significant difference but we can notice some visual improvement. Examples are bloom of bright objects such as rear brake lights at nights and higher contrast and colour saturation overall, how much depends on the scene.

We can see more of HDR elements at day/night transitions and when staring at the sun or when cars spin out and generate a lot of tire smoke. My recommendation is having HDR disabled anyway because of the rather big loss in frame rate and the diminishing returns in visuals. It helps to have a lot of GPU memory to have HDR working properly. A note here is that since the 2020 season 2 build update HDR is enabled by default if we use the graphics class level at 1 or maxed out.

Video mem swap high-res cars

When enabled the 3 closest cars when racing will render with higher quality textures and other with lower resolutions. This saves GPU memory usage as it uses onboard RAM instead but I can’t see any real benefits of having this option enabled as we VR users have enough GPU memory installed around 4GB and more. It also can’t be good to have car textures be swapped in and out between system RAM and video memory creating latency and in worst cases resulting in flickering cars. I recommend having Video mem swap high-res cars disabled.

2048×2048 car textures

Low performance impact, this feature bumps up the resolution of car paints from 1024×1024 pixels to 2048×2048 and this greatly enhances how the car paints look. This is a must otherwise the paints are a pixelated mess in VR and for an even better result we can visit the iRacing rendererDX11ini.file and the lines “CompressTexturesSuits=1”, “CompressTexturesHelmets=1” and “CompressTexturesCars=1” and change the values to “0” instead of “1” so the textures are uncompressed.

IRacing staffs says that this feature and the changes in the ini.file does not affect frame rate it just makes iRacing consumes more video memory, up to around 1GB in a 60 car race. I recommend having 2048×2048 car textures enabled and also do the changes in the ini files.


Right click to open in another tab for bigger image.

Hide car numbers

This feature will enable us to paint over the car numbers and decal areas with our own graphics during a testing session and have nothing to do with the performance so personal preferences.

FXAA

Low, medium and high performance impact mainly on the GPU, fast approximate Antialiasing, this is a post processing effect that aims to smooth out edges of objects on the screen and compared to MSAA this feature is significantly more GPU efficient. The big downside is that FXAA makes everything look blurry and even with sharpening enabled we can’t differentiate the blurred effect.

There are two settings in the in the iRacing rendererDX11ini.file that VR users report making FXAA seems less blurry, to an additional hit in frame rate, first the line “FXAAQualityEdgeThreshold=166”, set that to “125” and then “FXAAQualitySubPix=75”, set that to “50”. My recommendation is having FXAA disabled nethertheless as the standard MSAA does a better job and that right out of the box.


Right click to open in another tab for bigger image.

Distortion

Low to medium performance impact mainly on the CPU, this adds the ability for particles to distort the image they are rendering on top of, that means that some visuals elements around the track look a bit more realistic and not so cartoonish. I recommend have Distortion disabled as we don’t want to waste our VR performance on a feature we hardly notice when racing even if it’s a good one.

Parallax

Nothing is using parallax mapping in the game engine right now and it’s something iRacing staff are developing for a future release. The feature makes 2d textures look 3D and until this setting is activated and functioning my recommendation is having Parallax disabled.

Additional ini.settings

There are more iRacing tweaks to do under the hood in the iRacing folder that are not related to any in-game graphics option and the first to try is in the iRacing rendererDX11ini.file and the line “VisibilityFrameDelay=5”, when changing this to “0” we could eliminate some stutters and gaining some FPS especially when cornering at large road courses according to iRacing staff.


Right click to open in another tab for bigger image.

The second “showJoinLeave=1” is located in the iRacing app.ini.file and controls if we want to see a message when members enter/leave sessions. This can cause stutters especially when their car is added to the sim with it’s paint and even if iRacing staff have been addressing this issue it’s not completely solved so give this a try. Changing the value to “0” will stop the messages.


Right click to open in another tab for bigger image.

The third to try is in the iRacing rendererDX11ini.file and the line “PixelsPerDisplayPixel=100” for Oculus users and this one is widely debated. When increasing the pixel density value it will make scenes being rendered at a higher resolution and being supersampled before being downsampled to be displayed in the VR headset.


Right click to open in another tab for bigger image.

This can also be set using programs like Oculus Tray tool and Oculus Debug Tool and for WMR/SteamVR users the setting is called “Resolution Per Eye” and is located in the SteamVR settings. The Oculus Tray tool can be easily downloaded online and the Oculus Debug Tool is located in the Oculus program folder\Support\oculus-diagnostics. When decreasing the pixel density to a value below the default settings it’s costing us in resolution in the centre of our view and iRacing staff says that that can be an acceptable compromise for gaining frame rate at some circumstances.

Mostly this setting is being used to improve the visual quality and not the opposite and the reason is that this noticeably help with the overall image quality and antialiasing, especially with text on the screen and on the in car dashboard. Downsides are that changing the pixel density is less beneficial than the in-game antialiasing setting and VR users report that any value above the default can cause artefacts and not making any differences, it’s just a matter of placebo.

Other VR users report significantly improvements in the image quality by changing the pixel density and a value around 130 seems to be a sweat spot and working great, so this is a mixed bag and it’s highly in conjunction to what hardware we use. Changing the pixel density is very resource heavy mainly on the GPU and as an example by changing the “PixelsPerDisplayPixel=100” to a value of “130” adds around 17% loss in frame rate loss right off. Increasing the pixel density is definitely worth a try and digging more into just be careful that your computer can handle it.

The fourth is a new option called “TwoStageAA” that have been added to the Oculus Rift and OpenVR sections of the rendererDX11.ini file in the 2020 season 1 build update. This setting is enabled by default and is only visible in the rendererDX11.ini file after loading iRacing. Staff says that this option run antialiasing on the UI elements and runs a second pass of antialiasing on the scene after all of the post processing effects are run.


Right click to open in another tab for bigger image.

The reason for this option was added was because of optimizing changes of how the SDR and HDR scenes was functioning in VR. This caused the UI elements to not have any antialiasing and also degrading the antialiasing of the rendered scenes. When enabling this option it will add that antialiasing back and if we are low on VR resources or want to save some performance we can disable this option by changing the prefix value to “0” instead of “1, but that will result in less antialiasing and a lot of jaggy triangle edges in the rendered scenes.

Nvidia settings and general tweaks

Moving on into the Nvidia control panel settings and the profile for iRacing, not the global ones, AMD users can for sure find correspondent settings in their menus but I am unfortunately not able to look more into that. Any settings we change here override those corresponding we set in the in-game graphics settings and I just go through the ones I suggest we change and leave the others default.

AA Transparency

Try change this from off to either multisample or supersample 2x and no more for reducing shimmering from antialiasing. This stop edges on semi-transparent parts of the scene like fences, track lines trees etc. and it works great but is very costly on the GPU. Multisample is nicer on our system and can be a choice of happy medium but if we increase the pixel density we should just disable this entirely and leave it default or we will fry our computer.


Right click to open in another tab for bigger image.

Power management mode

Change from Optimal power to Prefer maximum performance, this locks the GPU into a higher voltage and higher clock state and will not lower itself into idle or a low power mode during racing. We want the best performance available to eliminate random frame rate dips.


Right click to open in another tab for bigger image.

Texture Filtering

Change from Quality to Performance or High performance as we won’t notice the difference in VR and it will buy us some free resources.


Right click to open in another tab for bigger image.

Virtual Reality pre-rendered frames

Set this to either 2 or 3 instead of 1, this has the impact of much faster rendering and really smoothing of the image and scene in VR. There is some added latency which is a bad thing but not something we will notice too much when racing and this is definitely a good setting to try out.


Right click to open in another tab for bigger image.

Variable Rate Supersampling

Variable Rate Supersampling (VRSS) is a new Nvidia feature available on Turing graphics cards from GTX1650 alongside the device driver 441.87 and above. This setting dynamically apply up to 8x supersampling to the center of the rendered VR screen. Compared to alternative techniques that supersample the entire screen this will theoretically improve the performance but iRacing is to this date not officially supported. The third party app Nvidia Inspector can be used to enable this feature in some basic regards and VR users report that it can have visual and performance benefits but others report the opposite so this setting is a mixed bag in current state.

Uninstall the GeForce Experience

We actually don’t need this and VR users report that having this enabled can cause frame stutters due to it’s processes taking up CPU and RAM resources to a level that is not acceptable. Remove it from the Windows add/remove programs in the control panel or when we manually install a new Nvidia driver by just select custom install, clean install and unchecked GeForce Experience.

Use DDU when updating GPU drivers

Display Driver Uninstaller is a driver removal tool that help us completely remove AMD and Nvidia GPU drivers from our system without leaving leftovers behind such as registry keys, folders and files. Over time these leftovers can cause compatibility issues such as drivers failing to install and reducing performance or system crashes/freezes. By using DDU we can remove these leftovers and solve many common issues related with GPU drivers. It also got an option to uninstall the GeForce experience which is a good thing.

Disable Windows 10 Game Mode

Game Mode is a feature in Windows 10 that focuses system resources on games when enabled but is not currently very VR friendly. Make sure this feature is disabled as it lowers our overall performance and it seems to starve important processes and causes massive stuttering.

If we are using the streaming and recording software OBS when racing we can try enabling this setting for better performance though. The reason is a beta hotfix to OBS that makes GPU both from Nvidia and AMD drastically better allocating their resources when streaming or recording. Microsoft have also been involved to help the update being further optimized and this have been implemented in the 1903 Windows 10 version and by enabling gaming mode. We must to this date run OBS as an administrator to enable this fix until OBS releases this update in an official state.

Disable SysMain Service

Since Windows 10 update 1809 the renowned Superfetch and previous prefetch service was retitled to SysMain. This service keeps track of which applications we use most and loads this information in RAM so that programs load faster than they would if the hard disk had to be accessed every time. We want this to be disable because it creates issues like high CPU and hard disk usage and can cause frame stutters when racing.

Press “Win + R” shortcut keys on the keyboard to open the Run dialog and type “services.msc” and find the SysMain service in the service console list. Double click on the service to open its properties and under startup type, select Disabled and click on the Stop button if the service is running, Apply and click Ok. After doing bigger Windows updates the SysMain service can automatically be enabled so keep an eye on this one.

Disable ASW/AR/MP

Asynchronous Spacewarp (ASW) for Oculus users, Asynchronous Reprojection (AR) for SteamVR users and Motion Reprojection (MP) for WMR users. These settings are aiming to get iRacing run smoothly and without causing motion sickness if we occasionally are dropping frame rate to below the value that our VR headset are specified running at. This technology fills in frames that can’t be rendered in time and if we can’t get the 90fps on the Oculus and the HTC Vive as a example we are forced down to 45fps and the frame that was previously rendered is injected in place of the frame that would have otherwise been missed.

The downside is that ASW/AR/MP is very aggressive and can drop the frame rate at the slightest hint of limited performance headroom and these dips can create frame stutters and judders which is not a nice thing to have. I suggest disabling this as we are racing a high pace simulator and the overall consistency in frame rate is important and even if we don’t or do reach our specified refresh rate of our VR headset we want the door locked for ASW/AR/MP.

A better choice is always adjusting the in game graphics settings first to gain performance so we don’t have to use ASW/AR/MP. We can have random frame rate dips for different reasons despite high end hardware and we want that to fluctuate of it’s own losing just a few FPS and not be in the hands of these programs. We can disable ASW/AR manually in the Oculus Tray tool, Oculus Debug Tool or in SteamVR menus.

MP setting is turned on/off by editing the default.vrsettings ini.file in the WMR for SteamVR local files. Find the line “//motionReprojectionMode” and remove the two bars in front “motionReprojectionMode” to enable the feature, leave it with the two bars to have it disabled.

Final thoughts

Alright, it’s time to end this guide about optimizing the VR performance in iRacing and have some final thoughts. It took me about 8 months on and off to write. The more I went into the subject of optimizing the use of VR the more complexed it turned out be and I believe iRacing staff are doing all there is to do for VR at this point. But the more people that use VR the more chance we will get that iRacing staff think more ahead of how to make it even better.

There are some improvements that can be made and one of the most obvious is the menus in the in game graphics settings and that is a part of why this guide even exist. If things were more structured together and if the information explaining each of the setting where continuously updated and with more info about VR it would have been a lot easier to use and exploring of it’s own.

On the other hand it’s a good thing iRacing staff are not hiding settings from us to use and try out. They have always been very transparent of the overall development of the sim and knows how important all the members are especially here in the forum in that ongoing work. I hope my part of that collaboration and my recommended optimizations in this guide help users to have the best VR experience possible in better visuals and overall performance.

Be strategic, consider follow my recommendations, change one setting at the time and don’t rush it, drink your coffee, have fun and good luck!

Happy VR racing everyone! 

©2008 - 2024 Atlantic Motorsport-Trademarks and brands are property of their respective owners.

Privacy Policy - Terms and Conditions

© - Web Designer - Mario Rocha

CONTACT US

Personal data provided by the contact form are collected only to contact you and answer your questions.

Sending

Log in with your credentials

Forgot your details?