iRacing Detailed Setup Guide for Pimax 5k+

Hello fellow Pimaxers :slight_smile:,

I am exclusivly running racing simulators (iRacing, Assetto Corsa).
Assetto Corsa has good setup guides that work wonders to get most out of your Pimax.

It took several weeks to get iRacing to look and shine as I want it to at constant 90hz with high settings. The picture is crisp as good as it gets.

And here is how I did it:

My Setup:
i7-8086k @ 5Ghz all cores constant
Asus Strix 1080 Ti (manually flashed OC version bios) running at 1708Mhz/11001Mhz

Setup Guide includes:
Nvidia Settings
PiTools
SteamVR
iRacing Settings
How to launch the game

  1. Nvidia Settings:
    Nvidia%20Settings Nvidia%20Settings2
    Virtual Reality Prerendered frame is 1 (not in screenshot)

Also make sure under Configure Surround, PhysX to have the GPU do the processing.

  1. PiTools:
    Hidden Area Mask actived
    Normal Brightness
    Render Quality 1.25
    Contrast 2 (still experimenting)
    Brightness -3 (still experimenting)
    Smart Smoothing on
    Parallel Projections OFF (important)
    Compatible with Vive Only Game on (not sure what it does yet performance wise)
    FOV Normal
    Refresh Rate 90hz

  2. SteamVR
    Custom Resolution at 100% (4002x3292)
    Application Resolution for iRacing at 88% (3754x3088)

This depends how you have iRacing setup with Steam (can be easily imported) if not just set custom resolution directly to 88%.

  1. iRacing Settings (rendererDX11.ini)
    Open VR ResolutionScalePct=70
    SPS off

It seems to be counter intuitive to reduce the SS here but it took the load of my system allowing to run 3754x3088 per eye.

Copy settings from below


[AutoCfg]
AutoCfgCompleted=1 ; 0=need to run 3D autocfg at startup
Version=1 ; Version of this file

[Graphics Options]
DynamicCubemapType=0 ; 0=RGB8, 1=RGBE, 2=RGB16
EnableHDR=0 ; 0=LDR rendering, 1=HDR rendering
SkyDetail=1 ; 0=low update rate, 1=med update rate, 2=high update rate
EnableTireMarks=1 ; 0=Disable Tire marks 1=Enable tire marks
DynamicShadowRes=2 ; (For 3 maps! So, x3) 0 = 512x512 1 = 1024x1024 2 = 2048x2048 3 = 4096x4096
SelfLitBloom=0 ; 0= disable 1= enable bloom for self lit objects
NumDynamicCubemaps=0 ; number of dynamic cubemaps to render per frame(100 = 1/frame)
Distortion=0 ; 0=off, 1=Distortion enabled
AllowTSOSelfShadows=1 ; 0=off, 1=more self-shadowing objects when shadow mapping
EnableSwayTrees=0 ; 0=normal trees, 1=trees sway with wind
DNSMFilter=3 ; 0= none 1= Fetch4 2= PCF4 3= PCF4P 4= PCF8P 5= PCF16P
DNSMShadowFade=25 ; 0 to # = time to fade in night shadows in 100ths of a sec (25 default)
DNSMNumLights=3 ; 0 to 128 = Max number of shadow mapped lights at night
DNSMHeadlightsCastShadows=1 ; 0=off 1=car headlights cast shadows
DNSMWallsCastShadows=1 ; 0= off 1=track walls cast shadows
DNSMTSOsCastShadows=0 ; 0= off 1=track objects cast shadows
DNSMDownsampleFirst=0 ; 0=per-AA-sample shadows 1=per-pixel shadow
DNSMEnable=0 ; 0=off 1=dynamic night shadow maps
TwoPassTrees=1 ; 0=off, 1=render trees with higher quality in two passes
NumFixedCubemaps=0 ; number of fixed cubemaps to render per frame(100 = 1/frame)
ReplayRenderModes=0 ; 0=off, 1=Replay Render Modes enabled
SharpeningClamp=9 ; sharpening clamp (0=min, 10=default, 100=max)
SharpeningAmount=200 ; sharpening strength (10=min, 125=default, 300=max)
FXAAQualityEdgeThreshold=166 ; 333=too little(fast),250=lowqual,166=default,125=highqual,63=overkill(slow)
FXAAQualitySubPix=75 ; aliasing amt (100=soft,75=default,50=sharp,25=low,0=0ff)
FXAA=0 ; 0=off, 1=FXAA enabled
Sharpening=1 ; 0=off, 1=sharpening enabled
HeatHaze=0 ; 0=off, 1=heat haze enabled
DepthOfField=0 ; 0=off, 1=depth of field blurs enabled
ShadowMapType=3 ; map onto: 0=off, 1=track, 2=track\cars, 3=track\cars\tso
DynamicShadowFilters=1 ; 1=cockpit only, 7=all)
DynamicShadowMaps=0 ; 0=off 1=dynamic shadow maps for cars, etc. (Day only!)
ShadowDetail=0 ; 0=fewer shadows, 1=maximum shadows
VirtualMirrors=0 ; 0=off, 1=virtual mirrors enabled
MaxCockpitMirrors=3 ; Maximum number of cockpit mirrors to enable (0 to 4)
MirrorDetail=0 ; 0=low detail, 1=high detail in mirrors
ParticlesSoft=0 ; soft particles: 0=off, 1=on
ParticlesFullRes=1 ; full resolution particles: 0=off, 1=on
ParticleDetail=1 ; particle detail: 0=low, 1=med, 2=high
WeekendDetail=2 ; event detail: 0=low, 1=med, 2=high
ObjectDetail=2 ; object population 0=low, 1=med, 2=high
GrandstandDetail=1 ; 0=low, 1=med, 2=high
CrowdDetail=1 ; 0=off, 1=low, 2=med, 3=high
PitObjectDetail=2 ; 0=off, 1=low, 2=med, 3=high
CarDetail=1 ; 0=low, 1=med, 2=high
EnableSPS=0 ; 0=off 1=Use Single Pass Stereo VR (nvidia Pascal/Turing)
Trilinear=1 ; 0=off, 1=improved texture quality
MaxAniso=16 ; 1=off, or 2, 4, 8, 16 - improved edge-on textures
FarTerrain=0 ; 0=no far terrain, 1=far terrain in separate pass
DriverHands=1 ; Show driver hands? 0=no, 1=yes
SteeringWheel=1 ; Show steering wheel? 0=no, 1=yes
TrackDisplacementEnable=1 ; 0=render without displacement, 1=render using track displacement shaders
DNSMMaxLightsPerPass=2 ; 0- 6 = Shadowing lights per-fullscreen pass
DynamicTireRendering=0 ; 0=render without dynamic tires, 1=render with dynamic tires
DynamicTrackTextureUpdateRate=0 ; 0=min, 1=low, 2=med, 3=high frequency of dynamic track texture updates
DynamicTrackDataRendering=0 ; 0=render without dynamic track data, 1=render with Dynamic Track Data
ShaderQuality=1 ; 0=low, 1=med, 2=high, 3=max
HeadlightLevel=0 ; 0=low quality, 1=medium, 2=high quality. *** -1=disabled ***
ParallelSorting=1 ; 0=disabled 1=multithreaded scene sort
MonochromeHeadlights=0 ; 0=color headlights 1=all white (less blotches/banding)
ProceduralHeadlights=0 ; 0=off 1=dynamic player car headlights if headlightLevel >= MED
HeadlightsInMirrors=0 ; 0=off 1= headlights illuminate track surface in mirrors
LoadTexturesWhenDriving=1 ; 0=only load when out of car
NumMultiGPUs=1 ; Number of GPUs in Crossfire/SLI (1=off to 4). Set low as works.
CompressTexturesSuits=1 ; 0=uncompressed 1=block compress (recommended)
CompressTexturesHelmets=1 ; 0=uncompressed 1=block compress (recommended)
CompressTexturesCars=1 ; 0=uncompressed (warning! no!!) 1=block compress (highly recommended)
CompressedVertices=1 ; 0=off 1=Use compressed vertices
ReduceCockpitFlicker=1 ; 0=off 1=enabled
CarPaint2048x2048=0 ; 0=1024x1024 car textures res, 1=2048x2048 car texture res (max)
CacheSwap3HighResCars=0 ; 0=shrink to fit 1=cache swap higher res for nearest cars
WorldNearPlaneDistance=10 ; In 1/10 meters, min=1(0.1m) max=30(3m), helps z-fighting but may clip track.
VisibilityFrameDelay=5 ; Number of frames to wait before re-testing object visibility. 0 = no delay
AAQuality=0 ; 0=low - 0=max (GPU & AASamples specific)
AASamples=8 ; 1=off, 2, or 4 - num samples
MipLODBias=0 ; % bias texture lookup 100 is a mip level, positive is blurry, negative sharp
LODPct=50 ; % to scale dist before choosing level-of-detail
OcclusionCull=1 ; 0=disable occlusion culling, 1=enabled (usually best)
LimitFrameRate=1 ; 0=no limit, 1=use DesiredFPSLimit
DesiredFPSLimitBatt=91 ; Enabled when LimitFrameRate=1 and on battery
DesiredFPSLimit=91 ; Enabled when LimitFrameRate=1 and on ext. power
MaxPreRenderedFrames=0 ; 1=normal 0=disabled/multi-gpu
VerticalSync=0 ; 0=allow tearing, 1=lock FPS to refresh rate
TwoBackBuffers=1 ; 0=1 back buffer, 1=try to create 2 back buffers
MaxWorkingSetMB_64Bit=8192 ; (64-bit) 1024 to 8192 MB - Lower to reduce page faults!
VidMemMB=8192 ; Maximum GPU video memory to consume (MB)
UIScalePct=125 ; User Interface Size

[MonitorSetup]
BezelProtectionPct=7 ; 0-10: % of screen width to keep UI elements away from bezels
Min3ViewZoomDistortion=1 ; 0=off 1=when cameras zoom in alot, relax screen angles
NumMonitors=1 ; 1 or 3
EnableSMPSurround=0 ; 0=off 1=Enable Simultaneous Multi-Projection via GPU
RenderViewPerMonitor=0 ; 0=off 1=separate view on each monitor (less distortion)
MonitorWidth=0 ; (mm) total width of each monitor (screen + bezels)
ScreenWidth=0 ; (mm) usable width of each screen (no bezels)
ScreenAngles=0 ; (deg) side monitor angle, 10=slight, 65=max

[Debug]
Renderer=? ; Driver DLL - Donā€™t Edit This!
Version=0 ; Driver Version - Donā€™t Edit This!
Vendor=? ; Driver Vender - Donā€™t Edit This!

[Laser Scan]
PointSizeMM=80 ; desired physical point size width (mm): 1 to 120
PointSizeMin=1 ; min point size in screen pixels (1 to 256)
PointSizeMax=1 ; max point size in screen pixels (1 to 256)
MaxLaserScanVidMem=192 ; Max scan density to load into vidmem 128-768 (MB)

[Oculus Rift]
MirrorViewVerticalShiftPct=0 ; -30 to +30 percent - shifts the mirror image up/down (if clipped)
RiftEnabled=0 ; Enable Oculus Rift Support
PixelsPerDisplayPixel=116 ; (50% to 300%): 125%=1.25, over 100% may hurt performance!
AutoSelect=0 ; Use Rift, if detected, without prompting
AutoCenter=0 ; Re-center the HMD pose when health/safety warning disappears
PrevVirtualMirrorWidth=1316 ; System use only -> do not editā€¦
PrevVirtualMirrorHeight=256 ; System use only -> do not editā€¦

[OpenVR]
AlignmentFix=0 ; 0=off, 1=simple (SPS), 2=simple (always), 3=advanced (SPS)
MirrorViewVerticalShiftPct=0 ; -30 to +30 percent - shifts the mirror image up/down (if clipped)
OpenVREnabled=1 ; Enable OpenVR Support
PredictionMode=0 ; 0=off, 1=dynamic, 2=fixed
ResolutionScalePct=70 ; (50% to 300%): 125%=1.25, over 100% may hurt performance!
AutoSelect=0 ; Use OpenVR without prompting (note: Oculus has priority if enabled)
AutoCenter=0 ; Re-center the HMD pose when health/safety warning disappears

[Replay Graphics]
SkyDetail=1 ; 0=low update rate, 1=med update rate, 2=high update rate
AllowTSOSelfShadows=1 ; 0=off, 1=more self-shadowing objects when shadow mapping
SelfLitBloom=1 ; 0= disable 1= enable bloom for self lit objects
NumDynamicCubemaps=0 ; number of dynamic cubemaps to render per frame(100 = 1/frame)
Distortion=0 ; 0=off, 1=Distortion enabled
DNSMFilter=3 ; 0= none 1= Fetch4 2= PCF4 3= PCF4P 4= PCF8P 5= PCF16P
DNSMShadowFade=25 ; 0 to # = time to fade in night shadows in 100ths of a sec (25 default)
DNSMNumLights=3 ; 0 to 128 = Max number of shadow mapped lights at night
DNSMHeadlightsCastShadows=1 ; 0=off 1=car headlights cast shadows
DNSMWallsCastShadows=1 ; 0= off 1=track walls cast shadows
DNSMTSOsCastShadows=0 ; 0= off 1=track objects cast shadows
DNSMDownsampleFirst=0 ; 0=per-AA-sample shadows 1=per-pixel shadow
DNSMEnable=0 ; 0=off 1=dynamic night shadow maps
TwoPassTrees=1 ; 0=off, 1=render trees with higher quality in two passes
NumFixedCubemaps=0 ; number of fixed cubemaps to render per frame(100 = 1/frame)
ReplayRenderModes=0 ; 0=off, 1=Replay Render Modes enabled
SharpeningClamp=9 ; sharpening clamp (0=min, 10=default, 100=max)
SharpeningAmount=125 ; sharpening strength (10=min, 125=default, 300=max)
FXAAQualityEdgeThreshold=166 ; 333=too little(fast),250=lowqual,166=default,125=highqual,63=overkill(slow)
FXAAQualitySubPix=75 ; aliasing amt (100=soft,75=default,50=sharp,25=low,0=0ff)
FXAA=0 ; 0=off, 1=FXAA enabled
Sharpening=1 ; 0=off, 1=sharpening enabled
HeatHaze=0 ; 0=off, 1=heat haze enabled
DepthOfField=0 ; 0=off, 1=depth of field blurs enabled
ShadowMapType=3 ; map onto: 0=off, 1=track, 2=track\cars, 3=track\cars\tso
DynamicShadowFilters=7 ; 1=cockpit only, 7=all)
DynamicShadowMaps=0 ; 0=off 1=dynamic shadow maps for cars, etc. (Day only!)
ShadowDetail=0 ; 0=fewer shadows, 1=maximum shadows
VirtualMirrors=1 ; 0=off, 1=virtual mirrors enabled
MaxCockpitMirrors=3 ; Maximum number of cockpit mirrors to enable (0 to 4)
MirrorDetail=0 ; 0=low detail, 1=high detail in mirrors
ParticlesSoft=0 ; soft particles: 0=off, 1=on
ParticlesFullRes=1 ; full resolution particles: 0=off, 1=on
ParticleDetail=1 ; particle detail: 0=low, 1=med, 2=high
WeekendDetail=2 ; event detail: 0=low, 1=med, 2=high
ObjectDetail=2 ; object population 0=low, 1=med, 2=high
GrandstandDetail=1 ; 0=low, 1=med, 2=high
CrowdDetail=1 ; 0=off, 1=low, 2=med, 3=high
PitObjectDetail=2 ; 0=off, 1=low, 2=med, 3=high
CarDetail=2 ; 0=low, 1=med, 2=high
Trilinear=0 ; 0=off, 1=improved texture quality
MaxAniso=1 ; 1=off, or 2, 4, 8, 16 - improved edge-on textures
FarTerrain=0 ; 0=no far terrain, 1=far terrain in separate pass
DriverHands=1 ; Show driver hands? 0=no, 1=yes
SteeringWheel=1 ; Show steering wheel? 0=no, 1=yes

  1. How to launch the game
    Close PiTool
    Close Steam VR
    Launch Session from Browser via iRacing Website and choose VR when asked.

Enjoy! Hope it helps others.

14 Likes

Thank you very much for this guide!!!
Because of that, I will finally buy the 5k plus without fear, because I only play iRacing. I dont understand one thing, ĀæWhy is neccesary to have install and setup steam? ĀæIts neccesary steam to play iRacing?

Itā€™s not necessary but I believe it allows you to set application specific resolutions for iracing in steam vr. But it will work without importing iRacing to steam however you will need steam for steam vr/open vr support.

I just noticed that on tracks like nordschleife and Le Mans, I still get the usual frame drops, which disappear when I turn off cockpit mirrorsā€¦

Had this with the rift as well.

This is a problem that iRacing will have to address. Already wrote to the support but I believe more people will have to write them to get things moving.

finally!!! iā€™ve got crispy clear image on iRacing!!! this is really good thank you !!!

I really wish that turn off PP on Pitool while play iRacing.

because it seems like there are image quality boost when turning off PP, but image shows up strange format. So I gave up before. Now with this solution, the image quality is top of top.

1 Like

Hey Lathander,

Happy you found my guide useful!

Regards,
Chris

Thank you for this @pimax_chris , gonna try this asap!

Did u managed to get stable 90fps? i follow these setting above, somehow my fps drops tp 45fpsā€¦ Im not sure what i did wronglyā€¦

Anyone ?

Try it with smart smoothing off, to check how many frames you are missing to get to 90.

Then you could dial down the super sampling in steam until you are able to get 90 FPS.

All PCs are different, you canā€™t expect the same results. Also iracing updated their software as far as I know - maybe this have changed regarding rendering.

I would advise checking actual FPS without smart smoothing and then dial down resolution until you see stable 90 FPS.

For RTX series cards (personally 2080ti) in iRacing, I have:

I then have SPS set to ON in iRacing. This gives no performance benefit, but prevents some weird visual artifacting (disappearing armco etc).

This gives 90fps solid on dirt in a race session, even on the grid. However, the thing holding this back is still CPU - the G meter is at like 7, while the R meter is at the edge of safety at 10 or so. And thatā€™s with an 8700k at 4.9ghz.

I think if AMD knock it out of the park with Ryzen 3k, weā€™ll be able to get the R bar down to ~8 and then really crank the settings up. Iā€™d love to be able to use heat haze, distortion, etc, now that VR resolution is good enough to actually see them.

2 Likes

Iā€™m pretty sure PiTools sets this to 45 fps because of the brainwarp functionality (or whatever theyā€™re calling it now). I think itā€™s a good feature if your computer canā€™t run it steady @ 90hz, so you might want to keep it this way.

1 Like

I have used these settings for the 8k and so far so good. I do have one problem, when I lean forward, back left or right the car moves with me, is this right? I am not using any sensors (lighthouse)

Yes, the Pimax has no built-in positional tracking. If you donā€™t want the car to move with you, you need a Steam VR lighthouse. You can get them sold-separate for about $120-$150 from Amazon or Ebay. You only need one for seated games.

1 Like

Great settings, thanks for putting in the time. Pimax 5k+ is my first proper VR headset so unsure if this is something Iā€™ll have to live with, but I have a couple of issues:

  1. Even with all the settings as youā€™ve posted them, there seems to be insufficient anti-aliasing, as the barriers and cars seem to have jagged edges. Inside the car things seem fine.
  2. At Lime Rock for example, I canā€™t read the break markers in the first corner until I get quite close to them. After doing a fair bit of reading around the communities, it seems like thatā€™s normal, because of the sweet spot being in the center and that seems correct as the text becomes much clearer if I turn my whole head towards it.
  3. There is insufficient detail on the cars in front. I knew that the clarity wasnā€™t going to be like on my triple monitors, but it still seems a bit off.

Thanks! :slight_smile:

Thereā€™s still a degree of jagginess - thereā€™s unfortunately not much you can do about it.

Maybe itā€™s just coming from a CV1, but the brake markers are quite readable to me from a long way back. You might want to experiment with the headsetā€™s angle/position on your face, because I donā€™t really get any ā€œsweet spotā€ issues until the edges of the large FOV setting.

Are you sure youā€™re running it at full resolution? Check in SteamVR that itā€™s not set to auto and dropping it to 30% or something. I can read the sponsors on the back of the car in front where Iā€™d expect to be able to read them in real life.

I donā€™t use SteamVR for iRacing, I just start it from the browser, as usual. Unsure where Iā€™d set the resolution in this case.

If you donā€™t get the little SteamVR status popup in the bottom middle of your screen, you probably want to install SteamVR. If you do get it, you can find the settings in the top right corner of it, and youā€™ll be able to find your way to render scale from there.

1 Like

So yesterday evening, in a last ditch effort to save my relationship with Pimax, I was looking in iRacingā€™s settings and noticed that the resolution was 1920 x 1080!!! Probably left-over from my triple-monitor days. Changed it to the bottom-most one (3840 x 2160 @ 75Hz - Odd refresh rate) and things are MUCH better. Itā€™s not 4x better, but a huge improvement in clarity. It made such a big difference that, from wanting to return the unit and not bother with VR, I might start putting in some more money into a DAS and a basestation for the ultimate experience.

Essentially Iā€™m torn between returning the Pimax and getting the Index (as a bundle it makes much more sense), but unsure if I can live with the Indexā€™s FOV.

That doesnā€™t make logical sense - that resolution number isnā€™t the HMD resolution, itā€™s the resolution of the window on your monitor that you get that shows what youā€™re doing in VR.

Iā€™m going to have to experiment with that when I get home to see if itā€™s doing something it shouldnā€™tā€¦

I know I canā€™t live with anything other than Pimaxā€™s large FOV now.

1 Like

Then itā€™s really really odd. Havenā€™t done anything else besides changing the resolution, but the improvement is massive. Easiest way to tell is using the brake markers at Lime Rock, couldnā€™t read them before changing that.

To be fair, I also added iRacing in Steam, unsure if that would change anything.

Thank you very much, pimax_chris, for this settings. It is just impressive how good the improvement is from the original config I was using.
I didnā€™t manage to apply the VRsteam setting as I havent found them in the software (iā€™ll try again tonight). Anyway the result is just awsome, Great job.
For information: my config is Pimax 5K XR, i7-7700K, GTX 1080, 480GB M.2 SSD, 2TB HDD, 16GB DDR4.