How to get full clarity & sharpness in SteamVR Dashboard (overlay) on low-end GPUs with Pimax

Hey guys. Here’s something that might be useful for you, if you have a low-end GPU (GTX 1070 or similar) with Pimax. This simple tweak will dramatically improve the sharpness and clarity in your SteamVR Dashboard (overlay and menus), using a Pimax. Trust me, the difference is like night and day!

I have no idea if you already know about this, but it took me nearly 8 months to finally figure out why the SteamVR Dashboard looked so much worse (more blurry, fuzzy and low-res) on my GTX 1070 laptop than on my desktop 1080Ti and 2080Ti despite using same settings. Do you remember back in december when I did this post?
https://community.openmr.ai/t/major-sharpness-clarity-difference-in-steamvr-dashboard-between-two-pcs-using-5k/11938
Well, back then, we never found the answer to this, but today (while investigating another issue) I randomly discovered something:

SteamVR is constantly measuring/benchmarking your GPU power, on each startup. Just to see how fast your GPU is. And using that value, it will adjust the SteamVR Dashboard resolution (overlay including menus, settings, text etc). If your GPU is slower than average, it will automatically decrease the SteamVR overlay resolution dramatically.

The GPU benchmark value is stored in the config file:
C:\Program Files (x86)\Steam\config\steamvr.vrsettings
under the bracket “GpuSpeed”.

If I launch SteamVR on my GTX 1070 laptop, it will look like this:

gtx1070_2

The “gpuSpeed0”, “gpuSpeed1”, “gpuSpeed2” and “gpuSpeed3” and so on, are created for every restart of SteamVR. The value for my GTX 1070 is somewhere around 480 to 600 every time, which is quite low.

Now, the “gpuSpeedHorsePower” : 498 is an average of all these values…

Lets compare it with my Desktop PC with 2080Ti:

GPUspeed_2080Ti

The values are all around 1350-1400 and the average value “gpuSpeedHorsePower” is 1384.

Now, this “gpuSpeedHorsePower” value is what makes the SteamVR to render a much better looking SteamVR Dashboard, compared to my laptop :slight_smile:

The problem is that this value is re-written every time you restart SteamVR, because it measures a new “average” based on the 10 gpuSpeed values we get, which are frequently updated.

So to go around this, and get a high enough “average” value (at least around 1400), and get the same quality on your low-end GPU or laptop, just remove all 10 values, and add a first “gpuSpeed0” value with something like 15000. Then make sure to change the “gpuSpeedCount” to 1 and set the “gpuSpeedHorsePower” to 15000.
So make it look like this:
gtx1070_3

Now, Start up SteamVR and admire the difference in sharpness and clarity! :slight_smile:

But unfortunately, this is not a permanent fix.
The gpuSpeedHorsepower will lower (as its an average value) for every time we start up SteamVR now, and next time you start up SteamVR, it will look like this:

gtx1070_4

…and when having all 10 values added by restarting SteamVR 10 times, SteamVR will automatically overwrite the first “gpuSpeed0” again to the “real” benchmark value.

So basically, every 10th restart of SteamVR, you will need to change the first value to something like 15000. I know its painful, but hey its worth it, I promise!

To really see the biggest difference using this tweak, first make sure to have these lines in the file C:\Program Files (x86)\Steam\config\steamvr.vrsettings (I assume most people know about this already).
compisitor

Try this guys and let me know what you think. If you dont believe me, and already have a fast 2080Ti, try lowering the values, and you will understand how bad it looks on default on a GTX 1070 in comparison.

Here is how the full file could look (my simple config file on my laptop):

Now, the question is… Can we somehow disable this GPU benchmark and make this a permanent fix?

NOTE: This affects only SteamVR Dashboard and overlay, and not the games themselves. So theoretically it should not affect your performance while playing games.

14 Likes

Can you make the file read only (so the value won’t get overwritten) , or does SteamVR complain about that?

3 Likes

Good idea, I will test that when I get back home tonight, just left… :slight_smile:

2 Likes

The read-only idea is a good one, but if SteamVR complains, you could dup the “good” file and create a .bat file to copy the dup over the updated file. Running a .bat file should be less painful than having to edit the file every 10th time.

You should probably set the dup file to read-only, so it doesn’t accidentally get overwritten.

1 Like

The price of clarity should be considered though: enhancing VR compositor will affect the GPU power during the game, too, because the rendering of the dashboard is done while in game in order to pop up instantly if activated.
Nevertheless I like your work very much, SweViver!

2 Likes

Now THIS is a great solution, many thanks! Will try that later.

Also I have reported this to the devs, and they will see what they can do to prevent the SteamVR Dashboard downsample on lower end GPUs. For new Pimax users, it can be a real bummer to see the blurry menus for the first time, thinking its the headsets’ fault…

Thanks man. Yeah I agree, if the Dashboard is brought up during a game, it could indeed introduce some stutters in low end GPUs while the menu is showing on full resolution. We should have an optional setting for this to trigger maybe. Either way, browsing through the Dashboard in full resolution is a whole different experience when everything is crispy sharp, even at default PiTool 1.0, so I strongly suggest people to try this at least, especially when using a laptop.

2 Likes

Very interesting find!
After 8 months, man, tenacity has a new name! :face_with_monocle::+1:

does the write protection work?

You could have asked and saved yourself 8 months :wink: (https://community.openmr.ai/t/recommended-render-target-resolution-is-just-that-recommended/16832).

There is however reason for that and this reason is exactly what you are trying to mitigate by software setting - an inadequate performance of your laptop’s GPU. SteamVR Home is doing what Valve recommended to all VR developers (as in “live by your word”) i.e. automatically change the render target resolution based on the app performance.

And the recommended target was the fluidity (not the image quality). So SteamVR Home chooses the render target resolution in way it can render enough FPS (I am not sure what is the number exactly - but I am sure this is the reason). It basically ignores what OpenVR recommends and therefore your settings in PiTool and SteamVR video settings do not apply.

You may try to fool the app into thinking you have more powerful GPU than you actually have, but I guess this was not Valve’s intention nor the recommended way how to handle it.

1 Like

@risa2000 thanks but I think you have misunderstood the point of this. The tweak is not made to increase the SteamVR Home environment resolution (or any game/app resolution)Thats made by render target resolution or supersampling.

The Home environment is always sharp on my laptop and I can supersample it to ridiculous levels.

This GPU-based value affects the SteamVR Dashboard overlay resolution/sharpness/clarity, which previously was controlled by the value RenterTargetMultiplier (in compositor bracket). But nowadays this value is ignored by SteamVR if your GPU is not fast enough. No matter what supersampling u set and no matter what PiTool render quality u use.

So by fooling the GPU-test, you can achieve the sharpest SteamVR Dashboard sharpness even on low end GPUs, which doesnt affect your performance - unless you bring up the Dashhoard while being in a game of course.

If you have a fast GPU, just try it yourself by changing all your GPU test numbers to 400 something, and restart SteamVR. The Dashboard will look terrible but Home environment will still be fully sharp as before.

Edit: oh, and while the GPU-test upon high numbers will indeed automatically also increase your supersampling (render target resolution) you can still decrease the supersampling/render target resolution and maintain the performance in your games and Home environment, while the Dashboard stays sharp.

2 Likes

Yes it actually does, but I dont see this as a good solution, as you can no longer change any other values and save them upon next restart.

You are right, indeed I misunderstood what is “SteamVR Dashboard”! I thought you were referring to the menus in SteamVR Home.

But from the symptoms it still looks to me like this has the similar cause. Why is it so taxing? Is compositing the Dashboards on SteamVR Home buggy? And if you pull the Dashboard in any other app (than SteamVR Home) does it also degrade the resolution of the Dashboard? (I have only one GPU (1080Ti) and on this one I do not notice any “problems”).

2 Likes

Yeah it got a little confusing maybe hehe, sorry. I just mean the menus in the Dashboard :slight_smile:

Good question. The Dashboard has always been taxing while in-game. I would say for no reason. Maybe it has something to do its overlay graphics, maybe rendered in a different way. I really don’t have a clue.

My point here is basically that I assume most people’s first experience in VR is browsing through the Dashboard looking through the library to start up a game. If these menus looks blurry its not really a good first impression.

Personally Ive never been a fan of the Home Beta environment, so I rarely use it. Its taxing, it slow to start up, it sometimes never quit upon starting a game, and sometimes even crashes.

So I prefer to just start up SteamVR, bring up the Dashboard and just do everything from there (start games, change settings etc). Much faster and convenient.

Well the resolution of the Dashboard is always the same once you have started SteamVR, no matter if u bring it up in a game with very high Supersampling.
So if Dashboard is blurry upon startup, it will always be blurry, and if u tweak it to be sharp with above instructions, it will stay sharp, even if you bring it up on top of a game with very low resolution/SS.

2 Likes

Using 1080Ti, u will get sharp Dashboard as the GPU test values will probably be around 1000. But for science, just try lowering all values to low (400-ish) in the config file, and start SteamVR. Now it will look terrible, just as it does on a 1070 or other low end GPU :slight_smile:

2 Likes

Tried this SweViver and looks great. Also made the file read only and it seems to get the value to stick. Fingers crossed. Image quality is where it should be now… Thanks

2 Likes

Oh and I have a Nvidia 1080ti so Steam doesn’t seem to be much good at estimating the graphics power you can in reality unleash. I think this thread is one of the most important ones that I have seen on the forums as I have been fighting this issue ever since I first got my Pimax

2 Likes

Just tried this and it was great to get back the incredibly sharp Steam VR menu screen that I used to get with my Vive when changing the compositor super sampling settings. Really wish they hadn’t gotten rid of the option to change it in that way.

1 Like

This topic is interesting because I ever set 500% sampling to test clarity on my 1070 and get the best clarity. But I can set only 150% in newer version and don’t know what steamvr changed.

1 Like

Hmm… my GPU values are similar to yours (around 1380), but my render target scale is 0.239??

what’s going on? Doesn’t it set that target scale based on the horsepower?

It looks like SteamVR is limiting the resolutions more and more for lower-end GPUs. Probably to maintain an acceptable framerate, especially for users that doesnt understand supersampling and accidentially put it too high. But I agree its a problem as the limitation is frustrating and just kills the quality unless you have a 2080 or better…

I dont know, but I just have a feeling SteamVR is gettings worse and worse for every update. Its kinda becoming an “scaled-down iOS” instead of the previously “customizable Android” it always was in the past. Very frustrating.

4 Likes