Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect resolution displayed in SteamVR beta #118

Open
lefufu opened this issue Jun 3, 2017 · 28 comments
Open

Incorrect resolution displayed in SteamVR beta #118

lefufu opened this issue Jun 3, 2017 · 28 comments

Comments

@lefufu
Copy link

lefufu commented Jun 3, 2017

Description of issue

The current stemVR beta 1496358520 give the headset resolution per eye below the supersampling slider.
The resolution per eye displayed is 2160x1200 instead of 1080x1200. So steamVR-OSVR may gives steamVR an incorrect resolution.

Steps to reproduce the problem

Reproduced at each launch of SteamVR

System configuration

Please specify any relevant system configuration information.

  • **Graphics card(s): GTX 780
  • **Operating system: Win10
  • **Version of SteamVR : beta 1496358520
  • **Version of SteamVR-OSVR: build 344 on top of installer 0.8.0

Please attach the following files:

  • The osvr_server configuration file.
  • The vr*.txt files from the Steam logs directory.

osvr_config_HDK_2_default.zip
steamVR_system_report.zip
capture

@godbyk
Copy link
Contributor

godbyk commented Jun 3, 2017

Enable verbose logging by editing the G:\jeux\steam\config\steamvr.vrsettings file in a text editor (like Notepad). Add a driver_osvr section if it doesn't already exist. Then add (or edit) "verbose": true to that section.

For example:

{
    "driver_osvr": {
        "verbose": true
    }
}

(You'll need to ensure that you have commas in the appropriate places if you're adding this entry to an existing file. Check the G:\jeux\steam\logs\vrserver.txt file to see if it reports any errors when reading the vrsettings file.)

Then rerun SteamVR and send me an updated system report. The vrserver.txt log file will contain output that shows what the SteamVR-OSVR driver is telling SteamVR to use for the resolution for each eye.

@lefufu
Copy link
Author

lefufu commented Jun 3, 2017

Done.
I purged all the steam log file before doing the operation and launched IL2 BoS for the test (By the way there is a problem with Il2Bos and OSVR, I opened a ticket before and this is why I was looking for any elements that can be the root cause...).
I have a 2 screen display (1920x1080 for each).

logs.zip

@lefufu
Copy link
Author

lefufu commented Jun 4, 2017

here is the information sent by an CV1 user on a forum.
The number are a bit weird (oculus settings added to steamVR? ) but the horizontal res. is less than the vertical res., unlike my HDK2...
capture steam vr beta

@godbyk
Copy link
Contributor

godbyk commented Jun 5, 2017

The values in the vrserver.txt log file look correct for the OSVR HDK 2:

Sat Jun 03 2017 22:36:18.646 - osvr: GetEyeOutputViewport(left eye): Calculated settings: x = 1080, y = 0, width = 1080, height = 1200.
Sat Jun 03 2017 22:36:18.646 - osvr: GetWindowBounds(): Scan-out origin: Lower-right, rotation: 0 degrees counter-clockwise, orientation: Landscape (flipped)
Sat Jun 03 2017 22:36:18.646 - osvr: GetWindowBounds(): Calculated settings: x = 1920, y = 0, width = 2160, height = 1200.
Sat Jun 03 2017 22:36:18.646 - osvr: Display mode: horizontal side-by-side.
Sat Jun 03 2017 22:36:18.646 - osvr: Display orientation: landscape flipped.
Sat Jun 03 2017 22:36:18.646 - osvr: GetEyeOutputViewport(right eye): Calculated settings: x = 0, y = 0, width = 1080, height = 1200.

The window bounds are set to the resolution of the HDK 2. Each eye takes up half the window.

The values OSVR provides to SteamVR are only suggestions, though. So if a game wants to render to a larger texture size, it may, and SteamVR will scale it down to match the HDK. I wonder if what SteamVR is reporting in that dialog is the actual texture size being rendered and not the values suggested by the OSVR driver.

If it were actually scaling a 2160×1200 image into a single eye at 1080×1200, then everything you saw would be squished horizontally and only appear half as wide as it should.

@lefufu
Copy link
Author

lefufu commented Jun 5, 2017

This is the case in Il2Bos, the image IS squished horizontally in VR display, that makes the game unplayable....So there is a problem because at least steamVR and Il2Bos are displaying/using a wrong resolution.
DCS World and War Thunder are OK, but maybe they did not use the same processing...And unlike DCS world and War thunder, which have at first Oculus support and then OpenVR support, IL2Bos was provided with OpenVR support only.
Maybe you could build a test version in order to check what IL2Bos will do with a divided by two horiz. resolution ? I tried to modify FOV and didn't have any good results in the game.

@Balderick
Copy link

@lefufu
Copy link
Author

lefufu commented Jun 15, 2017

Well, it's looks like the SDK install has broken the previous OSVR 0.8 install...
I must uninstall all OSVR component then re-install them in order to test this SteamVR version.
EDIT : this SteamVR version did not change anything, either in res. displayed in steamVR or in IL2....

@Balderick
Copy link

Balderick commented Jun 16, 2017

It proves it is not an osvr issue. The issue is with the app. Looks like the game is forcing those display parameters for a vive hmd.

Do current steamvr builds still give the same super sampling info?

@lefufu
Copy link
Author

lefufu commented Jun 16, 2017

Yes, steamVR is still giving a double horizontal res, so I do not agree that it is IL2 fault...

@godbyk
Copy link
Contributor

godbyk commented Jun 16, 2017

@lefufu Unless it's giving you the wrong results for all SteamVR applications, then it sounds like it's something particular to IL2.

@lefufu
Copy link
Author

lefufu commented Jun 16, 2017

@godbyk : I do not agree with this Point of view.

  1. SteamVR is reporting a good Horizontal vs Vertical ratio for the Rift and IL2 is working well
  2. SteamVR is reporting a wrong Horizontal vs Vertical Ratio for the HDK2 is il2 is not working

As IL2 devs answered to my ticket that the problem is on headset side and OSVR devs said that the problem is on the game side...it looks like HDK2 will never work with IL2...

@godbyk
Copy link
Contributor

godbyk commented Jun 16, 2017

@lefufu As shown above, SteamVR-OSVR is reporting the expected values. So I'm not sure where the breakdown is occurring.

@Balderick
Copy link

Balderick commented Jun 17, 2017

lefufu commented 6 hours ago
@godbyk : I do not agree with this Point of view.

SteamVR is reporting a good Horizontal vs Vertical ratio for the Rift and IL2 is working well
SteamVR is reporting a wrong Horizontal vs Vertical Ratio for the HDK2 is il2 is not working
As IL2 devs answered to my ticket that the problem is on headset side and OSVR devs said that the problem is on the game side...it looks like HDK2 will never work with IL2...

These super sampling settings have only just been added to steamvr. SteamVR itself could be messing up those settings.
Try using steam support channels as well as IL2BoS support channels.

I'm sure another hdk user very well could share a fix or explanation but this seems to be unique to IL2BoS

To be honest I just leave super sampling settings alone as I have noticed weird and wonderful numbers being reported in the steamvr settings tab for super sampling. I make sure the advanced settings are disabled and just ignore the slider settings.

Seeing fixes being posted by Valve for IL2BoS in SteamVR announcements is encouraging because that means both Valve and IL2BoS devs are working on fixes and are doing so at both ends.

@lefufu
Copy link
Author

lefufu commented Jun 17, 2017

Maybe it's a stupid remark, but couldn't it be more efficient if a steamVR ticket is opened by devs ?
You surely have more information to give to steamVR support than standard users.
And, as IL2 BoS+steamVR is working for Vive, Rift and Pimax (Pimax users had the same problem than us at the beginning, but they were solved by a "Piplay" update) I do not think that there will be changes for HDK2 with the current process....

@Balderick
Copy link

Balderick commented Jun 17, 2017

Anybody with a github account can open an issue with steamvr at https://github.com/ValveSoftware/openvr/issues or with a steam account at https://steamcommunity.com/app/250820/discussions/ or https://steamcommunity.com/app/358720/discussions/

The official steam support channels are found at https://support.steampowered.com/kb_article.php?ref=5254-FJKZ-7829

Subscribing to https://steamcommunity.com/app/507090 keeps you informed of upstream changes to steamvr tracking.

I think what is confusing is that osvr devs like to take opportunity to add osvr support for each new game or device when really a better steamvr-osvr driver (or more specifically "openvr driver") for osvr hdk is possibly all that is needed.

@lefufu
Copy link
Author

lefufu commented Jul 1, 2017

I made it ! It takes me 20 days but I finally found how to successfully compile SteamVR OSRV. So I tried to modify things in order to have the good resolution.
Finally I found that replacing *width = static_cast<uint32_t>(bounds.width * overfill_factor); by *width = static_cast<uint32_t>(bounds.width * overfill_factor)/2; in OSVRTrackedHMD.cpp

  • gives a good resolution displayed in steamVR settings
  • fix the problem I had in IL2 BoS
  • introduced no problem at all in DCS world

capture

The only thing that I found is that things are less clearer now, but that seems normal to me because with the current OSVR-steamVR bug we have a kind of 2x horizontal SS !!!

So do you believe me now and will you update your code ?

@Balderick
Copy link

Balderick commented Jul 2, 2017

Hi lefufu, Well done for persisting and finding a solution and explanation for this querk.

If you fork this repo and then make changes to your fork means you can make a Pull Request (PR). This will allow osvr devs to discuss those changes and/or merge those changes.

If Valve provided better documentation for openvr app and openvr drivers I think it would be a lot clearer that it is recommended that all openvr apps, driversand utilities all work better when they are compiled for steam runtime. Valve have provided the sixense SDK and hydra drivers as examples of how openvr devices which are not steamvr tracked devices should be provided. The hydra drivers and sixense SDK downloadable through steam is demonstating how devs can compile their drivers and sdks for steam runtime.

@lefufu
Copy link
Author

lefufu commented Jul 2, 2017

So after spending a lot of time to find how to compile this stuff, I need now to learn how to use the git mecanism...I will have a look, but that seems easier to me if changes are taken directly into account by devs...after all that is only a small change of two character on a single code line...

lefufu referenced this issue in lefufu/SteamVR-OSVR Jul 2, 2017
@lefufu
Copy link
Author

lefufu commented Jul 2, 2017

Ok,I tried to fork and pull a request. I hope that it is the right way to do this...

@godbyk
Copy link
Contributor

godbyk commented Jul 7, 2017

Thanks for continuing to investigate this, @lefufu!

When I wrote the GetRecommendedRenderTargetSize(), I did so assuming that it should return the size of the texture for the entire screen, not just a single eye. I did some research and haven't found any documentation that clarifies this question, but based on your findings, I'm happy to accept your pull request.

(I will have to make a few adjustments to it to account for various eye layouts so that it works with all our supported HMDs, but your change is on the right track and works fine with the OSVR HDK and other HMDs that take the left and right eye in a side-by-side format.)

Thanks!

@lefufu
Copy link
Author

lefufu commented Jul 7, 2017

Well it's the advantage of Opensource software. Anyone can help.
It's great that the next version will include this fix.
But it's a shame that OSVR software suite is so hard to compile for noobs, because this keep away willing people to help the community...

@Conzar
Copy link

Conzar commented Jul 8, 2017

If your using Linux, 2 community members (myself included) maintain build environments:

@Balderick
Copy link

Balderick commented Jul 8, 2017

With reference to my post above which tries to describe my hunch that we need openvr drivers for each vr device compiled for steam runtime I asked ValveSoftware/openvr#581

@TheDeveloperGuy
Copy link

TheDeveloperGuy commented Jul 10, 2017

@godbyk The size returned by GetRecommendedTargetSize() is the size of a single eye's texture. This is true for all driver types. The confusion can come from the sample driver source code, where it doesn't say anything about this, but uses a config value for the size of a single eye target. One could assume that it was the combined texture size, but that is incorrect. I have had this confirmed (by Valve) but I cannot find the reference right now.

@Balderick That is gobbledygook ;)

@godbyk
Copy link
Contributor

godbyk commented Jul 10, 2017

@TheDeveloperGuy Thanks for the confirmation!

@TheDeveloperGuy
Copy link

@Balderick Might be worth checking your expectations on a pre-release version of a developer kit supported by volunteers. ;)

@Balderick
Copy link

Will do.

@lefufu
Copy link
Author

lefufu commented Jul 11, 2017

@Conzar : the problem is for windows...
I made a guide also : https://github.com/OSVR/SteamVR-OSVR/files/1117930/STEAMVR-OSVR.compilation.for.noobs.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants