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

[RIFT S] No Display Output Windows 64-bit MSVC 2019 #68

Open
RSDNTWK opened this issue Aug 26, 2021 · 14 comments
Open

[RIFT S] No Display Output Windows 64-bit MSVC 2019 #68

RSDNTWK opened this issue Aug 26, 2021 · 14 comments

Comments

@RSDNTWK
Copy link

RSDNTWK commented Aug 26, 2021

For some reason the windows build is unable to initialise the display even though the headset and all drivers are installed. We even hardcoded the settings in ohmd_config.h. No idea what's going on. Here's our vrserver log from steamvr. We are using Nvidia Graphics Cards.
vrserver.txt

@thaytan
Copy link
Collaborator

thaytan commented Aug 26, 2021

This might be related to the display rotation. In Linux, one needs to use xrandr to rotate the display first. The problem is that OpenHMD reports the logical display size (2560x1440), but the display presented to the OS is physically portrait (1440x2560).

@RSDNTWK
Copy link
Author

RSDNTWK commented Aug 26, 2021

Not sure how that can be resolved in windows given the hardware isn't seen in the nvidia control panel itself. It's usually handled directly using the oculus software.

@thaytan
Copy link
Collaborator

thaytan commented Aug 26, 2021

For a test, you might try swapping the display width/height in GetWindowBounds() and see if SteamVR finds the output then. It won't render correctly, but it'll help confirm that's the problem.

@RSDNTWK
Copy link
Author

RSDNTWK commented Aug 26, 2021

Sadly it has no effect whatsoever. It still displays the same values. And there is still nothing displaying at all.

@ChristophHaag
Copy link
Owner

I made this for proper display rotation #58

It won't do anything for the Rift S because OpenHMD doesn't give us info about its display rotation. But it's set up to allow easy additions, so after the WVR entry you can add your own like

       if (strcmp(prod, "VR-Tek WVR") == 0 && m_renderViewportWidth == 2560 &&
            m_renderViewportHeight == 1440) {
          eye_rotation[0] = EYE_ROTATION_RIGHT;
          eye_rotation[1] = EYE_ROTATION_RIGHT;
          DriverLog("Force eye_rotation: Right for %s\n", prod);
          projection_matrix_rotated = false;
        }

       if (strcmp(prod, "Rift S") == 0) {
          eye_rotation[0] = EYE_ROTATION_RIGHT;
          eye_rotation[1] = EYE_ROTATION_RIGHT;
          DriverLog("Force eye_rotation: Right for %s\n", prod);
          projection_matrix_rotated = false;
        }

On Linux this is enough to get SteamVR to use direct mode. On Windows there may or may not be additional requirements like giving SteamVR the correct EDID vendor string. I don't know how, but it'd probably be an additional setProp thing.

@thaytan
Copy link
Collaborator

thaytan commented Aug 26, 2021

I think you might be right about the EDID, in that case something like this might work:

	vr::VRProperties()->SetInt32Property(m_ulPropertyContainer, Prop_EdidVendorID_Int32, 0x3ed2);
	vr::VRProperties()->SetInt32Property(m_ulPropertyContainer, Prop_EdidProductID_Int32, 0x0012);

(those values might need byte swapping, I'm not sure which way around SteamVR wants them)

@RSDNTWK
Copy link
Author

RSDNTWK commented Aug 26, 2021

After trying both of your suggestions we were able to get further however SteamVR just fails at DXGI thread failed to get SDL display index which could explain why the display still isn't working.

@thaytan
Copy link
Collaborator

thaytan commented Aug 27, 2021

ValveSoftware/openvr#422 seems directly related then

@RSDNTWK
Copy link
Author

RSDNTWK commented Aug 31, 2021

We did try everything suggested however nothing worked. It doesn't seem to work. it seems like there is an issue with the direct mode. Not sure how to resolve.

@thaytan
Copy link
Collaborator

thaytan commented Sep 1, 2021

You said you "got further"? Does that mean you got past the DXGI thread failed to get SDL display index error to something else?

@RSDNTWK
Copy link
Author

RSDNTWK commented Sep 1, 2021

We got as far as the DXGI error but we did get the windows background when running it in extended mode. However the steamvr overlay still couldn't render.

@RSDNTWK
Copy link
Author

RSDNTWK commented Oct 17, 2021

Note sure if this will help but the recent changes produced this result.
Sun Oct 17 2021 04:15:44.067 - openhmd: get controller component IVRDisplayComponent_002 | <nothing> Sun Oct 17 2021 04:15:44.067 - openhmd: : no Sun Oct 17 2021 04:15:44.067 - openhmd: get controller component IVRDriverDirectModeComponent_006 | <nothing> Sun Oct 17 2021 04:15:44.067 - openhmd: : no Sun Oct 17 2021 04:15:44.067 - openhmd: get controller component IVRCameraComponent_003 | <nothing> Sun Oct 17 2021 04:15:44.067 - openhmd: : no Sun Oct 17 2021 04:15:44.067 - openhmd: get controller component IVRVirtualDisplay_002 | <nothing> Sun Oct 17 2021 04:15:44.067 - openhmd: : no Sun Oct 17 2021 04:15:44.071 - DXGI thread failed to get SDL display index

@RSDNTWK
Copy link
Author

RSDNTWK commented Oct 17, 2021

@thaytan @ChristophHaag Any ideas on what is happening? It's the first time we've seen these messages appear.

@thaytan
Copy link
Collaborator

thaytan commented Oct 21, 2021

I don't think those messages are caused by anything that's changed on the SteamVR-OpenHMD or OpenHMD front - they must be from a SteamVR update

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

3 participants